diff options
| -rw-r--r-- | services/core/java/com/android/server/inputmethod/InputMethodManagerService.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index 91f91f86d275..e32bf1beb300 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -1488,16 +1488,19 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub } int change = isPackageDisappearing(imi.getPackageName()); - if (isPackageModified(imi.getPackageName())) { - mAdditionalSubtypeMap.remove(imi.getId()); - AdditionalSubtypeUtils.save(mAdditionalSubtypeMap, mMethodMap, - mSettings.getCurrentUserId()); - } if (change == PACKAGE_TEMPORARY_CHANGE || change == PACKAGE_PERMANENT_CHANGE) { Slog.i(TAG, "Input method uninstalled, disabling: " + imi.getComponent()); setInputMethodEnabledLocked(imi.getId(), false); + } else if (change == PACKAGE_UPDATING) { + Slog.i(TAG, + "Input method reinstalling, clearing additional subtypes: " + + imi.getComponent()); + mAdditionalSubtypeMap.remove(imi.getId()); + AdditionalSubtypeUtils.save(mAdditionalSubtypeMap, + mMethodMap, + mSettings.getCurrentUserId()); } } } |