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

Commit 73a2b498 authored by Lei Yu's avatar Lei Yu Committed by android-build-merger
Browse files

Merge "Hide Mobile preference for secondary user" into qt-dev am: ad06c368

am: 8f9c6065

Change-Id: Ic53a1faf1a6fc1f323bdd0bbff94f6465c1af136
parents f99fb5cf 8f9c6065
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;

import android.content.Context;
import android.content.Intent;
import android.os.UserManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.euicc.EuiccManager;
@@ -49,6 +50,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
    private static final String KEY = "mobile_network_list";

    private SubscriptionManager mSubscriptionManager;
    private UserManager mUserManager;
    private SubscriptionsChangeListener mChangeListener;
    private AddPreference mPreference;

@@ -70,6 +72,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController
    public MobileNetworkSummaryController(Context context, Lifecycle lifecycle) {
        super(context);
        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
        mUserManager = context.getSystemService(UserManager.class);
        if (lifecycle != null) {
          mChangeListener = new SubscriptionsChangeListener(context, this);
          lifecycle.addObserver(this);
@@ -162,7 +165,7 @@ public class MobileNetworkSummaryController extends AbstractPreferenceController

    @Override
    public boolean isAvailable() {
        return !Utils.isWifiOnly(mContext);
        return !Utils.isWifiOnly(mContext) && mUserManager.isAdminUser();
    }

    @Override
+17 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
@@ -65,6 +66,8 @@ public class MobileNetworkSummaryControllerTest {
    private EuiccManager mEuiccManager;
    @Mock
    private PreferenceScreen mPreferenceScreen;
    @Mock
    private UserManager mUserManager;

    private AddPreference mPreference;
    private Context mContext;
@@ -76,6 +79,7 @@ public class MobileNetworkSummaryControllerTest {
        mContext = spy(Robolectric.setupActivity(Activity.class));
        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
        when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
        when(mTelephonyManager.getNetworkCountryIso()).thenReturn("");
        when(mEuiccManager.isEnabled()).thenReturn(true);
        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.EUICC_PROVISIONED, 1);
@@ -97,9 +101,22 @@ public class MobileNetworkSummaryControllerTest {
        final ConnectivityManager cm = mock(ConnectivityManager.class);
        when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(false);
        when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
        when(mUserManager.isAdminUser()).thenReturn(true);

        assertThat(mController.isAvailable()).isFalse();
    }

    @Test
    public void isAvailable_secondaryUser_notAvailable() {
        final ConnectivityManager cm = mock(ConnectivityManager.class);
        when(cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE)).thenReturn(true);
        when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(cm);
        when(mUserManager.isAdminUser()).thenReturn(false);

        assertThat(mController.isAvailable()).isFalse();
    }


    @Test
    public void getSummary_noSubscriptions_correctSummaryAndClickHandler() {
        mController.displayPreference(mPreferenceScreen);