From 1895f8b5f25b6b6c70a8e0c64a2583680cc97d93 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Tue, 28 Apr 2020 15:41:37 -0700 Subject: [PATCH] Move ImeAwareTextEdit to android.widget Allows it to be used in more projects Bug: 154161590 Test: Manually opened each setting that was impacted Change-Id: Ife59074e5f8ffa76c2c81cca4022ca200bb59526 --- res/layout/crypt_keeper_password_field.xml | 2 +- res/layout/crypt_keeper_pin_field.xml | 2 +- res/layout/fingerprint_rename_dialog.xml | 2 +- src/com/android/settings/CryptKeeper.java | 2 +- .../fingerprint/FingerprintSettings.java | 2 +- .../settings/password/ChooseLockPassword.java | 2 +- .../password/ConfirmLockPassword.java | 2 +- .../settings/widget/ImeAwareEditText.java | 92 ------------------- .../widget/ScrollToParentEditText.java | 1 + 9 files changed, 8 insertions(+), 99 deletions(-) delete mode 100644 src/com/android/settings/widget/ImeAwareEditText.java 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