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
This commit is contained in:
Riley Jones
2025-02-24 20:01:56 +00:00
parent 29b9665128
commit 998929d688
5 changed files with 105 additions and 13 deletions

View File

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