Merge "[Mainline] Use public method in SubscriptionManager for mainline"

This commit is contained in:
Betty Chang
2020-01-09 08:49:23 +00:00
committed by Android (Google) Code Review
5 changed files with 38 additions and 22 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) {