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

Commit c8d9ab2c authored by Candice Lo's avatar Candice Lo Committed by Android (Google) Code Review
Browse files

Merge "Add content descriptions for Display size and text previews" into main

parents 50d8d10c 72705675
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -810,13 +810,23 @@
    <!-- Allowed packages to show the confirmation dialog for a system locale suggestion  -->
    <string-array name="allowed_packages_for_locale_confirmation_diallog" translatable="false"/>

    <!-- Array of text reading preview layouts. Must contain at least 1 layout -->
    <!-- Array of text reading preview layouts. Must contain at least 1 layout.
        Add content descriptions in the config_text_reading_preview_content_descriptions together
        if adding more sample layouts here -->
    <array name="config_text_reading_preview_samples">
        <item>@layout/accessibility_text_reading_preview_app_grid</item>
        <item>@layout/screen_zoom_preview_1</item>
        <item>@layout/accessibility_text_reading_preview_mail_content</item>
    </array>

    <!-- Array of text reading preview layouts' content descriptions.
        The order should be the same as the layouts in config_text_reading_preview_samples -->
    <array name="config_text_reading_preview_content_descriptions">
        <item>@string/preview_pager_home_content_description</item>
        <item>@string/preview_pager_message_content_description</item>
        <item>@string/preview_pager_email_content_description</item>
    </array>

    <!-- Package responsible for updating Mainline Modules -->
    <string name="config_mainline_module_update_package" translatable="false">com.android.vending</string>

+6 −0
Original line number Diff line number Diff line
@@ -78,6 +78,12 @@
    <!-- Content description for preview pager. [CHAR LIMIT=NONE] -->
    <string name="preview_pager_content_description">Preview</string>
    <!-- Content description for home screen preview. [CHAR LIMIT=NONE] -->
    <string name="preview_pager_home_content_description">Home screen preview</string>
    <!-- Content description for message preview. [CHAR LIMIT=NONE] -->
    <string name="preview_pager_message_content_description">Message preview</string>
    <!-- Content description for email preview. [CHAR LIMIT=NONE] -->
    <string name="preview_pager_email_content_description">Email preview</string>
    <!-- Content description for qrcode image. [CHAR LIMIT=none]-->
    <string name="qr_code_content_description">QR code</string>
    <!-- Previous button for preview pager. [CHAR LIMIT=NONE] -->
+16 −0
Original line number Diff line number Diff line
@@ -104,11 +104,13 @@ class TextReadingPreviewController extends BasePreferenceController implements
        final boolean isLayoutRtl =
                origConfig.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
        final int[] previewSamples = getPreviewSampleLayouts(mContext);
        final int[] previewContentDescriptions = getPreviewSampleContentDescriptions(mContext);
        final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl,
                previewSamples, createConfig(origConfig));
        mPreviewPreference.setPreviewAdapter(pagerAdapter);
        mPreviewPreference.setCurrentItem(
                isLayoutRtl ? previewSamples.length - 1 : FRAME_INITIAL_INDEX);
        mPreviewPreference.setContentDescription(previewContentDescriptions);

        final int initialPagerIndex =
                mLastFontProgress * mDisplaySizeData.getValues().size() + mLastDisplayProgress;
@@ -188,6 +190,20 @@ class TextReadingPreviewController extends BasePreferenceController implements
        return previewSamples;
    }

    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
    static int[] getPreviewSampleContentDescriptions(Context context) {
        TypedArray typedArray = context.getResources().obtainTypedArray(
                R.array.config_text_reading_preview_content_descriptions);
        int previewCount = typedArray.length();
        int[] previewContentDescriptions = new int[previewCount];
        for (int i = 0; i < previewCount; i++) {
            previewContentDescriptions[i] =
                    typedArray.getResourceId(i, R.string.preview_pager_content_description);
        }
        typedArray.recycle();
        return previewContentDescriptions;
    }

    private int getPagerIndex() {
        final int displayDataSize = mDisplaySizeData.getValues().size();
        final int fontSizeProgress = mFontSizePreference.getProgress();
+26 −19
Original line number Diff line number Diff line
@@ -43,28 +43,11 @@ public class TextReadingPreviewPreference extends Preference {
    private int mCurrentItem;
    private int mLastLayerIndex;
    private PreviewPagerAdapter mPreviewAdapter;
    private int[] mContentDescriptions;

    private int mLayoutMinHorizontalPadding = 0;
    private int mBackgroundMinHorizontalPadding = 0;

    private final ViewPager.OnPageChangeListener mPageChangeListener =
            new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i1) {
            // Do nothing
        }

        @Override
        public void onPageSelected(int i) {
            mCurrentItem = i;
        }

        @Override
        public void onPageScrollStateChanged(int i) {
            // Do nothing
        }
    };

    TextReadingPreviewPreference(Context context) {
        super(context);
        init();
@@ -95,7 +78,23 @@ public class TextReadingPreviewPreference extends Preference {
        adjustPaddings(previewLayout, backgroundView);

        final ViewPager viewPager = (ViewPager) holder.findViewById(R.id.preview_pager);
        viewPager.addOnPageChangeListener(mPageChangeListener);
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
                // Do nothing
            }

            @Override
            public void onPageSelected(int i) {
                mCurrentItem = i;
                viewPager.setContentDescription(getContext().getString(mContentDescriptions[i]));
            }

            @Override
            public void onPageScrollStateChanged(int i) {
                // Do nothing
            }
        });
        final DotsPageIndicator pageIndicator =
                (DotsPageIndicator) holder.findViewById(R.id.page_indicator);
        updateAdapterIfNeeded(viewPager, pageIndicator, mPreviewAdapter);
@@ -122,6 +121,10 @@ public class TextReadingPreviewPreference extends Preference {
                viewPager.setCurrentItem(getCurrentItem() + 1));
        nextButton.setContentDescription(getContext().getString(
                R.string.preview_pager_next_button));

        // Initialize the content description since the OnPageChangeListener#onPageSelected won't
        // be called during setup.
        viewPager.setContentDescription(getContext().getString(mContentDescriptions[0]));
    }

    @Override
@@ -170,6 +173,10 @@ public class TextReadingPreviewPreference extends Preference {
        );
    }

    void setContentDescription(int[] stringIds) {
        mContentDescriptions = stringIds;
    }

    void setPreviewAdapter(PreviewPagerAdapter previewAdapter) {
        if (previewAdapter != mPreviewAdapter) {
            mPreviewAdapter = previewAdapter;
+11 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.settings.accessibility;

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

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -76,6 +78,15 @@ public class TextReadingPreviewControllerTest {
        mDisplaySizePreference = new AccessibilitySeekBarPreference(mContext, /* attr= */ null);
    }

    @Test
    public void numberOfPreviewSamples_numberOfPreviewContentDescription_isEqual() {
        int[] previewSamples = TextReadingPreviewController.getPreviewSampleLayouts(mContext);
        int[] previewContentDescriptions =
                TextReadingPreviewController.getPreviewSampleContentDescriptions(mContext);

        assertThat(previewSamples.length).isEqualTo(previewContentDescriptions.length);
    }

    @Test
    public void initPreviewerAdapter_verifyAction() {
        when(mPreferenceScreen.findPreference(PREVIEW_KEY)).thenReturn(mPreviewPreference);
Loading