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

Commit caa9338d authored by Vaibhav Devmurari's avatar Vaibhav Devmurari Committed by Android (Google) Code Review
Browse files

Merge "Add Slow keys A11Y settings to PK settings page" into main

parents f7f58bd7 bd26b3a4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4311,6 +4311,10 @@
    <string name="bounce_keys">Bounce keys</string>
    <!-- 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>
    <!-- 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] -->
    <string name="sticky_keys">Sticky keys</string>
    <!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=100] -->
+12 −6
Original line number Diff line number Diff line
@@ -43,17 +43,23 @@
        android:key="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
            android:key="accessibility_sticky_keys"
            android:title="@string/sticky_keys"
            android:summary="@string/sticky_keys_summary"
            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>
</PreferenceScreen>
+41 −1
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
    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 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 KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
    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);
    private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor(
            Secure.ACCESSIBILITY_BOUNCE_KEYS);
    private static final Uri sAccessibilitySlowKeysUri = Secure.getUriFor(
            Secure.ACCESSIBILITY_SLOW_KEYS);
    private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
            Secure.ACCESSIBILITY_STICKY_KEYS);

@@ -97,6 +100,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
    @Nullable
    private TwoStatePreference mAccessibilityBounceKeys = null;
    @Nullable
    private TwoStatePreference mAccessibilitySlowKeys = null;
    @Nullable
    private TwoStatePreference mAccessibilityStickyKeys = null;


@@ -127,6 +132,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
        mAccessibilityBounceKeys = Objects.requireNonNull(
                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS));
        mAccessibilitySlowKeys = Objects.requireNonNull(
                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_SLOW_KEYS));
        mAccessibilityStickyKeys = Objects.requireNonNull(
                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));

@@ -147,6 +154,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
            mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys);
        }
        if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
            mKeyboardA11yCategory.removePreference(mAccessibilitySlowKeys);
        }
        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
            mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
        }
@@ -196,6 +206,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                mShowVirtualKeyboardSwitchPreferenceChangeListener);
        Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(
                mAccessibilityBounceKeysSwitchPreferenceChangeListener);
        Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(
                mAccessibilitySlowKeysSwitchPreferenceChangeListener);
        Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
                mAccessibilityStickyKeysSwitchPreferenceChangeListener);
        registerSettingsObserver();
@@ -208,6 +220,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        mIm.unregisterInputDeviceListener(this);
        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null);
        Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
        Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
        Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
        unregisterSettingsObserver();
    }
@@ -315,10 +328,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        updateShowVirtualKeyboardSwitch();

        if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
                || InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
                || InputSettings.isAccessibilityStickyKeysFeatureEnabled()
                || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
            Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
            preferenceScreen.addPreference(mKeyboardA11yCategory);
            updateAccessibilityBounceKeysSwitch();
            updateAccessibilitySlowKeysSwitch();
            updateAccessibilityStickyKeysSwitch();
        }
    }
@@ -356,6 +371,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                    mContentObserver,
                    UserHandle.myUserId());
        }
        if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
            contentResolver.registerContentObserver(
                    sAccessibilitySlowKeysUri,
                    false,
                    mContentObserver,
                    UserHandle.myUserId());
        }
        if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
            contentResolver.registerContentObserver(
                    sAccessibilityStickyKeysUri,
@@ -365,6 +387,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
        }
        updateShowVirtualKeyboardSwitch();
        updateAccessibilityBounceKeysSwitch();
        updateAccessibilitySlowKeysSwitch();
        updateAccessibilityStickyKeysSwitch();
    }

@@ -385,6 +408,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                InputSettings.isAccessibilityBounceKeysEnabled(getContext()));
    }

    private void updateAccessibilitySlowKeysSwitch() {
        if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
            return;
        }
        Objects.requireNonNull(mAccessibilitySlowKeys).setChecked(
                InputSettings.isAccessibilitySlowKeysEnabled(getContext()));
    }

    private void updateAccessibilityStickyKeysSwitch() {
        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
            return;
@@ -413,6 +444,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                return true;
            };

    private final OnPreferenceChangeListener
            mAccessibilitySlowKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
                InputSettings.setAccessibilitySlowKeysThreshold(getContext(),
                        ((Boolean) newValue) ? 500 : 0);
                return true;
            };

    private final OnPreferenceChangeListener
            mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
                InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue);
@@ -426,6 +464,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
                updateShowVirtualKeyboardSwitch();
            } else if (sAccessibilityBounceKeysUri.equals(uri)) {
                updateAccessibilityBounceKeysSwitch();
            } else if (sAccessibilitySlowKeysUri.equals(uri)) {
                updateAccessibilitySlowKeysSwitch();
            } else if (sAccessibilityStickyKeysUri.equals(uri)) {
                updateAccessibilityStickyKeysSwitch();
            }