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

Commit ec13a519 authored by Jean Chen's avatar Jean Chen Committed by Android (Google) Code Review
Browse files

Merge "Makes Use Color correction and Color correction shortcut searchable." into main

parents 30526d98 0ac1ba59
Loading
Loading
Loading
Loading
+35 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import static com.android.settings.accessibility.DaltonizerPreferenceUtil.isSecu

import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -38,6 +39,7 @@ import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltip
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw;

import java.util.ArrayList;
import java.util.List;
@@ -53,6 +55,11 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
    private static final String KEY_PROTANOMALY = "daltonizer_mode_protanomaly";
    private static final String KEY_TRITANOMEALY = "daltonizer_mode_tritanomaly";
    private static final String KEY_GRAYSCALE = "daltonizer_mode_grayscale";

    @VisibleForTesting
    static final String KEY_SHORTCUT_PREFERENCE = "daltonizer_shortcut_key";
    @VisibleForTesting
    static final String KEY_SWITCH_PREFERENCE = "daltonizer_switch_preference_key";
    @VisibleForTesting
    static final String KEY_SATURATION = "daltonizer_saturation";

@@ -170,6 +177,11 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
        switchPreference.setTitle(R.string.accessibility_daltonizer_primary_switch_title);
    }

    @Override
    protected String getUseServicePreferenceKey() {
        return KEY_SWITCH_PREFERENCE;
    }

    @Override
    protected CharSequence getShortcutTitle() {
        return getText(R.string.accessibility_daltonizer_shortcut_title);
@@ -203,5 +215,27 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
    }

    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider(R.xml.accessibility_daltonizer_settings);
            new BaseSearchIndexProvider(R.xml.accessibility_daltonizer_settings) {
                @Override
                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
                        boolean enabled) {
                    final List<SearchIndexableRaw> rawData =
                            super.getRawDataToIndex(context, enabled);

                    if (Flags.fixA11ySettingsSearch()) {
                        SearchIndexableRaw shortcutRaw = new SearchIndexableRaw(context);
                        shortcutRaw.key = KEY_SHORTCUT_PREFERENCE;
                        shortcutRaw.title = context.getString(
                                R.string.accessibility_daltonizer_shortcut_title);
                        rawData.add(shortcutRaw);

                        SearchIndexableRaw mainSwitchRaw = new SearchIndexableRaw(context);
                        mainSwitchRaw.key = KEY_SWITCH_PREFERENCE;
                        mainSwitchRaw.title = context.getString(
                                R.string.accessibility_daltonizer_primary_switch_title);
                        rawData.add(mainSwitchRaw);
                    }
                    return rawData;
                }
            };
}
+37 −2
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.accessibility;

import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_SHORTCUT_PREFERENCE;
import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_SWITCH_PREFERENCE;

import static com.google.common.truth.Truth.assertThat;

@@ -26,9 +28,9 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.view.accessibility.Flags;
import android.widget.PopupWindow;

import androidx.fragment.app.Fragment;
@@ -38,6 +40,7 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.search.SearchIndexableRaw;

import org.junit.Before;
import org.junit.Rule;
@@ -48,6 +51,7 @@ import org.robolectric.android.controller.ActivityController;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;

import java.util.ArrayList;
import java.util.List;

/** Tests for {@link ToggleDaltonizerPreferenceFragment} */
@@ -103,7 +107,7 @@ public class ToggleDaltonizerPreferenceFragmentTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
    @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
    public void onPreferenceToggled_colorCorrectDisabled_shouldReturnTrueAndShowTooltipView() {
        Settings.Secure.putInt(mContext.getContentResolver(),
                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF);
@@ -168,6 +172,37 @@ public class ToggleDaltonizerPreferenceFragmentTest {
        assertThat(keys).containsAtLeastElementsIn(niks);
    }

    @Test
    @DisableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
    public void getRawDataToIndex_flagOff_returnEmptyData() {
        List<SearchIndexableRaw> rawData = ToggleDaltonizerPreferenceFragment
                .SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, /* enabled= */ true);

        assertThat(rawData).isEmpty();
    }

    @Test
    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
    public void getRawDataToIndex_flagOn_returnAllIndexablePreferences() {
        String[] expectedKeys = {KEY_SHORTCUT_PREFERENCE, KEY_SWITCH_PREFERENCE};
        String[] expectedTitles = {
                mContext.getString(R.string.accessibility_daltonizer_shortcut_title),
                mContext.getString(R.string.accessibility_daltonizer_primary_switch_title)};
        List<String> keysResultList = new ArrayList<>();
        List<String> titlesResultList = new ArrayList<>();
        List<SearchIndexableRaw> rawData = ToggleDaltonizerPreferenceFragment
                .SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, /* enabled= */ true);

        for (SearchIndexableRaw rawDataItem : rawData) {
            keysResultList.add(rawDataItem.key);
            titlesResultList.add(rawDataItem.title);
        }

        assertThat(rawData).hasSize(2);
        assertThat(keysResultList).containsExactly(expectedKeys);
        assertThat(titlesResultList).containsExactly(expectedTitles);
    }

    private static PopupWindow getLatestPopupWindow() {
        final ShadowApplication shadowApplication =
                Shadow.extract(ApplicationProvider.getApplicationContext());