From e9f857621ff6b8e724ee08f04c936a44ed19ae2c Mon Sep 17 00:00:00 2001 From: changbetty Date: Tue, 7 Jan 2020 11:29:14 +0800 Subject: [PATCH] [Mainline] Use public method in SubscriptionManager for mainline - getActiveSubscriptionIdList To use getActiveSubscriptionInfoList to get subscription Id list - getActiveSubscriptionInfoList(Z) To use getActiveSubscriptionInfoList() instead Bug: 144478274 Test: make RunSettingsRoboTests ROBOTEST_FILTER=SimLockPreferenceControllerTest make RunSettingsRoboTests ROBOTEST_FILTER=MobileNetworkUtilsTest Change-Id: I4d6113561906af5c9e4ac7737aefac17c926059a Merged-In: I4d6113561906af5c9e4ac7737aefac17c926059a --- .../network/telephony/MobileNetworkUtils.java | 33 +++++++++++++------ .../security/SimLockPreferenceController.java | 4 +-- .../telephony/MobileNetworkUtilsTest.java | 7 ++-- .../SimLockPreferenceControllerTest.java | 5 ++- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index bd9b709d3f4..75e0bb12698 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -100,12 +100,12 @@ public class MobileNetworkUtils { * Returns true if Wifi calling is enabled for at least one subscription. */ public static boolean isWifiCallingEnabled(Context context) { - final SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class); - if (subManager == null) { - Log.e(TAG, "isWifiCallingEnabled: couldn't get system service."); + final int[] subIds = getActiveSubscriptionIdList(context); + if (ArrayUtils.isEmpty(subIds)) { + Log.d(TAG, "isWifiCallingEnabled: subIds is empty"); return false; } - for (int subId : subManager.getActiveSubscriptionIdList()) { + for (int subId : subIds) { if (isWifiCallingEnabled(context, subId)) { return true; } @@ -466,9 +466,7 @@ public class MobileNetworkUtils { * otherwise return {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} */ public static int getSearchableSubscriptionId(Context context) { - final SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); - final int subIds[] = subscriptionManager.getActiveSubscriptionIdList(); + final int[] subIds = getActiveSubscriptionIdList(context); return subIds.length >= 1 ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID; } @@ -485,14 +483,12 @@ public class MobileNetworkUtils { */ public static int getAvailability(Context context, int defSubId, TelephonyAvailabilityCallback callback) { - final SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); if (defSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { // If subId has been set, return the corresponding status return callback.getAvailabilityStatus(defSubId); } else { // Otherwise, search whether there is one subId in device that support this preference - final int[] subIds = subscriptionManager.getActiveSubscriptionIdList(); + final int[] subIds = getActiveSubscriptionIdList(context); if (ArrayUtils.isEmpty(subIds)) { return callback.getAvailabilityStatus( SubscriptionManager.INVALID_SUBSCRIPTION_ID); @@ -640,4 +636,21 @@ public class MobileNetworkUtils { Arrays.asList(TextUtils.split(countriesListString.toLowerCase(), ",")); return unsupportedCountries.contains(country); } + + private static int[] getActiveSubscriptionIdList(Context context) { + final SubscriptionManager subscriptionManager = context.getSystemService( + SubscriptionManager.class); + final List subInfoList = + subscriptionManager.getActiveSubscriptionInfoList(); + if (subInfoList == null) { + return new int[0]; + } + int[] activeSubIds = new int[subInfoList.size()]; + int i = 0; + for (SubscriptionInfo subInfo : subInfoList) { + activeSubIds[i] = subInfo.getSubscriptionId(); + i++; + } + return activeSubIds; + } } diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java index 3b23daa1e88..ffc1d6bbeab 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(true); + mSubscriptionManager.getActiveSubscriptionInfoList(); 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(true); + mSubscriptionManager.getActiveSubscriptionInfoList(); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { 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 b1ef2022f7b..da3a7c4e9fc 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java @@ -21,7 +21,6 @@ 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.nullable; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -199,14 +198,14 @@ public class MobileNetworkUtilsTest { @Test public void getSearchableSubscriptionId_oneActive_returnValid() { - when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{SUB_ID_1}); - + when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( + Arrays.asList(mSubscriptionInfo1)); assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)).isEqualTo(SUB_ID_1); } @Test public void getSearchableSubscriptionId_nonActive_returnInvalid() { - when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[0]); + when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>()); assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)) .isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID); diff --git a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java index ebafcebee7d..89be17ace25 100644 --- a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java @@ -21,7 +21,6 @@ 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; @@ -143,7 +142,7 @@ public class SimLockPreferenceControllerTest { subscriptionInfoList.add(info); when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mTelephonyManager.hasIccCard()).thenReturn(true); - when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))) + when(mSubscriptionManager.getActiveSubscriptionInfoList()) .thenReturn(subscriptionInfoList); } @@ -152,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(eq(true))) + when(mSubscriptionManager.getActiveSubscriptionInfoList()) .thenReturn(subscriptionInfoList); } }