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

Commit d227755b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Avoid from Settings crash" into rvc-dev

parents 79fd5811 dcf701ef
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -53,7 +53,8 @@ public class MobileNetworkActivity extends SettingsBaseActivity
    @VisibleForTesting
    static final int SUB_ID_NULL = Integer.MIN_VALUE;

    private ProxySubscriptionManager mProxySubscriptionMgr;
    @VisibleForTesting
    ProxySubscriptionManager mProxySubscriptionMgr;
    private int mCurSubscriptionId;

    @Override
@@ -102,9 +103,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity
            actionBar.setDisplayHomeAsUpEnabled(true);
        }

        mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
        mProxySubscriptionMgr.setLifecycle(getLifecycle());
        mProxySubscriptionMgr.addActiveSubscriptionsListener(this);
        registerActiveSubscriptionsListener();

        final Intent startIntent = getIntent();
        validate(startIntent);
@@ -119,15 +118,26 @@ public class MobileNetworkActivity extends SettingsBaseActivity
        maybeShowContactDiscoveryDialog(mCurSubscriptionId);
    }

    @VisibleForTesting
    void registerActiveSubscriptionsListener() {
        mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(this);
        mProxySubscriptionMgr.setLifecycle(getLifecycle());
        mProxySubscriptionMgr.addActiveSubscriptionsListener(this);
    }

    /**
     * Implementation of ProxySubscriptionManager.OnActiveSubscriptionChangedListener
     */
    public void onChanged() {
        SubscriptionInfo info = getSubscription();
        int oldSubIndex = mCurSubscriptionId;
        int subIndex = info.getSubscriptionId();
        updateSubscriptions(info);

        // Remove the dialog if the subscription associated with this activity changes.
        if (info == null) {
            return;
        }
        int subIndex = info.getSubscriptionId();
        if (subIndex != oldSubIndex) {
            removeContactDiscoveryDialog(oldSubIndex);
        }
+8 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.robolectric.Shadows.shadowOf;

import android.content.Context;
@@ -39,6 +40,7 @@ import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;

import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.network.ProxySubscriptionManager;

import org.junit.After;
import org.junit.Before;
@@ -109,6 +111,12 @@ public class MobileNetworkActivityTest {

        private SubscriptionInfo mSubscriptionInFragment;

        @Override
        void registerActiveSubscriptionsListener() {
            mProxySubscriptionMgr = mock(ProxySubscriptionManager.class);
            onChanged();
        }

        @Override
        void switchFragment(SubscriptionInfo subInfo) {
            mSubscriptionInFragment = subInfo;