Fix Settings Search for OneHandedSettings

- Marks top header preference as non-searchable
- Makes shortcut preference searchable

Fix: 353591062
Test: manually confirm above behaviors
Test: atest OneHandedSettingsTest
Flag: com.android.settings.accessibility.fix_a11y_settings_search
Change-Id: I3355f817358cec1d265b89d75229ffc2742efe1c
This commit is contained in:
Daniel Norman
2024-11-08 01:45:03 +00:00
parent 7b846bc9ad
commit 5ddd74b917
3 changed files with 69 additions and 2 deletions

View File

@@ -29,15 +29,19 @@ import android.view.ViewGroup;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.accessibility.AccessibilityShortcutController;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.accessibility.AccessibilityFragmentUtils;
import com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment;
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.widget.IllustrationPreference;
import com.android.settingslib.widget.MainSwitchPreference;
import java.util.List;
/**
* Fragment for One-handed mode settings
*
@@ -48,7 +52,8 @@ import com.android.settingslib.widget.MainSwitchPreference;
public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
private static final String TAG = "OneHandedSettings";
private static final String ONE_HANDED_SHORTCUT_KEY = "one_handed_shortcuts_preference";
@VisibleForTesting
static final String ONE_HANDED_SHORTCUT_KEY = "one_handed_shortcuts_preference";
private static final String ONE_HANDED_ILLUSTRATION_KEY = "one_handed_header";
protected static final String ONE_HANDED_MAIN_SWITCH_KEY =
"gesture_one_handed_mode_enabled_main_switch";
@@ -180,6 +185,25 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
protected boolean isPageSearchEnabled(Context context) {
return OneHandedSettingsUtils.isSupportOneHandedMode();
}
@Override
public List<SearchIndexableRaw> getRawDataToIndex(Context context,
boolean enabled) {
final List<SearchIndexableRaw> rawData =
super.getRawDataToIndex(context, enabled);
if (!com.android.settings.accessibility.Flags.fixA11ySettingsSearch()) {
return rawData;
}
rawData.add(createShortcutPreferenceSearchData(context));
return rawData;
}
private SearchIndexableRaw createShortcutPreferenceSearchData(Context context) {
final SearchIndexableRaw raw = new SearchIndexableRaw(context);
raw.key = ONE_HANDED_SHORTCUT_KEY;
raw.title = context.getString(R.string.one_handed_mode_shortcut_title);
return raw;
}
};
@Override