Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 664df0f4 authored by Yuhan Yang's avatar Yuhan Yang
Browse files

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
parent 4d52d723
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -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
+16 −1
Original line number Diff line number Diff line
@@ -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;
                }
            };
}
+26 −0
Original line number Diff line number Diff line
@@ -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);
    }
}