Implement new UI for IME settings

Bug: 4645160

Change-Id: If9046e7e96732f6ee4c0594cc66622b6462bdec9
diff --git a/res/layout/preference_inputmethod.xml b/res/layout/preference_inputmethod.xml
new file mode 100644
index 0000000..227b165
--- /dev/null
+++ b/res/layout/preference_inputmethod.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:gravity="center_vertical">
+    <LinearLayout
+        android:id="@+id/inputmethod_pref"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:gravity="center_vertical"
+        android:clickable="true"
+        android:focusable="true"
+        android:background="?android:attr/selectableItemBackground">
+        <LinearLayout
+            android:id="@android:id/widget_frame"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="10dip"
+            android:gravity="center_vertical"
+            android:orientation="vertical" />
+        <RelativeLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="15dip"
+            android:layout_marginRight="6dip"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="6dip"
+            android:layout_weight="1">
+            <TextView
+                android:id="@+android:id/title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:singleLine="true"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:ellipsize="marquee"
+                android:fadingEdge="horizontal"/>
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@android:id/title"
+                android:layout_alignLeft="@android:id/title"
+                android:visibility="gone"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textSize="13sp"
+                android:textColor="?android:attr/textColorSecondary"
+                android:maxLines="4" />
+        </RelativeLayout>
+    </LinearLayout>
+    <View
+        android:layout_width="2dip"
+        android:layout_height="match_parent"
+        android:layout_marginTop="5dip"
+        android:layout_marginBottom="5dip"
+        android:background="@android:drawable/divider_horizontal_dark" />
+    <ImageView
+        android:id="@+id/inputmethod_settings"
+        android:layout_width="wrap_content"
+        android:layout_height="fill_parent"
+        android:paddingLeft="15dip"
+        android:paddingRight="?android:attr/scrollbarSize"
+        android:src="@drawable/ic_sysbar_quicksettings"
+        android:layout_gravity="center"
+        android:clickable="true"
+        android:focusable="true"
+        android:background="?android:attr/selectableItemBackground" />
+</LinearLayout>
diff --git a/res/layout/preference_inputmethod_widget.xml b/res/layout/preference_inputmethod_widget.xml
new file mode 100644
index 0000000..ee573ad
--- /dev/null
+++ b/res/layout/preference_inputmethod_widget.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<CheckBox
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+android:id/checkbox"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center"
+    android:focusable="false"
+    android:clickable="false"/>
\ No newline at end of file
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 130fa03..0f73abf 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -150,4 +150,9 @@
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
     </style>
+
+    <style name="InputMethodPreferenceStyle">
+        <item name="android:layout">@layout/preference_inputmethod</item>
+        <item name="android:widgetLayout">@layout/preference_inputmethod_widget</item>
+    </style>
 </resources>
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 1b5f039..fdf87fc 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -32,6 +32,35 @@
 
     </PreferenceCategory>
 
+    <PreferenceCategory android:key="keyboard_settings_category"
+            android:title="@string/keyboard_settings_category">
+        <PreferenceScreen android:key="current_input_method"
+                android:title="@string/current_input_method" />
+    </PreferenceCategory>
+    <PreferenceCategory
+            android:key="hard_keyboard"
+            android:title="@string/builtin_keyboard_settings_title"
+            android:persistent="false">
+        <CheckBoxPreference
+                android:key="auto_replace"
+                android:title="@string/auto_replace"
+                android:summaryOn="@string/auto_replace_summary"
+                android:summaryOff="@string/auto_replace_summary"
+                android:persistent="false"/>
+        <CheckBoxPreference
+                android:key="auto_caps"
+                android:title="@string/auto_caps"
+                android:summaryOn="@string/auto_caps_summary"
+                android:summaryOff="@string/auto_caps_summary"
+                android:persistent="false"/>
+        <CheckBoxPreference
+                android:key="auto_punctuate"
+                android:title="@string/auto_punctuate"
+                android:summaryOn="@string/auto_punctuate_summary"
+                android:summaryOff="@string/auto_punctuate_summary"
+                android:persistent="false"/>
+    </PreferenceCategory>
+
     <PreferenceCategory android:key="voice_input_category"
             android:title="@string/voice_input_category" >
 
@@ -54,24 +83,6 @@
                 android:title="@string/tts_settings_title" />
     </PreferenceCategory>
 
-    <PreferenceCategory android:key="keyboard_settings_category"
-            android:title="@string/keyboard_settings_category">
-        <PreferenceScreen android:key="current_input_method"
-                android:title="@string/current_input_method" />
-
-        <ListPreference android:key="input_method_selector"
-                android:title="@string/input_method_selector"
-                android:persistent="true"
-                android:entryValues="@array/input_method_selector_values"
-                android:entries="@array/input_method_selector_titles"
-                android:defaultValue="@string/input_method_selector_visibility_default_value"/>
-
-        <PreferenceScreen android:key="configure_input_method"
-                android:title="@string/configure_input_method">
-                <intent android:action="android.settings.INPUT_METHOD_SETTINGS"/>
-        </PreferenceScreen>
-    </PreferenceCategory>
-
     <PreferenceCategory android:key="pointer_settings_category"
             android:title="@string/pointer_settings_category">
         <com.android.settings.PointerSpeedPreference