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

Commit 2dd22226 authored by Bruno Martins's avatar Bruno Martins
Browse files

KeyboardSettings: Add a RemotePreference for device-specific panel

Allow devices to provide advanced keyboard settings.

Unfortunatelly this can't be done with existing IA settings,
so use the RemotePreference API to allow the external app
to update the view. The action for this is:

     "org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS"

Change-Id: I1c46d3568c4d5bfc78e1cbae033071c7641fdf29
parent c98196ff
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -30,6 +30,10 @@
    <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>

    <!-- Advanced keyboard settings -->
    <string name="keyboard_extras_title">Extras</string>
    <string name="advanced_keyboard_settings_title">Advanced settings</string>

    <!-- Advanced restart options -->
    <string name="advanced_reboot_title">Advanced restart</string>
    <string name="advanced_reboot_summary">When unlocked, include options in the power menu for restarting into recovery or bootloader</string>
+17 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
-->
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:lineage="http://schemas.android.com/apk/res/lineageos.platform"
    android:title="@string/physical_keyboard_title">
    <!-- Additional preference screens are inserted here programmatically
         with low order values to set the key map of each attached keyboard. -->
@@ -32,4 +33,20 @@
            android:title="@string/keyboard_shortcuts_helper"
            android:summary="@string/keyboard_shortcuts_helper_summary" />
    </PreferenceCategory>

    <!-- Device-specific keyboard settings. -->
    <PreferenceCategory
        android:key="keyboard_extras_category"
        android:title="@string/keyboard_extras_title" >

        <lineageos.preference.RemotePreference
            android:key="advanced_keyboard_settings"
            android:title="@string/advanced_keyboard_settings_title"
            lineage:requiresAction="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS">
            <intent
                android:action="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS" />
        </lineageos.preference.RemotePreference>

    </PreferenceCategory>

</PreferenceScreen>
+7 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener {

    private static final String KEYBOARD_ASSISTANCE_CATEGORY = "keyboard_assistance_category";
    private static final String KEYBOARD_EXTRAS_CATEGORY = "keyboard_extras_category";
    private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
    private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";

@@ -70,6 +71,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
    @NonNull
    private PreferenceCategory mKeyboardAssistanceCategory;
    @NonNull
    private PreferenceCategory mKeyboardExtrasCategory;
    @NonNull
    private SwitchPreference mShowVirtualKeyboardSwitch;

    private Intent mIntentWaitingForResult;
@@ -81,6 +84,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class));
        mKeyboardAssistanceCategory = Preconditions.checkNotNull(
                (PreferenceCategory) findPreference(KEYBOARD_ASSISTANCE_CATEGORY));
        mKeyboardExtrasCategory = Preconditions.checkNotNull(
                (PreferenceCategory) findPreference(KEYBOARD_EXTRAS_CATEGORY));
        mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
                (SwitchPreference) mKeyboardAssistanceCategory.findPreference(
                        SHOW_VIRTUAL_KEYBOARD_SWITCH));
@@ -176,6 +181,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment

        mKeyboardAssistanceCategory.setOrder(1);
        preferenceScreen.addPreference(mKeyboardAssistanceCategory);
        mKeyboardExtrasCategory.setOrder(99);
        preferenceScreen.addPreference(mKeyboardExtrasCategory);
        updateShowVirtualKeyboardSwitch();
    }