[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.
*/
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<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() {
final List<SubscriptionInfo> 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<SubscriptionInfo> subInfoList =
mSubscriptionManager.getActiveSubscriptionInfoList(true);
mSubscriptionManager.getActiveSubscriptionInfoList();
if (subInfoList != null) {
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.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);

View File

@@ -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);
}
}