diff --git a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
index 7ae4ad8..f561d4c 100644
--- a/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
+++ b/services/core/java/com/android/server/inputmethod/InputMethodUtils.java
@@ -214,8 +214,6 @@
         private final ArrayMap<String, InputMethodInfo> mMethodMap;
 
         private boolean mCopyOnWrite = false;
-        @NonNull
-        private String mEnabledInputMethodsStrCache = "";
         @UserIdInt
         private int mCurrentUserId;
 
@@ -247,9 +245,6 @@
             if (DEBUG) {
                 Slog.d(TAG, "--- Switch the current user from " + mCurrentUserId + " to " + userId);
             }
-            if (mCurrentUserId != userId || mCopyOnWrite != copyOnWrite) {
-                mEnabledInputMethodsStrCache = "";
-            }
             mCurrentUserId = userId;
             mCopyOnWrite = copyOnWrite;
         }
@@ -408,18 +403,11 @@
             } else {
                 putString(Settings.Secure.ENABLED_INPUT_METHODS, str);
             }
-            // TODO: Update callers of putEnabledInputMethodsStr to make str @NonNull.
-            mEnabledInputMethodsStrCache = (str != null ? str : "");
         }
 
         @NonNull
         String getEnabledInputMethodsStr() {
-            mEnabledInputMethodsStrCache = getString(Settings.Secure.ENABLED_INPUT_METHODS, "");
-            if (DEBUG) {
-                Slog.d(TAG, "getEnabledInputMethodsStr: " + mEnabledInputMethodsStrCache
-                        + ", " + mCurrentUserId);
-            }
-            return mEnabledInputMethodsStrCache;
+            return getString(Settings.Secure.ENABLED_INPUT_METHODS, "");
         }
 
         private void saveSubtypeHistory(
@@ -853,7 +841,6 @@
         public void dumpLocked(final Printer pw, final String prefix) {
             pw.println(prefix + "mCurrentUserId=" + mCurrentUserId);
             pw.println(prefix + "mCopyOnWrite=" + mCopyOnWrite);
-            pw.println(prefix + "mEnabledInputMethodsStrCache=" + mEnabledInputMethodsStrCache);
         }
     }
 
