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

Commit eeaf2a01 authored by Zoey Chen's avatar Zoey Chen
Browse files

[Settings] Provision status checking of eSIM in dialog fragment

Bug: 262679983
Bug: 257120311
Test: manual
Change-Id: Idc78741e445b5d6448e2288f2a1bc6c79e34bf4b
parent d9f2de7a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.sim;

import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.telecom.PhoneAccountHandle;
@@ -51,6 +53,12 @@ public class CallsSimListDialogFragment extends SimListDialogFragment {
            if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
                continue;
            }

            SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId);
            if (info == null || (info.isEmbedded()
                    && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
                continue;
            }
            result.add(subscriptionManager.getActiveSubscriptionInfo(subId));
        }
        return result;
+4 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.sim;

import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;

import android.app.Activity;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
@@ -95,7 +97,8 @@ public class PreferredSimDialogFragment extends SimDialogFragment implements
        }

        final SubscriptionInfo info = getPreferredSubscription();
        if (info == null) {
        if (info == null || (info.isEmbedded()
                && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
            dismiss();
            return;
        }
+11 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.sim;

import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;

import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.DialogInterface;
@@ -113,6 +115,15 @@ public class SelectSpecificDataSimDialogFragment extends SimDialogFragment imple
            dismiss();
            return;
        }

        if ((newSubInfo.isEmbedded() && newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)
                || (currentDataSubInfo.isEmbedded()
                && currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
            Log.d(TAG, "do not set the provision eSIM");
            dismiss();
            return;
        }

        Log.d(TAG, "newSubId: " + newSubInfo.getSubscriptionId()
                + "currentDataSubID: " + currentDataSubInfo.getSubscriptionId());
        setTargetSubscriptionInfo(newSubInfo);
+7 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.sim;

import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;

import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -137,6 +139,11 @@ public class SimListDialogFragment extends SimDialogFragment {
            dismiss();
            return;
        }

        // Remove the provision eSIM from the subscription list.
        currentSubscriptions.removeIf(info -> info.isEmbedded()
                && info.getProfileClass() == PROFILE_CLASS_PROVISIONING);

        boolean includeAskEveryTime = getArguments().getBoolean(KEY_INCLUDE_ASK_EVERY_TIME);
        boolean isCancelItemShowed = getArguments().getBoolean(KEY_SHOW_CANCEL_ITEM);
        if (includeAskEveryTime || isCancelItemShowed) {