Unique display name util uses available, rather than active, subscriptions.

Test: atest -c SettingsUnitTest
Bug: 178560175
Change-Id: Ief035cf3de3ac03fe348095f36bfb78a41f93d2c
(cherry picked from commit c14e3b3115)
Merged-In: Ief035cf3de3ac03fe348095f36bfb78a41f93d2c
This commit is contained in:
Jeremy Goldman
2021-01-28 10:35:22 +08:00
parent 3717d5feda
commit 9e949b1920
19 changed files with 111 additions and 46 deletions

View File

@@ -177,6 +177,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i
if (subInfo == null) {
return;
}
mPreference.setSummary(subInfo.getDisplayName());
mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName(
subInfo, mContext));
}
}

View File

@@ -182,8 +182,9 @@ public class ProviderModelSlice extends WifiSlice {
}
final int defaultSubId = subscriptionManager.getDefaultDataSubscriptionId();
log("defaultSubId:" + defaultSubId);
if (!SubscriptionManager.isUsableSubscriptionId(defaultSubId)) {
return; // No subscription - do nothing.
if (!defaultSubscriptionIsUsable(defaultSubId)) {
return;
}
boolean isToggleAction = intent.hasExtra(EXTRA_TOGGLE_STATE);
@@ -258,4 +259,12 @@ public class ProviderModelSlice extends WifiSlice {
.setTitle(mContext.getText(R.string.ethernet))
.setSubtitle(mContext.getText(R.string.cannot_switch_networks_while_connected));
}
/**
* Wrap the subscriptionManager call for test mocking.
*/
@VisibleForTesting
protected boolean defaultSubscriptionIsUsable(int defaultSubId) {
return SubscriptionManager.isUsableSubscriptionId(defaultSubId);
}
}

View File

@@ -242,12 +242,14 @@ public class SubscriptionUtil {
public CharSequence uniqueName;
}
final SubscriptionManager subscriptionManager =
context.getSystemService(SubscriptionManager.class);
// Map of SubscriptionId to DisplayName
final Supplier<Stream<DisplayInfo>> originalInfos =
() -> getActiveSubscriptions(subscriptionManager)
() -> getAvailableSubscriptions(context)
.stream()
.filter(i -> {
// Filter out null values.
return (i != null && i.getDisplayName() != null);
})
.map(i -> {
DisplayInfo info = new DisplayInfo();
info.subscriptionInfo = i;

View File

@@ -30,6 +30,7 @@ import androidx.preference.Preference;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import java.util.Objects;
@@ -119,7 +120,8 @@ public class BackupCallingPreferenceController extends TelephonyTogglePreference
private String getLatestSummary() {
SubscriptionInfo subInfo = getSubscriptionInfo();
return Objects.toString((subInfo == null) ? null : subInfo.getDisplayName(), "");
return Objects.toString((subInfo == null) ? null
: SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext), "");
}
private void updateSummary(String displayName) {

View File

@@ -104,7 +104,7 @@ public class NetworkProviderBackupCallingPreferenceController extends
}
SwitchPreference pref = new SwitchPreference(mContext);
prefCtrl.updateState(pref);
pref.setTitle(subInfo.getDisplayName());
pref.setTitle(SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext));
return pref;
}

View File

@@ -104,6 +104,7 @@ public class MobileNetworkSummaryControllerTest {
@After
public void tearDown() {
SubscriptionUtil.setActiveSubscriptionsForTesting(null);
SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
}
@@ -269,7 +270,8 @@ public class MobileNetworkSummaryControllerTest {
when(sub1.getDisplayName()).thenReturn("sub1");
when(sub2.getDisplayName()).thenReturn("sub2");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
mController.displayPreference(mPreferenceScreen);
mController.onResume();

View File

@@ -45,8 +45,10 @@ import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -109,8 +111,15 @@ public class RenameMobileNetworkDialogFragmentTest {
mSubscriptionInfoList.add(mSubscriptionInfo);
when(mSubscriptionMgr.getAvailableSubscriptionInfoList()).thenReturn(
mSubscriptionInfoList);
SubscriptionUtil.setAvailableSubscriptionsForTesting(mSubscriptionInfoList);
}
@After
public void tearDown() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(null);
}
@Test
@Ignore
public void dialog_subscriptionMissing_noCrash() {

View File

@@ -75,6 +75,7 @@ public class PreferredSimDialogFragmentTest extends
@Test
public void onCreateDialog_twoSimsSelectFirst_correctMessage() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0);
@@ -87,6 +88,7 @@ public class PreferredSimDialogFragmentTest extends
@Test
public void onCreateDialog_twoSimsSelectSecond_correctMessage() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 1);
@@ -99,6 +101,7 @@ public class PreferredSimDialogFragmentTest extends
@Test
public void onClick_yesClicked_callsOnSubscriptionSelected() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0);
final AlertDialog alertDialog = startDialog();
@@ -113,6 +116,7 @@ public class PreferredSimDialogFragmentTest extends
@Test
public void onClick_noClicked_doesNotCallOnSubscriptionSelected() {
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSim1, mSim2));
mIntent.putExtra(PREFERRED_SIM, 0);
final AlertDialog alertDialog = startDialog();

View File

@@ -130,6 +130,7 @@ public class SimSelectNotificationTest {
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mTelephonyManager.isDataEnabledForApn(TYPE_MMS)).thenReturn(false);
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mSubInfo));
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(mSubInfo));
when(mSubscriptionManager.isActiveSubscriptionId(mSubId)).thenReturn(true);
when(mSubscriptionManager.getActiveSubscriptionInfo(mSubId)).thenReturn(mSubInfo);

View File

@@ -49,6 +49,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
import com.android.wifitrackerlib.WifiEntry;
@@ -834,6 +835,7 @@ public class WifiConfigController2Test {
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(subscriptionInfo));
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
WifiConfigUiBase2.MODE_CONNECT);

View File

@@ -49,6 +49,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settingslib.wifi.AccessPoint;
@@ -629,6 +630,7 @@ public class WifiConfigControllerTest {
when(subscriptionInfo.getDisplayName()).thenReturn("FAKE-CARRIER");
when(subscriptionInfo.getCarrierId()).thenReturn(carrierId);
when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(subscriptionInfo));
mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
WifiConfigUiBase.MODE_CONNECT);

View File

@@ -125,6 +125,8 @@ public class WifiCallingSettingsTest {
when(info1.getDisplayName()).thenReturn(DISPLAY_NAME1);
when(info2.getDisplayName()).thenReturn(DISPLAY_NAME2);
SubscriptionUtil.setAvailableSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2)));
SubscriptionUtil.setActiveSubscriptionsForTesting(new ArrayList<>(
Arrays.asList(info1, info2)));

View File

@@ -17,9 +17,13 @@
package com.android.settings.network;
import static androidx.lifecycle.Lifecycle.Event;
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.Looper;
@@ -27,19 +31,17 @@ import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.RestrictedPreference;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LifecycleRegistry;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.annotation.UiThreadTest;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.InstrumentationRegistry;
import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
@@ -50,9 +52,6 @@ import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@RunWith(AndroidJUnit4.class)
public class NetworkProviderCallsSmsControllerTest {
@@ -156,6 +155,7 @@ public class NetworkProviderCallsSmsControllerTest {
@UiThreadTest
public void getSummary_noSim_returnNoSim() {
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
displayPreferenceWithLifecycle();
assertTrue(TextUtils.equals(mController.getSummary(),
@@ -169,6 +169,8 @@ public class NetworkProviderCallsSmsControllerTest {
mSubscriptionInfo1);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();
@@ -188,6 +190,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();
@@ -209,6 +213,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1));
displayPreferenceWithLifecycle();
assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_1);
@@ -221,6 +227,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();
@@ -240,6 +248,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();
@@ -267,6 +277,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();
@@ -294,6 +306,8 @@ public class NetworkProviderCallsSmsControllerTest {
setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
displayPreferenceWithLifecycle();
final StringBuilder summary = new StringBuilder();

View File

@@ -177,7 +177,7 @@ public class ProviderModelSliceHelperTest {
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
@@ -207,7 +207,7 @@ public class ProviderModelSliceHelperTest {
when(mDefaultDataSubscriptionInfo.getDisplayName()).thenReturn(expectDisplayName);
when(mSubscriptionManager.getActiveSubscriptionInfo(defaultDataSubId)).thenReturn(
mDefaultDataSubscriptionInfo);
when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(mDefaultDataSubscriptionInfo));
when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
mBundle.putBoolean(CarrierConfigManager.KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false);

View File

@@ -132,7 +132,8 @@ public class ProviderModelSliceTest {
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mMockNetworkProviderWorker = spy(new MockNetworkProviderWorker(mContext,
PROVIDER_MODEL_SLICE_URI));
mMockProviderModelSlice = new MockProviderModelSlice(mContext, mMockNetworkProviderWorker);
mMockProviderModelSlice = spy(new MockProviderModelSlice(
mContext, mMockNetworkProviderWorker));
mListBuilder = spy(new ListBuilder(mContext, PROVIDER_MODEL_SLICE_URI,
ListBuilder.INFINITY).setAccentColor(-1));
when(mProviderModelSliceHelper.createListBuilder(PROVIDER_MODEL_SLICE_URI)).thenReturn(
@@ -387,6 +388,7 @@ public class ProviderModelSliceTest {
@Test
public void onNotifyChange_intentToggleActionOn_shouldSetCarrierNetworkEnabledTrue() {
when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true);
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();
intent.putExtra(EXTRA_TOGGLE_STATE, true);
@@ -397,6 +399,7 @@ public class ProviderModelSliceTest {
@Test
public void onNotifyChange_intentToggleActionOff_shouldSetCarrierNetworkEnabledFalse() {
when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true);
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();
intent.putExtra(EXTRA_TOGGLE_STATE, false);
@@ -407,6 +410,7 @@ public class ProviderModelSliceTest {
@Test
public void onNotifyChange_intentPrimaryAction_shouldConnectCarrierNetwork() {
when(mMockProviderModelSlice.defaultSubscriptionIsUsable(anyInt())).thenReturn(true);
when(mTelephonyManager.isDataEnabled()).thenReturn(true);
Intent intent = mMockProviderModelSlice.getBroadcastIntent(mContext).getIntent();

View File

@@ -48,7 +48,7 @@ public class SubscriptionUtilTest {
private static final int SUBID_1 = 1;
private static final int SUBID_2 = 2;
private static final int SUBID_3 = 3;
private static final CharSequence CARRIER_1 = "carrier1";
private static final CharSequence CARRIER_1 = "carrier1111111";
private static final CharSequence CARRIER_2 = "carrier2";
private Context mContext;
@@ -94,6 +94,8 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
// // TODO remove this line.
// when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
assertThat(subs).isNotNull();
@@ -143,8 +145,9 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_2);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
// Arrays.asList(info2));
// Each subscription has a unique last 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -172,7 +175,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
// Each subscription has a unique last 4 digits of the phone number.
@@ -201,8 +204,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
// The subscriptions' phone numbers cannot be revealed to the user.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -234,7 +236,7 @@ public class SubscriptionUtilTest {
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(info3.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2, info3));
// Subscription 1 has a unique phone number, but subscriptions 2 and 3 share the same
@@ -265,8 +267,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
@@ -288,8 +289,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
// Each subscription has a unique last 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -318,8 +318,7 @@ public class SubscriptionUtilTest {
when(info2.getSubscriptionId()).thenReturn(SUBID_2);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(info2.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1, info2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
// Both subscriptions have a the same 4 digits of the phone number.
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
@@ -345,8 +344,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");
@@ -366,8 +364,7 @@ public class SubscriptionUtilTest {
final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
when(info1.getSubscriptionId()).thenReturn(SUBID_1);
when(info1.getDisplayName()).thenReturn(CARRIER_1);
when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
Arrays.asList(info1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1));
TelephonyManager sub1Telmgr = mock(TelephonyManager.class);
when(sub1Telmgr.getLine1Number()).thenReturn("1112223333");

View File

@@ -272,6 +272,7 @@ public class SubscriptionsPreferenceControllerTest {
@UiThreadTest
public void onSubscriptionsChanged_subscriptionReplaced_preferencesChanged() {
final List<SubscriptionInfo> subs = setupMockSubscriptions(3);
doReturn(subs).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
// Start out with only sub1 and sub2.
SubscriptionUtil.setActiveSubscriptionsForTesting(subs.subList(0, 2));
@@ -388,6 +389,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(1);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
mController.onResume();
mController.displayPreference(mPreferenceScreen);
@@ -402,6 +404,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
mController.onResume();
mController.displayPreference(mPreferenceScreen);
@@ -530,6 +533,7 @@ public class SubscriptionsPreferenceControllerTest {
final List<SubscriptionInfo> sub = setupMockSubscriptions(2);
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
mController.onResume();
@@ -548,6 +552,7 @@ public class SubscriptionsPreferenceControllerTest {
final int subId = sub.get(0).getSubscriptionId();
doReturn(true).when(sInjector).isProviderModelEnabled(mContext);
doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();
doReturn(sub).when(mSubscriptionManager).getAvailableSubscriptionInfoList();
Intent intent = new Intent(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED);
mController.onResume();

View File

@@ -54,7 +54,7 @@ import java.util.Arrays;
@RunWith(AndroidJUnit4.class)
public class DefaultSubscriptionControllerTest {
@Mock
private SubscriptionManager mManager;
private SubscriptionManager mSubMgr;
@Mock
private TelecomManager mTelecomManager;
@@ -68,7 +68,7 @@ public class DefaultSubscriptionControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mManager);
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubMgr);
when(mContext.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager);
final String key = "prefkey";
@@ -123,6 +123,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -152,6 +153,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub2.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -186,6 +188,8 @@ public class DefaultSubscriptionControllerTest {
when(sub2.isOpportunistic()).thenReturn(true);
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1, sub2, sub3));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -240,6 +244,7 @@ public class DefaultSubscriptionControllerTest {
// Start with only one sub active, so the pref is not available
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -261,6 +266,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -296,6 +302,7 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub1 = createMockSub(111, "sub1");
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
@@ -303,6 +310,7 @@ public class DefaultSubscriptionControllerTest {
assertThat(mListPreference.isVisible()).isFalse();
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue();
@@ -315,12 +323,15 @@ public class DefaultSubscriptionControllerTest {
final SubscriptionInfo sub2 = createMockSub(222, "sub2");
final SubscriptionInfo sub3 = createMockSub(333, "sub3");
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(sub1, sub2));
mController.setDefaultSubscription(sub1.getSubscriptionId());
mController.displayPreference(mScreen);
assertThat(mListPreference.getEntries().length).isEqualTo(3);
SubscriptionUtil.setActiveSubscriptionsForTesting(Arrays.asList(sub1, sub2, sub3));
when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(
Arrays.asList(sub1, sub2, sub3));
mController.onSubscriptionsChanged();
assertThat(mController.isAvailable()).isTrue();

View File

@@ -39,15 +39,15 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.FeatureFlagUtils;
import com.android.settings.network.ims.MockWfcQueryImsState;
import com.android.settingslib.core.lifecycle.Lifecycle;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.network.ims.MockWfcQueryImsState;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -132,10 +132,8 @@ public class NetworkProviderWifiCallingGroupTest {
@Test
public void shouldShowWifiCallingForSub_invalidSubId_returnFalse() {
when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(null);
assertThat(mNetworkProviderWifiCallingGroup.shouldShowWifiCallingForSub(SUB_ID))
.isEqualTo(false);
assertThat(mNetworkProviderWifiCallingGroup.shouldShowWifiCallingForSub(
SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(false);
}
@Test