Change Input Settings UI flow.
1. Introduces new UI components as per the new flow
2. Temporarily disables components in the old flow that are to be
replaced by the new flow. This is done so we can neatly revert
to the old flow if there are issues with the new flow
3. AvailableVirtualKeyboardActivity now responds to
android.settings.INPUT_METHOD_SETTINGS intents instead of
InputMethodAndLanguageSettingsActivity
Bug: 25752812
Change-Id: I728d7ee185827ed328c16cb7abce244557a26518
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 13868dc..15495c6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3500,6 +3500,25 @@
<!-- Toast that settings for an application is failed to open. -->
<string name="failed_to_open_app_settings_toast">Failed to open settings for <xliff:g id="spell_application_name">%1$s</xliff:g></string>
+ <!-- Title for the 'keyboard and input methods' preference category. [CHAR LIMIT=35] -->
+ <string name="keyboard_and_input_methods_category">Keyboard and input methods</string>
+ <!-- Title for the 'virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
+ <string name="virtual_keyboard_category">Virtual keyboard</string>
+ <!-- Title for the 'physical keyboard' preference sub-screen. [CHAR LIMIT=35] -->
+ <string name="physical_keyboard_category">Physical keyboard</string>
+ <!-- Title for the 'available virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
+ <string name="available_virtual_keyboard_category">Available virtual keyboard</string>
+ <!-- Title for the button to trigger the 'available virtual keyboard' preference sub-screen. [CHAR LIMIT=35] -->
+ <string name="add_virtual_keyboard">Add a virtual keyboard</string>
+ <!-- Title for the 'keyboard assistance' preference category. [CHAR LIMIT=35] -->
+ <string name="keyboard_assistance_category">Keyboard assistance</string>
+ <!-- Title for the 'show virtual keyboard' preference switch. [CHAR LIMIT=35] -->
+ <string name="show_ime">Show virtual keyboard</string>
+ <!-- Summary text for the 'add virtual keyboard' preference sub-screen. [CHAR LIMIT=100] -->
+ <string name="show_ime_summary">Keep it on screen while physical keyboard is active</string>
+ <!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
+ <string name="keyboard_shortcuts_helper">Keyboard shortcuts helper</string>
+
<!-- On Language & input settings screen, heading. Inside the "Language & input settings" screen, this is the header for settings that relate to mouse and trackpad devices. [CHAR LIMIT=40] -->
<string name="pointer_settings_category">Mouse/trackpad</string>
<!-- On Language & input settings screen, setting summary. Setting for mouse pointer speed. [CHAR LIMIT=35] -->
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 83a0985..9cc0145 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -41,23 +41,34 @@
/>
<PreferenceCategory
- android:key="keyboard_settings_category"
- android:title="@string/keyboard_settings_category">
-
+ android:title="@string/keyboard_and_input_methods_category">
<PreferenceScreen
- android:key="current_input_method"
- android:title="@string/current_input_method"
- />
- <!-- Enabled input method list will be populated programmatically here. -->
+ android:title="@string/virtual_keyboard_category"
+ android:fragment="com.android.settings.inputmethod.VirtualKeyboardFragment" />
+ <PreferenceScreen
+ android:title="@string/physical_keyboard_category"
+ android:fragment="com.android.settings.inputmethod.PhysicalKeyboardFragment" />
</PreferenceCategory>
- <PreferenceCategory
- android:key="hard_keyboard"
- android:title="@string/builtin_keyboard_settings_title"
- android:persistent="false">
- <!-- Additional preference screens are inserted here programmatically
- with low order values to set the key map of each attached keyboard. -->
- </PreferenceCategory>
+ <!-- Temporarily disabled: -->
+ <!--<PreferenceCategory-->
+ <!--android:key="keyboard_settings_category"-->
+ <!--android:title="@string/keyboard_settings_category">-->
+
+ <!--<PreferenceScreen-->
+ <!--android:key="current_input_method"-->
+ <!--android:title="@string/current_input_method"-->
+ <!--/>-->
+ <!--<!– Enabled input method list will be populated programmatically here. –>-->
+ <!--</PreferenceCategory>-->
+
+ <!--<PreferenceCategory-->
+ <!--android:key="hard_keyboard"-->
+ <!--android:title="@string/builtin_keyboard_settings_title"-->
+ <!--android:persistent="false">-->
+ <!--<!– Additional preference screens are inserted here programmatically-->
+ <!--with low order values to set the key map of each attached keyboard. –>-->
+ <!--</PreferenceCategory>-->
<PreferenceCategory
android:key="voice_category"
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
new file mode 100644
index 0000000..cbb95c2
--- /dev/null
+++ b/res/xml/physical_keyboard_settings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/physical_keyboard_category">
+ <!-- Additional preference screens are inserted here programmatically
+ with low order values to set the key map of each attached keyboard. -->
+ <PreferenceCategory
+ android:key="keyboard_assistance_category"
+ android:title="@string/keyboard_assistance_category">
+ <SwitchPreference
+ android:key="show_virtual_keyboard_switch"
+ android:title="@string/show_ime"
+ android:summary="@string/show_ime_summary"
+ android:defaultValue="false" />
+
+ <!-- TODO: Get summary text from UX -->
+ <Preference
+ android:key="keyboard_shortcuts_helper"
+ android:title="@string/keyboard_shortcuts_helper"
+ android:summary="@null" />
+ </PreferenceCategory>
+</PreferenceScreen>
diff --git a/res/xml/virtual_keyboard_settings.xml b/res/xml/virtual_keyboard_settings.xml
new file mode 100644
index 0000000..e5a5f38
--- /dev/null
+++ b/res/xml/virtual_keyboard_settings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2016 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.
+-->
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/virtual_keyboard_category">
+ <!-- Enabled input method list will be populated programmatically here. -->
+ <PreferenceScreen
+ android:key="add_virtual_keyboard_screen"
+ android:title="@string/add_virtual_keyboard"
+ android:fragment="com.android.settings.inputmethod.AvailableVirtualKeyboardFragment" />
+</PreferenceScreen>