Loading telephony/java/android/telephony/SubscriptionManager.java +15 −8 Original line number Diff line number Diff line Loading @@ -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]; } /** Loading telephony/java/com/android/internal/telephony/TelephonyPermissions.java +8 −13 Original line number Diff line number Diff line Loading @@ -593,26 +593,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) { 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(); Loading Loading
telephony/java/android/telephony/SubscriptionManager.java +15 −8 Original line number Diff line number Diff line Loading @@ -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]; } /** Loading
telephony/java/com/android/internal/telephony/TelephonyPermissions.java +8 −13 Original line number Diff line number Diff line Loading @@ -593,26 +593,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) { 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(); Loading