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
|
||||
android:key="accessibility_autoclick_intro"
|
||||
android:title="@string/accessibility_autoclick_intro_text"
|
||||
settings:searchable="false"
|
||||
android:order="10"/>
|
||||
settings:searchable="false"/>
|
||||
|
||||
<com.android.settingslib.widget.IllustrationPreference
|
||||
android:key="accessibility_autoclick_banner"
|
||||
android:selectable="false"
|
||||
settings:searchable="false"
|
||||
settings:lottie_rawRes="@drawable/accessibility_dwell"
|
||||
android:order="20"/>
|
||||
settings:lottie_rawRes="@drawable/accessibility_dwell"/>
|
||||
|
||||
<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. -->
|
||||
<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"
|
||||
android:order="30"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
|
||||
|
||||
<!-- Items in a list should not be searchable. -->
|
||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||
@@ -46,8 +49,7 @@
|
||||
android:title="@string/accessibility_autoclick_short_title"
|
||||
android:summary="@string/accessibility_autoclick_short_summary"
|
||||
settings:searchable="false"
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
|
||||
android:order="31"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
|
||||
|
||||
<!-- Items in a list should not be searchable. -->
|
||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||
@@ -55,8 +57,7 @@
|
||||
android:title="@string/accessibility_autoclick_medium_title"
|
||||
android:summary="@string/accessibility_autoclick_medium_summary"
|
||||
settings:searchable="false"
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
|
||||
android:order="32"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
|
||||
|
||||
<!-- Items in a list should not be searchable. -->
|
||||
<com.android.settingslib.widget.SelectorWithWidgetPreference
|
||||
@@ -64,16 +65,14 @@
|
||||
android:title="@string/accessibility_autoclick_long_title"
|
||||
android:summary="@string/accessibility_autoclick_long_summary"
|
||||
settings:searchable="false"
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"
|
||||
android:order="33"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
|
||||
|
||||
<!-- 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"
|
||||
android:order="34"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickPreferenceController"/>
|
||||
|
||||
<com.android.settingslib.widget.LayoutPreference
|
||||
android:key="autoclick_custom_seekbar"
|
||||
@@ -81,28 +80,24 @@
|
||||
android:selectable="false"
|
||||
android:visibility="gone"
|
||||
settings:searchable="false"
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"
|
||||
android:order="40"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController"/>
|
||||
|
||||
<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"
|
||||
android:order="50"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickCursorAreaSizeController"/>
|
||||
|
||||
<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"
|
||||
android:order="60"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickIgnoreMinorCursorMovementController"/>
|
||||
|
||||
<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"
|
||||
android:order="70"/>
|
||||
settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"/>
|
||||
</PreferenceScreen>
|
||||
|
@@ -104,14 +104,17 @@ public abstract class AccessibilityShortcutPreferenceFragment extends Restricted
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
mShortcutPreference =
|
||||
getPreferenceScreen().findPreference(getShortcutPreferenceKey());
|
||||
if (mShortcutPreference == null) {
|
||||
mShortcutPreference = new ShortcutPreference(getPrefContext(), /* attrs= */ null);
|
||||
mShortcutPreference.setPersistent(false);
|
||||
mShortcutPreference.setKey(getShortcutPreferenceKey());
|
||||
getPreferenceScreen().addPreference(mShortcutPreference);
|
||||
}
|
||||
|
||||
mShortcutPreference.setOnClickCallback(this);
|
||||
mShortcutPreference.setTitle(getShortcutTitle());
|
||||
|
||||
getPreferenceScreen().addPreference(mShortcutPreference);
|
||||
|
||||
mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
|
||||
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
||||
};
|
||||
|
@@ -24,6 +24,8 @@ import android.view.View;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -60,7 +62,7 @@ public class ShortcutPreference extends TwoTargetPreference {
|
||||
private boolean mChecked = false;
|
||||
private boolean mSettingsEditable = true;
|
||||
|
||||
ShortcutPreference(Context context, AttributeSet attrs) {
|
||||
public ShortcutPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
setIconSpaceReserved(false);
|
||||
// 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.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
|
||||
@@ -41,7 +40,6 @@ public class ToggleAutoclickPreferenceFragment
|
||||
|
||||
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";
|
||||
|
||||
/**
|
||||
@@ -100,10 +98,7 @@ public class ToggleAutoclickPreferenceFragment
|
||||
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 {
|
||||
if (!Flags.enableAutoclickIndicator()) {
|
||||
getPreferenceScreen().removePreference(mShortcutPreference);
|
||||
}
|
||||
return view;
|
||||
|
Reference in New Issue
Block a user