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

Commit ad06c368 authored by Lei Yu's avatar Lei Yu Committed by Android (Google) Code Review
Browse files

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

parents 71df263d 30009434
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;


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


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


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


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


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


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



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