Merge "Physical keyboard related options shouldn't be searchable when invisible" into main

This commit is contained in:
Chun-Ku Lin
2024-07-31 19:09:06 +00:00
committed by Android (Google) Code Review
8 changed files with 158 additions and 6 deletions

View File

@@ -613,7 +613,7 @@ public class AccessibilitySettings extends DashboardFragment implements
}
}
private boolean isAnyHardKeyboardsExist() {
static boolean isAnyHardKeyboardsExist() {
for (int deviceId : InputDevice.getDeviceIds()) {
final InputDevice device = InputDevice.getDevice(deviceId);
if (device != null && !device.isVirtual() && device.isFullKeyboard()) {

View File

@@ -19,16 +19,21 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.hardware.input.InputSettings;
import android.util.Log;
import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import java.util.List;
/**
* A toggle preference controller for keyboard bounce key.
*/
public class KeyboardBounceKeyPreferenceController extends TogglePreferenceController {
private static final String TAG = "BounceKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_bounce_keys";
public KeyboardBounceKeyPreferenceController(Context context, String preferenceKey) {
@@ -58,4 +63,17 @@ public class KeyboardBounceKeyPreferenceController extends TogglePreferenceContr
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
@Override
public void updateNonIndexableKeys(@NonNull List<String> keys) {
super.updateNonIndexableKeys(keys);
if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
if (keys.contains(getPreferenceKey())) {
Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
return;
}
keys.add(getPreferenceKey());
}
}
}

View File

@@ -19,15 +19,21 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.hardware.input.InputSettings;
import android.util.Log;
import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
import java.util.List;
/**
* A toggle preference controller for keyboard slow key.
*/
public class KeyboardSlowKeyPreferenceController extends TogglePreferenceController {
private static final String TAG = "SlowKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_slow_keys";
@@ -58,4 +64,17 @@ public class KeyboardSlowKeyPreferenceController extends TogglePreferenceControl
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
@Override
public void updateNonIndexableKeys(@NonNull List<String> keys) {
super.updateNonIndexableKeys(keys);
if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
if (keys.contains(getPreferenceKey())) {
Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
return;
}
keys.add(getPreferenceKey());
}
}
}

View File

@@ -19,15 +19,20 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.hardware.input.InputSettings;
import android.util.Log;
import androidx.annotation.NonNull;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import java.util.List;
/**
* A toggle preference controller for keyboard sticky key.
*/
public class KeyboardStickyKeyPreferenceController extends TogglePreferenceController {
private static final String TAG = "StickyKeyPrefController";
static final String PREF_KEY = "toggle_keyboard_sticky_keys";
public KeyboardStickyKeyPreferenceController(Context context, String preferenceKey) {
@@ -55,4 +60,17 @@ public class KeyboardStickyKeyPreferenceController extends TogglePreferenceContr
public int getSliceHighlightMenuRes() {
return R.string.menu_key_accessibility;
}
@Override
public void updateNonIndexableKeys(@NonNull List<String> keys) {
super.updateNonIndexableKeys(keys);
if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
if (keys.contains(getPreferenceKey())) {
Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
return;
}
keys.add(getPreferenceKey());
}
}
}