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

Commit ec0c47f5 authored by Grace Chen's avatar Grace Chen Committed by android-build-merger
Browse files

Merge "Add profile class in SubscriptionInfo database"

am: 1403b61c

Change-Id: I5cc8988669ff19888aa4b31c91bfbe1145cdccc1
parents 0aab1259 1403b61c
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5392,6 +5392,7 @@ package android.telephony {
  public class SubscriptionInfo implements android.os.Parcelable {
    method public java.util.List<android.telephony.UiccAccessRule> getAccessRules();
    method public int getCardId();
    method public int getProfileClass();
  }

  public class SubscriptionManager {
@@ -5400,6 +5401,11 @@ package android.telephony {
    method public void setDefaultDataSubId(int);
    method public void setDefaultSmsSubId(int);
    field public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
    field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
    field public static final int PROFILE_CLASS_OPERATIONAL = 2; // 0x2
    field public static final int PROFILE_CLASS_PROVISIONING = 1; // 0x1
    field public static final int PROFILE_CLASS_TESTING = 0; // 0x0
    field public static final int PROFILE_CLASS_UNSET = -1; // 0xffffffff
    field public static final android.net.Uri VT_ENABLED_CONTENT_URI;
    field public static final android.net.Uri WFC_ENABLED_CONTENT_URI;
    field public static final android.net.Uri WFC_MODE_CONTENT_URI;
+33 −8
Original line number Diff line number Diff line
@@ -173,6 +173,16 @@ public class SubscriptionInfo implements Parcelable {
     */
    private boolean mIsGroupDisabled = false;

    /**
     * Profile class, PROFILE_CLASS_TESTING, PROFILE_CLASS_OPERATIONAL
     * PROFILE_CLASS_PROVISIONING, or PROFILE_CLASS_UNSET.
     * A profile on the eUICC can be defined as test, operational, provisioning, or unset.
     * The profile class will be populated from the profile metadata if present. Otherwise,
     * the profile class defaults to unset if there is no profile metadata or the subscription
     * is not on an eUICC ({@link #isEmbedded} returns false).
     */
    private int mProfileClass;

    /**
     * @hide
     */
@@ -182,7 +192,8 @@ public class SubscriptionInfo implements Parcelable {
            @Nullable UiccAccessRule[] accessRules, String cardString) {
        this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number,
                roaming, icon, mcc, mnc, countryIso, isEmbedded, accessRules, cardString,
                false, null, true, TelephonyManager.UNKNOWN_CARRIER_ID);
                false, null, true, TelephonyManager.UNKNOWN_CARRIER_ID,
                SubscriptionManager.PROFILE_CLASS_DEFAULT);
    }

    /**
@@ -192,10 +203,10 @@ public class SubscriptionInfo implements Parcelable {
            CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
            Bitmap icon, String mcc, String mnc, String countryIso, boolean isEmbedded,
            @Nullable UiccAccessRule[] accessRules, String cardString, boolean isOpportunistic,
            @Nullable String groupUUID, boolean isMetered, int carrierId) {
            @Nullable String groupUUID, boolean isMetered, int carrierId, int profileClass) {
        this(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number,
                roaming, icon, mcc, mnc, countryIso, isEmbedded, accessRules, cardString, -1,
                isOpportunistic, groupUUID, isMetered, false, carrierId);
                isOpportunistic, groupUUID, isMetered, false, carrierId, profileClass);
    }

    /**
@@ -206,7 +217,7 @@ public class SubscriptionInfo implements Parcelable {
            Bitmap icon, String mcc, String mnc, String countryIso, boolean isEmbedded,
            @Nullable UiccAccessRule[] accessRules, String cardString, int cardId,
            boolean isOpportunistic, @Nullable String groupUUID, boolean isMetered,
            boolean isGroupDisabled, int carrierid) {
            boolean isGroupDisabled, int carrierid, int profileClass) {
        this.mId = id;
        this.mIccId = iccId;
        this.mSimSlotIndex = simSlotIndex;
@@ -229,6 +240,7 @@ public class SubscriptionInfo implements Parcelable {
        this.mIsMetered = isMetered;
        this.mIsGroupDisabled = isGroupDisabled;
        this.mCarrierId = carrierid;
        this.mProfileClass = profileClass;
    }


@@ -465,6 +477,15 @@ public class SubscriptionInfo implements Parcelable {
        return mIsMetered;
    }

    /**
     * @return the profile class of this subscription.
     * @hide
     */
    @SystemApi
    public @SubscriptionManager.ProfileClass int getProfileClass() {
        return this.mProfileClass;
    }

    /**
     * Checks whether the app with the given context is authorized to manage this subscription
     * according to its metadata. Only supported for embedded subscriptions (if {@link #isEmbedded}
@@ -589,11 +610,12 @@ public class SubscriptionInfo implements Parcelable {
            boolean isMetered = source.readBoolean();
            boolean isGroupDisabled = source.readBoolean();
            int carrierid = source.readInt();
            int profileClass = source.readInt();

            return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName,
                    nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso,
                    isEmbedded, accessRules, cardString, cardId, isOpportunistic, groupUUID,
                    isMetered, isGroupDisabled, carrierid);
                    isMetered, isGroupDisabled, carrierid, profileClass);
        }

        @Override
@@ -626,6 +648,7 @@ public class SubscriptionInfo implements Parcelable {
        dest.writeBoolean(mIsMetered);
        dest.writeBoolean(mIsGroupDisabled);
        dest.writeInt(mCarrierId);
        dest.writeInt(mProfileClass);
    }

    @Override
@@ -661,7 +684,8 @@ public class SubscriptionInfo implements Parcelable {
                + " accessRules " + Arrays.toString(mAccessRules)
                + " cardString=" + cardStringToPrint + " cardId=" + mCardId
                + " isOpportunistic " + mIsOpportunistic + " mGroupUUID=" + mGroupUUID
                + " isMetered=" + mIsMetered + " mIsGroupDisabled=" + mIsGroupDisabled + "}";
                + " isMetered=" + mIsMetered + " mIsGroupDisabled=" + mIsGroupDisabled
                + " profileClass=" + mProfileClass + "}";
    }

    @Override
@@ -669,7 +693,7 @@ public class SubscriptionInfo implements Parcelable {
        return Objects.hash(mId, mSimSlotIndex, mNameSource, mIconTint, mDataRoaming, mIsEmbedded,
                mIsOpportunistic, mGroupUUID, mIsMetered, mIccId, mNumber, mMcc, mMnc,
                mCountryIso, mCardString, mCardId, mDisplayName, mCarrierName, mAccessRules,
                mIsGroupDisabled, mCarrierId);
                mIsGroupDisabled, mCarrierId, mProfileClass);
    }

    @Override
@@ -704,6 +728,7 @@ public class SubscriptionInfo implements Parcelable {
                && Objects.equals(mCardId, toCompare.mCardId)
                && TextUtils.equals(mDisplayName, toCompare.mDisplayName)
                && TextUtils.equals(mCarrierName, toCompare.mCarrierName)
                && Arrays.equals(mAccessRules, toCompare.mAccessRules);
                && Arrays.equals(mAccessRules, toCompare.mAccessRules)
                && mProfileClass == toCompare.mProfileClass;
    }
}
+69 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.net.NetworkPolicyManager.OVERRIDE_UNMETERED;
import android.Manifest;
import android.annotation.CallbackExecutor;
import android.annotation.DurationMillisLong;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
@@ -62,6 +63,8 @@ import com.android.internal.telephony.ISub;
import com.android.internal.telephony.ITelephonyRegistry;
import com.android.internal.telephony.PhoneConstants;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -602,6 +605,72 @@ public class SubscriptionManager {
     */
    public static final String IS_METERED = "is_metered";

    /**
     * TelephonyProvider column name for the profile class of a subscription
     * Only present if {@link #IS_EMBEDDED} is 1.
     * <P>Type: INTEGER (int)</P>
     * @hide
     */
    public static final String PROFILE_CLASS = "profile_class";

    /**
     * Profile class of the subscription
     * @hide
     */
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(prefix = { "PROFILE_CLASS_" }, value = {
            PROFILE_CLASS_TESTING,
            PROFILE_CLASS_PROVISIONING,
            PROFILE_CLASS_OPERATIONAL,
            PROFILE_CLASS_UNSET,
            PROFILE_CLASS_DEFAULT
    })
    public @interface ProfileClass {}

    /**
     * A testing profile can be pre-loaded or downloaded onto
     * the eUICC and provides connectivity to test equipment
     * for the purpose of testing the device and the eUICC. It
     * is not intended to store any operator credentials.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_CLASS_TESTING = 0;

    /**
     * A provisioning profile is pre-loaded onto the eUICC and
     * provides connectivity to a mobile network solely for the
     * purpose of provisioning profiles.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_CLASS_PROVISIONING = 1;

    /**
     * An operational profile can be pre-loaded or downloaded
     * onto the eUICC and provides services provided by the
     * operator.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_CLASS_OPERATIONAL = 2;

    /**
     * The profile class is unset. This occurs when profile class
     * info is not available. The subscription either has no profile
     * metadata or the profile metadata did not encode profile class.
     * @hide
     */
    @SystemApi
    public static final int PROFILE_CLASS_UNSET = -1;

    /**
     * Default profile class
     * @hide
     */
    @SystemApi
    public static final int PROFILE_CLASS_DEFAULT = PROFILE_CLASS_UNSET;

    /**
     * Broadcast Action: The user has changed one of the default subs related to
     * data, phone calls, or sms</p>