diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java index 0e95e2dcd8b..25ec9123bce 100644 --- a/src/com/android/settings/network/InternetPreferenceController.java +++ b/src/com/android/settings/network/InternetPreferenceController.java @@ -177,6 +177,7 @@ public class InternetPreferenceController extends AbstractPreferenceController i if (subInfo == null) { return; } - mPreference.setSummary(subInfo.getDisplayName()); + mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName( + subInfo, mContext)); } } diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index 48c3dc00093..288fe63e89e 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -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); + } } diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java index a0f2df4cc48..aa704593f1f 100644 --- a/src/com/android/settings/network/SubscriptionUtil.java +++ b/src/com/android/settings/network/SubscriptionUtil.java @@ -242,12 +242,14 @@ public class SubscriptionUtil { public CharSequence uniqueName; } - final SubscriptionManager subscriptionManager = - context.getSystemService(SubscriptionManager.class); // Map of SubscriptionId to DisplayName final Supplier> 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; diff --git a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java index daa46708582..2c6c9631754 100644 --- a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java @@ -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) { diff --git a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java index f6a7d9314d0..b66cea643a2 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java +++ b/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java @@ -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; } diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java index 6de83a64a35..097ebaf5e85 100644 --- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java index 4526886e976..d0df92ec8a7 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragmentTest.java @@ -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() { diff --git a/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java b/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java index 62c2fc5ded3..9bdbbcfeb7e 100644 --- a/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/sim/PreferredSimDialogFragmentTest.java @@ -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(); diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java index d6a132611f9..a6d33548555 100644 --- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java +++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java index 80091e6e17b..22e18bbe8ae 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java index 305f41d3ab9..455e9f186b1 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java index 0159f49095a..d7f75e1dd65 100644 --- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsTest.java @@ -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))); diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java index 8444f11bf0f..16433c3ad5d 100644 --- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java +++ b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java @@ -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(); diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java index bee48d122cf..72e9be4a3b3 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java @@ -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); diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java index 9f70bcf9ba0..8f998a4925d 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java @@ -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(); diff --git a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java index 8c99b40a346..c0e5205a77b 100644 --- a/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java +++ b/tests/unit/src/com/android/settings/network/SubscriptionUtilTest.java @@ -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 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"); diff --git a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java index f3e084c5075..ef3f130911f 100644 --- a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java @@ -272,6 +272,7 @@ public class SubscriptionsPreferenceControllerTest { @UiThreadTest public void onSubscriptionsChanged_subscriptionReplaced_preferencesChanged() { final List 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 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 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 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(); diff --git a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java index 282704ded45..93621d96119 100644 --- a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java @@ -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(); diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java index ed6f1610999..660772ed99f 100644 --- a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java @@ -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