resolved conflicts for merge of 051f46d7 to jb-dev-plus-aosp

Change-Id: I73165a3d77318cbb0271e0d5c64cc49caad8f693
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index bc8b458..9624c4a 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -225,6 +225,7 @@
         super.onResume();
 
         mIm.registerInputDeviceListener(this, null);
+        mSettingsObserver.resume();
 
         if (!mIsOnlyImeSettings) {
             if (mLanguagePref != null) {
@@ -264,6 +265,7 @@
     public void onPause() {
         super.onPause();
 
+        mSettingsObserver.pause();
         mIm.unregisterInputDeviceListener(this);
 
         if (SHOW_INPUT_METHOD_SWITCHER_SETTINGS) {
@@ -509,17 +511,27 @@
     }
 
     private class SettingsObserver extends ContentObserver {
+        private Context mContext;
+
         public SettingsObserver(Handler handler, Context context) {
             super(handler);
-            final ContentResolver cr = context.getContentResolver();
+            mContext = context;
+        }
+
+        @Override public void onChange(boolean selfChange) {
+            updateCurrentImeName();
+        }
+
+        public void resume() {
+            final ContentResolver cr = mContext.getContentResolver();
             cr.registerContentObserver(
                     Settings.Secure.getUriFor(Settings.Secure.DEFAULT_INPUT_METHOD), false, this);
             cr.registerContentObserver(Settings.Secure.getUriFor(
                     Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE), false, this);
         }
 
-        @Override public void onChange(boolean selfChange) {
-            updateCurrentImeName();
+        public void pause() {
+            mContext.getContentResolver().unregisterContentObserver(this);
         }
     }
 }