Merge "[Provider Model] The SIMs page should list all p-SIMs" into sc-qpr1-dev am: 39b6769e5e

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15834629

Change-Id: I80712b16464d2104e570038060044bde74c9c4fb
This commit is contained in:
Zoey Chen
2021-09-22 06:07:00 +00:00
committed by Automerger Merge Worker
7 changed files with 189 additions and 72 deletions

View File

@@ -65,14 +65,12 @@ public class MobileNetworkListFragment extends DashboardFragment {
if (Utils.isProviderModelEnabled(getContext())) { if (Utils.isProviderModelEnabled(getContext())) {
NetworkProviderSimsCategoryController simCategoryPrefCtrl = NetworkProviderSimsCategoryController simCategoryPrefCtrl =
new NetworkProviderSimsCategoryController(context, KEY_PREFERENCE_CATEGORY_SIM); new NetworkProviderSimsCategoryController(context, KEY_PREFERENCE_CATEGORY_SIM,
simCategoryPrefCtrl.init(getSettingsLifecycle()); getSettingsLifecycle());
controllers.add(simCategoryPrefCtrl); controllers.add(simCategoryPrefCtrl);
NetworkProviderDownloadedSimsCategoryController downloadedSimsCategoryCtrl = NetworkProviderDownloadedSimsCategoryController downloadedSimsCategoryCtrl =
new NetworkProviderDownloadedSimsCategoryController(context, new NetworkProviderDownloadedSimsCategoryController(context,
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM); KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM, getSettingsLifecycle());
downloadedSimsCategoryCtrl.init(getSettingsLifecycle());
controllers.add(downloadedSimsCategoryCtrl); controllers.add(downloadedSimsCategoryCtrl);
} else { } else {
controllers.add(new MobileNetworkListController(getContext(), getLifecycle())); controllers.add(new MobileNetworkListController(getContext(), getLifecycle()));

View File

@@ -1,8 +1,8 @@
package com.android.settings.network; package com.android.settings.network;
import android.content.Context; import android.content.Context;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -15,23 +15,17 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver;
public class NetworkProviderDownloadedSimsCategoryController extends public class NetworkProviderDownloadedSimsCategoryController extends
PreferenceCategoryController implements LifecycleObserver { PreferenceCategoryController implements LifecycleObserver {
private static final String LOG_TAG = "NetworkProviderDownloadedSimsCategoryController";
private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM = private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM =
"provider_model_downloaded_sim_category"; "provider_model_downloaded_sim_category";
private PreferenceCategory mPreferenceCategory; private PreferenceCategory mPreferenceCategory;
private NetworkProviderDownloadedSimListController mNetworkProviderDownloadedSimListController; private NetworkProviderDownloadedSimListController mNetworkProviderDownloadedSimListController;
public NetworkProviderDownloadedSimsCategoryController(Context context, String key) { public NetworkProviderDownloadedSimsCategoryController(Context context, String key,
super(context, key);
}
public void init(Lifecycle lifecycle) {
mNetworkProviderDownloadedSimListController = createDownloadedSimListController(lifecycle);
}
@VisibleForTesting
protected NetworkProviderDownloadedSimListController createDownloadedSimListController(
Lifecycle lifecycle) { Lifecycle lifecycle) {
return new NetworkProviderDownloadedSimListController(mContext, lifecycle); super(context, key);
mNetworkProviderDownloadedSimListController =
new NetworkProviderDownloadedSimListController(mContext, lifecycle);
} }
@Override @Override
@@ -47,15 +41,23 @@ public class NetworkProviderDownloadedSimsCategoryController extends
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mNetworkProviderDownloadedSimListController.displayPreference(screen);
mPreferenceCategory = screen.findPreference( mPreferenceCategory = screen.findPreference(
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM); KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
if (mPreferenceCategory == null) {
Log.d(LOG_TAG, "displayPreference(), Can not find the category.");
return;
}
mPreferenceCategory.setVisible(isAvailable()); mPreferenceCategory.setVisible(isAvailable());
mNetworkProviderDownloadedSimListController.displayPreference(screen);
} }
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
super.updateState(preference); super.updateState(preference);
if (mPreferenceCategory == null) {
Log.d(LOG_TAG, "updateState(), Can not find the category.");
return;
}
int count = mPreferenceCategory.getPreferenceCount(); int count = mPreferenceCategory.getPreferenceCount();
String title = mContext.getString(count > 1 String title = mContext.getString(count > 1
? R.string.downloaded_sims_category_title ? R.string.downloaded_sims_category_title

View File

@@ -172,7 +172,6 @@ public class NetworkProviderSimListController extends AbstractPreferenceControll
for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) { for (SubscriptionInfo info : SubscriptionUtil.getAvailableSubscriptions(mContext)) {
if (!info.isEmbedded()) { if (!info.isEmbedded()) {
subList.add(info); subList.add(info);
break;
} }
} }
return subList; return subList;

View File

@@ -17,33 +17,28 @@
package com.android.settings.network; package com.android.settings.network;
import android.content.Context; import android.content.Context;
import android.util.Log;
import androidx.annotation.VisibleForTesting; import androidx.preference.Preference;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.widget.PreferenceCategoryController; import com.android.settings.widget.PreferenceCategoryController;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
public class NetworkProviderSimsCategoryController extends PreferenceCategoryController implements public class NetworkProviderSimsCategoryController extends PreferenceCategoryController implements
LifecycleObserver { LifecycleObserver {
private static final String LOG_TAG = "NetworkProviderSimsCategoryController";
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category"; private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
private NetworkProviderSimListController mNetworkProviderSimListController; private NetworkProviderSimListController mNetworkProviderSimListController;
private PreferenceCategory mPreferenceCategory;
public NetworkProviderSimsCategoryController(Context context, String key) { public NetworkProviderSimsCategoryController(Context context, String key, Lifecycle lifecycle) {
super(context, key); super(context, key);
} mNetworkProviderSimListController =
new NetworkProviderSimListController(mContext, lifecycle);
public void init(Lifecycle lifecycle) {
mNetworkProviderSimListController = createSimListController(lifecycle);
}
@VisibleForTesting
protected NetworkProviderSimListController createSimListController(
Lifecycle lifecycle) {
return new NetworkProviderSimListController(mContext, lifecycle);
} }
@Override @Override
@@ -59,8 +54,26 @@ public class NetworkProviderSimsCategoryController extends PreferenceCategoryCon
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
PreferenceCategory preferenceCategory = screen.findPreference(KEY_PREFERENCE_CATEGORY_SIM);
preferenceCategory.setVisible(isAvailable());
mNetworkProviderSimListController.displayPreference(screen); mNetworkProviderSimListController.displayPreference(screen);
mPreferenceCategory = screen.findPreference(KEY_PREFERENCE_CATEGORY_SIM);
if (mPreferenceCategory == null) {
Log.d(LOG_TAG, "displayPreference(), Can not find the category.");
return;
}
mPreferenceCategory.setVisible(isAvailable());
}
@Override
public void updateState(Preference preference) {
super.updateState(preference);
if (mPreferenceCategory == null) {
Log.d(LOG_TAG, "updateState(), Can not find the category.");
return;
}
int count = mPreferenceCategory.getPreferenceCount();
String title = mContext.getString(count > 1
? R.string.provider_network_settings_title
: R.string.sim_category_title);
mPreferenceCategory.setTitle(title);
} }
} }

View File

@@ -26,9 +26,12 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.Looper; import android.os.Looper;
import android.telephony.SubscriptionInfo;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -41,38 +44,39 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class NetworkProviderDownloadedSimsCategoryControllerTest { public class NetworkProviderDownloadedSimsCategoryControllerTest {
private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM = private static final String KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM =
"provider_model_downloaded_sim_category"; "provider_model_downloaded_sim_category";
private static final String KEY_ADD_MORE = "add_more";
private static final String SUB_1 = "SUB_1";
private static final String SUB_2 = "SUB_2";
private static final int SUB_ID_1 = 1;
private static final int SUB_ID_2 = 2;
@Mock
private NetworkProviderDownloadedSimListController mNetworkProviderDownloadedSimListController;
@Mock
private PreferenceCategory mPreferenceCategory;
@Mock @Mock
private Lifecycle mLifecycle; private Lifecycle mLifecycle;
@Mock
private SubscriptionInfo mSubscriptionInfo1;
@Mock
private SubscriptionInfo mSubscriptionInfo2;
private Context mContext; private Context mContext;
private NetworkProviderDownloadedSimsCategoryController mCategoryController; private NetworkProviderDownloadedSimsCategoryController mCategoryController;
private PreferenceCategory mPreferenceCategory;
private PreferenceManager mPreferenceManager; private PreferenceManager mPreferenceManager;
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
private Preference mAddMorePreference;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
mCategoryController = new NetworkProviderDownloadedSimsCategoryController(
mContext, KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM) {
@Override
protected NetworkProviderDownloadedSimListController createDownloadedSimListController(
Lifecycle lifecycle) {
return mNetworkProviderDownloadedSimListController;
}
};
if (Looper.myLooper() == null) { if (Looper.myLooper() == null) {
Looper.prepare(); Looper.prepare();
@@ -80,14 +84,21 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
mPreferenceManager = new PreferenceManager(mContext); mPreferenceManager = new PreferenceManager(mContext);
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext); mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
when(mPreferenceCategory.getKey()).thenReturn(KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM); mPreferenceCategory = new PreferenceCategory(mContext);
when(mPreferenceCategory.getPreferenceCount()).thenReturn(1); mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM);
mAddMorePreference = new Preference(mContext);
mAddMorePreference.setKey(KEY_ADD_MORE);
mAddMorePreference.setVisible(true);
mPreferenceScreen.addPreference(mPreferenceCategory); mPreferenceScreen.addPreference(mPreferenceCategory);
mPreferenceScreen.addPreference(mAddMorePreference);
mCategoryController = new NetworkProviderDownloadedSimsCategoryController(mContext,
KEY_PREFERENCE_CATEGORY_DOWNLOADED_SIM, mLifecycle);
} }
@Test @Test
public void getAvailabilityStatus_returnUnavailable() { public void getAvailabilityStatus_returnUnavailable() {
mNetworkProviderDownloadedSimListController = null; SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo( assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo(
CONDITIONALLY_UNAVAILABLE); CONDITIONALLY_UNAVAILABLE);
@@ -95,10 +106,46 @@ public class NetworkProviderDownloadedSimsCategoryControllerTest {
@Test @Test
public void displayPreference_isVisible() { public void displayPreference_isVisible() {
when(mNetworkProviderDownloadedSimListController.isAvailable()).thenReturn(true); setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
mCategoryController.init(mLifecycle); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
mCategoryController.displayPreference(mPreferenceScreen); mCategoryController.displayPreference(mPreferenceScreen);
assertEquals(mPreferenceCategory.isVisible(), true); assertEquals(mPreferenceCategory.isVisible(), true);
} }
@Test
public void updateState_setTitle_withTwoDownloadedSims_returnDownloadedSims() {
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
setUpSubscriptionInfoForDownloadedSim(SUB_ID_2, SUB_2, mSubscriptionInfo2);
SubscriptionUtil.setAvailableSubscriptionsForTesting(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
mCategoryController.displayPreference(mPreferenceScreen);
mCategoryController.updateState(mPreferenceCategory);
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
ResourcesUtils.getResourcesString(mContext, "downloaded_sims_category_title"));
}
@Test
public void updateState_setTitle_withOneDownloadedSim_returnDownloadedSim() {
setUpSubscriptionInfoForDownloadedSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
mCategoryController.displayPreference(mPreferenceScreen);
mCategoryController.updateState(mPreferenceCategory);
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
ResourcesUtils.getResourcesString(mContext, "downloaded_sim_category_title"));
}
private void setUpSubscriptionInfoForDownloadedSim(int subId, String displayName,
SubscriptionInfo subscriptionInfo) {
when(subscriptionInfo.isEmbedded()).thenReturn(true);
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
}
} }

View File

@@ -16,10 +16,14 @@
package com.android.settings.network; package com.android.settings.network;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat;
import static androidx.lifecycle.Lifecycle.Event; import static androidx.lifecycle.Lifecycle.Event;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -170,7 +174,6 @@ public class NetworkProviderSimListControllerTest {
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary)); assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
} }
@Test @Test
@UiThreadTest @UiThreadTest
public void getSummary_inactivePSim() { public void getSummary_inactivePSim() {
@@ -227,4 +230,18 @@ public class NetworkProviderSimListControllerTest {
assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary)); assertTrue(TextUtils.equals(mController.getSummary(SUB_ID_1, DISPLAY_NAME_1), summary));
} }
@Test
@UiThreadTest
public void getAvailablePhysicalSubscription_withTwoPhysicalSims_returnTwo() {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.isEmbedded()).thenReturn(false);
final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(info2.isEmbedded()).thenReturn(false);
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
displayPreferenceWithLifecycle();
assertThat(mController.getAvailablePhysicalSubscription().size()).isEqualTo(2);
}
} }

View File

@@ -17,6 +17,7 @@
package com.android.settings.network; package com.android.settings.network;
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE; import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
@@ -25,7 +26,10 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.Looper; import android.os.Looper;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
@@ -40,37 +44,35 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
public class NetworkProviderSimsCategoryControllerTest { public class NetworkProviderSimsCategoryControllerTest {
private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category"; private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
private static final String SUB_1 = "SUB_1";
private static final String SUB_2 = "SUB_2";
private static final int SUB_ID_1 = 1;
private static final int SUB_ID_2 = 2;
@Mock
private NetworkProviderSimListController mNetworkProviderSimListController;
@Mock
private PreferenceCategory mPreferenceCategory;
@Mock @Mock
private Lifecycle mLifecycle; private Lifecycle mLifecycle;
@Mock
private SubscriptionInfo mSubscriptionInfo1;
@Mock
private SubscriptionInfo mSubscriptionInfo2;
private Context mContext; private Context mContext;
private NetworkProviderSimsCategoryController mCategoryController; private NetworkProviderSimsCategoryController mCategoryController;
private PreferenceManager mPreferenceManager; private PreferenceManager mPreferenceManager;
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
private PreferenceCategory mPreferenceCategory;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext()); mContext = spy(ApplicationProvider.getApplicationContext());
mCategoryController = new NetworkProviderSimsCategoryController(
mContext, KEY_PREFERENCE_CATEGORY_SIM) {
@Override
protected NetworkProviderSimListController createSimListController(
Lifecycle lifecycle) {
return mNetworkProviderSimListController;
}
};
if (Looper.myLooper() == null) { if (Looper.myLooper() == null) {
Looper.prepare(); Looper.prepare();
@@ -78,14 +80,17 @@ public class NetworkProviderSimsCategoryControllerTest {
mPreferenceManager = new PreferenceManager(mContext); mPreferenceManager = new PreferenceManager(mContext);
mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext); mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
when(mPreferenceCategory.getKey()).thenReturn(KEY_PREFERENCE_CATEGORY_SIM); mPreferenceCategory = new PreferenceCategory(mContext);
when(mPreferenceCategory.getPreferenceCount()).thenReturn(1); mPreferenceCategory.setKey(KEY_PREFERENCE_CATEGORY_SIM);
mPreferenceScreen.addPreference(mPreferenceCategory); mPreferenceScreen.addPreference(mPreferenceCategory);
mCategoryController = new NetworkProviderSimsCategoryController(
mContext, KEY_PREFERENCE_CATEGORY_SIM, mLifecycle);
} }
@Test @Test
public void getAvailabilityStatus_returnUnavailable() { public void getAvailabilityStatus_returnUnavailable() {
mNetworkProviderSimListController = null; SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>());
assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo( assertThat(mCategoryController.getAvailabilityStatus()).isEqualTo(
CONDITIONALLY_UNAVAILABLE); CONDITIONALLY_UNAVAILABLE);
@@ -93,10 +98,46 @@ public class NetworkProviderSimsCategoryControllerTest {
@Test @Test
public void displayPreference_isVisible() { public void displayPreference_isVisible() {
when(mNetworkProviderSimListController.isAvailable()).thenReturn(true); setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
mCategoryController.init(mLifecycle); SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
mCategoryController.displayPreference(mPreferenceScreen); mCategoryController.displayPreference(mPreferenceScreen);
assertEquals(mPreferenceCategory.isVisible(), true); assertEquals(mPreferenceCategory.isVisible(), true);
} }
@Test
public void updateState_setTitle_withTwoPhysicalSims_returnSims() {
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
setUpSubscriptionInfoForPhysicalSim(SUB_ID_2, SUB_2, mSubscriptionInfo2);
SubscriptionUtil.setAvailableSubscriptionsForTesting(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
mCategoryController.displayPreference(mPreferenceScreen);
mCategoryController.updateState(mPreferenceCategory);
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(2);
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
ResourcesUtils.getResourcesString(mContext, "provider_network_settings_title"));
}
@Test
public void updateState_setTitle_withOnePhysicalSim_returnSim() {
setUpSubscriptionInfoForPhysicalSim(SUB_ID_1, SUB_1, mSubscriptionInfo1);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubscriptionInfo1));
mCategoryController.displayPreference(mPreferenceScreen);
mCategoryController.updateState(mPreferenceCategory);
assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(1);
assertThat(mPreferenceCategory.getTitle()).isEqualTo(
ResourcesUtils.getResourcesString(mContext, "sim_category_title"));
}
private void setUpSubscriptionInfoForPhysicalSim(int subId, String displayName,
SubscriptionInfo subscriptionInfo) {
when(subscriptionInfo.isEmbedded()).thenReturn(false);
when(subscriptionInfo.getSubscriptionId()).thenReturn(subId);
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
}
} }