Merge "Add Mouse keys A11Y settings to PK settings page" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
541038ebb7
@@ -4451,6 +4451,10 @@
|
||||
<string name="sticky_keys">Sticky keys</string>
|
||||
<!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=300] -->
|
||||
<string name="sticky_keys_summary">Press one key at a time for shortcuts instead of holding keys down together</string>
|
||||
<!-- Title for a toggle switch for 'mouse' keys, an accessibility setting that allows the mouse pointer to be controlled using certain keys on a physical keyboard if keyboard is connected. [CHAR LIMIT=35] -->
|
||||
<string name="mouse_keys">Mouse keys</string>
|
||||
<!-- Summary text for the accessibility setting 'Mouse keys' preference sub-screen. [CHAR LIMIT=100] -->
|
||||
<string name="mouse_keys_summary">Use the physical keyboard to control the mouse.</string>
|
||||
<!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
|
||||
<string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
|
||||
<!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
|
||||
|
||||
@@ -53,5 +53,11 @@
|
||||
android:title="@string/slow_keys"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:key="accessibility_mouse_keys"
|
||||
android:title="@string/mouse_keys"
|
||||
android:summary="@string/mouse_keys_summary"
|
||||
android:defaultValue="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
|
||||
@@ -73,6 +73,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
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_MOUSE_KEYS = "accessibility_mouse_keys";
|
||||
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
|
||||
private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
|
||||
private static final String EXTRA_AUTO_SELECTION = "auto_selection";
|
||||
@@ -84,6 +85,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
Secure.ACCESSIBILITY_SLOW_KEYS);
|
||||
private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
|
||||
Secure.ACCESSIBILITY_STICKY_KEYS);
|
||||
private static final Uri sAccessibilityMouseKeysUri = Secure.getUriFor(
|
||||
Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED);
|
||||
public static final int BOUNCE_KEYS_THRESHOLD = 500;
|
||||
public static final int SLOW_KEYS_THRESHOLD = 500;
|
||||
|
||||
@@ -104,7 +107,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
private TwoStatePreference mAccessibilitySlowKeys = null;
|
||||
@Nullable
|
||||
private TwoStatePreference mAccessibilityStickyKeys = null;
|
||||
|
||||
@Nullable
|
||||
private TwoStatePreference mAccessibilityMouseKeys = null;
|
||||
|
||||
private Intent mIntentWaitingForResult;
|
||||
private boolean mSupportsFirmwareUpdate;
|
||||
@@ -138,6 +142,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
getContext().getString(R.string.slow_keys_summary, SLOW_KEYS_THRESHOLD));
|
||||
mAccessibilityStickyKeys = Objects.requireNonNull(
|
||||
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
|
||||
mAccessibilityMouseKeys = Objects.requireNonNull(
|
||||
mKeyboardA11yCategory.findPreference(ACCESSIBILITY_MOUSE_KEYS));
|
||||
|
||||
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
|
||||
mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
|
||||
@@ -160,6 +166,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
|
||||
mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
|
||||
}
|
||||
if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||
mKeyboardA11yCategory.removePreference(mAccessibilityMouseKeys);
|
||||
}
|
||||
InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
|
||||
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
|
||||
InputDeviceIdentifier.class);
|
||||
@@ -208,6 +217,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
mAccessibilitySlowKeysSwitchPreferenceChangeListener);
|
||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
|
||||
mAccessibilityStickyKeysSwitchPreferenceChangeListener);
|
||||
Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(
|
||||
mAccessibilityMouseKeysSwitchPreferenceChangeListener);
|
||||
registerSettingsObserver();
|
||||
}
|
||||
|
||||
@@ -219,6 +230,7 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
|
||||
Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
|
||||
Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
|
||||
Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(null);
|
||||
unregisterSettingsObserver();
|
||||
}
|
||||
|
||||
@@ -309,12 +321,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
|
||||
if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
|
||||
|| InputSettings.isAccessibilityStickyKeysFeatureEnabled()
|
||||
|| InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
|
||||
|| InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
|
||||
|| InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||
Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
|
||||
preferenceScreen.addPreference(mKeyboardA11yCategory);
|
||||
updateAccessibilityBounceKeysSwitch();
|
||||
updateAccessibilitySlowKeysSwitch();
|
||||
updateAccessibilityStickyKeysSwitch();
|
||||
updateAccessibilityMouseKeysSwitch();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,9 +379,17 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
mContentObserver,
|
||||
UserHandle.myUserId());
|
||||
}
|
||||
if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||
contentResolver.registerContentObserver(
|
||||
sAccessibilityMouseKeysUri,
|
||||
false,
|
||||
mContentObserver,
|
||||
UserHandle.myUserId());
|
||||
}
|
||||
updateAccessibilityBounceKeysSwitch();
|
||||
updateAccessibilitySlowKeysSwitch();
|
||||
updateAccessibilityStickyKeysSwitch();
|
||||
updateAccessibilityMouseKeysSwitch();
|
||||
}
|
||||
|
||||
private void unregisterSettingsObserver() {
|
||||
@@ -398,6 +420,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
|
||||
}
|
||||
|
||||
private void updateAccessibilityMouseKeysSwitch() {
|
||||
if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
|
||||
return;
|
||||
}
|
||||
Objects.requireNonNull(mAccessibilityMouseKeys).setChecked(
|
||||
InputSettings.isAccessibilityMouseKeysEnabled(getContext()));
|
||||
}
|
||||
|
||||
private void toggleKeyboardShortcutsMenu() {
|
||||
getActivity().requestShowKeyboardShortcuts();
|
||||
}
|
||||
@@ -422,6 +452,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
return true;
|
||||
};
|
||||
|
||||
private final OnPreferenceChangeListener
|
||||
mAccessibilityMouseKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
|
||||
InputSettings.setAccessibilityMouseKeysEnabled(getContext(), (Boolean) newValue);
|
||||
return true;
|
||||
};
|
||||
|
||||
private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
|
||||
@Override
|
||||
public void onChange(boolean selfChange, Uri uri) {
|
||||
@@ -431,6 +467,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
|
||||
updateAccessibilitySlowKeysSwitch();
|
||||
} else if (sAccessibilityStickyKeysUri.equals(uri)) {
|
||||
updateAccessibilityStickyKeysSwitch();
|
||||
} else if (sAccessibilityMouseKeysUri.equals(uri)) {
|
||||
updateAccessibilityMouseKeysSwitch();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user