summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yohei Yukawa <yukawa@google.com> 2016-02-17 21:36:40 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-02-17 21:36:41 +0000
commitc8d215b434ebf64bf5ea03de9df1ac628540155b (patch)
tree2081cd2692209f53f8fd277e02907ae774158983
parent181d907d2416dcf780640f3c3fb13623acc187a1 (diff)
parent859df05cc081f9390c3c0f4e816b39a8aadd8fd7 (diff)
Merge "Make sure at least one IME is enabled." into nyc-dev
-rw-r--r--services/core/java/com/android/server/InputMethodManagerService.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index f522288884f8..7770d532d226 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -3004,6 +3004,25 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
}
}
+ // TODO: The following code should find better place to live.
+ if (!resetDefaultEnabledIme) {
+ boolean enabledImeFound = false;
+ final List<InputMethodInfo> enabledImes = mSettings.getEnabledInputMethodListLocked();
+ final int N = enabledImes.size();
+ for (int i = 0; i < N; ++i) {
+ final InputMethodInfo imi = enabledImes.get(i);
+ if (mMethodList.contains(imi)) {
+ enabledImeFound = true;
+ break;
+ }
+ }
+ if (!enabledImeFound) {
+ Slog.i(TAG, "All the enabled IMEs are gone. Reset default enabled IMEs.");
+ resetDefaultEnabledIme = true;
+ resetSelectedInputMethodAndSubtypeLocked("");
+ }
+ }
+
if (resetDefaultEnabledIme) {
final ArrayList<InputMethodInfo> defaultEnabledIme =
InputMethodUtils.getDefaultEnabledImes(mContext, mSystemReady, mMethodList);