From c9f0571302a59b171ff16fa049e9727503ca2986 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 15 Dec 2014 12:24:10 -0500 Subject: [PATCH] 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 --- .../statusbar/policy/NetworkControllerImpl.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index 81c6da5b73015..5eebf3c4be567 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -426,6 +426,9 @@ public class NetworkControllerImpl extends BroadcastReceiver return; } List 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 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(); }; };