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

Commit c9f05713 authored by Jason Monk's avatar Jason Monk
Browse files

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
parent b0575a24
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -426,6 +426,9 @@ public class NetworkControllerImpl extends BroadcastReceiver
            return;
        }
        List<SubscriptionInfo> 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<SubscriptionInfo> 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();
        };
    };