Add Slow keys A11Y settings to PK settings page
Test: manual Bug: 294546335 Change-Id: I9e20973e648d04b907e4d2225bd49b78e42d2089
This commit is contained in:
@@ -4285,6 +4285,10 @@
|
|||||||
<string name="bounce_keys">Bounce keys</string>
|
<string name="bounce_keys">Bounce keys</string>
|
||||||
<!-- Summary text for the 'Bounce keys' preference sub-screen. [CHAR LIMIT=100] -->
|
<!-- Summary text for the 'Bounce keys' preference sub-screen. [CHAR LIMIT=100] -->
|
||||||
<string name="bounce_keys_summary">Enable Bounce keys for physical keyboard accessibility</string>
|
<string name="bounce_keys_summary">Enable Bounce keys for physical keyboard accessibility</string>
|
||||||
|
<!-- Title for the 'Slow keys' preference switch. [CHAR LIMIT=35] -->
|
||||||
|
<string name="slow_keys">Slow keys</string>
|
||||||
|
<!-- Summary text for the 'Slow keys' preference sub-screen. [CHAR LIMIT=100] -->
|
||||||
|
<string name="slow_keys_summary">Enable Slow keys for physical keyboard accessibility</string>
|
||||||
<!-- Title for the 'Sticky keys' preference switch. [CHAR LIMIT=35] -->
|
<!-- Title for the 'Sticky keys' preference switch. [CHAR LIMIT=35] -->
|
||||||
<string name="sticky_keys">Sticky keys</string>
|
<string name="sticky_keys">Sticky keys</string>
|
||||||
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=100] -->
|
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=100] -->
|
||||||
|
@@ -43,17 +43,23 @@
|
|||||||
android:key="keyboard_a11y_category"
|
android:key="keyboard_a11y_category"
|
||||||
android:title="@string/keyboard_a11y_category">
|
android:title="@string/keyboard_a11y_category">
|
||||||
|
|
||||||
<SwitchPreference
|
|
||||||
android:key="accessibility_bounce_keys"
|
|
||||||
android:title="@string/bounce_keys"
|
|
||||||
android:summary="@string/bounce_keys_summary"
|
|
||||||
android:defaultValue="false" />
|
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:key="accessibility_sticky_keys"
|
android:key="accessibility_sticky_keys"
|
||||||
android:title="@string/sticky_keys"
|
android:title="@string/sticky_keys"
|
||||||
android:summary="@string/sticky_keys_summary"
|
android:summary="@string/sticky_keys_summary"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
android:key="accessibility_slow_keys"
|
||||||
|
android:title="@string/slow_keys"
|
||||||
|
android:summary="@string/slow_keys_summary"
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
android:key="accessibility_bounce_keys"
|
||||||
|
android:title="@string/bounce_keys"
|
||||||
|
android:summary="@string/bounce_keys_summary"
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -70,6 +70,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_category";
|
private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_category";
|
||||||
private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
|
private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
|
||||||
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_STICKY_KEYS = "accessibility_sticky_keys";
|
private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
|
||||||
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
|
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
|
||||||
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
|
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
|
||||||
@@ -78,6 +79,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
Secure.SHOW_IME_WITH_HARD_KEYBOARD);
|
Secure.SHOW_IME_WITH_HARD_KEYBOARD);
|
||||||
private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor(
|
private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor(
|
||||||
Secure.ACCESSIBILITY_BOUNCE_KEYS);
|
Secure.ACCESSIBILITY_BOUNCE_KEYS);
|
||||||
|
private static final Uri sAccessibilitySlowKeysUri = Secure.getUriFor(
|
||||||
|
Secure.ACCESSIBILITY_SLOW_KEYS);
|
||||||
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
|
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
|
||||||
Secure.ACCESSIBILITY_STICKY_KEYS);
|
Secure.ACCESSIBILITY_STICKY_KEYS);
|
||||||
|
|
||||||
@@ -97,6 +100,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
@Nullable
|
@Nullable
|
||||||
private TwoStatePreference mAccessibilityBounceKeys = null;
|
private TwoStatePreference mAccessibilityBounceKeys = null;
|
||||||
@Nullable
|
@Nullable
|
||||||
|
private TwoStatePreference mAccessibilitySlowKeys = null;
|
||||||
|
@Nullable
|
||||||
private TwoStatePreference mAccessibilityStickyKeys = null;
|
private TwoStatePreference mAccessibilityStickyKeys = null;
|
||||||
|
|
||||||
|
|
||||||
@@ -127,6 +132,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
|
mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
|
||||||
mAccessibilityBounceKeys = Objects.requireNonNull(
|
mAccessibilityBounceKeys = Objects.requireNonNull(
|
||||||
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS));
|
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS));
|
||||||
|
mAccessibilitySlowKeys = Objects.requireNonNull(
|
||||||
|
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_SLOW_KEYS));
|
||||||
mAccessibilityStickyKeys = Objects.requireNonNull(
|
mAccessibilityStickyKeys = Objects.requireNonNull(
|
||||||
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
|
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
|
||||||
|
|
||||||
@@ -147,6 +154,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
|
if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
|
||||||
mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys);
|
mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys);
|
||||||
}
|
}
|
||||||
|
if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
||||||
|
mKeyboardA11yCategory.removePreference(mAccessibilitySlowKeys);
|
||||||
|
}
|
||||||
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
||||||
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
|
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
|
||||||
}
|
}
|
||||||
@@ -196,6 +206,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mShowVirtualKeyboardSwitchPreferenceChangeListener);
|
mShowVirtualKeyboardSwitchPreferenceChangeListener);
|
||||||
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(
|
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(
|
||||||
mAccessibilityBounceKeysSwitchPreferenceChangeListener);
|
mAccessibilityBounceKeysSwitchPreferenceChangeListener);
|
||||||
|
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(
|
||||||
|
mAccessibilitySlowKeysSwitchPreferenceChangeListener);
|
||||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
|
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
|
||||||
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
|
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
|
||||||
registerSettingsObserver();
|
registerSettingsObserver();
|
||||||
@@ -208,6 +220,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mIm.unregisterInputDeviceListener(this);
|
mIm.unregisterInputDeviceListener(this);
|
||||||
Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null);
|
||||||
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
|
||||||
|
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
|
||||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
|
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
|
||||||
unregisterSettingsObserver();
|
unregisterSettingsObserver();
|
||||||
}
|
}
|
||||||
@@ -315,10 +328,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
updateShowVirtualKeyboardSwitch();
|
updateShowVirtualKeyboardSwitch();
|
||||||
|
|
||||||
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|
||||||
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()
|
||||||
|
|| InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
||||||
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
|
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
|
||||||
preferenceScreen.addPreference(mKeyboardA11yCategory);
|
preferenceScreen.addPreference(mKeyboardA11yCategory);
|
||||||
updateAccessibilityBounceKeysSwitch();
|
updateAccessibilityBounceKeysSwitch();
|
||||||
|
updateAccessibilitySlowKeysSwitch();
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -356,6 +371,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
mContentObserver,
|
mContentObserver,
|
||||||
UserHandle.myUserId());
|
UserHandle.myUserId());
|
||||||
}
|
}
|
||||||
|
if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
||||||
|
contentResolver.registerContentObserver(
|
||||||
|
sAccessibilitySlowKeysUri,
|
||||||
|
false,
|
||||||
|
mContentObserver,
|
||||||
|
UserHandle.myUserId());
|
||||||
|
}
|
||||||
if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
||||||
contentResolver.registerContentObserver(
|
contentResolver.registerContentObserver(
|
||||||
sAccessibilityStickyKeysUri,
|
sAccessibilityStickyKeysUri,
|
||||||
@@ -365,6 +387,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
}
|
}
|
||||||
updateShowVirtualKeyboardSwitch();
|
updateShowVirtualKeyboardSwitch();
|
||||||
updateAccessibilityBounceKeysSwitch();
|
updateAccessibilityBounceKeysSwitch();
|
||||||
|
updateAccessibilitySlowKeysSwitch();
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -385,6 +408,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
InputSettings.isAccessibilityBounceKeysEnabled(getContext()));
|
InputSettings.isAccessibilityBounceKeysEnabled(getContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateAccessibilitySlowKeysSwitch() {
|
||||||
|
if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Objects.requireNonNull(mAccessibilitySlowKeys).setChecked(
|
||||||
|
InputSettings.isAccessibilitySlowKeysEnabled(getContext()));
|
||||||
|
}
|
||||||
|
|
||||||
private void updateAccessibilityStickyKeysSwitch() {
|
private void updateAccessibilityStickyKeysSwitch() {
|
||||||
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
||||||
return;
|
return;
|
||||||
@@ -413,6 +444,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final OnPreferenceChangeListener
|
||||||
|
mAccessibilitySlowKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
|
||||||
|
InputSettings.setAccessibilitySlowKeysThreshold(getContext(),
|
||||||
|
((Boolean) newValue) ? 500 : 0);
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
private final OnPreferenceChangeListener
|
private final OnPreferenceChangeListener
|
||||||
mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
|
mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
|
||||||
InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue);
|
InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue);
|
||||||
@@ -426,6 +464,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
|||||||
updateShowVirtualKeyboardSwitch();
|
updateShowVirtualKeyboardSwitch();
|
||||||
} else if (sAccessibilityBounceKeysUri.equals(uri)) {
|
} else if (sAccessibilityBounceKeysUri.equals(uri)) {
|
||||||
updateAccessibilityBounceKeysSwitch();
|
updateAccessibilityBounceKeysSwitch();
|
||||||
|
} else if (sAccessibilitySlowKeysUri.equals(uri)) {
|
||||||
|
updateAccessibilitySlowKeysSwitch();
|
||||||
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
|
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
|
||||||
updateAccessibilityStickyKeysSwitch();
|
updateAccessibilityStickyKeysSwitch();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user