Merge "Hide Mobile preference for secondary user" into qt-dev
This commit is contained in:
@@ -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
|
||||||
|
@@ -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();
|
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
|
@Test
|
||||||
public void getSummary_noSubscriptions_correctSummaryAndClickHandler() {
|
public void getSummary_noSubscriptions_correctSummaryAndClickHandler() {
|
||||||
mController.displayPreference(mPreferenceScreen);
|
mController.displayPreference(mPreferenceScreen);
|
||||||
|
Reference in New Issue
Block a user