diff options
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 |