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

Commit 12f2de4f authored by qingxi's avatar qingxi
Browse files

Only show the "Disable eSIM" when eSIM profile is enabled

Before this CL, we always show "Disable eSIM" button in SIM lock screen
if the device has eSIM chip. This may make the user who has never used
eSIM or currently is not activated the eSIM Profile confused. This CL
makes the "Disable eSIM" button only be shown iff the device has eSIM
chip and the current activated Profile is eSIM profile.

Bug: 37518023
Test: E2E
Change-Id: Id5a1325f49733528a370ec7145fe49731243bcf7
parent e5ef6769
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@
            android:layoutDirection="ltr"
            >
        <include layout="@layout/keyguard_esim_area"
             android:id="@+id/keyguard_esim_area"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="@dimen/eca_overlap" />
+4 −3
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@
            android:layoutDirection="ltr"
            >
        <include layout="@layout/keyguard_esim_area"
            android:id="@+id/keyguard_esim_area"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/eca_overlap" />
+8 −4
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
import android.telephony.SubscriptionManager;
import android.telephony.euicc.EuiccManager;

import java.lang.ref.WeakReference;
@@ -46,10 +47,6 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {
    public KeyguardEsimArea(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        mEuiccManager = (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
        if (mEuiccManager.isEnabled()) {
            setVisibility(View.VISIBLE);
        }
        setOnClickListener(this);
    }

@@ -58,4 +55,11 @@ class KeyguardEsimArea extends Button implements View.OnClickListener {
        // STOPSHIP(b/37353596): use EuiccManager API to disable current carrier.
    }

    public static boolean isEsimLocked(Context context, int subId) {
        EuiccManager euiccManager =
                (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
        return euiccManager.isEnabled()
                && SubscriptionManager.from(context).getActiveSubscriptionInfo(subId).isEmbedded();
    }

}
+5 −3
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;

@@ -78,6 +79,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
        if (DEBUG) Log.v(TAG, "Resetting state");
        KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
        mSubId = monitor.getNextSubIdForState(IccCardConstants.State.PIN_REQUIRED);
        boolean isEsimLocked = KeyguardEsimArea.isEsimLocked(mContext, mSubId);
        if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
            int count = TelephonyManager.getDefault().getSimCount();
            Resources rez = getResources();
@@ -93,14 +95,14 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
                    color = info.getIconTint();
                }
            }
            EuiccManager euiccManager =
                    (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
            if (euiccManager.isEnabled()) {
            if (isEsimLocked) {
                msg = msg + " " + rez.getString(R.string.kg_sim_lock_instructions_esim);
            }
            mSecurityMessageDisplay.setMessage(msg);
            mSimImageView.setImageTintList(ColorStateList.valueOf(color));
        }
        KeyguardEsimArea esimButton = findViewById(R.id.keyguard_esim_area);
        esimButton.setVisibility(isEsimLocked ? View.VISIBLE : View.GONE);
    }

    @Override
+7 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccManager;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;

@@ -119,6 +120,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
            state = ENTER_PUK;
            KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(mContext);
            mSubId = monitor.getNextSubIdForState(IccCardConstants.State.PUK_REQUIRED);
            boolean isEsimLocked = KeyguardEsimArea.isEsimLocked(mContext, mSubId);
            if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
                int count = TelephonyManager.getDefault().getSimCount();
                Resources rez = getResources();
@@ -134,16 +136,18 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
                        color = info.getIconTint();
                    }
                }
                EuiccManager euiccManager =
                        (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
                if (euiccManager.isEnabled()) {
                if (isEsimLocked) {
                    msg = msg + " " + rez.getString(R.string.kg_sim_lock_instructions_esim);
                }
                mSecurityMessageDisplay.setMessage(msg);
                mSimImageView.setImageTintList(ColorStateList.valueOf(color));
            }
            KeyguardEsimArea esimButton = findViewById(R.id.keyguard_esim_area);
            esimButton.setVisibility(isEsimLocked ? View.VISIBLE : View.GONE);
            mPasswordEntry.requestFocus();
        }


    }

    @Override