Only create shortcut preference when no existing shortcut found
Update onCreateView in AccessibilityShortcutPreferenceFragmen so it only create a new shortcutPreference when no existing shortcut preference is found. Bug: 397719419 Test: Manually verified on test devices Flag: com.android.server.accessibility.enable_autoclick_indicator Change-Id: Ic4747240cfd3d48fd97c61fd0b15d44f6ba5cf0a
This commit is contained in:
@@ -22,23 +22,26 @@
|
|||||||
<com.android.settingslib.widget.TopIntroPreference
|
<com.android.settingslib.widget.TopIntroPreference
|
||||||
android:key="accessibility_autoclick_intro"
|
android:key="accessibility_autoclick_intro"
|
||||||
android:title="@string/accessibility_autoclick_intro_text"
|
android:title="@string/accessibility_autoclick_intro_text"
|
||||||
settings:searchable="false"
|
settings:searchable="false"/>
|
||||||
android:order="10"/>
|
|
||||||
|
|
||||||
<com.android.settingslib.widget.IllustrationPreference
|
<com.android.settingslib.widget.IllustrationPreference
|
||||||
android:key="accessibility_autoclick_banner"
|
android:key="accessibility_autoclick_banner"
|
||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
settings:searchable="false"
|
settings:searchable="false"
|
||||||
settings:lottie_rawRes="@drawable/accessibility_dwell"
|
settings:lottie_rawRes="@drawable/accessibility_dwell"/>
|
||||||
android:order="20"/>
|
|
||||||
|
<com.android.settings.accessibility.ShortcutPreference
|
||||||
|
android:key="autoclick_shortcut_preference"
|
||||||
|
android:title="@string/accessibility_autoclick_shortcut_title"
|
||||||
|
android:persistent="false"
|
||||||
|
settings:searchable="false"/>
|
||||||
|
|
||||||
<!-- Items in a list should not be searchable. -->
|
<!-- Items in a list should not be searchable. -->
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
android:key="accessibility_control_autoclick_default"
|
android:key="accessibility_control_autoclick_default"
|
||||||
android:title="@string/accessibility_autoclick_default_title"
|
android:title="@string/accessibility_autoclick_default_title"
|
||||||
settings:searchable="false"
|
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. -->
|
<!-- Items in a list should not be searchable. -->
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
@@ -46,8 +49,7 @@
|
|||||||
android:title="@string/accessibility_autoclick_short_title"
|
android:title="@string/accessibility_autoclick_short_title"
|
||||||
android:summary="@string/accessibility_autoclick_short_summary"
|
android:summary="@string/accessibility_autoclick_short_summary"
|
||||||
settings:searchable="false"
|
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. -->
|
<!-- Items in a list should not be searchable. -->
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
@@ -55,8 +57,7 @@
|
|||||||
android:title="@string/accessibility_autoclick_medium_title"
|
android:title="@string/accessibility_autoclick_medium_title"
|
||||||
android:summary="@string/accessibility_autoclick_medium_summary"
|
android:summary="@string/accessibility_autoclick_medium_summary"
|
||||||
settings:searchable="false"
|
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. -->
|
<!-- Items in a list should not be searchable. -->
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
@@ -64,16 +65,14 @@
|
|||||||
android:title="@string/accessibility_autoclick_long_title"
|
android:title="@string/accessibility_autoclick_long_title"
|
||||||
android:summary="@string/accessibility_autoclick_long_summary"
|
android:summary="@string/accessibility_autoclick_long_summary"
|
||||||
settings:searchable="false"
|
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. -->
|
<!-- Items in a list should not be searchable. -->
|
||||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||||
android:key="accessibility_control_autoclick_custom"
|
android:key="accessibility_control_autoclick_custom"
|
||||||
android:title="@string/accessibility_autoclick_custom_title"
|
android:title="@string/accessibility_autoclick_custom_title"
|
||||||
settings:searchable="false"
|
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
|
<com.android.settingslib.widget.LayoutPreference
|
||||||
android:key="autoclick_custom_seekbar"
|
android:key="autoclick_custom_seekbar"
|
||||||
@@ -81,28 +80,24 @@
|
|||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
settings:searchable="false"
|
settings:searchable="false"
|
||||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"
|
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"/>
|
||||||
android:order="40"/>
|
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="accessibility_control_autoclick_cursor_area_size"
|
android:key="accessibility_control_autoclick_cursor_area_size"
|
||||||
android:persistent="false"
|
android:persistent="false"
|
||||||
settings:searchable="false"
|
settings:searchable="false"
|
||||||
android:title="@string/autoclick_cursor_area_size_title"
|
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
|
<SwitchPreferenceCompat
|
||||||
android:key="accessibility_control_autoclick_ignore_minor_cursor_movement"
|
android:key="accessibility_control_autoclick_ignore_minor_cursor_movement"
|
||||||
android:title="@string/autoclick_ignore_minor_cursor_movement_title"
|
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
|
<com.android.settings.accessibility.AccessibilityFooterPreference
|
||||||
android:key="accessibility_autoclick_footer"
|
android:key="accessibility_autoclick_footer"
|
||||||
android:title="@string/accessibility_autoclick_description"
|
android:title="@string/accessibility_autoclick_description"
|
||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
settings:searchable="false"
|
settings:searchable="false"
|
||||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"
|
settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"/>
|
||||||
android:order="70"/>
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -104,14 +104,17 @@ public abstract class AccessibilityShortcutPreferenceFragment extends Restricted
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
mShortcutPreference =
|
||||||
|
getPreferenceScreen().findPreference(getShortcutPreferenceKey());
|
||||||
|
if (mShortcutPreference == null) {
|
||||||
mShortcutPreference = new ShortcutPreference(getPrefContext(), /* attrs= */ null);
|
mShortcutPreference = new ShortcutPreference(getPrefContext(), /* attrs= */ null);
|
||||||
mShortcutPreference.setPersistent(false);
|
mShortcutPreference.setPersistent(false);
|
||||||
mShortcutPreference.setKey(getShortcutPreferenceKey());
|
mShortcutPreference.setKey(getShortcutPreferenceKey());
|
||||||
|
getPreferenceScreen().addPreference(mShortcutPreference);
|
||||||
|
}
|
||||||
|
|
||||||
mShortcutPreference.setOnClickCallback(this);
|
mShortcutPreference.setOnClickCallback(this);
|
||||||
mShortcutPreference.setTitle(getShortcutTitle());
|
mShortcutPreference.setTitle(getShortcutTitle());
|
||||||
|
|
||||||
getPreferenceScreen().addPreference(mShortcutPreference);
|
|
||||||
|
|
||||||
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
|
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
|
||||||
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
||||||
};
|
};
|
||||||
|
@@ -24,6 +24,8 @@ import android.view.View;
|
|||||||
import android.widget.CompoundButton;
|
import android.widget.CompoundButton;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.preference.PreferenceViewHolder;
|
import androidx.preference.PreferenceViewHolder;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -60,7 +62,7 @@ public class ShortcutPreference extends TwoTargetPreference {
|
|||||||
private boolean mChecked = false;
|
private boolean mChecked = false;
|
||||||
private boolean mSettingsEditable = true;
|
private boolean mSettingsEditable = true;
|
||||||
|
|
||||||
ShortcutPreference(Context context, AttributeSet attrs) {
|
public ShortcutPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
setIconSpaceReserved(false);
|
setIconSpaceReserved(false);
|
||||||
// Treat onSettingsClicked as this preference's click.
|
// Treat onSettingsClicked as this preference's click.
|
||||||
|
@@ -29,7 +29,6 @@ import com.android.server.accessibility.Flags;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
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
|
* Fragment for preference screen for settings related to Automatically click after mouse stops
|
||||||
@@ -41,7 +40,6 @@ public class ToggleAutoclickPreferenceFragment
|
|||||||
|
|
||||||
private static final String TAG = "AutoclickPrefFragment";
|
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";
|
static final String KEY_AUTOCLICK_SHORTCUT_PREFERENCE = "autoclick_shortcut_preference";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,10 +98,7 @@ public class ToggleAutoclickPreferenceFragment
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
View view = super.onCreateView(inflater, container, savedInstanceState);
|
View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||||
if (Flags.enableAutoclickIndicator()) {
|
if (!Flags.enableAutoclickIndicator()) {
|
||||||
SelectorWithWidgetPreference optionDefault = findPreference(KEY_CONTROL_DEFAULT);
|
|
||||||
mShortcutPreference.setOrder(optionDefault.getOrder() - 1);
|
|
||||||
} else {
|
|
||||||
getPreferenceScreen().removePreference(mShortcutPreference);
|
getPreferenceScreen().removePreference(mShortcutPreference);
|
||||||
}
|
}
|
||||||
return view;
|
return view;
|
||||||
|
Reference in New Issue
Block a user