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
This commit is contained in:
Bruno Martins
2020-11-27 11:54:28 +00:00
committed by Michael Bestas
parent 60c766b551
commit ebad4b2314
3 changed files with 27 additions and 0 deletions

View File

@@ -15,6 +15,10 @@
limitations under the License. limitations under the License.
--> -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <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 --> <!-- Android debugging as root -->
<string name="adb_enable_root">Rooted debugging</string> <string name="adb_enable_root">Rooted debugging</string>
<string name="adb_enable_summary_root">Allow running Android debugging as root</string> <string name="adb_enable_summary_root">Allow running Android debugging as root</string>

View File

@@ -74,4 +74,20 @@
android:defaultValue="false" /> android:defaultValue="false" />
</PreferenceCategory> </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"
settings:requiresAction="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS">
<intent
android:action="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS" />
</lineageos.preference.RemotePreference>
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -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_OPTIONS_CATEGORY = "keyboard_options_category";
private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_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_BOUNCE_KEYS = "accessibility_bounce_keys";
private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys"; private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys"; private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
@@ -101,6 +102,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment
private PreferenceCategory mKeyboardAssistanceCategory; private PreferenceCategory mKeyboardAssistanceCategory;
@Nullable @Nullable
private PreferenceCategory mKeyboardA11yCategory = null; private PreferenceCategory mKeyboardA11yCategory = null;
@NonNull
private PreferenceCategory mKeyboardExtrasCategory = null;
@Nullable @Nullable
private TwoStatePreference mAccessibilityBounceKeys = null; private TwoStatePreference mAccessibilityBounceKeys = null;
@Nullable @Nullable
@@ -136,6 +139,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment
mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class)); mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class));
mKeyboardAssistanceCategory = Preconditions.checkNotNull( mKeyboardAssistanceCategory = Preconditions.checkNotNull(
findPreference(KEYBOARD_OPTIONS_CATEGORY)); findPreference(KEYBOARD_OPTIONS_CATEGORY));
mKeyboardExtrasCategory = Preconditions.checkNotNull(
findPreference(KEYBOARD_EXTRAS_CATEGORY));
mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY)); mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
mAccessibilityBounceKeys = Objects.requireNonNull( mAccessibilityBounceKeys = Objects.requireNonNull(
@@ -331,6 +336,8 @@ public final class PhysicalKeyboardFragment extends DashboardFragment
} }
mKeyboardAssistanceCategory.setOrder(1); mKeyboardAssistanceCategory.setOrder(1);
preferenceScreen.addPreference(mKeyboardAssistanceCategory); preferenceScreen.addPreference(mKeyboardAssistanceCategory);
mKeyboardExtrasCategory.setOrder(99);
preferenceScreen.addPreference(mKeyboardExtrasCategory);
if (mSupportsFirmwareUpdate) { if (mSupportsFirmwareUpdate) {
mFeatureProvider.registerKeyboardInformationCategory(preferenceScreen); mFeatureProvider.registerKeyboardInformationCategory(preferenceScreen);
} }