Fix InputMethodSettingsFragment

Bug: 4979539

Change-Id: I99a2e64e67b961429145df7fd45a30f11976d04a
diff --git a/java/InputMethodSettingsFragment.java b/java/InputMethodSettingsFragment.java
index cf0030b..057cd5e 100644
--- a/java/InputMethodSettingsFragment.java
+++ b/java/InputMethodSettingsFragment.java
@@ -16,6 +16,7 @@
 package com.android.inputmethodcommon;
 
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.preference.Preference;
@@ -54,23 +55,27 @@
         final InputMethodManager imm =
                 (InputMethodManager) context.getSystemService(
                         Context.INPUT_METHOD_SERVICE);
-
         final InputMethodInfo imi = getMyImi(imm);
         if (imi != null && imi.getSubtypeCount() > 1) {
             mInputMethodSettingsCategory = new PreferenceCategory(context);
-            mSubtypeEnablerPreference =
-                    getPreferenceManager().createPreferenceScreen(context);
+            mSubtypeEnablerPreference = new Preference(context);
             mSubtypeEnablerPreference
                     .setOnPreferenceClickListener(new OnPreferenceClickListener() {
                         @Override
                         public boolean onPreferenceClick(Preference preference) {
-                            final Bundle bundle = new Bundle();
-                            bundle.putString(Settings.EXTRA_INPUT_METHOD_ID, imi.getId());
+                            final Intent intent = new Intent(
+                                    Settings.ACTION_INPUT_METHOD_SUBTYPE_SETTINGS);
+                            intent.putExtra(Settings.EXTRA_INPUT_METHOD_ID, imi.getId());
+                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
+                                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+                            startActivity(intent);
                             return true;
                         }
                     });
-            mInputMethodSettingsCategory.addPreference(mSubtypeEnablerPreference);
+            setPreferenceScreen(getPreferenceManager().createPreferenceScreen(context));
             getPreferenceScreen().addPreference(mInputMethodSettingsCategory);
+            mInputMethodSettingsCategory.addPreference(mSubtypeEnablerPreference);
         }
         updateSubtypeEnabler();
     }