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

Commit 97618946 authored by Jason Hsu's avatar Jason Hsu Committed by Automerger Merge Worker
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 am: bf6af8ac am: e1a3e74d

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15204641

Change-Id: I9fab0aa7d11c7607bd9bf73078b958ee9304ace4
parents 5900ac37 e1a3e74d
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));
    }
}