Push inet condition to new MobileSignalControllers

When new MobileSignalControllers were created after we already
received the inet condition broadcast, they would never receive
the current state of inet condition.  This pushes it to all
controllers whenever they are created.

Bug: 18666876
Change-Id: Ie9997f94f3fbe206ed222a62e2a902fd43f4d67c
This commit is contained in:
Jason Monk
2014-12-09 12:27:24 -05:00
parent c5c93edd93
commit 25d8a48e73

View File

@@ -483,6 +483,10 @@ public class NetworkControllerImpl extends BroadcastReceiver
cachedControllers.get(key).unregisterListener();
}
}
// There may be new MobileSignalControllers around, make sure they get the current
// inet condition and airplane mode.
pushConnectivityToSignals();
updateAirplaneMode(true /* force */);
}
private boolean hasCorrectMobileControllers(List<SubscriptionInfo> allSubscriptions) {
@@ -577,6 +581,13 @@ public class NetworkControllerImpl extends BroadcastReceiver
mBluetoothTethered = mConnectedTransports.get(TRANSPORT_BLUETOOTH);
mEthernetConnected = mConnectedTransports.get(TRANSPORT_ETHERNET);
pushConnectivityToSignals();
}
/**
* Pushes the current connectivity state to all SignalControllers.
*/
private void pushConnectivityToSignals() {
// We want to update all the icons, all at once, for any condition change
for (MobileSignalController mobileSignalController : mMobileSignalControllers.values()) {
mobileSignalController.setInetCondition(