From 76bf20fce722332105aa00d74698c921c78c0d41 Mon Sep 17 00:00:00 2001 From: Ahaan Ugale Date: Mon, 10 May 2021 13:20:06 -0700 Subject: [PATCH] Make InputMethodInfo#showInInputMethodPicker public. Allows custom Input Method Pickers to exclude relevant IMEs, like the system picker does now. Fix: 184890628 Test: atest InputMethodInfoTest InputMethodManagerTest Change-Id: I20033de2f6679ed8cd538de66e157f737792d847 --- core/api/current.txt | 1 + core/java/android/view/inputmethod/InputMethodInfo.java | 7 ++++--- .../inputmethod/InputMethodSubtypeSwitchingController.java | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index cb61bbc746e55..ef98e97bb855b 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -51977,6 +51977,7 @@ package android.view.inputmethod { method public int getSubtypeCount(); method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager); method public CharSequence loadLabel(android.content.pm.PackageManager); + method public boolean shouldShowInInputMethodPicker(); method public boolean suppressesSpellChecker(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator CREATOR; diff --git a/core/java/android/view/inputmethod/InputMethodInfo.java b/core/java/android/view/inputmethod/InputMethodInfo.java index c26b302db9834..9b463bb9538fd 100644 --- a/core/java/android/view/inputmethod/InputMethodInfo.java +++ b/core/java/android/view/inputmethod/InputMethodInfo.java @@ -638,10 +638,11 @@ public final class InputMethodInfo implements Parcelable { } /** - * Return {@code true} if this input method should be shown in the IME picker. - * @hide + * Returns {@code true} if this input method should be shown in menus for selecting an Input + * Method, such as the system Input Method Picker. This is {@code false} if the IME is intended + * to be accessed programmatically. */ - public boolean showInInputMethodPicker() { + public boolean shouldShowInInputMethodPicker() { return mShowInInputMethodPicker; } diff --git a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java index 2969e53f2ba67..c340a2b778746 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodSubtypeSwitchingController.java @@ -196,7 +196,7 @@ final class InputMethodSubtypeSwitchingController { final int numImes = imis.size(); for (int i = 0; i < numImes; ++i) { final InputMethodInfo imi = imis.get(i); - if (forImeMenu && !imi.showInInputMethodPicker()) { + if (forImeMenu && !imi.shouldShowInInputMethodPicker()) { continue; } final List explicitlyOrImplicitlyEnabledSubtypeList =