diff options
| -rw-r--r-- | telephony/java/android/telephony/SubscriptionManager.java | 23 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/TelephonyPermissions.java | 21 |
2 files changed, 23 insertions, 21 deletions
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 484fd3b17c02..2822fccdb398 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -2116,29 +2116,36 @@ public class SubscriptionManager { } /** + * TODO(b/137102918) Make this static, tests use this as an instance method currently. + * * @return the list of subId's that are active, * is never null but the length maybe 0. * @hide */ @UnsupportedAppUsage public @NonNull int[] getActiveSubscriptionIdList() { - int[] subId = null; + return getActiveSubscriptionIdList(/* visibleOnly */ true); + } + /** + * TODO(b/137102918) Make this static, tests use this as an instance method currently. + * + * @return a non-null list of subId's that are active. + * + * @hide + */ + public @NonNull int[] getActiveSubscriptionIdList(boolean visibleOnly) { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - subId = iSub.getActiveSubIdList(/*visibleOnly*/true); + int[] subId = iSub.getActiveSubIdList(visibleOnly); + if (subId != null) return subId; } } catch (RemoteException ex) { // ignore it } - if (subId == null) { - subId = new int[0]; - } - - return subId; - + return new int[0]; } /** diff --git a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java index 7a0ab9ca6a28..51c5d12dfe15 100644 --- a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java +++ b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java @@ -600,26 +600,21 @@ public final class TelephonyPermissions { } } - /** - * Returns whether the provided uid has carrier privileges for any active subscription ID. - */ - private static boolean checkCarrierPrivilegeForAnySubId(Context context, - Supplier<ITelephony> telephonySupplier, int uid) { + /** Returns whether the provided uid has carrier privileges for any active subscription ID. */ + private static boolean checkCarrierPrivilegeForAnySubId( + Context context, Supplier<ITelephony> telephonySupplier, int uid) { SubscriptionManager sm = (SubscriptionManager) context.getSystemService( Context.TELEPHONY_SUBSCRIPTION_SERVICE); - int[] activeSubIds = sm.getActiveSubscriptionIdList(); - if (activeSubIds != null) { - for (int activeSubId : activeSubIds) { - if (getCarrierPrivilegeStatus(telephonySupplier, activeSubId, uid) - == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) { - return true; - } + int[] activeSubIds = sm.getActiveSubscriptionIdList(/* visibleOnly */ false); + for (int activeSubId : activeSubIds) { + if (getCarrierPrivilegeStatus(telephonySupplier, activeSubId, uid) + == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) { + return true; } } return false; } - private static int getCarrierPrivilegeStatus( Supplier<ITelephony> telephonySupplier, int subId, int uid) { ITelephony telephony = telephonySupplier.get(); |