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

This commit is contained in:
Candice Lo
2025-03-11 19:25:23 -07:00
committed by Android (Google) Code Review
6 changed files with 96 additions and 27 deletions

View File

@@ -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;