diff options
author | Jason Monk <jmonk@google.com> | 2015-06-29 16:19:46 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-29 16:19:48 +0000 |
commit | 435a1dfbd67371849c60ecd46df1d82a0f496cd8 (patch) | |
tree | 7854e893dd399a5c1fa64f92237cb35bfdaa821d /packages | |
parent | f21f1a915833783917b598f843b946975421ffd2 (diff) | |
parent | 8fcab35828144e27a32a95ed9bd83e4f6d83ac21 (diff) | |
download | frameworks_base-435a1dfbd67371849c60ecd46df1d82a0f496cd8.zip frameworks_base-435a1dfbd67371849c60ecd46df1d82a0f496cd8.tar.gz frameworks_base-435a1dfbd67371849c60ecd46df1d82a0f496cd8.tar.bz2 |
Merge "Fix weird case of multi cell icons" into mnc-dev
Diffstat (limited to 'packages')
3 files changed, 19 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java index 5a4acb4..da1f03e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java @@ -224,7 +224,10 @@ public class SignalClusterView public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType, int qsType, boolean activityIn, boolean activityOut, String typeContentDescription, String description, boolean isWide, int subId) { - PhoneState state = getOrInflateState(subId); + PhoneState state = getState(subId); + if (state == null) { + return; + } state.mMobileVisible = statusIcon.visible && !mBlockMobile; state.mMobileStrengthId = statusIcon.icon; state.mMobileTypeId = statusType; @@ -281,13 +284,14 @@ public class SignalClusterView return true; } - private PhoneState getOrInflateState(int subId) { + private PhoneState getState(int subId) { for (PhoneState state : mPhoneStates) { if (state.mSubId == subId) { return state; } } - return inflatePhoneState(subId); + Log.e(TAG, "Unexpected subscription " + subId); + return null; } private PhoneState inflatePhoneState(int subId) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index b21767b..b1c650e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -291,6 +291,7 @@ public class MobileSignalController extends SignalController< notifyListenersIfNecessary(); } else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) { updateDataSim(); + notifyListenersIfNecessary(); } } @@ -308,7 +309,6 @@ public class MobileSignalController extends SignalController< // for long. mCurrentState.dataSim = true; } - notifyListenersIfNecessary(); } /** 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 1ba87da..ff0e8a3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -110,6 +110,8 @@ public class NetworkControllerImpl extends BroadcastReceiver // The current user ID. private int mCurrentUserId; + private OnSubscriptionsChangedListener mSubscriptionListener; + // Handler that all broadcasts are received on. private final Handler mReceiverHandler; // Handler that all callbacks are made on. @@ -179,6 +181,9 @@ public class NetworkControllerImpl extends BroadcastReceiver for (MobileSignalController mobileSignalController : mMobileSignalControllers.values()) { mobileSignalController.registerListener(); } + if (mSubscriptionListener == null) { + mSubscriptionListener = new SubListener(); + } mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionListener); // broadcasts @@ -422,7 +427,6 @@ public class NetworkControllerImpl extends BroadcastReceiver : lhs.getSimSlotIndex() - rhs.getSimSlotIndex(); } }); - mCallbackHandler.setSubs(subscriptions); mCurrentSubscriptions = subscriptions; HashMap<Integer, MobileSignalController> cachedControllers = @@ -455,6 +459,9 @@ public class NetworkControllerImpl extends BroadcastReceiver cachedControllers.get(key).unregisterListener(); } } + mCallbackHandler.setSubs(subscriptions); + notifyAllListeners(); + // There may be new MobileSignalControllers around, make sure they get the current // inet condition and airplane mode. pushConnectivityToSignals(); @@ -724,13 +731,12 @@ public class NetworkControllerImpl extends BroadcastReceiver return info; } - private final OnSubscriptionsChangedListener mSubscriptionListener = - new OnSubscriptionsChangedListener() { + private class SubListener extends OnSubscriptionsChangedListener { @Override public void onSubscriptionsChanged() { updateMobileControllers(); - }; - }; + } + } /** * Used to register listeners from the BG Looper, this way the PhoneStateListeners that |