diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 515b95cd951db..82cf07355a568 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -1648,6 +1648,7 @@ public final class InputMethodManager { * * @param userId user ID to query * @return {@link List} of {@link InputMethodInfo}. + * @see #getEnabledInputMethodSubtypeListAsUser(String, boolean, int) * @hide */ @RequiresPermission(value = Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true) @@ -1675,6 +1676,27 @@ public final class InputMethodManager { UserHandle.myUserId()); } + /** + * Returns a list of enabled input method subtypes for the specified input method info for the + * specified user. + * + * @param imeId IME ID to be queried about. + * @param allowsImplicitlyEnabledSubtypes {@code true} to include implicitly enabled subtypes. + * @param userId user ID to be queried about. + * {@link Manifest.permission#INTERACT_ACROSS_USERS_FULL} is required if this is + * different from the calling process user ID. + * @return {@link List} of {@link InputMethodSubtype}. + * @see #getEnabledInputMethodListAsUser(int) + * @hide + */ + @NonNull + @RequiresPermission(value = Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true) + public List getEnabledInputMethodSubtypeListAsUser( + @NonNull String imeId, boolean allowsImplicitlyEnabledSubtypes, @UserIdInt int userId) { + return IInputMethodManagerGlobalInvoker.getEnabledInputMethodSubtypeList( + Objects.requireNonNull(imeId), allowsImplicitlyEnabledSubtypes, userId); + } + /** * @deprecated Use {@link InputMethodService#showStatusIcon(int)} instead. This method was * intended for IME developers who should be accessing APIs through the service. APIs in this