Don't remove additional subtypes when ACTION_PACKAGE_CHANGED.

Instead, remove additional subtypes when package is updating.

Bug: 269678483
Test: Locally verified the bug.
Change-Id: I94261ffaa6e11b5a21af6c5ac831dab66d8459f2
This commit is contained in:
Shu Chen
2023-03-10 12:37:04 +08:00
parent bdf9aaf0e9
commit dc2a2ea7fe

View File

@@ -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());
}
}
}