From ebad4b2314a0abe06c7b2d0b1de4f92a57ad0e16 Mon Sep 17 00:00:00 2001 From: Bruno Martins Date: Fri, 27 Nov 2020 11:54:28 +0000 Subject: [PATCH] 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 --- res/values/cm_strings.xml | 4 ++++ res/xml/physical_keyboard_settings.xml | 16 ++++++++++++++++ .../inputmethod/PhysicalKeyboardFragment.java | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 41cea2aba48..c1a84ccbcf1 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -15,6 +15,10 @@ limitations under the License. --> + + Extras + Advanced settings + Rooted debugging Allow running Android debugging as root diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml index b7538c8ea5a..e54dc3332eb 100644 --- a/res/xml/physical_keyboard_settings.xml +++ b/res/xml/physical_keyboard_settings.xml @@ -74,4 +74,20 @@ android:defaultValue="false" /> + + + + + + + + + + diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java index 5bdb9e7bd7a..b4c0650d0ba 100644 --- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java +++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java @@ -67,6 +67,7 @@ public final class PhysicalKeyboardFragment extends DashboardFragment private static final String KEYBOARD_OPTIONS_CATEGORY = "keyboard_options_category"; private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_category"; + private static final String KEYBOARD_EXTRAS_CATEGORY = "keyboard_extras_category"; private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys"; private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys"; private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys"; @@ -101,6 +102,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment private PreferenceCategory mKeyboardAssistanceCategory; @Nullable private PreferenceCategory mKeyboardA11yCategory = null; + @NonNull + private PreferenceCategory mKeyboardExtrasCategory = null; @Nullable private TwoStatePreference mAccessibilityBounceKeys = null; @Nullable @@ -136,6 +139,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class)); mKeyboardAssistanceCategory = Preconditions.checkNotNull( findPreference(KEYBOARD_OPTIONS_CATEGORY)); + mKeyboardExtrasCategory = Preconditions.checkNotNull( + findPreference(KEYBOARD_EXTRAS_CATEGORY)); mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY)); mAccessibilityBounceKeys = Objects.requireNonNull( @@ -331,6 +336,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment } mKeyboardAssistanceCategory.setOrder(1); preferenceScreen.addPreference(mKeyboardAssistanceCategory); + mKeyboardExtrasCategory.setOrder(99); + preferenceScreen.addPreference(mKeyboardExtrasCategory); if (mSupportsFirmwareUpdate) { mFeatureProvider.registerKeyboardInformationCategory(preferenceScreen); }