diff options
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodManagerService.java | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 1dfdc553641e..a2ba1674f33b 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -2868,7 +2868,7 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl. String enabledImeIdsStr = settings.getEnabledInputMethodsStr(); for (var imi : settings.getMethodList()) { if (!imi.isSystem()) { - return; + continue; } enabledImeIdsStr = InputMethodUtils.concatEnabledImeIds(enabledImeIdsStr, imi.getId()); } @@ -2881,19 +2881,18 @@ public final class InputMethodManagerService implements IInputMethodManagerImpl. if (TextUtils.isEmpty(id)) { final InputMethodInfo imi = InputMethodInfoUtils.getMostApplicableDefaultIME( settings.getEnabledInputMethodList()); - if (imi == null) { - return; + if (imi != null) { + id = imi.getId(); + settings.putSelectedInputMethod(id); } - id = imi.getId(); - settings.putSelectedInputMethod(id); } + final var bindingController = getInputMethodBindingController(userId); + bindingController.setSelectedMethodId(id); + // Also re-initialize controllers. final var userData = getUserData(userId); userData.mSwitchingController.resetCircularListLocked(mContext, settings); userData.mHardwareKeyboardShortcutController.update(settings); - - final var bindingController = getInputMethodBindingController(userId); - bindingController.setSelectedMethodId(id); } @GuardedBy("ImfLock.class") |