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:
committed by
Michael Bestas
parent
60c766b551
commit
ebad4b2314
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user