Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ac7e52a authored by Malcolm Chen's avatar Malcolm Chen
Browse files

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
parent 31071853
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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();
    }

    /**
+1 −1
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ interface ISub {
    void clearDefaultsForInactiveSubIds();

    @UnsupportedAppUsage
    int[] getActiveSubIdList();
    int[] getActiveSubIdList(boolean visibleOnly);

    int setSubscriptionProperty(int subId, String propKey, String propValue);