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

Commit b32a7010 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 c04314fb
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -15,6 +15,10 @@
     limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- Advanced keyboard settings -->
    <string name="keyboard_extras_title">Extras</string>
    <string name="advanced_keyboard_settings_title">Advanced settings</string>

    <!-- Android debugging as root -->
    <string name="adb_enable_root">Rooted debugging</string>
    <string name="adb_enable_summary_root">Allow running Android debugging as root</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();
    }