[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
This commit is contained in:
changbetty
2020-01-07 11:29:14 +08:00
committed by Betty Chang
parent 177ce8f017
commit e9f857621f
4 changed files with 30 additions and 19 deletions

View File

@@ -100,12 +100,12 @@ public class MobileNetworkUtils {
* Returns true if Wifi calling is enabled for at least one subscription. * Returns true if Wifi calling is enabled for at least one subscription.
*/ */
public static boolean isWifiCallingEnabled(Context context) { public static boolean isWifiCallingEnabled(Context context) {
final SubscriptionManager subManager = context.getSystemService(SubscriptionManager.class); final int[] subIds = getActiveSubscriptionIdList(context);
if (subManager == null) { if (ArrayUtils.isEmpty(subIds)) {
Log.e(TAG, "isWifiCallingEnabled: couldn't get system service."); Log.d(TAG, "isWifiCallingEnabled: subIds is empty");
return false; return false;
} }
for (int subId : subManager.getActiveSubscriptionIdList()) { for (int subId : subIds) {
if (isWifiCallingEnabled(context, subId)) { if (isWifiCallingEnabled(context, subId)) {
return true; return true;
} }
@@ -466,9 +466,7 @@ public class MobileNetworkUtils {
* otherwise return {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} * otherwise return {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID}
*/ */
public static int getSearchableSubscriptionId(Context context) { public static int getSearchableSubscriptionId(Context context) {
final SubscriptionManager subscriptionManager = context.getSystemService( final int[] subIds = getActiveSubscriptionIdList(context);
SubscriptionManager.class);
final int subIds[] = subscriptionManager.getActiveSubscriptionIdList();
return subIds.length >= 1 ? subIds[0] : SubscriptionManager.INVALID_SUBSCRIPTION_ID; 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, public static int getAvailability(Context context, int defSubId,
TelephonyAvailabilityCallback callback) { TelephonyAvailabilityCallback callback) {
final SubscriptionManager subscriptionManager = context.getSystemService(
SubscriptionManager.class);
if (defSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (defSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
// If subId has been set, return the corresponding status // If subId has been set, return the corresponding status
return callback.getAvailabilityStatus(defSubId); return callback.getAvailabilityStatus(defSubId);
} else { } else {
// Otherwise, search whether there is one subId in device that support this preference // 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)) { if (ArrayUtils.isEmpty(subIds)) {
return callback.getAvailabilityStatus( return callback.getAvailabilityStatus(
SubscriptionManager.INVALID_SUBSCRIPTION_ID); SubscriptionManager.INVALID_SUBSCRIPTION_ID);
@@ -640,4 +636,21 @@ public class MobileNetworkUtils {
Arrays.asList(TextUtils.split(countriesListString.toLowerCase(), ",")); Arrays.asList(TextUtils.split(countriesListString.toLowerCase(), ","));
return unsupportedCountries.contains(country); return unsupportedCountries.contains(country);
} }
private static int[] getActiveSubscriptionIdList(Context context) {
final SubscriptionManager subscriptionManager = context.getSystemService(
SubscriptionManager.class);
final List<SubscriptionInfo> 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;
}
} }

View File

@@ -77,7 +77,7 @@ public class SimLockPreferenceController extends BasePreferenceController {
*/ */
private boolean isSimReady() { private boolean isSimReady() {
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList(true); mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList != null) { if (subInfoList != null) {
for (SubscriptionInfo subInfo : subInfoList) { for (SubscriptionInfo subInfo : subInfoList) {
final int simState = mTelephonyManager.getSimState(subInfo.getSimSlotIndex()); final int simState = mTelephonyManager.getSimState(subInfo.getSimSlotIndex());
@@ -95,7 +95,7 @@ public class SimLockPreferenceController extends BasePreferenceController {
*/ */
private boolean isSimIccReady() { private boolean isSimIccReady() {
final List<SubscriptionInfo> subInfoList = final List<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList(true); mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList != null) { if (subInfoList != null) {
for (SubscriptionInfo subInfo : subInfoList) { for (SubscriptionInfo subInfo : subInfoList) {

View File

@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -199,14 +198,14 @@ public class MobileNetworkUtilsTest {
@Test @Test
public void getSearchableSubscriptionId_oneActive_returnValid() { 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); assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)).isEqualTo(SUB_ID_1);
} }
@Test @Test
public void getSearchableSubscriptionId_nonActive_returnInvalid() { public void getSearchableSubscriptionId_nonActive_returnInvalid() {
when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[0]); when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)) assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext))
.isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID); .isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID);

View File

@@ -21,7 +21,6 @@ import static android.telephony.TelephonyManager.SIM_STATE_READY;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -143,7 +142,7 @@ public class SimLockPreferenceControllerTest {
subscriptionInfoList.add(info); subscriptionInfoList.add(info);
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
when(mTelephonyManager.hasIccCard()).thenReturn(true); when(mTelephonyManager.hasIccCard()).thenReturn(true);
when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))) when(mSubscriptionManager.getActiveSubscriptionInfoList())
.thenReturn(subscriptionInfoList); .thenReturn(subscriptionInfoList);
} }
@@ -152,7 +151,7 @@ public class SimLockPreferenceControllerTest {
SubscriptionInfo info = mock(SubscriptionInfo.class); SubscriptionInfo info = mock(SubscriptionInfo.class);
subscriptionInfoList.add(info); subscriptionInfoList.add(info);
when(mTelephonyManager.getSimState(anyInt())).thenReturn(SIM_STATE_READY); when(mTelephonyManager.getSimState(anyInt())).thenReturn(SIM_STATE_READY);
when(mSubscriptionManager.getActiveSubscriptionInfoList(eq(true))) when(mSubscriptionManager.getActiveSubscriptionInfoList())
.thenReturn(subscriptionInfoList); .thenReturn(subscriptionInfoList);
} }
} }