diff --git a/res/drawable/keyboard_arrow_left.xml b/res/drawable/keyboard_arrow_left.xml new file mode 100644 index 00000000000..77a2bfb6046 --- /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..5b0dd3d27dd --- /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..9c3ce31db22 100644 --- a/res/layout/accessibility_text_reading_preview.xml +++ b/res/layout/accessibility_text_reading_preview.xml @@ -38,20 +38,45 @@ 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 c49d6e3f767..828e5c3e5aa 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -78,6 +78,11 @@ Preview + + Previous preview + + Next preview + QR code diff --git a/src/com/android/settings/accessibility/TextReadingPreviewPreference.java b/src/com/android/settings/accessibility/TextReadingPreviewPreference.java index 9161171914a..717da70e49c 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,23 @@ 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); + + previousButton.setOnClickListener((view) -> setCurrentItem(getCurrentItem() - 1)); + previousButton.setContentDescription(getContext().getString( + R.string.preview_pager_previous_button)); + nextButton.setOnClickListener((view) -> setCurrentItem(getCurrentItem() + 1)); + previousButton.setContentDescription(getContext().getString( + R.string.preview_pager_next_button)); } @Override @@ -158,7 +176,9 @@ public class TextReadingPreviewPreference extends Preference { Preconditions.checkNotNull(mPreviewAdapter, "Preview adapter is null, you should init the preview adapter first"); - if (currentItem != mCurrentItem) { + if (currentItem < 0 || currentItem >= mPreviewAdapter.getCount()) { + return; + } else if (currentItem != mCurrentItem) { mCurrentItem = currentItem; notifyChanged(); }