Merge "Add autoclick shortcut to a11y autoclick settings" into main

This commit is contained in:
Yuhan Yang
2025-02-21 11:15:54 -08:00
committed by Android (Google) Code Review
3 changed files with 85 additions and 14 deletions

View File

@@ -5650,6 +5650,9 @@
<string name="accessibility_autoclick_longer_desc">Longer</string>
<!-- Description for the seekbar that adjust auto click time. [CHAR_LIMIT=NONE] -->
<string name="accessibility_autoclick_seekbar_desc">Auto click time</string>
<!-- Title for the toggle button that turns on/off the autoclick shortcut. [CHAR_LIMIT=NONE] -->
<!-- TODO(b/394683600): Update string to translatable once approved by UXW. -->
<string name="accessibility_autoclick_shortcut_title" translatable="false">Autoclick shortcut</string>
<!-- Title for the alert dialog that adjust auto click cursor area size. [CHAR_LIMIT=NONE] -->
<!-- TODO(b/394683600): Update string to translatable once approved by UXW. -->
<string name="autoclick_cursor_area_size_title" translatable="false">Click area</string>

View File

@@ -22,20 +22,23 @@
<com.android.settingslib.widget.TopIntroPreference
android:key="accessibility_autoclick_intro"
android:title="@string/accessibility_autoclick_intro_text"
settings:searchable="false"/>
settings:searchable="false"
android:order="10"/>
<com.android.settingslib.widget.IllustrationPreference
android:key="accessibility_autoclick_banner"
android:selectable="false"
settings:searchable="false"
settings:lottie_rawRes="@drawable/accessibility_dwell"/>
settings:lottie_rawRes="@drawable/accessibility_dwell"
android:order="20"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference
android:key="accessibility_control_autoclick_default"
android:title="@string/accessibility_autoclick_default_title"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
android:order="30"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference
@@ -43,7 +46,8 @@
android:title="@string/accessibility_autoclick_short_title"
android:summary="@string/accessibility_autoclick_short_summary"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
android:order="31"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference
@@ -51,7 +55,8 @@
android:title="@string/accessibility_autoclick_medium_title"
android:summary="@string/accessibility_autoclick_medium_summary"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
android:order="32"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference
@@ -59,14 +64,16 @@
android:title="@string/accessibility_autoclick_long_title"
android:summary="@string/accessibility_autoclick_long_summary"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
android:order="33"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference
android:key="accessibility_control_autoclick_custom"
android:title="@string/accessibility_autoclick_custom_title"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
android:order="34"/>
<com.android.settingslib.widget.LayoutPreference
android:key="autoclick_custom_seekbar"
@@ -74,24 +81,28 @@
android:selectable="false"
android:visibility="gone"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"
android:order="40"/>
<Preference
android:key="accessibility_control_autoclick_cursor_area_size"
android:persistent="false"
settings:searchable="false"
android:title="@string/autoclick_cursor_area_size_title"
settings:controller="com.android.settings.accessibility.ToggleAutoclickCursorAreaSizeController" />
settings:controller="com.android.settings.accessibility.ToggleAutoclickCursorAreaSizeController"
android:order="50"/>
<SwitchPreferenceCompat
android:key="accessibility_control_autoclick_ignore_minor_cursor_movement"
android:title="@string/autoclick_ignore_minor_cursor_movement_title"
settings:controller="com.android.settings.accessibility.ToggleAutoclickIgnoreMinorCursorMovementController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickIgnoreMinorCursorMovementController"
android:order="60"/>
<com.android.settings.accessibility.AccessibilityFooterPreference
android:key="accessibility_autoclick_footer"
android:title="@string/accessibility_autoclick_description"
android:selectable="false"
settings:searchable="false"
settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"/>
settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"
android:order="70"/>
</PreferenceScreen>

View File

@@ -16,22 +16,51 @@
package com.android.settings.accessibility;
import android.app.settings.SettingsEnums;
import static com.android.internal.accessibility.AccessibilityShortcutController.AUTOCLICK_COMPONENT_NAME;
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.server.accessibility.Flags;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
/**
* Fragment for preference screen for settings related to Automatically click after mouse stops
* feature.
*/
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class ToggleAutoclickPreferenceFragment extends DashboardFragment {
public class ToggleAutoclickPreferenceFragment
extends AccessibilityShortcutPreferenceFragment {
private static final String TAG = "AutoclickPrefFragment";
static final String KEY_CONTROL_DEFAULT = "accessibility_control_autoclick_default";
static final String KEY_AUTOCLICK_SHORTCUT_PREFERENCE = "autoclick_shortcut_preference";
/**
* Autoclick settings do not need to set any restriction key for pin protected.
*/
public ToggleAutoclickPreferenceFragment() {
super(/* restrictionKey= */ null);
}
@Override
protected CharSequence getLabelName() {
return getContext().getString(R.string.accessibility_autoclick_shortcut_title);
}
@Override
protected boolean showGeneralCategory() {
return false;
}
@Override
public int getMetricsCategory() {
return SettingsEnums.ACCESSIBILITY_TOGGLE_AUTOCLICK;
@@ -52,6 +81,34 @@ public class ToggleAutoclickPreferenceFragment extends DashboardFragment {
return R.xml.accessibility_autoclick_settings;
}
@Override
protected ComponentName getComponentName() {
return AUTOCLICK_COMPONENT_NAME;
}
@Override
protected CharSequence getShortcutTitle() {
return getString(R.string.accessibility_autoclick_shortcut_title);
}
@Override
protected String getShortcutPreferenceKey() {
return KEY_AUTOCLICK_SHORTCUT_PREFERENCE;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
if (Flags.enableAutoclickIndicator()) {
SelectorWithWidgetPreference optionDefault = findPreference(KEY_CONTROL_DEFAULT);
mShortcutPreference.setOrder(optionDefault.getOrder() - 1);
} else {
getPreferenceScreen().removePreference(mShortcutPreference);
}
return view;
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings);
}