Loading res/values/strings.xml +10 −0 Original line number Diff line number Diff line Loading @@ -4254,12 +4254,22 @@ <string name="add_virtual_keyboard">Manage on-screen keyboards</string> <!-- Title for the 'keyboard options' preference category. [CHAR LIMIT=35] --> <string name="keyboard_options_category">Options</string> <!-- Title for the 'keyboard accessibility options' preference category. [CHAR LIMIT=35] --> <string name="keyboard_a11y_category">Accessibility</string> <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] --> <string name="physical_keyboard_title">Physical keyboard</string> <!-- Title for the 'show virtual keyboard' preference switch. [CHAR LIMIT=35] --> <string name="show_ime">Use on-screen keyboard</string> <!-- Summary text for the 'add virtual keyboard' preference sub-screen. [CHAR LIMIT=100] --> <string name="show_ime_summary">Keep it on screen while physical keyboard is active</string> <!-- Title for the 'Bounce keys' preference switch. [CHAR LIMIT=35] --> <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 '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] --> <string name="sticky_keys_summary">Enable Sticky keys for physical keyboard accessibility</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] --> Loading res/xml/physical_keyboard_settings.xml +18 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,22 @@ android:summary="@string/modifier_keys_settings_summary" android:fragment="com.android.settings.inputmethod.ModifierKeysSettings" /> </PreferenceCategory> <PreferenceCategory 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" /> </PreferenceCategory> </PreferenceScreen> src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java +111 −16 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import android.content.Intent; import android.database.ContentObserver; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.InputSettings; import android.hardware.input.KeyboardLayout; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.UserHandle; Loading Loading @@ -65,10 +67,19 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener { private static final String KEYBOARD_OPTIONS_CATEGORY = "keyboard_options_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 ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_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"; private static final String EXTRA_AUTO_SELECTION = "auto_selection"; private static final Uri sVirtualKeyboardSettingsUri = Secure.getUriFor( Secure.SHOW_IME_WITH_HARD_KEYBOARD); private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor( Secure.ACCESSIBILITY_BOUNCE_KEYS); private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor( Secure.ACCESSIBILITY_STICKY_KEYS); @NonNull private final ArrayList<HardKeyboardDeviceInfo> mLastHardKeyboards = new ArrayList<>(); Loading @@ -80,7 +91,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment @NonNull private PreferenceCategory mKeyboardAssistanceCategory; @Nullable private PreferenceCategory mKeyboardA11yCategory = null; @Nullable private TwoStatePreference mShowVirtualKeyboardSwitch = null; @Nullable private TwoStatePreference mAccessibilityBounceKeys = null; @Nullable private TwoStatePreference mAccessibilityStickyKeys = null; private Intent mIntentWaitingForResult; private boolean mIsNewKeyboardSettings; Loading @@ -102,10 +120,15 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class)); mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class)); mKeyboardAssistanceCategory = Preconditions.checkNotNull( (PreferenceCategory) findPreference(KEYBOARD_OPTIONS_CATEGORY)); mShowVirtualKeyboardSwitch = Preconditions.checkNotNull( (TwoStatePreference) mKeyboardAssistanceCategory.findPreference( SHOW_VIRTUAL_KEYBOARD_SWITCH)); findPreference(KEYBOARD_OPTIONS_CATEGORY)); mShowVirtualKeyboardSwitch = Objects.requireNonNull( mKeyboardAssistanceCategory.findPreference(SHOW_VIRTUAL_KEYBOARD_SWITCH)); mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY)); mAccessibilityBounceKeys = Objects.requireNonNull( mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS)); mAccessibilityStickyKeys = Objects.requireNonNull( mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS)); FeatureFactory featureFactory = FeatureFactory.getFeatureFactory(); mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider(); Loading @@ -121,6 +144,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment if (!isModifierKeySettingsEnabled) { mKeyboardAssistanceCategory.removePreference(findPreference(MODIFIER_KEYS_SETTINGS)); } if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys); } if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys); } InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra( KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER); int intentFromWhere = Loading Loading @@ -161,9 +190,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mLastHardKeyboards.clear(); scheduleUpdateHardKeyboards(); mIm.registerInputDeviceListener(this, null); mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener( Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener( mShowVirtualKeyboardSwitchPreferenceChangeListener); registerShowVirtualKeyboardSettingsObserver(); Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener( mAccessibilityBounceKeysSwitchPreferenceChangeListener); Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener( mAccessibilityStickyKeysSwitchPreferenceChangeListener); registerSettingsObserver(); } @Override Loading @@ -171,8 +204,10 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment super.onPause(); mLastHardKeyboards.clear(); mIm.unregisterInputDeviceListener(this); mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener(null); unregisterShowVirtualKeyboardSettingsObserver(); Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null); Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null); Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null); unregisterSettingsObserver(); } @Override Loading Loading @@ -276,6 +311,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mFeatureProvider.addFirmwareUpdateCategory(getPrefContext(), preferenceScreen); } updateShowVirtualKeyboardSwitch(); if (InputSettings.isAccessibilityBounceKeysFeatureEnabled() || InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2); preferenceScreen.addPreference(mKeyboardA11yCategory); updateAccessibilityBounceKeysSwitch(); updateAccessibilityStickyKeysSwitch(); } } private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) { Loading @@ -296,25 +339,58 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment .launch(); } private void registerShowVirtualKeyboardSettingsObserver() { unregisterShowVirtualKeyboardSettingsObserver(); getActivity().getContentResolver().registerContentObserver( Secure.getUriFor(Secure.SHOW_IME_WITH_HARD_KEYBOARD), private void registerSettingsObserver() { unregisterSettingsObserver(); ContentResolver contentResolver = getActivity().getContentResolver(); contentResolver.registerContentObserver( sVirtualKeyboardSettingsUri, false, mContentObserver, UserHandle.myUserId()); if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { contentResolver.registerContentObserver( sAccessibilityBounceKeysUri, false, mContentObserver, UserHandle.myUserId()); } if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { contentResolver.registerContentObserver( sAccessibilityStickyKeysUri, false, mContentObserver, UserHandle.myUserId()); } updateShowVirtualKeyboardSwitch(); updateAccessibilityBounceKeysSwitch(); updateAccessibilityStickyKeysSwitch(); } private void unregisterShowVirtualKeyboardSettingsObserver() { private void unregisterSettingsObserver() { getActivity().getContentResolver().unregisterContentObserver(mContentObserver); } private void updateShowVirtualKeyboardSwitch() { mShowVirtualKeyboardSwitch.setChecked( Objects.requireNonNull(mShowVirtualKeyboardSwitch).setChecked( Secure.getInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0); } private void updateAccessibilityBounceKeysSwitch() { if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { return; } Objects.requireNonNull(mAccessibilityBounceKeys).setChecked( InputSettings.isAccessibilityBounceKeysEnabled(getContext())); } private void updateAccessibilityStickyKeysSwitch() { if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { return; } Objects.requireNonNull(mAccessibilityStickyKeys).setChecked( InputSettings.isAccessibilityStickyKeysEnabled(getContext())); } private void toggleKeyboardShortcutsMenu() { getActivity().requestShowKeyboardShortcuts(); } Loading @@ -328,10 +404,29 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment return true; }; private final OnPreferenceChangeListener mAccessibilityBounceKeysSwitchPreferenceChangeListener = (preference, newValue) -> { InputSettings.setAccessibilityBounceKeysThreshold(getContext(), ((Boolean) newValue) ? 500 : 0); return true; }; private final OnPreferenceChangeListener mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> { InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue); return true; }; private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) { @Override public void onChange(boolean selfChange) { public void onChange(boolean selfChange, Uri uri) { if (sVirtualKeyboardSettingsUri.equals(uri)) { updateShowVirtualKeyboardSwitch(); } else if (sAccessibilityBounceKeysUri.equals(uri)) { updateAccessibilityBounceKeysSwitch(); } else if (sAccessibilityStickyKeysUri.equals(uri)) { updateAccessibilityStickyKeysSwitch(); } } }; Loading Loading
res/values/strings.xml +10 −0 Original line number Diff line number Diff line Loading @@ -4254,12 +4254,22 @@ <string name="add_virtual_keyboard">Manage on-screen keyboards</string> <!-- Title for the 'keyboard options' preference category. [CHAR LIMIT=35] --> <string name="keyboard_options_category">Options</string> <!-- Title for the 'keyboard accessibility options' preference category. [CHAR LIMIT=35] --> <string name="keyboard_a11y_category">Accessibility</string> <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] --> <string name="physical_keyboard_title">Physical keyboard</string> <!-- Title for the 'show virtual keyboard' preference switch. [CHAR LIMIT=35] --> <string name="show_ime">Use on-screen keyboard</string> <!-- Summary text for the 'add virtual keyboard' preference sub-screen. [CHAR LIMIT=100] --> <string name="show_ime_summary">Keep it on screen while physical keyboard is active</string> <!-- Title for the 'Bounce keys' preference switch. [CHAR LIMIT=35] --> <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 '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] --> <string name="sticky_keys_summary">Enable Sticky keys for physical keyboard accessibility</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] --> Loading
res/xml/physical_keyboard_settings.xml +18 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,22 @@ android:summary="@string/modifier_keys_settings_summary" android:fragment="com.android.settings.inputmethod.ModifierKeysSettings" /> </PreferenceCategory> <PreferenceCategory 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" /> </PreferenceCategory> </PreferenceScreen>
src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java +111 −16 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import android.content.Intent; import android.database.ContentObserver; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.InputSettings; import android.hardware.input.KeyboardLayout; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.UserHandle; Loading Loading @@ -65,10 +67,19 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener { private static final String KEYBOARD_OPTIONS_CATEGORY = "keyboard_options_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 ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_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"; private static final String EXTRA_AUTO_SELECTION = "auto_selection"; private static final Uri sVirtualKeyboardSettingsUri = Secure.getUriFor( Secure.SHOW_IME_WITH_HARD_KEYBOARD); private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor( Secure.ACCESSIBILITY_BOUNCE_KEYS); private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor( Secure.ACCESSIBILITY_STICKY_KEYS); @NonNull private final ArrayList<HardKeyboardDeviceInfo> mLastHardKeyboards = new ArrayList<>(); Loading @@ -80,7 +91,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment @NonNull private PreferenceCategory mKeyboardAssistanceCategory; @Nullable private PreferenceCategory mKeyboardA11yCategory = null; @Nullable private TwoStatePreference mShowVirtualKeyboardSwitch = null; @Nullable private TwoStatePreference mAccessibilityBounceKeys = null; @Nullable private TwoStatePreference mAccessibilityStickyKeys = null; private Intent mIntentWaitingForResult; private boolean mIsNewKeyboardSettings; Loading @@ -102,10 +120,15 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class)); mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class)); mKeyboardAssistanceCategory = Preconditions.checkNotNull( (PreferenceCategory) findPreference(KEYBOARD_OPTIONS_CATEGORY)); mShowVirtualKeyboardSwitch = Preconditions.checkNotNull( (TwoStatePreference) mKeyboardAssistanceCategory.findPreference( SHOW_VIRTUAL_KEYBOARD_SWITCH)); findPreference(KEYBOARD_OPTIONS_CATEGORY)); mShowVirtualKeyboardSwitch = Objects.requireNonNull( mKeyboardAssistanceCategory.findPreference(SHOW_VIRTUAL_KEYBOARD_SWITCH)); mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY)); mAccessibilityBounceKeys = Objects.requireNonNull( mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS)); mAccessibilityStickyKeys = Objects.requireNonNull( mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS)); FeatureFactory featureFactory = FeatureFactory.getFeatureFactory(); mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider(); Loading @@ -121,6 +144,12 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment if (!isModifierKeySettingsEnabled) { mKeyboardAssistanceCategory.removePreference(findPreference(MODIFIER_KEYS_SETTINGS)); } if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys); } if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys); } InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra( KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER); int intentFromWhere = Loading Loading @@ -161,9 +190,13 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mLastHardKeyboards.clear(); scheduleUpdateHardKeyboards(); mIm.registerInputDeviceListener(this, null); mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener( Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener( mShowVirtualKeyboardSwitchPreferenceChangeListener); registerShowVirtualKeyboardSettingsObserver(); Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener( mAccessibilityBounceKeysSwitchPreferenceChangeListener); Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener( mAccessibilityStickyKeysSwitchPreferenceChangeListener); registerSettingsObserver(); } @Override Loading @@ -171,8 +204,10 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment super.onPause(); mLastHardKeyboards.clear(); mIm.unregisterInputDeviceListener(this); mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener(null); unregisterShowVirtualKeyboardSettingsObserver(); Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null); Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null); Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null); unregisterSettingsObserver(); } @Override Loading Loading @@ -276,6 +311,14 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment mFeatureProvider.addFirmwareUpdateCategory(getPrefContext(), preferenceScreen); } updateShowVirtualKeyboardSwitch(); if (InputSettings.isAccessibilityBounceKeysFeatureEnabled() || InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2); preferenceScreen.addPreference(mKeyboardA11yCategory); updateAccessibilityBounceKeysSwitch(); updateAccessibilityStickyKeysSwitch(); } } private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) { Loading @@ -296,25 +339,58 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment .launch(); } private void registerShowVirtualKeyboardSettingsObserver() { unregisterShowVirtualKeyboardSettingsObserver(); getActivity().getContentResolver().registerContentObserver( Secure.getUriFor(Secure.SHOW_IME_WITH_HARD_KEYBOARD), private void registerSettingsObserver() { unregisterSettingsObserver(); ContentResolver contentResolver = getActivity().getContentResolver(); contentResolver.registerContentObserver( sVirtualKeyboardSettingsUri, false, mContentObserver, UserHandle.myUserId()); if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { contentResolver.registerContentObserver( sAccessibilityBounceKeysUri, false, mContentObserver, UserHandle.myUserId()); } if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { contentResolver.registerContentObserver( sAccessibilityStickyKeysUri, false, mContentObserver, UserHandle.myUserId()); } updateShowVirtualKeyboardSwitch(); updateAccessibilityBounceKeysSwitch(); updateAccessibilityStickyKeysSwitch(); } private void unregisterShowVirtualKeyboardSettingsObserver() { private void unregisterSettingsObserver() { getActivity().getContentResolver().unregisterContentObserver(mContentObserver); } private void updateShowVirtualKeyboardSwitch() { mShowVirtualKeyboardSwitch.setChecked( Objects.requireNonNull(mShowVirtualKeyboardSwitch).setChecked( Secure.getInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0); } private void updateAccessibilityBounceKeysSwitch() { if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) { return; } Objects.requireNonNull(mAccessibilityBounceKeys).setChecked( InputSettings.isAccessibilityBounceKeysEnabled(getContext())); } private void updateAccessibilityStickyKeysSwitch() { if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) { return; } Objects.requireNonNull(mAccessibilityStickyKeys).setChecked( InputSettings.isAccessibilityStickyKeysEnabled(getContext())); } private void toggleKeyboardShortcutsMenu() { getActivity().requestShowKeyboardShortcuts(); } Loading @@ -328,10 +404,29 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment return true; }; private final OnPreferenceChangeListener mAccessibilityBounceKeysSwitchPreferenceChangeListener = (preference, newValue) -> { InputSettings.setAccessibilityBounceKeysThreshold(getContext(), ((Boolean) newValue) ? 500 : 0); return true; }; private final OnPreferenceChangeListener mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> { InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue); return true; }; private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) { @Override public void onChange(boolean selfChange) { public void onChange(boolean selfChange, Uri uri) { if (sVirtualKeyboardSettingsUri.equals(uri)) { updateShowVirtualKeyboardSwitch(); } else if (sAccessibilityBounceKeysUri.equals(uri)) { updateAccessibilityBounceKeysSwitch(); } else if (sAccessibilityStickyKeysUri.equals(uri)) { updateAccessibilityStickyKeysSwitch(); } } }; Loading