diff --git a/res/layout/crypt_keeper_password_field.xml b/res/layout/crypt_keeper_password_field.xml index 9a06fd31b87..849c365d915 100644 --- a/res/layout/crypt_keeper_password_field.xml +++ b/res/layout/crypt_keeper_password_field.xml @@ -22,7 +22,7 @@ - - - showSoftInputIfNecessary(); - - public ImeAwareEditText(Context context) { - super(context, null); - } - - public ImeAwareEditText(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public ImeAwareEditText(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public ImeAwareEditText(Context context, AttributeSet attrs, int defStyleAttr, - int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - /** - * This method is called back by the system when the system is about to establish a connection - * to the current input method. - * - *

This is a good and reliable signal to schedule a pending task to call - * {@link InputMethodManager#showSoftInput(View, int)}.

- * - * @param editorInfo context about the text input field. - * @return {@link InputConnection} to be passed to the input method. - */ - @Override - public InputConnection onCreateInputConnection(EditorInfo editorInfo) { - final InputConnection ic = super.onCreateInputConnection(editorInfo); - if (mHasPendingShowSoftInputRequest) { - removeCallbacks(mRunShowSoftInputIfNecessary); - post(mRunShowSoftInputIfNecessary); - } - return ic; - } - - private void showSoftInputIfNecessary() { - if (mHasPendingShowSoftInputRequest) { - final InputMethodManager imm = - getContext().getSystemService(InputMethodManager.class); - imm.showSoftInput(this, 0); - mHasPendingShowSoftInputRequest = false; - } - } - - public void scheduleShowSoftInput() { - final InputMethodManager imm = getContext().getSystemService(InputMethodManager.class); - if (imm.isActive(this)) { - // This means that ImeAwareEditText is already connected to the IME. - // InputMethodManager#showSoftInput() is guaranteed to pass client-side focus check. - mHasPendingShowSoftInputRequest = false; - removeCallbacks(mRunShowSoftInputIfNecessary); - imm.showSoftInput(this, 0); - return; - } - - // Otherwise, InputMethodManager#showSoftInput() should be deferred after - // onCreateInputConnection(). - mHasPendingShowSoftInputRequest = true; - } -} diff --git a/src/com/android/settings/widget/ScrollToParentEditText.java b/src/com/android/settings/widget/ScrollToParentEditText.java index 9d5394bb8fa..f83e876c6d8 100644 --- a/src/com/android/settings/widget/ScrollToParentEditText.java +++ b/src/com/android/settings/widget/ScrollToParentEditText.java @@ -21,6 +21,7 @@ import android.graphics.Rect; import android.util.AttributeSet; import android.view.View; import android.view.ViewParent; +import android.widget.ImeAwareEditText; /** * An EditText that, instead of scrolling to itself when focused, will request scrolling to its