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

Commit cf3f89d4 authored by Yanting Yang's avatar Yanting Yang Committed by Android (Google) Code Review
Browse files

Merge "Support search index for Accessibility button & gesture" into main

parents a5d53705 6c0f9e68
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -17,12 +17,16 @@
package com.android.settings.accessibility;

import android.content.Context;
import android.content.res.Resources;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.search.SearchIndexableRaw;

import java.util.List;

/**
 * Preference controller for accessibility button preference.
@@ -41,10 +45,23 @@ public class AccessibilityButtonPreferenceController extends BasePreferenceContr
    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final int titleResource = AccessibilityUtil.isGestureNavigateEnabled(mContext)
                ? R.string.accessibility_button_gesture_title : R.string.accessibility_button_title;
        final Preference preference = screen.findPreference(getPreferenceKey());
        preference.setTitle(titleResource);
        preference.setTitle(getPreferenceTitleResource());

    }

    @Override
    public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
        SearchIndexableRaw data = new SearchIndexableRaw(mContext);
        data.key = getPreferenceKey();
        final Resources res = mContext.getResources();
        data.title = res.getString(getPreferenceTitleResource());
        data.screenTitle = res.getString(R.string.accessibility_shortcuts_settings_title);
        rawData.add(data);
    }

    private int getPreferenceTitleResource() {
        return AccessibilityUtil.isGestureNavigateEnabled(mContext)
                ? R.string.accessibility_button_gesture_title : R.string.accessibility_button_title;
    }
}
+36 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settingslib.search.SearchIndexableRaw;

import org.junit.Before;
import org.junit.Rule;
@@ -42,6 +43,9 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;

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

/** Tests for {@link AccessibilityButtonPreferenceController}. */
@RunWith(RobolectricTestRunner.class)
public class AccessibilityButtonPreferenceControllerTest {
@@ -88,4 +92,36 @@ public class AccessibilityButtonPreferenceControllerTest {
        assertThat(mPreference.getTitle()).isEqualTo(
                mContext.getText(R.string.accessibility_button_title));
    }

    @Test
    public void updateDynamicRawDataToIndex_navigationGestureEnabled_setCorrectIndex() {
        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
                .thenReturn(NAV_BAR_MODE_GESTURAL);
        List<SearchIndexableRaw> rawDataList = new ArrayList<>();

        mController.updateDynamicRawDataToIndex(rawDataList);

        assertThat(rawDataList).hasSize(1);
        SearchIndexableRaw raw = rawDataList.get(0);
        assertThat(raw.title).isEqualTo(
                mResources.getString(R.string.accessibility_button_gesture_title));
        assertThat(raw.screenTitle).isEqualTo(
                mResources.getString(R.string.accessibility_shortcuts_settings_title));
    }

    @Test
    public void updateDynamicRawDataToIndex_navigationGestureDisabled_setCorrectIndex() {
        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
                .thenReturn(NAV_BAR_MODE_2BUTTON);
        List<SearchIndexableRaw> rawDataList = new ArrayList<>();

        mController.updateDynamicRawDataToIndex(rawDataList);

        assertThat(rawDataList).hasSize(1);
        SearchIndexableRaw raw = rawDataList.get(0);
        assertThat(raw.title).isEqualTo(
                mResources.getString(R.string.accessibility_button_title));
        assertThat(raw.screenTitle).isEqualTo(
                mResources.getString(R.string.accessibility_shortcuts_settings_title));
    }
}