From 14dde50c3ab6965a6d8ff79d89cb404cc1f09dcc Mon Sep 17 00:00:00 2001 From: Malcolm Chen Date: Mon, 14 Jan 2019 15:13:10 -0800 Subject: [PATCH] Don't show hidden Cellular subscription in Settings. Replace getActiveSubscriptionInfoList() with getActiveSubscriptionInfoList(true) so that settings will not show hidden subscriptions to the user in various pages. Bug: 121396526 Test: manual Change-Id: I717999fed7d3a5a037914239694bef52df7c6207 --- src/com/android/settings/ResetNetwork.java | 3 ++- src/com/android/settings/datausage/CellDataPreference.java | 3 ++- src/com/android/settings/datausage/DataUsageUtils.java | 2 +- .../deviceinfo/PhoneNumberPreferenceController.java | 4 ++-- .../settings/deviceinfo/imei/ImeiInfoDialogController.java | 2 +- .../deviceinfo/simstatus/SimStatusDialogController.java | 2 +- .../simstatus/SimStatusPreferenceController.java | 2 +- .../contextualcards/deviceinfo/DeviceInfoSlice.java | 2 +- .../settings/network/telephony/MobileNetworkActivity.java | 6 +++--- .../settings/network/telephony/MobileNetworkUtils.java | 2 +- .../settings/security/SimLockPreferenceController.java | 4 ++-- src/com/android/settings/sim/SimDialogActivity.java | 2 +- src/com/android/settings/sim/SimSelectNotification.java | 2 +- src/com/android/settings/sim/SimSettings.java | 2 +- .../android/settings/wifi/calling/WifiCallingSettings.java | 2 +- .../deviceinfo/PhoneNumberPreferenceControllerTest.java | 5 +++-- .../network/telephony/MobileNetworkActivityTest.java | 7 +++++-- .../settings/network/telephony/MobileNetworkUtilsTest.java | 3 ++- .../settings/security/SimLockPreferenceControllerTest.java | 5 +++-- 19 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java index c1eca16e7a7..9ad8a9832aa 100644 --- a/src/com/android/settings/ResetNetwork.java +++ b/src/com/android/settings/ResetNetwork.java @@ -161,7 +161,8 @@ public class ResetNetwork extends InstrumentedFragment { mEsimContainer = mContentView.findViewById(R.id.erase_esim_container); mEsimCheckbox = mContentView.findViewById(R.id.erase_esim); - mSubscriptions = SubscriptionManager.from(getActivity()).getActiveSubscriptionInfoList(); + mSubscriptions = SubscriptionManager.from(getActivity()) + .getActiveSubscriptionInfoList(true); if (mSubscriptions != null && mSubscriptions.size() > 0) { // Get the default subscription in the order of data, voice, sms, first up. int defaultSubscription = SubscriptionManager.getDefaultDataSubscriptionId(); diff --git a/src/com/android/settings/datausage/CellDataPreference.java b/src/com/android/settings/datausage/CellDataPreference.java index 48e408992ab..9c6be468b3d 100644 --- a/src/com/android/settings/datausage/CellDataPreference.java +++ b/src/com/android/settings/datausage/CellDataPreference.java @@ -232,7 +232,8 @@ public class CellDataPreference extends CustomDialogPreferenceCompat implements } private void disableDataForOtherSubscriptions(int subId) { - List subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList(); + List subInfoList = mSubscriptionManager + .getActiveSubscriptionInfoList(true); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { if (subInfo.getSubscriptionId() != subId) { diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java index b3d0e61ae1d..283c84f6ec7 100644 --- a/src/com/android/settings/datausage/DataUsageUtils.java +++ b/src/com/android/settings/datausage/DataUsageUtils.java @@ -106,7 +106,7 @@ public final class DataUsageUtils { return SystemProperties.get(DataUsageUtils.TEST_RADIOS_PROP).contains("mobile"); } final List subInfoList = - SubscriptionManager.from(context).getActiveSubscriptionInfoList(); + SubscriptionManager.from(context).getActiveSubscriptionInfoList(true); // No activated Subscriptions if (subInfoList == null) { if (LOGD) { diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java index 462f6d99224..598dfb1542f 100644 --- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java @@ -111,7 +111,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController im private CharSequence getFirstPhoneNumber() { final List subscriptionInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subscriptionInfoList == null) { return mContext.getText(R.string.device_info_default); } @@ -138,7 +138,7 @@ public class PhoneNumberPreferenceController extends BasePreferenceController im @VisibleForTesting SubscriptionInfo getSubscriptionInfo(int simSlot) { final List subscriptionInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subscriptionInfoList != null) { for (SubscriptionInfo info : subscriptionInfoList) { if (info.getSimSlotIndex() == simSlot) { diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java index 358484925f4..33d7a8af190 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java @@ -127,7 +127,7 @@ public class ImeiInfoDialogController { private SubscriptionInfo getSubscriptionInfo(Context context, int slotId) { final List subscriptionInfoList = SubscriptionManager.from(context) - .getActiveSubscriptionInfoList(); + .getActiveSubscriptionInfoList(true); if (subscriptionInfoList == null || subscriptionInfoList.isEmpty()) { return null; } diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java index 25d1866a818..e7e9fa4a18c 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java @@ -404,7 +404,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O private SubscriptionInfo getPhoneSubscriptionInfo(int slotId) { final List subscriptionInfoList = SubscriptionManager.from( - mContext).getActiveSubscriptionInfoList(); + mContext).getActiveSubscriptionInfoList(true); if (subscriptionInfoList != null && subscriptionInfoList.size() > slotId) { return subscriptionInfoList.get(slotId); } else { diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java index 02c191679d1..ed01e22724a 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java @@ -107,7 +107,7 @@ public class SimStatusPreferenceController extends private CharSequence getCarrierName(int simSlot) { final List subscriptionInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subscriptionInfoList != null) { for (SubscriptionInfo info : subscriptionInfoList) { if (info.getSimSlotIndex() == simSlot) { diff --git a/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java index 1f75ab14e17..a2f71ec783d 100644 --- a/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java +++ b/src/com/android/settings/homepage/contextualcards/deviceinfo/DeviceInfoSlice.java @@ -113,7 +113,7 @@ public class DeviceInfoSlice implements CustomSliceable { @VisibleForTesting SubscriptionInfo getFirstSubscriptionInfo() { final List subscriptionInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subscriptionInfoList == null || subscriptionInfoList.isEmpty()) { return null; } diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java index c101db4b095..74f7c2de67d 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkActivity.java +++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java @@ -67,7 +67,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity { @Override public void onSubscriptionsChanged() { if (!Objects.equals(mSubscriptionInfos, - mSubscriptionManager.getActiveSubscriptionInfoList())) { + mSubscriptionManager.getActiveSubscriptionInfoList(true))) { updateSubscriptions(null); } } @@ -81,7 +81,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity { setActionBar(findViewById(R.id.mobile_action_bar)); mPhoneChangeReceiver = new PhoneChangeReceiver(); mSubscriptionManager = getSystemService(SubscriptionManager.class); - mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList(true); mCurSubscriptionId = savedInstanceState != null ? savedInstanceState.getInt(Settings.EXTRA_SUB_ID, SUB_ID_NULL) : SUB_ID_NULL; @@ -130,7 +130,7 @@ public class MobileNetworkActivity extends SettingsBaseActivity { @VisibleForTesting void updateSubscriptions(Bundle savedInstanceState) { - mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList(true); updateBottomNavigationView(); diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index 27cc3673061..3b9c8c0fead 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -227,7 +227,7 @@ public class MobileNetworkUtils { if (disableOtherSubscriptions) { List subInfoList = - subscriptionManager.getActiveSubscriptionInfoList(); + subscriptionManager.getActiveSubscriptionInfoList(true); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { // We never disable mobile data for opportunistic subscriptions. diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java index d8d6252e7a3..d4def6bedb4 100644 --- a/src/com/android/settings/security/SimLockPreferenceController.java +++ b/src/com/android/settings/security/SimLockPreferenceController.java @@ -77,7 +77,7 @@ public class SimLockPreferenceController extends BasePreferenceController { */ private boolean isSimReady() { final List subInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { final int simState = mTelephonyManager.getSimState(subInfo.getSimSlotIndex()); @@ -95,7 +95,7 @@ public class SimLockPreferenceController extends BasePreferenceController { */ private boolean isSimIccReady() { final List subInfoList = - mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubscriptionManager.getActiveSubscriptionInfoList(true); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java index 8a99e66712b..987826c4c43 100644 --- a/src/com/android/settings/sim/SimDialogActivity.java +++ b/src/com/android/settings/sim/SimDialogActivity.java @@ -153,7 +153,7 @@ public class SimDialogActivity extends Activity { final ArrayList list = new ArrayList(); final SubscriptionManager subscriptionManager = SubscriptionManager.from(context); final List subInfoList = - subscriptionManager.getActiveSubscriptionInfoList(); + subscriptionManager.getActiveSubscriptionInfoList(true); final int selectableSubInfoLength = subInfoList == null ? 0 : subInfoList.size(); final DialogInterface.OnClickListener selectionListener = diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 6806f9f0857..cf67f5ec181 100644 --- a/src/com/android/settings/sim/SimSelectNotification.java +++ b/src/com/android/settings/sim/SimSelectNotification.java @@ -80,7 +80,7 @@ public class SimSelectNotification extends BroadcastReceiver { } } - List sil = subscriptionManager.getActiveSubscriptionInfoList(); + List sil = subscriptionManager.getActiveSubscriptionInfoList(true); if (sil == null || sil.size() < 1) { Log.d(TAG, "Subscription list is empty"); return; diff --git a/src/com/android/settings/sim/SimSettings.java b/src/com/android/settings/sim/SimSettings.java index cf6d5f3fc4c..24e1874b6bf 100644 --- a/src/com/android/settings/sim/SimSettings.java +++ b/src/com/android/settings/sim/SimSettings.java @@ -114,7 +114,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable }; private void updateSubscriptions() { - mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList(); + mSubInfoList = mSubscriptionManager.getActiveSubscriptionInfoList(true); for (int i = 0; i < mNumSlots; ++i) { Preference pref = mSimCards.findPreference("sim" + i); if (pref instanceof SimPreference) { diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettings.java b/src/com/android/settings/wifi/calling/WifiCallingSettings.java index ac84783923c..ecb96a5d2a9 100644 --- a/src/com/android/settings/wifi/calling/WifiCallingSettings.java +++ b/src/com/android/settings/wifi/calling/WifiCallingSettings.java @@ -147,7 +147,7 @@ public class WifiCallingSettings extends InstrumentedFragment implements HelpRes } private void updateSubList() { - mSil = SubscriptionManager.from(getActivity()).getActiveSubscriptionInfoList(); + mSil = SubscriptionManager.from(getActivity()).getActiveSubscriptionInfoList(true); // Only config Wfc if it's enabled by platform. if (mSil == null) { diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java index d0900972125..023135d4d7f 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java @@ -21,6 +21,7 @@ import static android.content.Context.CLIPBOARD_SERVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -140,7 +141,7 @@ public class PhoneNumberPreferenceControllerTest { @Test public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() { - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null); + when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))).thenReturn(null); CharSequence primaryNumber = mController.getSummary(); @@ -157,7 +158,7 @@ public class PhoneNumberPreferenceControllerTest { public void copy_shouldCopyPhoneNumberToClipboard() { final List list = new ArrayList<>(); list.add(mSubscriptionInfo); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(list); + when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))).thenReturn(list); final String phoneNumber = "1111111111"; doReturn(phoneNumber).when(mController).getFormattedPhoneNumber(mSubscriptionInfo); diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java index 29472f54b85..447931e59ea 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java @@ -20,6 +20,7 @@ import static com.android.settings.network.telephony.MobileNetworkActivity.MOBIL import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -108,7 +109,8 @@ public class MobileNetworkActivityTest { @Test public void updateBottomNavigationView_oneSubscription_shouldBeGone() { mSubscriptionInfos.add(mSubscriptionInfo); - doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList(); + doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList( + eq(true)); mMobileNetworkActivity.updateBottomNavigationView(); @@ -120,7 +122,8 @@ public class MobileNetworkActivityTest { final Menu menu = new ContextMenuBuilder(mContext); mSubscriptionInfos.add(mSubscriptionInfo); mSubscriptionInfos.add(mSubscriptionInfo); - doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList(); + doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList( + eq(true)); doReturn(menu).when(mBottomNavigationView).getMenu(); mMobileNetworkActivity.updateBottomNavigationView(); diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java index 7ba1eb962ee..34e680e55f2 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; @@ -104,7 +105,7 @@ public class MobileNetworkUtilsTest { when(mSubscriptionInfo1.getSubscriptionId()).thenReturn(SUB_ID_1); when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(SUB_ID_2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( + when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))).thenReturn( Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); } diff --git a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java index 07d8ac55cdf..0ae33a0b5ca 100644 --- a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java @@ -21,6 +21,7 @@ import static android.telephony.TelephonyManager.SIM_STATE_READY; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -141,7 +142,7 @@ public class SimLockPreferenceControllerTest { SubscriptionInfo info = mock(SubscriptionInfo.class); subscriptionInfoList.add(info); when(mTelephonyManager.hasIccCard(anyInt())).thenReturn(true); - when(mSubscriptionManager.getActiveSubscriptionInfoList()) + when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))) .thenReturn(subscriptionInfoList); } @@ -150,7 +151,7 @@ public class SimLockPreferenceControllerTest { SubscriptionInfo info = mock(SubscriptionInfo.class); subscriptionInfoList.add(info); when(mTelephonyManager.getSimState(anyInt())).thenReturn(SIM_STATE_READY); - when(mSubscriptionManager.getActiveSubscriptionInfoList()) + when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))) .thenReturn(subscriptionInfoList); } }