Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71c3e06b authored by PETER LIANG's avatar PETER LIANG Committed by Android (Google) Code Review
Browse files

Merge "Fix that display size and text preview is going blank while scrolling...

Merge "Fix that display size and text preview is going blank while scrolling the page in landscape view." into tm-qpr-dev
parents 9ac17121 6a847bba
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -42,6 +42,8 @@ import java.util.Objects;
class TextReadingPreviewController extends BasePreferenceController implements
        PreviewSizeSeekBarController.ProgressInteractionListener {
    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[]{
            R.layout.accessibility_text_reading_preview_app_grid,
            R.layout.screen_zoom_preview_1,
@@ -108,25 +110,15 @@ class TextReadingPreviewController extends BasePreferenceController implements
        final PreviewPagerAdapter pagerAdapter = new PreviewPagerAdapter(mContext, isLayoutRtl,
                PREVIEW_SAMPLE_RES_IDS, createConfig(origConfig));
        mPreviewPreference.setPreviewAdapter(pagerAdapter);
        mPreviewPreference.setCurrentItem(isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : 0);
        pagerAdapter.setPreviewLayer(/* newLayerIndex= */ 0,
                /* currentLayerIndex= */ 0,
                /* currentFrameIndex= */ 0, /* animate= */ false);
        mPreviewPreference.setCurrentItem(
                isLayoutRtl ? PREVIEW_SAMPLE_RES_IDS.length - 1 : FRAME_INITIAL_INDEX);
        pagerAdapter.setPreviewLayer(getPagerIndex(), LAYER_INITIAL_INDEX,
                FRAME_INITIAL_INDEX, /* animate= */ false);
    }

    @Override
    public void notifyPreferenceChanged() {
        final int displayDataSize = mDisplaySizeData.getValues().size();
        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);
        mPreviewPreference.notifyPreviewPagerChanged(getPagerIndex());
    }

    @Override
@@ -174,6 +166,15 @@ class TextReadingPreviewController extends BasePreferenceController implements
        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() {
        final int fontProgress = mFontSizePreference.getProgress();
        if (fontProgress != mLastFontProgress) {