Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9cb6806 authored by danielwbhuang's avatar danielwbhuang
Browse files

Separate "Keyboard" from "Language & input"

1. Separate "Keyboard" from "Language & input".
2. Use FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_UI to control the
   different UI until Settings launches the new UI design.

Bug: 242680328
Test: local test
Change-Id: Id1ea6d3e3c2e6b83bc4b4d835c6b27e31311c530
parent 4d725912
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -909,6 +909,46 @@
                       android:value="true"/>
        </activity>

        <activity
            android:name=".Settings$LanguageSettingsActivity"
            android:label="@string/languages_settings"
            android:exported="true"
            android:icon="@drawable/ic_settings_languages">
            <intent-filter>
                <action android:name="android.settings.LANGUAGE_SETTINGS"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.VOICE_LAUNCH"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.language.LanguageSettings"/>
            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
                       android:value="@string/menu_key_system"/>
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                       android:value="true"/>
        </activity>

        <activity
            android:name=".Settings$KeyboardSettingsActivity"
            android:label="@string/keyboard_settings"
            android:exported="true"
            android:icon="@drawable/ic_settings_language">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.VOICE_LAUNCH"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.inputmethod.KeyboardSettings"/>
            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
                       android:value="@string/menu_key_system"/>
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                       android:value="true"/>
        </activity>

        <activity android:name="Settings$AvailableVirtualKeyboardActivity"
            android:exported="true"
            android:label="@string/available_virtual_keyboard_category">
+25 −0
Original line number Diff line number Diff line
<!--
    Copyright (C) 2022 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24.0dp"
        android:height="24.0dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?android:attr/colorControlNormal">
    <path
        android:fillColor="@android:color/white"
        android:pathData="M4,19Q3.175,19 2.588,18.413Q2,17.825 2,17V7Q2,6.175 2.588,5.588Q3.175,5 4,5H20Q20.825,5 21.413,5.588Q22,6.175 22,7V17Q22,17.825 21.413,18.413Q20.825,19 20,19ZM4,17H20Q20,17 20,17Q20,17 20,17V7Q20,7 20,7Q20,7 20,7H4Q4,7 4,7Q4,7 4,7V17Q4,17 4,17Q4,17 4,17ZM8,16H16V14H8ZM5,13H7V11H5ZM8,13H10V11H8ZM11,13H13V11H11ZM14,13H16V11H14ZM17,13H19V11H17ZM5,10H7V8H5ZM8,10H10V8H8ZM11,10H13V8H11ZM14,10H16V8H14ZM17,10H19V8H17ZM4,17Q4,17 4,17Q4,17 4,17V7Q4,7 4,7Q4,7 4,7Q4,7 4,7Q4,7 4,7V17Q4,17 4,17Q4,17 4,17Z"/>
</vector>
 No newline at end of file
+25 −0
Original line number Diff line number Diff line
<!--
    Copyright (C) 2022 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.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24.0dp"
        android:height="24.0dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0"
        android:tint="?android:attr/colorControlNormal">
    <path
        android:fillColor="@android:color/white"
        android:pathData="M11.9,22 L16.45,10H18.55L23.1,22H21L19.95,18.95H15.1L14,22ZM15.7,17.2H19.3L17.55,12.25H17.45ZM4,19 L2.6,17.6 7.65,12.55Q6.7,11.5 5.988,10.375Q5.275,9.25 4.75,8H6.85Q7.3,8.9 7.813,9.625Q8.325,10.35 9.05,11.15Q10.15,9.95 10.875,8.688Q11.6,7.425 12.1,6H1V4H8V2H10V4H17V6H14.1Q13.575,7.775 12.675,9.45Q11.775,11.125 10.45,12.6L12.85,15.05L12.1,17.1L9,14Z"/>
</vector>
 No newline at end of file
+13 −1
Original line number Diff line number Diff line
@@ -4924,6 +4924,10 @@
    <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings realted to locale and text -->
    <string name="language_settings">Languages&#160;&amp; input</string>
    <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings related to languages -->
    <string name="languages_settings">Languages</string>
    <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings related to keyboards -->
    <string name="keyboard_settings">Keyboard</string>
    <!-- Text displayed when user has restriction DISALLOW_CONFIG_LOCALE [CHAR LIMIT=NONE]-->
    <string name="language_empty_list_user_restricted">You don\u2019t have permission to change the device language.</string>
    <!-- Title of Languages & input settings screen -->
@@ -4932,6 +4936,8 @@
    <string name="input_assistance">Tools</string>
    <!-- On Languages & input settings screen, heading. Inside the "Languages & input settings" screen, this is the header for settings that relate to keyboard (enable/disable each keyboard, settings for each keyboard). -->
    <string name="keyboard_settings_category">Keyboard &amp; input methods</string>
    <!-- On Languages settings screen, setting option name. title of the setting to take the user to a screen to select the locale. -->
    <string name="system_language">System Languages</string>
    <!-- On Text & language settings screen, setting option name. title of the setting to take the user to a screen to select the locale. -->
    <string name="phone_language">Languages</string>
    <!-- On Text & language settings screen, setting option name. summary of the setting to take the user to a screen to select the locale. -->
@@ -5099,6 +5105,10 @@
    <string name="input_methods_and_subtype_enabler_title">Choose active input methods</string>
    <!-- Summary for on-screen keyboard settings -->
    <string name="onscreen_keyboard_settings_summary">Onscreen keyboard settings</string>
    <!-- Summary for default keyboard settings -->
    <string name="keyboard_settings_summary">On-screen keyboard, Speech, Tools</string>
    <!-- Summary for keyboard settings attaching physical_keyboard  -->
    <string name="keyboard_settings_with_physical_keyboard_summary">On-screen keyboard, Physical keyboard, Speech, Tools</string>
    <!-- Title for built-in keyboard settings -->
    <string name="builtin_keyboard_settings_title">Physical keyboard</string>
    <!-- Summary for built-in keyboard settings -->
@@ -8025,8 +8035,10 @@
    <!-- Title for setting tile leading to setting UI which allows user set default app to
    handle actions such as open web page, making phone calls, default SMS apps [CHAR  LIMIT=40]-->
    <string name="app_default_dashboard_title">Default apps</string>
    <!-- Summary text for system preference tile, showing important setting items under system setting [CHAR LIMIT=NONE]-->
    <!-- Summary text for system preference title, showing important setting items under system setting [CHAR LIMIT=NONE]-->
    <string name="system_dashboard_summary">Languages, gestures, time, backup</string>
    <!-- Summary text for language preference title, showing important setting items under language setting [CHAR LIMIT=NONE]-->
    <string name="languages_setting_summary">System languages, app languages</string>
    <!-- Search strings -->
    <!-- Text to describe the search results fragment title [CHAR LIMIT=16] -->
+108 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2022 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"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:title="@string/keyboard_settings">
    <PreferenceCategory
        android:key="keyboards_category"
        android:title="@string/keyboard_and_input_methods_category">
        <Preference
            android:key="virtual_keyboard_pref"
            android:title="@string/virtual_keyboard_category"
            android:fragment="com.android.settings.inputmethod.AvailableVirtualKeyboardFragment"
            settings:keywords="@string/keywords_virtual_keyboard"/>

        <Preference
            android:key="physical_keyboard_pref"
            android:title="@string/physical_keyboard_title"
            android:summary="@string/summary_placeholder"
            android:fragment="com.android.settings.inputmethod.PhysicalKeyboardFragment"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:key="speech_category"
        android:title="@string/speech_category_title">
        <com.android.settings.widget.GearPreference
            android:key="voice_input_settings"
            android:title="@string/voice_input_settings_title"
            android:fragment="com.android.settings.language.DefaultVoiceInputPicker" />

        <Preference
            android:key="tts_settings_summary"
            android:title="@string/tts_settings_title"
            android:fragment="com.android.settings.tts.TextToSpeechSettings"
            settings:searchable="false"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:key="input_assistance_category"
        android:title="@string/input_assistance">
        <!-- 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. -->
        <Preference
            android:key="spellcheckers_settings"
            android:title="@string/spellcheckers_settings_title"
            android:persistent="false"
            android:fragment="com.android.settings.inputmethod.SpellCheckersSettings" />

        <!-- User dictionary preference title and fragment will be set programmatically. -->
        <Preference
            android:key="key_user_dictionary_settings"
            android:title="@string/user_dict_settings_title"
            android:summary="@string/user_dict_settings_summary"
            android:fragment="com.android.settings.inputmethod.UserDictionaryList"
            settings:controller="com.android.settings.language.UserDictionaryPreferenceController" />
    </PreferenceCategory>

    <PreferenceCategory
        android:key="pointer_category"
        android:layout="@layout/preference_category_no_label">
        <com.android.settings.PointerSpeedPreference
            android:key="pointer_speed"
            android:title="@string/pointer_speed"
            android:dialogTitle="@string/pointer_speed" />
    </PreferenceCategory>

    <SwitchPreference
        android:key="vibrate_input_devices"
        android:title="@string/vibrate_input_devices"
        android:summary="@string/vibrate_input_devices_summary"
        settings:controller="com.android.settings.inputmethod.GameControllerPreferenceController" />

    <com.android.settings.widget.WorkOnlyCategory
        android:key="language_and_input_for_work_category"
        android:title="@string/language_and_input_for_work_category_title"
        settings:searchable="false">

        <Preference
            android:key="spellcheckers_settings_for_work_pref"
            android:title="@string/spellcheckers_settings_for_work_title"
            android:fragment="com.android.settings.inputmethod.SpellCheckersSettings"
            settings:forWork="true"
            settings:controller="com.android.settings.core.WorkPreferenceController" />

        <Preference
            android:key="user_dictionary_settings_for_work_pref"
            android:title="@string/user_dict_settings_for_work_title"
            android:fragment="com.android.settings.inputmethod.UserDictionaryList"
            settings:forWork="true"
            settings:controller="com.android.settings.inputmethod.SpellCheckerForWorkPreferenceController" />
    </com.android.settings.widget.WorkOnlyCategory>
</PreferenceScreen>
 No newline at end of file
Loading