Update autoclick shortcut searchable

Add autoclick shortcut to search index when
enable_autoclick_indicator flag is enabled.
Hide it when the flag is off.

Bug: 397719419
Test: atest ToggleAutoclickPreferenceFragmentTest
Flag: com.android.server.accessibility.enable_autoclick_indicator
Change-Id: Ib6d25067d024ff0dbea64d17d38fc544c615db97
This commit is contained in:
Yuhan Yang
2025-02-21 04:33:51 +00:00
parent 4d52d72337
commit 664df0f4cc
3 changed files with 43 additions and 3 deletions

View File

@@ -33,8 +33,7 @@
<com.android.settings.accessibility.ShortcutPreference
android:key="autoclick_shortcut_preference"
android:title="@string/accessibility_autoclick_shortcut_title"
android:persistent="false"
settings:searchable="false"/>
android:persistent="false"/>
<!-- Items in a list should not be searchable. -->
<com.android.settingslib.widget.SelectorWithWidgetPreference

View File

@@ -20,16 +20,20 @@ import static com.android.internal.accessibility.AccessibilityShortcutController
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.accessibility.Flags;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import java.util.List;
/**
* Fragment for preference screen for settings related to Automatically click after mouse stops
* feature.
@@ -40,6 +44,7 @@ public class ToggleAutoclickPreferenceFragment
private static final String TAG = "AutoclickPrefFragment";
@VisibleForTesting
static final String KEY_AUTOCLICK_SHORTCUT_PREFERENCE = "autoclick_shortcut_preference";
/**
@@ -105,5 +110,15 @@ public class ToggleAutoclickPreferenceFragment
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings);
new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings) {
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> niks = super.getNonIndexableKeys(context);
if (!Flags.enableAutoclickIndicator()) {
niks.add(KEY_AUTOCLICK_SHORTCUT_PREFERENCE);
}
return niks;
}
};
}

View File

@@ -16,10 +16,15 @@
package com.android.settings.accessibility;
import static com.android.settings.accessibility.ToggleAutoclickPreferenceFragment.KEY_AUTOCLICK_SHORTCUT_PREFERENCE;
import static com.google.common.truth.Truth.assertThat;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import androidx.test.core.app.ApplicationProvider;
@@ -27,6 +32,7 @@ import com.android.settings.R;
import com.android.settings.testutils.XmlTestUtils;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -37,6 +43,8 @@ import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class ToggleAutoclickPreferenceFragmentTest {
@Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private final Context mContext = ApplicationProvider.getApplicationContext();
private ToggleAutoclickPreferenceFragment mFragment;
@@ -77,4 +85,22 @@ public class ToggleAutoclickPreferenceFragmentTest {
assertThat(keys).containsAtLeastElementsIn(niks);
}
@Test
@DisableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
public void getNonIndexableKeys_flagDisabled_doesNotContainShortcut() {
final List<String> niks = ToggleAutoclickPreferenceFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(mContext);
assertThat(niks).contains(KEY_AUTOCLICK_SHORTCUT_PREFERENCE);
}
@Test
@EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR)
public void getNonIndexableKeys_returnsOnlyShortcutKey() {
final List<String> niks = ToggleAutoclickPreferenceFragment.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(mContext);
assertThat(niks).doesNotContain(KEY_AUTOCLICK_SHORTCUT_PREFERENCE);
}
}