Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25d8a48e authored by Jason Monk's avatar Jason Monk
Browse files

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
parent c5c93edd
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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(