Fix a bug where disabled auxilialy IME is unexpectedly re-enabled
Bug: 7872918
This is a serious issue which the disabled system auxilialy IME is unexpectedly re-enabled by re-building internal IMI cache.
Change-Id: I0727cc973dfaea9823194021ce94af8665b98373
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/java/com/android/server/InputMethodManagerService.java
index 94e0bd4..8eb61dd 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/java/com/android/server/InputMethodManagerService.java
@@ -782,6 +782,9 @@
if (!isSystemIme(imi)) {
return false;
}
+ if (imi.isAuxiliaryIme()) {
+ return false;
+ }
if (imi.getIsDefaultResourceId() != 0) {
try {
Resources res = context.createPackageContext(
@@ -805,6 +808,9 @@
if (!isSystemIme(imi)) {
return false;
}
+ if (imi.isAuxiliaryIme()) {
+ return false;
+ }
return containsSubtypeOf(imi, ENGLISH_LOCALE.getLanguage());
}
@@ -2856,6 +2862,9 @@
List<Pair<String, ArrayList<String>>> enabledInputMethodsList = mSettings
.getEnabledInputMethodsAndSubtypeListLocked();
+ if (DEBUG) {
+ Slog.d(TAG, (enabled ? "Enable " : "Disable ") + id);
+ }
if (enabled) {
for (Pair<String, ArrayList<String>> pair: enabledInputMethodsList) {
if (pair.first.equals(id)) {