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

Commit 2773d203 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes from topics "MEP_addPortIndex", "mep_switchToSubscription"

* changes:
  [MEP] EuiccManager API modifications to support carrier apps
  [MEP] Add port index in SubscriptionInfo database
parents b3249c82 2c59155c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -42283,7 +42283,7 @@ package android.telephony.euicc {
    method public boolean isEnabled();
    method public boolean isSimPortAvailable(int);
    method public void startResolutionActivity(android.app.Activity, int, android.content.Intent, android.app.PendingIntent) throws android.content.IntentSender.SendIntentException;
    method @Deprecated @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, android.app.PendingIntent);
    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, android.app.PendingIntent);
    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void switchToSubscription(int, int, @NonNull android.app.PendingIntent);
    method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void updateSubscriptionNickname(int, @Nullable String, @NonNull android.app.PendingIntent);
    field public static final String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS";
@@ -42303,6 +42303,7 @@ package android.telephony.euicc {
    field public static final int ERROR_INSTALL_PROFILE = 10009; // 0x2719
    field public static final int ERROR_INVALID_ACTIVATION_CODE = 10001; // 0x2711
    field public static final int ERROR_INVALID_CONFIRMATION_CODE = 10002; // 0x2712
    field public static final int ERROR_INVALID_PORT = 10017; // 0x2721
    field public static final int ERROR_INVALID_RESPONSE = 10015; // 0x271f
    field public static final int ERROR_NO_PROFILES_AVAILABLE = 10013; // 0x271d
    field public static final int ERROR_OPERATION_BUSY = 10016; // 0x2720
+7 −0
Original line number Diff line number Diff line
@@ -5309,6 +5309,13 @@ public final class Telephony {
         */
        public static final String COLUMN_PROFILE_CLASS = "profile_class";

        /**
         * TelephonyProvider column name for the port index of the active UICC port.
         * <P>Type: INTEGER (int)</P>
         * @hide
         */
        public static final String COLUMN_PORT_INDEX = "port_index";

        /**
         * A testing profile can be pre-loaded or downloaded onto
         * the eUICC and provides connectivity to test equipment
+7 −0
Original line number Diff line number Diff line
@@ -940,6 +940,13 @@ public class SubscriptionManager {
     */
    public static final String PROFILE_CLASS = SimInfo.COLUMN_PROFILE_CLASS;

    /**
     * TelephonyProvider column name for the port index of the active UICC port.
     * <P>Type: INTEGER (int)</P>
     * @hide
     */
    public static final String PORT_INDEX = SimInfo.COLUMN_PORT_INDEX;

    /**
     * TelephonyProvider column name for VoIMS opt-in status.
     *
+3 −0
Original line number Diff line number Diff line
@@ -327,6 +327,9 @@ public class TelephonyManager {
     */
    public static final int DEFAULT_PORT_INDEX = 0;
    /** @hide */
    public static final int INVALID_PORT_INDEX = -1;
    private final Context mContext;
    private final int mSubId;
    @UnsupportedAppUsage
+28 −18
Original line number Diff line number Diff line
@@ -803,6 +803,13 @@ public class EuiccManager {
     */
    public static final int ERROR_OPERATION_BUSY = 10016;

    /**
     * Failure due to target port is not supported.
     * @see #switchToSubscription(int, int, PendingIntent)
     */
    public static final int ERROR_INVALID_PORT = 10017;


    private final Context mContext;
    private int mCardId;

@@ -1118,6 +1125,15 @@ public class EuiccManager {
     * intent to prompt the user to accept the download. The caller should also be authorized to
     * manage the subscription to be enabled.
     *
     * <p> From Android T, devices might support MEP(Multiple Enabled Profile), the subscription
     * can be installed on different port from the eUICC. Calling apps with carrier privilege
     * (see {@link TelephonyManager#hasCarrierPrivileges}) over the currently active subscriptions
     * can use {@link #switchToSubscription(int, int, PendingIntent)} to specify which port to
     * enable the subscription. Otherwise, use this API to enable the subscription on the eUICC
     * and the platform will internally resolve a port. If there is no available port,
     * an {@link #EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR} might be returned in the callback
     * intent to prompt the user to disable an already-active subscription.
     *
     * @param subscriptionId the ID of the subscription to enable. May be
     *     {@link android.telephony.SubscriptionManager#INVALID_SUBSCRIPTION_ID} to deactivate the
     *     current profile without activating another profile to replace it. If it's a disable
@@ -1125,12 +1141,7 @@ public class EuiccManager {
     *     permission, or the calling app must be authorized to manage the active subscription on
     *     the target eUICC.
     * @param callbackIntent a PendingIntent to launch when the operation completes.
     *
     * @deprecated From T, callers should use
     * {@link #switchToSubscription(int, int, PendingIntent)} instead to specify a port
     * index on the card to switch to.
     */
    @Deprecated
    @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS)
    public void switchToSubscription(int subscriptionId, PendingIntent callbackIntent) {
        if (!isEnabled()) {
@@ -1149,19 +1160,18 @@ public class EuiccManager {
     * Switch to (enable) the given subscription.
     *
     * <p> Requires the {@code android.Manifest.permission#WRITE_EMBEDDED_SUBSCRIPTIONS} permission,
     * or the calling app must be authorized to manage both the currently-active subscription and
     * the subscription to be enabled according to the subscription metadata. Without the former,
     * an {@link #EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR} will be returned in the callback
     * intent to prompt the user to accept the download.
     *
     * <p>On a multi-active SIM device, requires the
     * {@code android.Manifest.permission#WRITE_EMBEDDED_SUBSCRIPTIONS} permission, or a calling app
     * only if the targeted eUICC does not currently have an active subscription or the calling app
     * is authorized to manage the active subscription on the target eUICC, and the calling app is
     * authorized to manage any active subscription on any SIM. Without it, an
     * {@link #EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR} will be returned in the callback
     * intent to prompt the user to accept the download. The caller should also be authorized to
     * manage the subscription to be enabled.
     * or the caller must be having both the carrier privileges
     * (see {@link TelephonyManager#hasCarrierPrivileges}) over any currently active subscriptions
     * and the subscription to be enabled according to the subscription metadata.
     * Without the former permissions, an SecurityException is thrown.
     *
     * <p> If the caller is passing invalid port index,
     * an {@link #EMBEDDED_SUBSCRIPTION_RESULT_ERROR} with detailed error code
     * {@link #ERROR_INVALID_PORT} will be returned.
     *
     * <p> Depending on the target port and permission check,
     * an {@link #EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR} might be returned to the callback
     * intent to prompt the user to authorize before the switch.
     *
     * @param subscriptionId the ID of the subscription to enable. May be
     *     {@link android.telephony.SubscriptionManager#INVALID_SUBSCRIPTION_ID} to deactivate the