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
This commit is contained in:
Malcolm Chen
2019-02-19 19:00:26 -08:00
parent 310718530c
commit 9ac7e52a93
2 changed files with 11 additions and 5 deletions

View File

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

View File

@@ -279,7 +279,7 @@ interface ISub {
void clearDefaultsForInactiveSubIds();
@UnsupportedAppUsage
int[] getActiveSubIdList();
int[] getActiveSubIdList(boolean visibleOnly);
int setSubscriptionProperty(int subId, String propKey, String propValue);