From 998929d6882747ba00b15b04bc28d4e932d18c09 Mon Sep 17 00:00:00 2001 From: Riley Jones Date: Mon, 24 Feb 2025 20:01:56 +0000 Subject: [PATCH] Left & right buttons for display size & text preview Test: manually open page and verify buttons work. Make sure to check the buttons during setup wizard. Bug: 386906497 Flag: EXEMPT xml-dependent change Change-Id: I488d74591d698ad918fd864cf39b2f3133abd463 --- res/drawable/keyboard_arrow_left.xml | 19 +++++++ res/drawable/keyboard_arrow_right.xml | 19 +++++++ .../accessibility_text_reading_preview.xml | 53 ++++++++++++++----- res/values/strings.xml | 4 ++ .../TextReadingPreviewPreference.java | 23 ++++++++ 5 files changed, 105 insertions(+), 13 deletions(-) create mode 100644 res/drawable/keyboard_arrow_left.xml create mode 100644 res/drawable/keyboard_arrow_right.xml diff --git a/res/drawable/keyboard_arrow_left.xml b/res/drawable/keyboard_arrow_left.xml new file mode 100644 index 00000000000..c2ffc1d21cf --- /dev/null +++ b/res/drawable/keyboard_arrow_left.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable/keyboard_arrow_right.xml b/res/drawable/keyboard_arrow_right.xml new file mode 100644 index 00000000000..ba763690521 --- /dev/null +++ b/res/drawable/keyboard_arrow_right.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/res/layout/accessibility_text_reading_preview.xml b/res/layout/accessibility_text_reading_preview.xml index 830d9e66778..2532a7957eb 100644 --- a/res/layout/accessibility_text_reading_preview.xml +++ b/res/layout/accessibility_text_reading_preview.xml @@ -38,20 +38,47 @@ android:text="@string/screen_zoom_preview_title" style="@style/AccessibilityTextReadingPreviewTitle" /> - - - + android:orientation="vertical"> + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 3679ba403ab..bddf6ead093 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -80,6 +80,10 @@ Preview QR code + + Previous preview + + Next preview Make smaller diff --git a/src/com/android/settings/accessibility/TextReadingPreviewPreference.java b/src/com/android/settings/accessibility/TextReadingPreviewPreference.java index 9161171914a..99e71258b6f 100644 --- a/src/com/android/settings/accessibility/TextReadingPreviewPreference.java +++ b/src/com/android/settings/accessibility/TextReadingPreviewPreference.java @@ -22,6 +22,7 @@ import android.os.Parcelable; import android.util.AttributeSet; import android.view.View; import android.widget.FrameLayout; +import android.widget.ImageButton; import android.widget.LinearLayout; import androidx.preference.Preference; @@ -99,6 +100,28 @@ public class TextReadingPreviewPreference extends Preference { (DotsPageIndicator) holder.findViewById(R.id.page_indicator); updateAdapterIfNeeded(viewPager, pageIndicator, mPreviewAdapter); updatePagerAndIndicator(viewPager, pageIndicator); + viewPager.setClipToOutline(true); + + int layoutDirection = + getContext().getResources().getConfiguration().getLayoutDirection(); + int previousId = (layoutDirection == View.LAYOUT_DIRECTION_RTL) + ? R.id.preview_right_button : R.id.preview_left_button; + int nextId = (layoutDirection == View.LAYOUT_DIRECTION_RTL) + ? R.id.preview_left_button : R.id.preview_right_button; + final ImageButton previousButton = previewLayout.findViewById(previousId); + final ImageButton nextButton = previewLayout.findViewById(nextId); + + // These call ViewPager#setCurrentItem directly + // because that doesn't force a refresh through notifyChanged(). + // We found this avoids a crash in SUW (See b/386906497). + previousButton.setOnClickListener((view) -> + viewPager.setCurrentItem(getCurrentItem() - 1)); + previousButton.setContentDescription(getContext().getString( + R.string.preview_pager_previous_button)); + nextButton.setOnClickListener((view) -> + viewPager.setCurrentItem(getCurrentItem() + 1)); + previousButton.setContentDescription(getContext().getString( + R.string.preview_pager_next_button)); } @Override