diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java index 64b443babde78..60eaad2699eea 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -69,7 +69,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout public void reset() { // start fresh mDismissing = false; - resetPasswordText(false /* animate */); + resetPasswordText(false /* animate */, false /* announce */); // if the user is currently locked out, enforce it. long deadline = mLockPatternUtils.getLockoutAttemptDeadline( KeyguardUpdateMonitor.getCurrentUser()); @@ -169,10 +169,10 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout mSecurityMessageDisplay.setMessage(getWrongPasswordStringId(), true); } } - resetPasswordText(true /* animate */); + resetPasswordText(true /* animate */, !matched /* announce deletion if no match */); } - protected abstract void resetPasswordText(boolean animate); + protected abstract void resetPasswordText(boolean animate, boolean announce); protected abstract String getPasswordText(); protected abstract void setPasswordEntryEnabled(boolean enabled); protected abstract void setPasswordEntryInputEnabled(boolean enabled); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java index 4abb795b267bf..7ea767c004fb5 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPINView.java @@ -60,6 +60,7 @@ public class KeyguardPINView extends KeyguardPinBasedInputView { R.dimen.disappear_y_translation); } + @Override protected void resetState() { super.resetState(); mSecurityMessageDisplay.setMessage(R.string.kg_pin_instructions, false); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java index 189f5b7dcfc77..b75f52987a928 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java @@ -72,6 +72,7 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView context, android.R.interpolator.fast_out_linear_in); } + @Override protected void resetState() { mSecurityMessageDisplay.setMessage(R.string.kg_password_instructions, false); final boolean wasDisabled = mPasswordEntry.isEnabled(); @@ -159,6 +160,7 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView // Poke the wakelock any time the text is selected or modified mPasswordEntry.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { mCallback.userActivity(); } @@ -175,6 +177,7 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView switchImeButton.setVisibility(View.VISIBLE); imeOrDeleteButtonVisible = true; switchImeButton.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { mCallback.userActivity(); // Leave the screen on a bit longer // Do not show auxiliary subtypes in password lock screen. @@ -202,7 +205,7 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView } @Override - protected void resetPasswordText(boolean animate) { + protected void resetPasswordText(boolean animate, boolean announce) { mPasswordEntry.setText(""); } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java index f14290af172d6..c8719f3f88e32 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java @@ -159,8 +159,8 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView } @Override - protected void resetPasswordText(boolean animate) { - mPasswordEntry.reset(animate); + protected void resetPasswordText(boolean animate, boolean announce) { + mPasswordEntry.reset(animate, announce); } @Override @@ -214,7 +214,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView public boolean onLongClick(View v) { // check for time-based lockouts if (mPasswordEntry.isEnabled()) { - resetPasswordText(true /* animate */); + resetPasswordText(true /* animate */, true /* announce */); } doHapticKeyClick(); return true; diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java index 2033159af7201..cfaf7b622eb7e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java @@ -71,6 +71,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { super(context, attrs); } + @Override public void resetState() { super.resetState(); if (DEBUG) Log.v(TAG, "Resetting state"); @@ -199,6 +200,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { Log.v(TAG, "supplyPinReportResult returned: " + result[0] + " " + result[1]); } post(new Runnable() { + @Override public void run() { onSimCheckResponse(result[0], result[1]); } @@ -206,6 +208,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { } catch (RemoteException e) { Log.e(TAG, "RemoteException for supplyPinReportResult:", e); post(new Runnable() { + @Override public void run() { onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1); } @@ -250,7 +253,7 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { if (entry.length() < 4) { // otherwise, display a message to the user, and don't submit. mSecurityMessageDisplay.setMessage(R.string.kg_invalid_sim_pin_hint, true); - resetPasswordText(true); + resetPasswordText(true /* animate */, true /* announce */); mCallback.userActivity(); return; } @@ -259,13 +262,16 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { if (mCheckSimPinThread == null) { mCheckSimPinThread = new CheckSimPin(mPasswordEntry.getText(), mSubId) { + @Override void onSimCheckResponse(final int result, final int attemptsRemaining) { post(new Runnable() { + @Override public void run() { if (mSimUnlockProgressDialog != null) { mSimUnlockProgressDialog.hide(); } - resetPasswordText(true /* animate */); + resetPasswordText(true /* animate */, + result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */); if (result == PhoneConstants.PIN_RESULT_SUCCESS) { KeyguardUpdateMonitor.getInstance(getContext()) .reportSimUnlocked(mSubId); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java index af882395ee79a..59c01cf481c7e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPukView.java @@ -106,7 +106,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { msg = R.string.kg_invalid_confirm_pin_hint; } } - resetPasswordText(true); + resetPasswordText(true /* animate */, true /* announce */); if (msg != 0) { mSecurityMessageDisplay.setMessage(msg, true); } @@ -163,6 +163,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { return displayMessage; } + @Override public void resetState() { super.resetState(); mStateMachine.reset(); @@ -242,6 +243,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { Log.v(TAG, "supplyPukReportResult returned: " + result[0] + " " + result[1]); } post(new Runnable() { + @Override public void run() { onSimLockChangedResponse(result[0], result[1]); } @@ -249,6 +251,7 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { } catch (RemoteException e) { Log.e(TAG, "RemoteException for supplyPukReportResult:", e); post(new Runnable() { + @Override public void run() { onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1); } @@ -316,13 +319,16 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView { if (mCheckSimPukThread == null) { mCheckSimPukThread = new CheckSimPuk(mPukText, mPinText, mSubId) { + @Override void onSimLockChangedResponse(final int result, final int attemptsRemaining) { post(new Runnable() { + @Override public void run() { if (mSimUnlockProgressDialog != null) { mSimUnlockProgressDialog.hide(); } - resetPasswordText(true /* animate */); + resetPasswordText(true /* animate */, + result != PhoneConstants.PIN_RESULT_SUCCESS /* announce */); if (result == PhoneConstants.PIN_RESULT_SUCCESS) { KeyguardUpdateMonitor.getInstance(getContext()) .reportSimUnlocked(mSubId); diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java index 7dba5455e6428..48737f9a9bfb4 100644 --- a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java +++ b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java @@ -268,7 +268,7 @@ public class PasswordTextView extends View { return charState; } - public void reset(boolean animated) { + public void reset(boolean animated, boolean announce) { String textbefore = mText; mText = ""; int length = mTextChars.size(); @@ -297,7 +297,9 @@ public class PasswordTextView extends View { if (!animated) { mTextChars.clear(); } - sendAccessibilityEventTypeViewTextChanged(textbefore, 0, textbefore.length(), 0); + if (announce) { + sendAccessibilityEventTypeViewTextChanged(textbefore, 0, textbefore.length(), 0); + } } void sendAccessibilityEventTypeViewTextChanged(String beforeText, int fromIndex,