Revert "Make IME handling deterministic in CryptKeeper"
This reverts commit 4ae46cd1ad0725c8049c3954de19874df8483983.
Bug: 36148078
Change-Id: I776ad2e6ba0eabacb3d6be6de23ba37fe5ce7bc7
diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java
index 99c6e8b..94ea2e7 100644
--- a/src/com/android/settings/CryptKeeper.java
+++ b/src/com/android/settings/CryptKeeper.java
@@ -57,6 +57,7 @@
import android.view.inputmethod.InputMethodManager;
import android.view.inputmethod.InputMethodSubtype;
import android.widget.Button;
+import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -65,7 +66,6 @@
import com.android.internal.widget.LockPatternView;
import com.android.internal.widget.LockPatternView.Cell;
import com.android.internal.widget.LockPatternView.DisplayMode;
-import com.android.settings.widget.ImeAwareEditText;
import java.util.List;
@@ -122,7 +122,7 @@
private boolean mCooldown = false;
PowerManager.WakeLock mWakeLock;
- private ImeAwareEditText mPasswordEntry;
+ private EditText mPasswordEntry;
private LockPatternView mLockPatternView;
/** Number of calls to {@link #notifyUser()} to ignore before notifying. */
private int mNotificationCountdown = 0;
@@ -277,7 +277,9 @@
// Reenable the password entry
if (mPasswordEntry != null) {
mPasswordEntry.setEnabled(true);
- mPasswordEntry.scheduleShowSoftInput();
+ final InputMethodManager imm = (InputMethodManager) getSystemService(
+ Context.INPUT_METHOD_SERVICE);
+ imm.showSoftInput(mPasswordEntry, 0);
setBackFunctionality(true);
}
}
@@ -742,7 +744,7 @@
private void passwordEntryInit() {
// Password/pin case
- mPasswordEntry = (ImeAwareEditText) findViewById(R.id.passwordEntry);
+ mPasswordEntry = (EditText) findViewById(R.id.passwordEntry);
if (mPasswordEntry != null){
mPasswordEntry.setOnEditorActionListener(this);
mPasswordEntry.requestFocus();
@@ -795,13 +797,16 @@
}
}
- // Make sure that the IME is shown when everything becomes ready.
+ // Asynchronously throw up the IME, since there are issues with requesting it to be shown
+ // immediately.
if (mLockPatternView == null && !mCooldown) {
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
- if (mPasswordEntry != null) {
- mPasswordEntry.scheduleShowSoftInput();
- }
+ mHandler.postDelayed(new Runnable() {
+ @Override public void run() {
+ imm.showSoftInputUnchecked(0, null);
+ }
+ }, 0);
}
updateEmergencyCallButtonState();