Loading src/com/android/settings/network/MobileNetworkSummaryController.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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 Loading tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java +17 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading Loading
src/com/android/settings/network/MobileNetworkSummaryController.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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 Loading
tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java +17 −0 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading @@ -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); Loading