Merge "Fix that display size and text preview is going blank while scrolling the page in landscape view." into tm-qpr-dev am: 71c3e06bea am: dace33e3c3

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19997091

Change-Id: I2de86b0a6b8eac29e04fb8ce6c77750d88321322
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
PETER LIANG
2022-09-22 09:20:28 +00:00
committed by Automerger Merge Worker

View File

@@ -42,6 +42,8 @@ import java.util.Objects;
class TextReadingPreviewController extends BasePreferenceController implements class TextReadingPreviewController extends BasePreferenceController implements
PreviewSizeSeekBarController.ProgressInteractionListener { PreviewSizeSeekBarController.ProgressInteractionListener {
private static final String TAG = "TextReadingPreviewCtrl"; private static final String TAG = "TextReadingPreviewCtrl";
private static final int LAYER_INITIAL_INDEX = 0;
private static final int FRAME_INITIAL_INDEX = 0;
static final int[] PREVIEW_SAMPLE_RES_IDS = new int[]{ static final int[] PREVIEW_SAMPLE_RES_IDS = new int[]{
R.layout.accessibility_text_reading_preview_app_grid, R.layout.accessibility_text_reading_preview_app_grid,
R.layout.screen_zoom_preview_1, R.layout.screen_zoom_preview_1,
@@ -108,25 +110,15 @@ class TextReadingPreviewController extends BasePreferenceController implements
final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl, final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl,
PREVIEW_SAMPLE_RES_IDS, createConfig(origConfig)); PREVIEW_SAMPLE_RES_IDS, createConfig(origConfig));
mPreviewPreference.setPreviewAdapter(pagerAdapter); mPreviewPreference.setPreviewAdapter(pagerAdapter);
mPreviewPreference.setCurrentItem(isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : 0); mPreviewPreference.setCurrentItem(
pagerAdapter.setPreviewLayer(/* newLayerIndex= */ 0, isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : FRAME_INITIAL_INDEX);
/* currentLayerIndex= */ 0, pagerAdapter.setPreviewLayer(getPagerIndex(), LAYER_INITIAL_INDEX,
/* currentFrameIndex= */ 0, /* animate= */ false); FRAME_INITIAL_INDEX, /* animate= */ false);
} }
@Override @Override
public void notifyPreferenceChanged() { public void notifyPreferenceChanged() {
final int displayDataSize = mDisplaySizeData.getValues().size(); mPreviewPreference.notifyPreviewPagerChanged(getPagerIndex());
final int fontSizeProgress = mFontSizePreference.getProgress();
final int displaySizeProgress = mDisplaySizePreference.getProgress();
// To be consistent with the
// {@link PreviewPagerAdapter#setPreviewLayer(int, int, int, boolean)} behavior,
// here also needs the same design. In addition, please also refer to
// the {@link #createConfig(Configuration)}.
final int pagerIndex = fontSizeProgress * displayDataSize + displaySizeProgress;
mPreviewPreference.notifyPreviewPagerChanged(pagerIndex);
} }
@Override @Override
@@ -174,6 +166,15 @@ class TextReadingPreviewController extends BasePreferenceController implements
choreographer.postFrameCallbackDelayed(mCommit, commitDelayMs); choreographer.postFrameCallbackDelayed(mCommit, commitDelayMs);
} }
private int getPagerIndex() {
final int displayDataSize = mDisplaySizeData.getValues().size();
// To be consistent with the {@link PreviewPagerAdapter#setPreviewLayer(int, int, int,
// boolean)} behavior, here also needs the same design. In addition, please also refer to
// the {@link #createConfig(Configuration)}.
return mLastFontProgress * displayDataSize + mLastDisplayProgress;
}
private void tryCommitFontSizeConfig() { private void tryCommitFontSizeConfig() {
final int fontProgress = mFontSizePreference.getProgress(); final int fontProgress = mFontSizePreference.getProgress();
if (fontProgress != mLastFontProgress) { if (fontProgress != mLastFontProgress) {