Add disable pSIM option in Settings
As we start disabling pSIM option in R, we check that if the feature is supported, add the "Use SIM" toggle back to pSIM page. Bug: 141018421 Test: manual test Change-Id: I1af497ce5ede93f823825718b8136ff8ae0ab49c
This commit is contained in:
@@ -22,6 +22,7 @@ import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -30,7 +31,6 @@ import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.provider.Settings;
|
||||
@@ -46,7 +46,6 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@@ -155,6 +154,7 @@ public class MobileNetworkListControllerTest {
|
||||
when(sub1.isEmbedded()).thenReturn(true);
|
||||
doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(eq(1));
|
||||
doReturn(false).when(mSubscriptionManager).isActiveSubscriptionId(eq(2));
|
||||
doReturn(false).when(mSubscriptionManager).canDisablePhysicalSubscription();
|
||||
|
||||
when(sub2.isEmbedded()).thenReturn(false);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
|
||||
@@ -166,13 +166,21 @@ public class MobileNetworkListControllerTest {
|
||||
final ArgumentCaptor<Preference> preferenceCaptor = ArgumentCaptor.forClass(
|
||||
Preference.class);
|
||||
verify(mPreferenceScreen, times(2)).addPreference(preferenceCaptor.capture());
|
||||
final Preference pref1 = preferenceCaptor.getAllValues().get(0);
|
||||
final Preference pref2 = preferenceCaptor.getAllValues().get(1);
|
||||
Preference pref1 = preferenceCaptor.getAllValues().get(0);
|
||||
Preference pref2 = preferenceCaptor.getAllValues().get(1);
|
||||
assertThat(pref1.getSummary()).isEqualTo("Active / Downloaded SIM");
|
||||
assertThat(pref2.getSummary()).isEqualTo("Tap to activate sub2");
|
||||
|
||||
pref2.getOnPreferenceClickListener().onPreferenceClick(pref2);
|
||||
verify(mSubscriptionManager).setSubscriptionEnabled(eq(2), eq(true));
|
||||
|
||||
// If disabling pSIM is allowed, summary of inactive pSIM should be different.
|
||||
clearInvocations(mPreferenceScreen);
|
||||
clearInvocations(mSubscriptionManager);
|
||||
doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
|
||||
mController.onResume();
|
||||
pref2 = preferenceCaptor.getAllValues().get(1);
|
||||
assertThat(pref2.getSummary()).isEqualTo("Inactive / SIM");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -29,7 +29,6 @@ import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -52,7 +51,6 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.Robolectric;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@@ -168,7 +166,7 @@ public class MobileNetworkSummaryControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSummary_oneInactivePSim_correctSummaryAndClickHandler() {
|
||||
public void getSummary_oneInactivePSim_cannotDisablePsim_correctSummaryAndClickHandler() {
|
||||
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
|
||||
when(sub1.getSubscriptionId()).thenReturn(1);
|
||||
when(sub1.getDisplayName()).thenReturn("sub1");
|
||||
@@ -185,6 +183,30 @@ public class MobileNetworkSummaryControllerTest {
|
||||
verify(mSubscriptionManager).setSubscriptionEnabled(eq(sub1.getSubscriptionId()), eq(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSummary_oneInactivePSim_canDisablePsim_correctSummaryAndClickHandler() {
|
||||
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
|
||||
when(sub1.getSubscriptionId()).thenReturn(1);
|
||||
when(sub1.getDisplayName()).thenReturn("sub1");
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
|
||||
when(mSubscriptionManager.isActiveSubscriptionId(eq(1))).thenReturn(false);
|
||||
when(mSubscriptionManager.canDisablePhysicalSubscription()).thenReturn(true);
|
||||
|
||||
mController.displayPreference(mPreferenceScreen);
|
||||
mController.onResume();
|
||||
|
||||
assertThat(mController.getSummary()).isEqualTo("sub1");
|
||||
|
||||
final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||
doNothing().when(mContext).startActivity(intentCaptor.capture());
|
||||
mPreference.getOnPreferenceClickListener().onPreferenceClick(mPreference);
|
||||
Intent intent = intentCaptor.getValue();
|
||||
assertThat(intent.getComponent().getClassName()).isEqualTo(
|
||||
MobileNetworkActivity.class.getName());
|
||||
assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID,
|
||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(sub1.getSubscriptionId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSummary_twoSubscriptions_correctSummaryAndFragment() {
|
||||
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
|
||||
|
||||
@@ -18,11 +18,13 @@ package com.android.settings.network.telephony;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
|
||||
@@ -45,12 +47,15 @@ public class DisableSimFooterPreferenceControllerTest {
|
||||
private SubscriptionInfo mInfo;
|
||||
|
||||
private Context mContext;
|
||||
@Mock
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
private DisableSimFooterPreferenceController mController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = RuntimeEnvironment.application;
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
|
||||
when(mInfo.getSubscriptionId()).thenReturn(SUB_ID);
|
||||
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mInfo));
|
||||
mController = new DisableSimFooterPreferenceController(mContext, PREF_KEY);
|
||||
@@ -69,9 +74,18 @@ public class DisableSimFooterPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_pSIM_available() {
|
||||
public void isAvailable_pSIM_available_cannot_disable_pSIM() {
|
||||
when(mInfo.isEmbedded()).thenReturn(false);
|
||||
mController.init(SUB_ID);
|
||||
doReturn(false).when(mSubscriptionManager).canDisablePhysicalSubscription();
|
||||
assertThat(mController.isAvailable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_pSIM_available_can_disable_pSIM() {
|
||||
when(mInfo.isEmbedded()).thenReturn(false);
|
||||
mController.init(SUB_ID);
|
||||
doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
|
||||
assertThat(mController.isAvailable()).isFalse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,6 +105,10 @@ public class MobileNetworkSwitchControllerTest {
|
||||
when(mSubscription.isEmbedded()).thenReturn(false);
|
||||
mController.displayPreference(mScreen);
|
||||
assertThat(mSwitchBar.isShowing()).isFalse();
|
||||
|
||||
when(mSubscriptionManager.canDisablePhysicalSubscription()).thenReturn(true);
|
||||
mController.displayPreference(mScreen);
|
||||
assertThat(mSwitchBar.isShowing()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user