summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/res/res/layout/keyguard_navigation.xml2
-rw-r--r--core/res/res/layout/keyguard_password_view.xml2
-rw-r--r--core/res/res/layout/keyguard_sim_pin_view.xml21
-rw-r--r--core/res/res/layout/keyguard_sim_puk_view.xml145
-rwxr-xr-xcore/res/res/values/strings.xml18
-rw-r--r--core/res/res/values/symbols.xml5
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/EmergencyButton.java18
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java174
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java2
9 files changed, 189 insertions, 198 deletions
diff --git a/core/res/res/layout/keyguard_navigation.xml b/core/res/res/layout/keyguard_navigation.xml
index d52bcb449b4d..c29dc707d368 100644
--- a/core/res/res/layout/keyguard_navigation.xml
+++ b/core/res/res/layout/keyguard_navigation.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
**
-** Copyright 2008, The Android Open Source Project
+** Copyright 2012, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License")
** you may not use this file except in compliance with the License.
diff --git a/core/res/res/layout/keyguard_password_view.xml b/core/res/res/layout/keyguard_password_view.xml
index e8ca98bb3a33..f7071d2c6403 100644
--- a/core/res/res/layout/keyguard_password_view.xml
+++ b/core/res/res/layout/keyguard_password_view.xml
@@ -67,10 +67,10 @@
<ImageButton android:id="@+id/delete_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
android:src="@*android:drawable/ic_input_delete"
android:clickable="true"
android:padding="8dip"
- android:layout_gravity="center_vertical"
android:background="?android:attr/selectableItemBackground"
android:visibility="gone"
/>
diff --git a/core/res/res/layout/keyguard_sim_pin_view.xml b/core/res/res/layout/keyguard_sim_pin_view.xml
index 57c7ac61d6ca..91dd6d034110 100644
--- a/core/res/res/layout/keyguard_sim_pin_view.xml
+++ b/core/res/res/layout/keyguard_sim_pin_view.xml
@@ -51,7 +51,7 @@
android:layout_marginEnd="4dip"
android:layout_marginStart="4dip"
android:gravity="center_vertical"
- android:background="@android:drawable/edit_text">
+ android:background="#70000000">
<!-- displays dots as user enters pin -->
<EditText android:id="@+id/sim_pin_entry"
@@ -60,19 +60,26 @@
android:layout_weight="1"
android:maxLines="1"
android:singleLine="true"
- android:textAppearance="?android:attr/textAppearanceLargeInverse"
- android:textColor="@*android:color/primary_text_holo_light"
- android:textStyle="bold"
+ android:gravity="center_horizontal"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="@*android:dimen/keyguard_lockscreen_pin_margin_left"
+ android:textStyle="normal"
android:inputType="textPassword"
+ android:textSize="36sp"
+ android:background="@null"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="#ffffffff"
android:imeOptions="flagForceAscii|actionDone"
/>
<ImageButton android:id="@+id/delete_button"
- android:src="@android:drawable/ic_input_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginEnd="-3dip"
- android:layout_marginBottom="-3dip"
+ android:layout_gravity="center_vertical"
+ android:src="@android:drawable/ic_input_delete"
+ android:clickable="true"
+ android:padding="8dip"
+ android:background="?android:attr/selectableItemBackground"
/>
</LinearLayout>
diff --git a/core/res/res/layout/keyguard_sim_puk_view.xml b/core/res/res/layout/keyguard_sim_puk_view.xml
index 8bb76c131213..0c41a346d72c 100644
--- a/core/res/res/layout/keyguard_sim_puk_view.xml
+++ b/core/res/res/layout/keyguard_sim_puk_view.xml
@@ -16,6 +16,8 @@
** limitations under the License.
*/
-->
+<!-- This is the SIM PUK view that allows the user to recover their device by entering the
+ carrier-provided PUK code and entering a new SIM PIN for it. -->
<com.android.internal.policy.impl.keyguard.KeyguardSimPukView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyguard_sim_puk_view"
@@ -24,98 +26,62 @@
android:orientation="vertical"
android:gravity="center_horizontal">
- <include layout="@layout/keyguard_navigation"/>
-
- <Space
- android:layout_width="match_parent"
+ <LinearLayout
android:layout_height="0dip"
- android:layout_weight="1"/>
-
- <LinearLayout android:id="@+id/topDisplayGroup"
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="wrap_content"
- android:layout_weight="1"
- android:layout_height="match_parent"
- android:paddingEnd="0dip"
- android:layout_marginEnd="10dip"
- android:layout_marginStart="10dip">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginEnd="6dip"
- android:layout_marginStart="6dip"
- android:gravity="center_vertical"
- android:background="@*android:drawable/edit_text">
-
- <!-- displays dots as user enters puk -->
- <EditText android:id="@+id/sim_puk_entry"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:maxLines="1"
- android:textStyle="bold"
- android:inputType="textPassword"
- android:textColor="#000"
- android:hint="@string/kg_puk_enter_puk_hint"
- />
-
- <ImageButton android:id="@+id/puk_delete_button"
- android:src="@*android:drawable/ic_input_delete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="-3dip"
- android:layout_marginBottom="-3dip"
- />
-
- </LinearLayout>
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center">
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_lockscreen_sim"/>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginEnd="6dip"
- android:layout_marginStart="6dip"
- android:gravity="center_vertical"
- android:background="@*android:drawable/edit_text">
+ <include layout="@layout/keyguard_navigation"/>
- <!-- displays dots as user enters new pin -->
- <EditText android:id="@+id/sim_pin_entry"
- android:layout_width="0dip"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:maxLines="1"
- android:textStyle="bold"
- android:inputType="textPassword"
- android:textColor="#000"
- android:hint="@string/kg_puk_enter_pin_hint"
- />
-
- <ImageButton android:id="@+id/pin_delete_button"
- android:src="@*android:drawable/ic_input_delete"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="-3dip"
- android:layout_marginBottom="-3dip"
- />
- </LinearLayout>
-
- </LinearLayout>
-
- </LinearLayout>
+ </LinearLayout>
+ <!-- Password entry field -->
+ <!-- Note: the entire container is styled to look like the edit field,
+ since the backspace/IME switcher looks better inside -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:layout_marginEnd="4dip"
+ android:layout_marginStart="4dip"
+ android:gravity="center_vertical"
+ android:background="#70000000">
+
+ <!-- displays dots as user enters pin -->
+ <EditText android:id="@+id/sim_pin_entry"
+ android:layout_width="0dip"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:maxLines="1"
+ android:singleLine="true"
+ android:gravity="center_horizontal"
+ android:layout_gravity="center_vertical"
+ android:layout_marginStart="@*android:dimen/keyguard_lockscreen_pin_margin_left"
+ android:textStyle="normal"
+ android:inputType="textPassword"
+ android:textSize="36sp"
+ android:background="@null"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textColor="#ffffffff"
+ android:imeOptions="flagForceAscii|actionDone"
+ />
+
+ <ImageButton android:id="@+id/delete_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:src="@android:drawable/ic_input_delete"
+ android:clickable="true"
+ android:padding="8dip"
+ android:background="?android:attr/selectableItemBackground"
+ />
</LinearLayout>
<!-- Numeric keyboard -->
@@ -125,9 +91,14 @@
android:layout_marginEnd="4dip"
android:paddingTop="4dip"
android:paddingBottom="4dip"
- android:background="#80ffffff"
+ android:background="#40000000"
android:keyBackground="@*android:drawable/btn_keyboard_key_ics"
android:clickable="true"
/>
+ <Space
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/kg_secure_padding_height"
+ android:background="@drawable/lockscreen_protection_pattern" />
+
</com.android.internal.policy.impl.keyguard.KeyguardSimPukView>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 68a4d282304a..51dc0d210e83 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3833,10 +3833,12 @@
<string name="kg_pin_instructions">Enter PIN</string>
<!-- Instructions for using the password unlock screen -->
<string name="kg_password_instructions">Enter Password</string>
- <!-- Hint shown in the PUK unlock screen PUK TextView -->
- <string name="kg_puk_enter_puk_hint">PUK code</string>
+ <!-- Hint shown in the PUK screen that asks the user to enter the PUK code given to them by their provider -->
+ <string name="kg_puk_enter_puk_hint">SIM is now disabled. Enter PUK code to continue. Contact carrier for details.</string>
<!-- Hint shown in the PUK unlock screen PIN TextView -->
- <string name="kg_puk_enter_pin_hint">New PIN code</string>
+ <string name="kg_puk_enter_pin_hint">Enter desired PIN code</string>
+ <!-- Message shown when the user needs to confirm the PIN they just entered in the PUK screen -->
+ <string name="kg_enter_confirm_pin_hint">Confirm desired PIN code</string>
<!-- Message shown in dialog while the device is unlocking the SIM card -->
<string name="kg_sim_unlock_progress_dialog_message">Unlocking SIM card\u2026</string>
<!-- Message shown when the user enters the wrong PIN code -->
@@ -3844,11 +3846,11 @@
<!-- Message shown when the user enters an invalid SIM pin password in PUK screen -->
<string name="kg_invalid_sim_pin_hint">Type a PIN that is 4 to 8 numbers.</string>
<!-- Message shown when the user enters an invalid PUK code in the PUK screen -->
- <string name="kg_invalid_sim_puk_hint">Type a PUK that is 8 numbers or longer.</string>
- <!-- Instructions for PUK unlock screen -->
- <string name="kg_sim_puk_recovery_hint">Type PUK and new PIN code</string>
+ <string name="kg_invalid_sim_puk_hint">PUK code should be 8 numbers or more.</string>
<!-- Message shown when the user enters an invalid PUK code -->
- <string name="kg_invalid_puk">The PUK you typed isn\'t correct.</string>
+ <string name="kg_invalid_puk">Re-enter the correct PUK code. Repeated attempts will permanently disable the SIM.</string>
+ <!-- String shown in PUK screen when PIN codes don't match -->
+ <string name="kg_invalid_confirm_pin_hint" product="default">PIN codes does not match</string>
<!-- Message shown when the user exceeds the maximum number of pattern attempts -->
<string name="kg_login_too_many_attempts">Too many pattern attempts</string>
<!-- Instructions show in account unlock screen allowing user to enter their email password -->
@@ -3864,7 +3866,7 @@
<!-- Hint text shown when user has too many failed password attempts in account unlock screen of keyguard -->
<string name="kg_login_account_recovery_hint">Forgot your username or password\?\nVisit <b>google.com/accounts/recovery</b>.</string>
<!-- Message shown while device checks username/password in account unlock screen of keyguard -->
- <string name="kg_login_checking_password">Checking\u2026</string>
+ <string name="kg_login_checking_password">Unlocking SIM\u2026</string>
<!-- Message shown in dialog when max number of attempts are reached for PIN screen of keyguard -->
<string name="kg_too_many_failed_pin_attempts_dialog_message">
You have incorrectly typed your PIN <xliff:g id="number">%d</xliff:g> times.
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 28abc98fab51..160495c6188d 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -1275,10 +1275,7 @@
<java-symbol type="id" name="glow_pad_view" />
<java-symbol type="id" name="sim_pin_entry" />
<java-symbol type="id" name="delete_button" />
- <java-symbol type="id" name="sim_puk_entry" />
<java-symbol type="id" name="sim_pin_entry" />
- <java-symbol type="id" name="puk_delete_button" />
- <java-symbol type="id" name="pin_delete_button" />
<java-symbol type="id" name="keyguard_user_avatar" />
<java-symbol type="id" name="keyguard_user_name" />
<java-symbol type="id" name="keyguard_transport_control" />
@@ -1409,6 +1406,8 @@
<java-symbol type="string" name="kg_failed_attempts_almost_at_wipe" />
<java-symbol type="string" name="kg_failed_attempts_now_wiping" />
<java-symbol type="string" name="kg_failed_attempts_almost_at_login" />
+ <java-symbol type="string" name="kg_enter_confirm_pin_hint" />
+ <java-symbol type="string" name="kg_invalid_confirm_pin_hint" />
<!-- From services -->
<java-symbol type="anim" name="screen_rotate_0_enter" />
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/EmergencyButton.java b/policy/src/com/android/internal/policy/impl/keyguard/EmergencyButton.java
index 1828ea57e8b4..203ba3c6a071 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/EmergencyButton.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/EmergencyButton.java
@@ -98,11 +98,19 @@ public class EmergencyButton extends Button {
}
private void updateEmergencyCallButton(State simState, int phoneState) {
- boolean enabled = mLockPatternUtils.isEmergencyCallCapable()
- || (phoneState == TelephonyManager.CALL_STATE_OFFHOOK); // voice call in progress
- if (enabled && KeyguardUpdateMonitor.isSimLocked(simState)) {
- // Some countries can't handle emergency calls while SIM is locked.
- enabled = mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked();
+ boolean enabled = false;
+ if (phoneState == TelephonyManager.CALL_STATE_OFFHOOK) {
+ enabled = true; // always show "return to call" if phone is off-hook
+ } else if (mLockPatternUtils.isEmergencyCallCapable()) {
+ boolean simLocked = KeyguardUpdateMonitor.getInstance(mContext).isSimLocked();
+ if (simLocked) {
+ // Some countries can't handle emergency calls while SIM is locked.
+ enabled = mLockPatternUtils.isEmergencyCallEnabledWhileSimLocked();
+ } else {
+ // True if we need to show a secure screen (pin/pattern/SIM pin/SIM puk);
+ // hides emergency button on "Slide" screen if device is not secure.
+ enabled = mLockPatternUtils.isSecure();
+ }
}
mLockPatternUtils.updateEmergencyCallButtonState(this, phoneState, enabled,
KeyguardViewManager.USE_UPPER_CASE, false);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
index d4bed2552f22..2015826877b5 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSimPukView.java
@@ -19,13 +19,11 @@ import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
-import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.text.Editable;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
@@ -42,16 +40,11 @@ import com.android.internal.widget.PasswordEntryKeyboardView;
import com.android.internal.R;
public class KeyguardSimPukView extends LinearLayout implements View.OnClickListener,
- View.OnFocusChangeListener, KeyguardSecurityView, OnEditorActionListener {
+ KeyguardSecurityView, OnEditorActionListener {
private static final int DIGIT_PRESS_WAKE_MILLIS = 5000;
- private TextView mPukText;
- private TextView mPinText;
- private TextView mFocusedEntry;
-
- private View mDelPukButton;
- private View mDelPinButton;
+ private View mDeleteButton;
private ProgressDialog mSimUnlockProgressDialog = null;
private KeyguardSecurityCallback mCallback;
@@ -66,6 +59,60 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
private volatile boolean mCheckInProgress;
+ private TextView mSimPinEntry;
+
+ private String mPukText;
+
+ private String mPinText;
+ private StateMachine mStateMachine = new StateMachine();
+
+ private class StateMachine {
+ final int ENTER_PUK = 0;
+ final int ENTER_PIN = 1;
+ final int CONFIRM_PIN = 2;
+ final int DONE = 3;
+ private int state = ENTER_PUK;
+
+ public void next() {
+ int msg = 0;
+ if (state == ENTER_PUK) {
+ if (checkPuk()) {
+ state = ENTER_PIN;
+ msg = R.string.kg_puk_enter_pin_hint;
+ } else {
+ msg = R.string.kg_invalid_sim_puk_hint;
+ }
+ } else if (state == ENTER_PIN) {
+ if (checkPin()) {
+ state = CONFIRM_PIN;
+ msg = R.string.kg_enter_confirm_pin_hint;
+ } else {
+ msg = R.string.kg_invalid_sim_pin_hint;
+ }
+ } else if (state == CONFIRM_PIN) {
+ if (confirmPin()) {
+ state = DONE;
+ msg = R.string.kg_login_checking_password;
+ updateSim();
+ } else {
+ msg = R.string.kg_invalid_confirm_pin_hint;
+ }
+ }
+ mSimPinEntry.setText(null);
+ if (msg != 0) {
+ mNavigationManager.setMessage(msg);
+ }
+ }
+
+ void reset() {
+ mPinText="";
+ mPukText="";
+ state = ENTER_PUK;
+ mNavigationManager.setMessage(R.string.kg_puk_enter_puk_hint);
+ mSimPinEntry.requestFocus();
+ }
+ }
+
public KeyguardSimPukView(Context context) {
this(context, null);
}
@@ -86,15 +133,10 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
mNavigationManager = new KeyguardNavigationManager(this);
- mPukText = (TextView) findViewById(R.id.sim_puk_entry);
- mPukText.setOnEditorActionListener(this);
- mPinText = (TextView) findViewById(R.id.sim_pin_entry);
- mPinText.setOnEditorActionListener(this);
- mDelPukButton = findViewById(R.id.puk_delete_button);
- mDelPukButton.setOnClickListener(this);
- mDelPinButton = findViewById(R.id.pin_delete_button);
- mDelPinButton.setOnClickListener(this);
-
+ mSimPinEntry = (TextView) findViewById(R.id.sim_pin_entry);
+ mSimPinEntry.setOnEditorActionListener(this);
+ mDeleteButton = findViewById(R.id.delete_button);
+ mDeleteButton.setOnClickListener(this);
mKeyboardView = (PasswordEntryKeyboardView) findViewById(R.id.keyboard);
mKeyboardHelper = new PasswordEntryKeyboardHelper(mContext, mKeyboardView, this, false,
new int[] {
@@ -106,22 +148,12 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
});
mKeyboardHelper.setKeyboardMode(PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC);
mKeyboardHelper.setEnableHaptics(mLockPatternUtils.isTactileFeedbackEnabled());
-
- mNavigationManager.setMessage(R.string.kg_sim_puk_recovery_hint);
-
- mPinText.setFocusableInTouchMode(true);
- mPinText.setOnFocusChangeListener(this);
- mPukText.setFocusableInTouchMode(true);
- mPukText.setOnFocusChangeListener(this);
-
- setFocusableInTouchMode(true);
-
reset();
}
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
- return mPukText.requestFocus(direction, previouslyFocusedRect);
+ return mSimPinEntry.requestFocus(direction, previouslyFocusedRect);
}
public boolean needsInput() {
@@ -182,18 +214,9 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
}
public void onClick(View v) {
- if (v == mDelPukButton) {
- if (mFocusedEntry != mPukText)
- mPukText.requestFocus();
- final Editable digits = mPukText.getEditableText();
- final int len = digits.length();
- if (len > 0) {
- digits.delete(len-1, len);
- }
- } else if (v == mDelPinButton) {
- if (mFocusedEntry != mPinText)
- mPinText.requestFocus();
- final Editable digits = mPinText.getEditableText();
+ if (v == mDeleteButton) {
+ mSimPinEntry.requestFocus();
+ final Editable digits = mSimPinEntry.getEditableText();
final int len = digits.length();
if (len > 0) {
digits.delete(len-1, len);
@@ -202,12 +225,6 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
mCallback.userActivity(DIGIT_PRESS_WAKE_MILLIS);
}
- @Override
- public void onFocusChange(View view, boolean hasFocus) {
- if (hasFocus)
- mFocusedEntry = (TextView) view;
- }
-
private Dialog getSimUnlockProgressDialog() {
if (mSimUnlockProgressDialog == null) {
mSimUnlockProgressDialog = new ProgressDialog(mContext);
@@ -223,32 +240,37 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
return mSimUnlockProgressDialog;
}
- private void checkPuk() {
+ private boolean checkPuk() {
// make sure the puk is at least 8 digits long.
- if (mPukText.getText().length() < 8) {
- // otherwise, display a message to the user, and don't submit.
- mNavigationManager.setMessage(R.string.kg_invalid_sim_puk_hint);
- mPukText.setText("");
- return;
+ if (mSimPinEntry.getText().length() >= 8) {
+ mPukText = mSimPinEntry.getText().toString();
+ return true;
}
+ return false;
+ }
+ private boolean checkPin() {
// make sure the PIN is between 4 and 8 digits
- if (mPinText.getText().length() < 4
- || mPinText.getText().length() > 8) {
- // otherwise, display a message to the user, and don't submit.
- mNavigationManager.setMessage(R.string.kg_invalid_sim_pin_hint);
- mPinText.setText("");
- return;
+ int length = mSimPinEntry.getText().length();
+ if (length >= 4 && length <= 8) {
+ mPinText = mSimPinEntry.getText().toString();
+ return true;
}
+ return false;
+ }
+ public boolean confirmPin() {
+ return mPinText.equals(mSimPinEntry.getText().toString());
+ }
+
+ private void updateSim() {
getSimUnlockProgressDialog().show();
if (!mCheckInProgress) {
mCheckInProgress = true;
- new CheckSimPuk(mPukText.getText().toString(),
- mPinText.getText().toString()) {
+ new CheckSimPuk(mPukText, mPinText) {
void onSimLockChangedResponse(final boolean success) {
- mPinText.post(new Runnable() {
+ post(new Runnable() {
public void run() {
if (mSimUnlockProgressDialog != null) {
mSimUnlockProgressDialog.hide();
@@ -256,9 +278,8 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
if (success) {
mCallback.dismiss(true);
} else {
+ mStateMachine.reset();
mNavigationManager.setMessage(R.string.kg_invalid_puk);
- mPukText.setText("");
- mPinText.setText("");
}
mCheckInProgress = false;
}
@@ -273,24 +294,10 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
// Check if this was the result of hitting the enter key
mCallback.userActivity(DIGIT_PRESS_WAKE_MILLIS);
if (event.getAction() == MotionEvent.ACTION_DOWN) {
- if (actionId == EditorInfo.IME_NULL
- || actionId == EditorInfo.IME_ACTION_DONE
+ if (actionId == EditorInfo.IME_NULL || actionId == EditorInfo.IME_ACTION_DONE
|| actionId == EditorInfo.IME_ACTION_NEXT) {
- if (view == mPukText && mPukText.getText().length() < 8) {
- mNavigationManager.setMessage(R.string.kg_invalid_sim_puk_hint);
- mPukText.setText("");
- mPukText.requestFocus();
- return true;
- } else if (view == mPinText) {
- if (mPinText.getText().length() < 4 || mPinText.getText().length() > 8) {
- mNavigationManager.setMessage(R.string.kg_invalid_sim_pin_hint);
- mPinText.setText("");
- mPinText.requestFocus();
- } else {
- checkPuk();
- }
- return true;
- }
+ mStateMachine.next();
+ return true;
}
}
return false;
@@ -303,10 +310,7 @@ public class KeyguardSimPukView extends LinearLayout implements View.OnClickList
@Override
public void reset() {
- mNavigationManager.setMessage(R.string.kg_sim_puk_recovery_hint);
- mPinText.setText("");
- mPukText.setText("");
- mPukText.requestFocus();
+ mStateMachine.reset();
}
@Override
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
index 701017d9b6ca..866194c8da31 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardStatusViewManager.java
@@ -184,8 +184,8 @@ class KeyguardStatusViewManager {
Settings.Secure.LOCK_SCREEN_OWNER_INFO_ENABLED, 1, UserHandle.USER_CURRENT) != 0;
String text = Settings.Secure.getStringForUser(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO,
UserHandle.USER_CURRENT);
- text = text != null ? text.trim() : null; // Remove trailing newlines
if (ownerInfoEnabled && !TextUtils.isEmpty(text)) {
+ text = text.trim(); // Remove trailing newlines
maybeSetUpperCaseText(mOwnerInfoView, text);
mOwnerInfoView.setVisibility(View.VISIBLE);
} else {