Reorganize spell checkers settings

Bug: 15976603
Bug: 16115751
Change-Id: I3b23d7f01d8d39da27215a5263b12304ac64db0f
diff --git a/res/layout/preference_inputmethod.xml b/res/layout/preference_inputmethod.xml
deleted file mode 100644
index 9e3d5e3..0000000
--- a/res/layout/preference_inputmethod.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?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:paddingStart="?android:attr/listPreferredItemPaddingStart"
-    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-    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:gravity="center_vertical"
-            android:orientation="vertical" />
-
-        <RelativeLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="15dip"
-            android:layout_marginEnd="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_alignStart="@android:id/title"
-                android:paddingBottom="3dip"
-                android:visibility="gone"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textSize="13sp"
-                android:textColor="?android:attr/textColorSecondary"
-                android:focusable="false"
-                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:paddingStart="15dip"
-        android:paddingEnd="?android:attr/scrollbarSize"
-        android:src="@drawable/ic_sysbar_quicksettings"
-        android:contentDescription="@string/input_method_settings_button"
-        android:layout_gravity="center"
-        android:clickable="true"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground" />
-
-</LinearLayout>
diff --git a/res/layout/preference_spellchecker.xml b/res/layout/preference_spellchecker.xml
index dd35cb3..6408976 100644
--- a/res/layout/preference_spellchecker.xml
+++ b/res/layout/preference_spellchecker.xml
@@ -13,9 +13,9 @@
      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:id="@+id/pref_all"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
@@ -33,16 +33,17 @@
         android:focusable="true"
         android:background="?android:attr/selectableItemBackground">
 
-        <RadioButton
-            android:id="@+id/pref_radio"
+        <LinearLayout
+            android:id="@android:id/widget_frame"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:clickable="false"
-            android:focusable="false" />
+            android:layout_height="match_parent"
+            android:gravity="center_vertical"
+            android:orientation="vertical" />
 
         <RelativeLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_marginStart="15dip"
             android:layout_marginEnd="6dip"
             android:layout_marginTop="6dip"
             android:layout_marginBottom="6dip"
@@ -52,10 +53,10 @@
                 android:id="@+android:id/title"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:maxLines="2"
+                android:singleLine="true"
                 android:textAppearance="?android:attr/textAppearanceMedium"
                 android:ellipsize="marquee"
-                android:fadingEdge="horizontal" />
+                android:fadingEdge="horizontal"/>
 
             <TextView
                 android:id="@android:id/summary"
@@ -63,46 +64,19 @@
                 android:layout_height="wrap_content"
                 android:layout_below="@android:id/title"
                 android:layout_alignStart="@android:id/title"
+                android:paddingBottom="3dip"
                 android:visibility="gone"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:textSize="13sp"
                 android:textColor="?android:attr/textColorSecondary"
+                android:focusable="false"
                 android:maxLines="4" />
 
         </RelativeLayout>
 
     </LinearLayout>
 
-    <LinearLayout
-        android:id="@+id/pref_right_button1"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:gravity="center_vertical"
-        android:clickable="true"
-        android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:contentDescription="@string/spellchecker_quick_settings" >
-
-        <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:layout_width="40dip"
-            android:layout_height="fill_parent"
-            android:paddingStart="5dip"
-            android:paddingEnd="5dip"
-            android:src="@drawable/ic_sysbar_quicksettings"
-            android:layout_gravity="center"
-            android:contentDescription="@string/spellchecker_quick_settings" />
-
-    </LinearLayout>
-
     <View
-        android:id="@+id/pref_right_separator2"
         android:layout_width="2dip"
         android:layout_height="match_parent"
         android:layout_marginTop="5dip"
@@ -110,16 +84,16 @@
         android:background="@android:drawable/divider_horizontal_dark" />
 
     <ImageView
-        android:id="@+id/pref_right_button2"
-        android:layout_width="40dip"
+        android:id="@+id/pref_right_button"
+        android:layout_width="wrap_content"
         android:layout_height="fill_parent"
-        android:paddingStart="5dip"
-        android:paddingEnd="5dip"
-        android:src="@drawable/ic_menu_3d_globe"
-        android:layout_gravity="end"
+        android:paddingStart="15dip"
+        android:paddingEnd="?android:attr/scrollbarSize"
+        android:src="@drawable/ic_sysbar_quicksettings"
+        android:contentDescription="@string/input_method_settings_button"
+        android:layout_gravity="center"
         android:clickable="true"
         android:focusable="true"
-        android:background="?android:attr/selectableItemBackground"
-        android:contentDescription="@string/spellchecker_language" />
+        android:background="?android:attr/selectableItemBackground" />
 
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout/preference_inputmethod_widget.xml b/res/layout/preference_spellchecker_widget.xml
similarity index 78%
rename from res/layout/preference_inputmethod_widget.xml
rename to res/layout/preference_spellchecker_widget.xml
index ee573ad..e4971ec 100644
--- a/res/layout/preference_inputmethod_widget.xml
+++ b/res/layout/preference_spellchecker_widget.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
+<!-- Copyright (C) 2014 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.
@@ -14,11 +14,10 @@
      limitations under the License.
 -->
 
-<CheckBox
+<RadioButton
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+android:id/checkbox"
+    android:id="@+id/pref_radio"
     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
+    android:clickable="false"
+    android:focusable="false" />
\ No newline at end of file
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 35926a0..b493a0f 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -25,10 +25,14 @@
             android:fragment="com.android.settings.LocalePicker"
             />
 
-    <com.android.settings.inputmethod.SpellCheckersPreference
+    <!-- Spell checker preference title, summary and fragment will be set programmatically. -->
+    <!-- Note: Mark this as persistent="false" to remove unnecessarily saved shared preference.
+         See: InputMethodAndSubtypeUtil.removeUnnecessaryNonPersistentPreference. -->
+    <PreferenceScreen
             android:key="spellcheckers_settings"
             android:title="@string/spellcheckers_settings_title"
             settings:keywords="@string/keywords_spell_checker"
+            android:persistent="false"
             />
 
     <!-- User dictionary preference title and fragment will be set programmatically. -->
diff --git a/res/xml/spellchecker_prefs.xml b/res/xml/spellchecker_prefs.xml
index 1de0493..666b0a9 100644
--- a/res/xml/spellchecker_prefs.xml
+++ b/res/xml/spellchecker_prefs.xml
@@ -14,7 +14,11 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        android:title="@string/spellcheckers_settings_title">
-
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title="@string/spellcheckers_settings_title">
+    <Preference
+        android:key="spellchecker_language"
+        android:title="@string/phone_language"
+        android:persistent="false" />
 </PreferenceScreen>