diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index ea6c529..9fa2645 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -72,7 +72,6 @@
     private Preference mLanguagePref;
     private InputManager mIm;
     private Intent mIntentWaitingForResult;
-    private InputMethodSettingValuesWrapper mInputMethodSettingValues;
 
     @Override
     public int getMetricsCategory() {
@@ -86,7 +85,6 @@
         addPreferencesFromResource(R.xml.language_settings);
 
         final Activity activity = getActivity();
-        mInputMethodSettingValues = InputMethodSettingValuesWrapper.getInstance(activity);
 
         if (activity.getAssets().getLocales().length == 1) {
             // No "Select language" pref if there's only one system locale available.
@@ -190,10 +188,6 @@
         updateUserDictionaryPreference(findPreference(KEY_USER_DICTIONARY_SETTINGS));
 
         updateInputDevices();
-
-        // Refresh internal states in mInputMethodSettingValues to keep the latest
-        // "InputMethodInfo"s and "InputMethodSubtype"s
-        mInputMethodSettingValues.refreshAllInputMethodAndSubtypes();
     }
 
     @Override
@@ -201,11 +195,6 @@
         super.onPause();
 
         mIm.unregisterInputDeviceListener(this);
-
-        // TODO: Consolidate the logic to InputMethodSettingsWrapper
-        InputMethodAndSubtypeUtil.saveInputMethodSubtypeList(
-                this, getContentResolver(), mInputMethodSettingValues.getInputMethodList(),
-                false /* hasHardKeyboard */);
     }
 
     @Override
