diff --git a/res/layout/crypt_keeper_password_field.xml b/res/layout/crypt_keeper_password_field.xml index eb89b70dcae..8102658e44a 100644 --- a/res/layout/crypt_keeper_password_field.xml +++ b/res/layout/crypt_keeper_password_field.xml @@ -21,7 +21,7 @@ switcher, if necessary. Assumed to be in a horizontal LinearLayout. --> - 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; - } -}