From 9ac7e52a933fbbf9774d9c3f77eb445bff97b10b Mon Sep 17 00:00:00 2001 From: Malcolm Chen Date: Tue, 19 Feb 2019 19:00:26 -0800 Subject: [PATCH] Don't return hidden subscription in getActiveSubIdList Now getActiveSubscriptionInfoList will not return hidden subscriptions. And getActiveSubIdList should be consistent with it. In the mean time, internal SubscriptionController API should have a way to specify if caller wants hidden subscriptions or not. Bug: 124690005 Test: manual Change-Id: I46ccae88167c2988d71a6e07da2937bf9644a1f0 Merged-In: I46ccae88167c2988d71a6e07da2937bf9644a1f0 --- .../android/telephony/SubscriptionManager.java | 14 ++++++++++---- .../java/com/android/internal/telephony/ISub.aidl | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 85cd1579635fa..1301246f8574b 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -2088,7 +2088,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - subId = iSub.getActiveSubIdList(); + subId = iSub.getActiveSubIdList(/*visibleOnly*/true); } } catch (RemoteException ex) { // ignore it @@ -2874,7 +2874,7 @@ public class SubscriptionManager { * * @hide */ - private boolean shouldHideSubscription(SubscriptionInfo info) { + public boolean shouldHideSubscription(SubscriptionInfo info) { if (info == null) return false; // If hasCarrierPrivileges or canManageSubscription returns true, it means caller @@ -2882,8 +2882,14 @@ public class SubscriptionManager { boolean hasCarrierPrivilegePermission = (info.isEmbedded() && canManageSubscription(info)) || TelephonyManager.from(mContext).hasCarrierPrivileges(info.getSubscriptionId()); - return (!TextUtils.isEmpty(info.getGroupUuid()) && info.isOpportunistic() - && !hasCarrierPrivilegePermission); + return isInvisibleSubscription(info) && !hasCarrierPrivilegePermission; + } + + /** + * @hide + */ + public static boolean isInvisibleSubscription(SubscriptionInfo info) { + return info != null && !TextUtils.isEmpty(info.getGroupUuid()) && info.isOpportunistic(); } /** diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl index 4a4506f9bf7a0..c08da44c1ba6a 100755 --- a/telephony/java/com/android/internal/telephony/ISub.aidl +++ b/telephony/java/com/android/internal/telephony/ISub.aidl @@ -279,7 +279,7 @@ interface ISub { void clearDefaultsForInactiveSubIds(); @UnsupportedAppUsage - int[] getActiveSubIdList(); + int[] getActiveSubIdList(boolean visibleOnly); int setSubscriptionProperty(int subId, String propKey, String propValue);