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

Commit b39ed828 authored by Ling Ma's avatar Ling Ma Committed by Android (Google) Code Review
Browse files

Merge "Create new SM instance when createForAllProfiles" into main

parents 4ce4669b 8786208a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45343,7 +45343,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*/);
    }

    /**