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

Commit 8786208a authored by Ling Ma's avatar Ling Ma
Browse files

Create new SM instance when createForAllProfiles

And replace flag that will join V release.

Fix: 318484172
Test: voice call
Change-Id: I95c90f26586cc69710ff59d70ac919cd4c2b49ac
parent b7787c91
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45338,7 +45338,7 @@ package android.telephony {
    method public void addOnSubscriptionsChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void addSubscriptionsIntoGroup(@NonNull java.util.List<java.lang.Integer>, @NonNull android.os.ParcelUuid);
    method public boolean canManageSubscription(android.telephony.SubscriptionInfo);
    method @FlaggedApi("com.android.internal.telephony.flags.work_profile_api_split") @NonNull public android.telephony.SubscriptionManager createForAllUserProfiles();
    method @FlaggedApi("com.android.internal.telephony.flags.enforce_subscription_user_filter") @NonNull public android.telephony.SubscriptionManager createForAllUserProfiles();
    method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.os.ParcelUuid createSubscriptionGroup(@NonNull java.util.List<java.lang.Integer>);
    method @Deprecated public static android.telephony.SubscriptionManager from(android.content.Context);
    method public java.util.List<android.telephony.SubscriptionInfo> getAccessibleSubscriptionInfoList();
+14 −6
Original line number Diff line number Diff line
@@ -1557,12 +1557,21 @@ public class SubscriptionManager {
     * caller can see all subscription across user profiles as it does today today even if it's
     * {@code false}.
     */
    private boolean mIsForAllUserProfiles = false;
    private final boolean mIsForAllUserProfiles;

    /** @hide */
    @UnsupportedAppUsage
    public SubscriptionManager(Context context) {
        if (DBG) logd("SubscriptionManager created");
        this(context, false /*isForAllUserProfiles*/);
    }

    /**  Constructor */
    private SubscriptionManager(Context context, boolean isForAllUserProfiles) {
        if (DBG) {
            logd("SubscriptionManager created "
                    + (isForAllUserProfiles ? "for all user profile" : ""));
        }
        mIsForAllUserProfiles = isForAllUserProfiles;
        mContext = context;
    }

@@ -1998,7 +2007,7 @@ public class SubscriptionManager {
    }

    /**
     * Convert this subscription manager instance into one that can see all subscriptions across
     * Create a new subscription manager instance that can see all subscriptions across
     * user profiles.
     *
     * @return a SubscriptionManager that can see all subscriptions regardless its user profile
@@ -2008,13 +2017,12 @@ public class SubscriptionManager {
     * @see #getActiveSubscriptionInfoCount
     * @see UserHandle
     */
    @FlaggedApi(Flags.FLAG_WORK_PROFILE_API_SPLIT)
    @FlaggedApi(Flags.FLAG_ENFORCE_SUBSCRIPTION_USER_FILTER)
    // @RequiresPermission(TODO(b/308809058))
    // The permission check for accessing all subscriptions will be enforced upon calling the
    // individual APIs linked above.
    @NonNull public SubscriptionManager createForAllUserProfiles() {
        mIsForAllUserProfiles = true;
        return this;
        return new SubscriptionManager(mContext, true/*isForAllUserProfiles*/);
    }

    /**