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:
@@ -33,8 +33,7 @@
|
|||||||
<com.android.settings.accessibility.ShortcutPreference
|
<com.android.settings.accessibility.ShortcutPreference
|
||||||
android:key="autoclick_shortcut_preference"
|
android:key="autoclick_shortcut_preference"
|
||||||
android:title="@string/accessibility_autoclick_shortcut_title"
|
android:title="@string/accessibility_autoclick_shortcut_title"
|
||||||
android:persistent="false"
|
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
|
||||||
|
@@ -20,16 +20,20 @@ import static com.android.internal.accessibility.AccessibilityShortcutController
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.server.accessibility.Flags;
|
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 java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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
|
||||||
* feature.
|
* feature.
|
||||||
@@ -40,6 +44,7 @@ public class ToggleAutoclickPreferenceFragment
|
|||||||
|
|
||||||
private static final String TAG = "AutoclickPrefFragment";
|
private static final String TAG = "AutoclickPrefFragment";
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
static final String KEY_AUTOCLICK_SHORTCUT_PREFERENCE = "autoclick_shortcut_preference";
|
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 =
|
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;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -16,10 +16,15 @@
|
|||||||
|
|
||||||
package com.android.settings.accessibility;
|
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 static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
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;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
@@ -27,6 +32,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.testutils.XmlTestUtils;
|
import com.android.settings.testutils.XmlTestUtils;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
@@ -37,6 +43,8 @@ import java.util.List;
|
|||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class ToggleAutoclickPreferenceFragmentTest {
|
public class ToggleAutoclickPreferenceFragmentTest {
|
||||||
|
|
||||||
|
@Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
|
||||||
|
|
||||||
private final Context mContext = ApplicationProvider.getApplicationContext();
|
private final Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
private ToggleAutoclickPreferenceFragment mFragment;
|
private ToggleAutoclickPreferenceFragment mFragment;
|
||||||
|
|
||||||
@@ -77,4 +85,22 @@ public class ToggleAutoclickPreferenceFragmentTest {
|
|||||||
|
|
||||||
assertThat(keys).containsAtLeastElementsIn(niks);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user