diff options
| author | 2017-05-24 15:33:13 -0700 | |
|---|---|---|
| committer | 2017-06-06 16:12:06 -0700 | |
| commit | 12f2de4f4fcdb5a20ddca80c340076bcc09cc8ea (patch) | |
| tree | 5cfef45fe365f5ca9e61fb70b6a2253440515db4 | |
| parent | e5ef67692ea9c53786ab82b458e0a5e8e34fdfac (diff) | |
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
5 files changed, 25 insertions, 13 deletions
diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml index 7d47881ddd0d..f0dec762abc6 100644 --- a/packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml +++ b/packages/SystemUI/res-keyguard/layout/keyguard_sim_pin_view.xml @@ -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" /> diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml index aaa53ee66357..119b3ee11335 100644 --- a/packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml +++ b/packages/SystemUI/res-keyguard/layout/keyguard_sim_puk_view.xml @@ -48,9 +48,10 @@ android:layoutDirection="ltr" > <include layout="@layout/keyguard_esim_area" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/eca_overlap" /> + android:id="@+id/keyguard_esim_area" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/eca_overlap" /> <RelativeLayout android:id="@+id/row0" diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java index 3fd950b42c9a..6a86bb2b491f 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardEsimArea.java @@ -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(); + } + } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java index d5be186ad166..4c7b48d1f438 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPinView.java @@ -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 diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java index 61a1488b7a96..d8163ba65766 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSimPukView.java @@ -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 |