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:
@@ -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()));
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user