From 0962b36f9f08634c1927257eb0d2ad185b996a8a Mon Sep 17 00:00:00 2001 From: Shu Chen Date: Wed, 15 Feb 2023 12:04:47 +0800 Subject: [PATCH] DO NOT MERGE Removes additional subtypes when clearing data. Bug: 267124364 Test: manually tested the case. Change-Id: I159d9b7a2d1dcc8df478bb45d0be706d615724a2 (cherry picked from commit 18a26c88a8c73d18b3aedf513ad4dc4c698fbf0e) --- .../inputmethod/InputMethodManagerService.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java index f1422930dc8c9..58df4d5e7d664 100644 --- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java +++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java @@ -1409,6 +1409,22 @@ public final class InputMethodManagerService extends IInputMethodManager.Stub } } + @Override + public void onPackageDataCleared(String packageName, int uid) { + boolean changed = false; + for (InputMethodInfo imi : mMethodList) { + if (imi.getPackageName().equals(packageName)) { + mAdditionalSubtypeMap.remove(imi.getId()); + changed = true; + } + } + if (changed) { + AdditionalSubtypeUtils.save( + mAdditionalSubtypeMap, mMethodMap, mSettings.getCurrentUserId()); + mChangedPackages.add(packageName); + } + } + @Override public void onFinishPackageChanges() { onFinishPackageChangesInternal();