Fix missing subscription list changes

A missing @Override let the wrong function try to catch changes
to the subscription list.

The SubscriptionManager returns null when no SIMs are in the device,
so handle null as an empty list of subscriptions.

Bug: 18752587
Change-Id: I20ee1bde3f23828860f57b512662ad54ee51baf0
This commit is contained in:
Jason Monk
2014-12-15 12:24:10 -05:00
parent b0575a24df
commit c9f0571302

View File

@@ -426,6 +426,9 @@ public class NetworkControllerImpl extends BroadcastReceiver
return;
}
List<SubscriptionInfo> subscriptions = mSubscriptionManager.getActiveSubscriptionInfoList();
if (subscriptions == null) {
subscriptions = Collections.emptyList();
}
// If there have been no relevant changes to any of the subscriptions, we can leave as is.
if (hasCorrectMobileControllers(subscriptions)) {
// Even if the controllers are correct, make sure we have the right no sims state.
@@ -500,10 +503,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
}
private boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) {
if (allSubscriptions == null) {
// If null then the system doesn't know the subscriptions yet, instead just wait
// to update the MobileControllers until it knows the state.
return true;
if (allSubscriptions.size() != mMobileSignalControllers.size()) {
return false;
}
for (SubscriptionInfo info : allSubscriptions) {
if (!mMobileSignalControllers.containsKey(info.getSubscriptionId())) {
@@ -812,7 +813,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
private final OnSubscriptionsChangedListener mSubscriptionListener =
new OnSubscriptionsChangedListener() {
public void onSubscriptionInfoChanged() {
@Override
public void onSubscriptionsChanged() {
updateMobileControllers();
};
};