Merge "Update usage of ExtendedEditText.showSoftInput()." into udc-qpr-dev am: e8f4a6bbaf

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24314277

Change-Id: Ia9d2f57f11137e1972020ef505be5bd385bd3a86
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-08-12 01:23:16 +00:00
committed by Automerger Merge Worker
3 changed files with 24 additions and 8 deletions

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import android.graphics.Rect;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.inputmethod.InputMethodManager;
@@ -37,6 +38,8 @@ import java.util.Set;
* Note: AppCompatEditText doesn't fully support #displayCompletions and #onCommitCompletion
*/
public class ExtendedEditText extends EditText {
private static final String TAG = "ExtendedEditText";
private final Set<OnFocusChangeListener> mOnFocusChangeListeners = new HashSet<>();
private boolean mForceDisableSuggestions = false;
@@ -89,9 +92,17 @@ public class ExtendedEditText extends EditText {
return false;
}
public void showKeyboard() {
/**
* Synchronously shows the soft input method.
*
* @param shouldFocus whether this EditText should also request focus.
* @return true if the keyboard is shown correctly and focus is given to this view (if
* applicable).
*/
public boolean showKeyboard(boolean shouldFocus) {
onKeyboardShown();
showSoftInput();
boolean focusResult = !shouldFocus || requestFocus();
return focusResult && showSoftInputInternal();
}
public void hideKeyboard() {
@@ -104,10 +115,15 @@ public class ExtendedEditText extends EditText {
.keyboardStateManager().setKeyboardState(SHOW);
}
private boolean showSoftInput() {
return requestFocus() &&
getContext().getSystemService(InputMethodManager.class)
.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT);
private boolean showSoftInputInternal() {
boolean result = false;
InputMethodManager imm = getContext().getSystemService(InputMethodManager.class);
if (imm != null) {
result = imm.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT);
} else {
Log.w(TAG, "Failed to retrieve InputMethodManager from the system.");
}
return result;
}
public void dispatchBackKey() {

View File

@@ -160,7 +160,7 @@ public class AllAppsSearchBarController
* Focuses the search field to handle key events.
*/
public void focusSearchField() {
mInput.showKeyboard();
mInput.showKeyboard(true /* shouldFocus */);
}
/**

View File

@@ -535,7 +535,7 @@ public class Folder extends AbstractFloatingView implements ClipPathView, DragSo
mFolderName.selectAll();
}
}
mFolderName.showKeyboard();
mFolderName.showKeyboard(true /* shouldFocus */);
mFolderName.displayCompletions(
Stream.of(mInfo.suggestedFolderNames.getLabels())
.filter(Objects::nonNull)