Merge "Fix weird case of multi cell icons" into mnc-dev

This commit is contained in:
Jason Monk
2015-06-29 16:19:46 +00:00
committed by Android (Google) Code Review
3 changed files with 19 additions and 9 deletions

View File

@@ -224,7 +224,10 @@ public class SignalClusterView
public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType, public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
int qsType, boolean activityIn, boolean activityOut, String typeContentDescription, int qsType, boolean activityIn, boolean activityOut, String typeContentDescription,
String description, boolean isWide, int subId) { String description, boolean isWide, int subId) {
PhoneState state = getOrInflateState(subId); PhoneState state = getState(subId);
if (state == null) {
return;
}
state.mMobileVisible = statusIcon.visible && !mBlockMobile; state.mMobileVisible = statusIcon.visible && !mBlockMobile;
state.mMobileStrengthId = statusIcon.icon; state.mMobileStrengthId = statusIcon.icon;
state.mMobileTypeId = statusType; state.mMobileTypeId = statusType;
@@ -281,13 +284,14 @@ public class SignalClusterView
return true; return true;
} }
private PhoneState getOrInflateState(int subId) { private PhoneState getState(int subId) {
for (PhoneState state : mPhoneStates) { for (PhoneState state : mPhoneStates) {
if (state.mSubId == subId) { if (state.mSubId == subId) {
return state; return state;
} }
} }
return inflatePhoneState(subId); Log.e(TAG, "Unexpected subscription " + subId);
return null;
} }
private PhoneState inflatePhoneState(int subId) { private PhoneState inflatePhoneState(int subId) {

View File

@@ -291,6 +291,7 @@ public class MobileSignalController extends SignalController<
notifyListenersIfNecessary(); notifyListenersIfNecessary();
} else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) { } else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
updateDataSim(); updateDataSim();
notifyListenersIfNecessary();
} }
} }
@@ -308,7 +309,6 @@ public class MobileSignalController extends SignalController<
// for long. // for long.
mCurrentState.dataSim = true; mCurrentState.dataSim = true;
} }
notifyListenersIfNecessary();
} }
/** /**

View File

@@ -110,6 +110,8 @@ public class NetworkControllerImpl extends BroadcastReceiver
// The current user ID. // The current user ID.
private int mCurrentUserId; private int mCurrentUserId;
private OnSubscriptionsChangedListener mSubscriptionListener;
// Handler that all broadcasts are received on. // Handler that all broadcasts are received on.
private final Handler mReceiverHandler; private final Handler mReceiverHandler;
// Handler that all callbacks are made on. // Handler that all callbacks are made on.
@@ -179,6 +181,9 @@ public class NetworkControllerImpl extends BroadcastReceiver
for (MobileSignalController mobileSignalController : mMobileSignalControllers.values()) { for (MobileSignalController mobileSignalController : mMobileSignalControllers.values()) {
mobileSignalController.registerListener(); mobileSignalController.registerListener();
} }
if (mSubscriptionListener == null) {
mSubscriptionListener = new SubListener();
}
mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionListener); mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionListener);
// broadcasts // broadcasts
@@ -422,7 +427,6 @@ public class NetworkControllerImpl extends BroadcastReceiver
: lhs.getSimSlotIndex() - rhs.getSimSlotIndex(); : lhs.getSimSlotIndex() - rhs.getSimSlotIndex();
} }
}); });
mCallbackHandler.setSubs(subscriptions);
mCurrentSubscriptions = subscriptions; mCurrentSubscriptions = subscriptions;
HashMap<Integer, MobileSignalController> cachedControllers = HashMap<Integer, MobileSignalController> cachedControllers =
@@ -455,6 +459,9 @@ public class NetworkControllerImpl extends BroadcastReceiver
cachedControllers.get(key).unregisterListener(); cachedControllers.get(key).unregisterListener();
} }
} }
mCallbackHandler.setSubs(subscriptions);
notifyAllListeners();
// There may be new MobileSignalControllers around, make sure they get the current // There may be new MobileSignalControllers around, make sure they get the current
// inet condition and airplane mode. // inet condition and airplane mode.
pushConnectivityToSignals(); pushConnectivityToSignals();
@@ -724,13 +731,12 @@ public class NetworkControllerImpl extends BroadcastReceiver
return info; return info;
} }
private final OnSubscriptionsChangedListener mSubscriptionListener = private class SubListener extends OnSubscriptionsChangedListener {
new OnSubscriptionsChangedListener() {
@Override @Override
public void onSubscriptionsChanged() { public void onSubscriptionsChanged() {
updateMobileControllers(); updateMobileControllers();
}; }
}; }
/** /**
* Used to register listeners from the BG Looper, this way the PhoneStateListeners that * Used to register listeners from the BG Looper, this way the PhoneStateListeners that