Remove InputMethodSettings#appendAndPutEnabledInputMethodLocked()
This is a mechanical cleanup CL to remove
InputMethodSettings#appendAndPutEnabledInputMethodLocked()
by using
InputMethodUtils#concatEnabledImeIds(),
added in my prvious CL [1].
This is a mechanical cleanup CL with a new unit test. There must be no
observable behavior change.
[1]: I01d13d1f46a5af19d6db18246f74a20a4fe14168
Bug: 309837937
Test: presubmit
Change-Id: I6ec7b52dceb5d1334389866a565d593381119060
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
index 0d29b7d..8789066f 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodManagerService.java
@@ -5264,21 +5264,21 @@
*/
@GuardedBy("ImfLock.class")
private boolean setInputMethodEnabledLocked(String id, boolean enabled) {
- List<Pair<String, ArrayList<String>>> enabledInputMethodsList = mSettings
- .getEnabledInputMethodsAndSubtypeListLocked();
-
if (enabled) {
- for (Pair<String, ArrayList<String>> pair: enabledInputMethodsList) {
- if (pair.first.equals(id)) {
- // We are enabling this input method, but it is already enabled.
- // Nothing to do. The previous state was enabled.
- return true;
- }
+ final String enabledImeIdsStr = mSettings.getEnabledInputMethodsStr();
+ final String newEnabledImeIdsStr = InputMethodUtils.concatEnabledImeIds(
+ enabledImeIdsStr, id);
+ if (TextUtils.equals(enabledImeIdsStr, newEnabledImeIdsStr)) {
+ // We are enabling this input method, but it is already enabled.
+ // Nothing to do. The previous state was enabled.
+ return true;
}
- mSettings.appendAndPutEnabledInputMethodLocked(id);
+ mSettings.putEnabledInputMethodsStr(newEnabledImeIdsStr);
// Previous state was disabled.
return false;
} else {
+ final List<Pair<String, ArrayList<String>>> enabledInputMethodsList = mSettings
+ .getEnabledInputMethodsAndSubtypeListLocked();
StringBuilder builder = new StringBuilder();
if (mSettings.buildAndPutEnabledInputMethodsStrRemovingIdLocked(
builder, enabledInputMethodsList, id)) {
@@ -5610,9 +5610,11 @@
return false; // IME is not found.
}
if (enabled) {
- if (!settings.getEnabledInputMethodListLocked().contains(
- methodMap.get(imeId))) {
- settings.appendAndPutEnabledInputMethodLocked(imeId);
+ final String enabledImeIdsStr = settings.getEnabledInputMethodsStr();
+ final String newEnabledImeIdsStr = InputMethodUtils.concatEnabledImeIds(
+ enabledImeIdsStr, imeId);
+ if (!TextUtils.equals(enabledImeIdsStr, newEnabledImeIdsStr)) {
+ settings.putEnabledInputMethodsStr(newEnabledImeIdsStr);
}
} else {
settings.buildAndPutEnabledInputMethodsStrRemovingIdLocked(
@@ -6351,14 +6353,12 @@
if (!methodMap.containsKey(imeId)) {
failedToEnableUnknownIme = true;
} else {
- for (InputMethodInfo imi : settings.getEnabledInputMethodListLocked()) {
- if (TextUtils.equals(imi.getId(), imeId)) {
- previouslyEnabled = true;
- break;
- }
- }
+ final String enabledImeIdsStr = settings.getEnabledInputMethodsStr();
+ final String newEnabledImeIdsStr = InputMethodUtils.concatEnabledImeIds(
+ enabledImeIdsStr, imeId);
+ previouslyEnabled = TextUtils.equals(enabledImeIdsStr, newEnabledImeIdsStr);
if (!previouslyEnabled) {
- settings.appendAndPutEnabledInputMethodLocked(imeId);
+ settings.putEnabledInputMethodsStr(newEnabledImeIdsStr);
}
}
} else {
diff --git a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
index a88d85e..7ae4ad8 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
@@ -352,16 +352,6 @@
return imsList;
}
- void appendAndPutEnabledInputMethodLocked(String id) {
- if (TextUtils.isEmpty(mEnabledInputMethodsStrCache)) {
- // Add in the newly enabled input method.
- putEnabledInputMethodsStr(id);
- } else {
- putEnabledInputMethodsStr(
- mEnabledInputMethodsStrCache + INPUT_METHOD_SEPARATOR + id);
- }
- }
-
/**
* Build and put a string of EnabledInputMethods with removing specified Id.
* @return the specified id was removed or not.