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

Commit bf6af8ac authored by Jason Hsu's avatar Jason Hsu Committed by Android (Google) Code Review
Browse files

Merge "Fix accessibility button footer preference did not announced correct by...

Merge "Fix accessibility button footer preference did not announced correct by TalkBack" into sc-dev
parents 199528d4 3cb889fc
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@

    <com.android.settings.accessibility.AccessibilityFooterPreference
        android:key="accessibility_button_footer"
        android:title="@string/accessibility_button_description"
        android:persistent="false"
        android:selectable="false"
        settings:searchable="false"
+13 −4
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.accessibility;

import android.content.Context;

import androidx.preference.PreferenceScreen;

import com.android.settings.R;

/**
@@ -36,9 +38,16 @@ public class AccessibilityButtonFooterPreferenceController extends
    }

    @Override
    public CharSequence getSummary() {
        return AccessibilityUtil.isGestureNavigateEnabled(mContext)
                ? mContext.getString(R.string.accessibility_button_gesture_description)
                : mContext.getString(R.string.accessibility_button_description);
    public void displayPreference(PreferenceScreen screen) {
        // Need to update footerPreference's data before super.displayPreference(), then it will use
        // data to update related property of footerPreference.
        if (AccessibilityUtil.isGestureNavigateEnabled(mContext)) {
            final AccessibilityFooterPreference footerPreference =
                    screen.findPreference(getPreferenceKey());
            footerPreference.setTitle(
                    mContext.getString(R.string.accessibility_button_gesture_description));
        }

        super.displayPreference(screen);
    }
}
+15 −15
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.settings.accessibility;

import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;

import static com.google.common.truth.Truth.assertThat;
@@ -26,6 +25,7 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;

import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
@@ -34,6 +34,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -50,30 +51,29 @@ public class AccessibilityButtonFooterPreferenceControllerTest {
    private final Context mContext = ApplicationProvider.getApplicationContext();
    @Spy
    private final Resources mResources = mContext.getResources();
    @Mock
    private PreferenceScreen mScreen;
    private AccessibilityButtonFooterPreferenceController mController;
    private AccessibilityFooterPreference mPreference;

    @Before
    public void setUp() {
        mController = new AccessibilityButtonFooterPreferenceController(mContext,
                "test_key");
        mController = new AccessibilityButtonFooterPreferenceController(mContext, "test_key");
        mPreference = new AccessibilityFooterPreference(mContext);
        mPreference.setKey("test_key");

        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
        when(mContext.getResources()).thenReturn(mResources);
    }

    @Test
    public void getSummary_navigationGestureEnabled_shouldReturnButtonAndGestureSummary() {
    public void displayPreference_navigationGestureEnabled_setCorrectTitle() {
        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
                .thenReturn(NAV_BAR_MODE_GESTURAL);

        assertThat(mController.getSummary()).isEqualTo(
                mContext.getText(R.string.accessibility_button_gesture_description));
    }
        mController.displayPreference(mScreen);

    @Test
    public void getSummary_navigationGestureDisabled_shouldReturnButtonSummary() {
        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
                .thenReturn(NAV_BAR_MODE_2BUTTON);

        assertThat(mController.getSummary()).isEqualTo(
                mContext.getText(R.string.accessibility_button_description));
        assertThat(mPreference.getTitle()).isEqualTo(
                mContext.getText(R.string.accessibility_button_gesture_description));
    }
}