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.