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

Commit 6b4db8c0 authored by Muralidhar Reddy's avatar Muralidhar Reddy
Browse files

[MEP] Update switchToSubscription API in KeyGuardEsimArea and...

[MEP] Update switchToSubscription API in KeyGuardEsimArea and MultiSimSettingController to switchToSubscription with port index API.

From android T, devices might support multiple enabled profiles(MEP) on eSIM. Apps targeting android T, should not use switchToSubscription(without port) API for disable subcription, instead use the newly introduced switchToSubscription with port API. Otherwise RuntimeException is thrown.

Bug: 218393363
Test: build
Change-Id: I27e6917c818a9133aff5509dda2888521182606d
parent 62292698
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {
    private static final String TAG = "KeyguardEsimArea";
    private static final String PERMISSION_SELF = "com.android.systemui.permission.SELF";

    private int mSubscriptionId;
    private EuiccManager mEuiccManager;

    private BroadcastReceiver mReceiver =
@@ -87,6 +88,10 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {
        setOnClickListener(this);
    }

    public void setSubscriptionId(int subscriptionId) {
        mSubscriptionId = subscriptionId;
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
@@ -113,6 +118,12 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        SubscriptionInfo sub = SubscriptionManager.from(mContext)
                .getActiveSubscriptionInfo(mSubscriptionId);
        if (sub == null) {
            Log.e(TAG, "No active subscription with subscriptionId: " + mSubscriptionId);
            return;
        }
        Intent intent = new Intent(ACTION_DISABLE_ESIM);
        intent.setPackage(mContext.getPackageName());
        PendingIntent callbackIntent = PendingIntent.getBroadcastAsUser(
@@ -120,7 +131,7 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {
            0 /* requestCode */,
            intent,
            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE_UNAUDITED, UserHandle.SYSTEM);
        mEuiccManager
                .switchToSubscription(SubscriptionManager.INVALID_SUBSCRIPTION_ID, callbackIntent);
        mEuiccManager.switchToSubscription(
                SubscriptionManager.INVALID_SUBSCRIPTION_ID, sub.getPortIndex(), callbackIntent);
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -37,8 +37,9 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
        super(context, attrs);
    }

    public void setEsimLocked(boolean locked) {
    public void setEsimLocked(boolean locked, int subscriptionId) {
        KeyguardEsimArea esimButton = findViewById(R.id.keyguard_esim_area);
        esimButton.setSubscriptionId(subscriptionId);
        esimButton.setVisibility(locked ? View.VISIBLE : View.GONE);
    }

+1 −1
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ public class KeyguardSimPinViewController
            showDefaultMessage();
        }

        mView.setEsimLocked(KeyguardEsimArea.isEsimLocked(mView.getContext(), mSubId));
        mView.setEsimLocked(KeyguardEsimArea.isEsimLocked(mView.getContext(), mSubId), mSubId);
    }

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -169,6 +169,7 @@ public class KeyguardSimPukViewController
            boolean isEsimLocked = KeyguardEsimArea.isEsimLocked(mView.getContext(), mSubId);

            KeyguardEsimArea esimButton = mView.findViewById(R.id.keyguard_esim_area);
            esimButton.setSubscriptionId(mSubId);
            esimButton.setVisibility(isEsimLocked ? View.VISIBLE : View.GONE);
            mPasswordEntry.requestFocus();
        }