No input instead of disabling password/pin entry

So that the keyboard does not come and go all the time.

Bug:21271425
Change-Id: If73109fca1417c43307dc6069307789031ffc607
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
index 1338ac7..943d5cf 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/ChooseLockPassword.java
@@ -21,6 +21,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.PasswordEntryKeyboardHelper;
 import com.android.internal.widget.PasswordEntryKeyboardView;
+import com.android.internal.widget.TextViewInputDisabler;
 import com.android.settings.notification.RedactionInterstitial;
 
 import android.app.Activity;
@@ -127,6 +128,7 @@
         private boolean mHasChallenge;
         private long mChallenge;
         private TextView mPasswordEntry;
+        private TextViewInputDisabler mPasswordEntryInputDisabler;
         private int mPasswordMinLength = LockPatternUtils.MIN_LOCK_PASSWORD_SIZE;
         private int mPasswordMaxLength = 16;
         private int mPasswordMinLetters = 0;
@@ -255,6 +257,7 @@
             mPasswordEntry = (TextView) view.findViewById(R.id.password_entry);
             mPasswordEntry.setOnEditorActionListener(this);
             mPasswordEntry.addTextChangedListener(this);
+            mPasswordEntryInputDisabler = new TextViewInputDisabler(mPasswordEntry);
 
             final Activity activity = getActivity();
             mKeyboardHelper = new PasswordEntryKeyboardHelper(activity,
@@ -315,7 +318,7 @@
         public void onResume() {
             super.onResume();
             updateStage(mUiStage);
-            mPasswordEntry.setEnabled(true);
+            mPasswordEntryInputDisabler.setInputEnabled(true);
             mKeyboardView.requestFocus();
         }
 
@@ -517,7 +520,7 @@
         }
 
         private void startVerifyPassword(final String pin, final boolean wasSecureBefore) {
-            mPasswordEntry.setEnabled(false);
+            mPasswordEntryInputDisabler.setInputEnabled(false);
             setNextEnabled(false);
             if (mPendingLockCheck != null) {
                 mPendingLockCheck.cancel(false);
@@ -531,7 +534,7 @@
                     new LockPatternChecker.OnVerifyCallback() {
                         @Override
                         public void onVerified(byte[] token) {
-                            mPasswordEntry.setEnabled(true);
+                            mPasswordEntryInputDisabler.setInputEnabled(true);
                             setNextEnabled(true);
                             mPendingLockCheck = null;
 
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java
index 388fde7..c1d8adb 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/ConfirmLockPassword.java
@@ -22,6 +22,7 @@
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.widget.LockPatternChecker;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.TextViewInputDisabler;
 
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
@@ -66,6 +67,7 @@
                 = "confirm_lock_password_fragment.key_num_wrong_confirm_attempts";
         private static final long ERROR_MESSAGE_TIMEOUT = 3000;
         private TextView mPasswordEntry;
+        private TextViewInputDisabler mPasswordEntryInputDisabler;
         private LockPatternUtils mLockPatternUtils;
         private AsyncTask<?, ?, ?> mPendingLockCheck;
         private TextView mHeaderTextView;
@@ -100,6 +102,7 @@
 
             mPasswordEntry = (TextView) view.findViewById(R.id.password_entry);
             mPasswordEntry.setOnEditorActionListener(this);
+            mPasswordEntryInputDisabler = new TextViewInputDisabler(mPasswordEntry);
 
             mHeaderTextView = (TextView) view.findViewById(R.id.headerText);
             mDetailsTextView = (TextView) view.findViewById(R.id.detailsText);
@@ -169,7 +172,7 @@
             if (deadline != 0) {
                 handleAttemptLockout(deadline);
             } else {
-                mPasswordEntry.setEnabled(true);
+                mPasswordEntryInputDisabler.setInputEnabled(true);
             }
         }
 
@@ -187,7 +190,7 @@
         }
 
         private void handleNext() {
-            mPasswordEntry.setEnabled(false);
+            mPasswordEntryInputDisabler.setInputEnabled(false);
             if (mPendingLockCheck != null) {
                 mPendingLockCheck.cancel(false);
             }
@@ -259,7 +262,7 @@
         }
 
         private void onPasswordChecked(boolean matched, Intent intent) {
-            mPasswordEntry.setEnabled(true);
+            mPasswordEntryInputDisabler.setInputEnabled(true);
             if (matched) {
                 getActivity().setResult(RESULT_OK, intent);
                 getActivity().finish();
@@ -276,7 +279,7 @@
 
         private void handleAttemptLockout(long elapsedRealtimeDeadline) {
             long elapsedRealtime = SystemClock.elapsedRealtime();
-            mPasswordEntry.setEnabled(false);
+            mPasswordEntryInputDisabler.setInputEnabled(false);
             mCountdownTimer = new CountDownTimer(
                     elapsedRealtimeDeadline - elapsedRealtime,
                     LockPatternUtils.FAILED_ATTEMPT_COUNTDOWN_INTERVAL_MS) {
@@ -291,7 +294,7 @@
 
                 @Override
                 public void onFinish() {
-                    mPasswordEntry.setEnabled(true);
+                    mPasswordEntryInputDisabler.setInputEnabled(true);
                     mErrorTextView.setText("");
                     mNumWrongConfirmAttempts = 0;
                 }