OSDN Git Service

Added an Input Method selector in Language settings
authorAmith Yamasani <yamasani@google.com>
Sat, 29 May 2010 01:19:43 +0000 (18:19 -0700)
committerAmith Yamasani <yamasani@google.com>
Tue, 1 Jun 2010 17:22:30 +0000 (10:22 -0700)
Bug: 2132207 - Settings UI has no way to change IME

res/values/strings.xml
res/xml/language_settings.xml
src/com/android/settings/LanguageSettings.java

index a1829f2..674b081 100644 (file)
@@ -1905,6 +1905,8 @@ found in the list of installed applications.</string>
 
     <!-- Input methods Settings -->
     <string name="input_methods_settings_title">Text input</string>
+    <!-- Setting name for Input Method chooser -->
+    <string name="input_method">Input method</string>
     <string name="input_methods_settings_summary">Manage text input options</string>
     <!-- Input Methods Settings localized format string for generating the appropriate "Foo settings" menu label for the Input Method named "Foo" -->
     <string name="input_methods_settings_label_format"><xliff:g id="ime_name">%1$s</xliff:g> settings</string>
index d3c0e02..3b94680 100644 (file)
     </PreferenceScreen>
 
     <PreferenceCategory android:key="text_category"
-            android:title="@string/text_category" />
+            android:title="@string/text_category">
+
+        <PreferenceScreen android:key="input_method"
+                android:title="@string/input_method"
+                android:widgetLayout="@*android:layout/preference_dialog" />
+
+    </PreferenceCategory>
 
     <PreferenceScreen
             android:key="hardkeyboard_category"
index 91d260c..179ac53 100644 (file)
@@ -44,6 +44,8 @@ import java.util.List;
 public class LanguageSettings extends PreferenceActivity {
     
     private static final String KEY_PHONE_LANGUAGE = "phone_language";
+    private static final String KEY_INPUT_METHOD = "input_method";
+
     private boolean mHaveHardKeyboard;
 
     private List<InputMethodInfo> mInputMethodProperties;
@@ -282,7 +284,10 @@ public class LanguageSettings extends PreferenceActivity {
                 mLastTickedInputMethodId = null;
             }
         } else if (preference instanceof PreferenceScreen) {
-            if (preference.getIntent() == null) {
+            if (KEY_INPUT_METHOD.equals(preference.getKey())) {
+                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+                imm.showInputMethodPicker();
+            } else if (preference.getIntent() == null) {
                 PreferenceScreen pref = (PreferenceScreen) preference;
                 String activityName = pref.getKey();
                 String packageName = activityName.substring(0, activityName