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

Commit 76914510 authored by Shimeng (Simon) Wang's avatar Shimeng (Simon) Wang Committed by Android (Google) Code Review
Browse files

Merge "Set initial view scale to be at least overview scale."

parents 98dccc5a 96fcb87a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1884,6 +1884,7 @@ final class WebViewCore {
        int mScrollX;
        int mScrollY;
        boolean mMobileSite;
        boolean mIsRestored;
    }

    static class DrawData {
@@ -2285,6 +2286,7 @@ final class WebViewCore {
        mInitialViewState.mScrollY = mRestoredY;
        mInitialViewState.mMobileSite = (0 == mViewportWidth);
        if (mRestoredScale > 0) {
            mInitialViewState.mIsRestored = true;
            mInitialViewState.mViewScale = mRestoredScale / 100.0f;
            if (mRestoredTextWrapScale > 0) {
                mInitialViewState.mTextWrapScale = mRestoredTextWrapScale / 100.0f;
+12 −16
Original line number Diff line number Diff line
@@ -260,12 +260,7 @@ class ZoomManager {
    public final float getReadingLevelScale() {
        // The reading scale is at least 0.5f apart from the overview scale.
        final float MIN_SCALE_DIFF = 0.5f;
        final float zoomOverviewScale = getZoomOverviewScale();
        if (zoomOverviewScale > DEFAULT_READING_LEVEL_SCALE) {
            return Math.min(DEFAULT_READING_LEVEL_SCALE,
                zoomOverviewScale - MIN_SCALE_DIFF);
        }
        return Math.max(zoomOverviewScale + MIN_SCALE_DIFF,
        return Math.max(getZoomOverviewScale() + MIN_SCALE_DIFF,
            DEFAULT_READING_LEVEL_SCALE);
    }

@@ -864,32 +859,33 @@ class ZoomManager {

        if (!mWebView.drawHistory()) {
            float scale;
            final boolean reflowText;
            WebSettings settings = mWebView.getSettings();
            final float overviewScale = getZoomOverviewScale();

            if (mInitialScale > 0) {
                scale = mInitialScale;
                reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale);
            } else if (viewState.mViewScale > 0) {
                mTextWrapScale = viewState.mTextWrapScale;
                scale = viewState.mViewScale;
                reflowText = false;
            } else {
                scale = getZoomOverviewScale();
                if (settings.getUseWideViewPort()
                    && settings.getLoadWithOverviewMode()) {
                    mInitialZoomOverview = true;
            } else {
                scale = overviewScale;
                WebSettings settings = mWebView.getSettings();
                if (!settings.getUseWideViewPort()
                    || !settings.getLoadWithOverviewMode()) {
                    scale = Math.max(viewState.mTextWrapScale, scale);
                    mInitialZoomOverview = !exceedsMinScaleIncrement(scale, getZoomOverviewScale());
                }
                if (settings.isNarrowColumnLayout() && settings.getUseFixedViewport()) {
                    // When first layout, reflow using the reading level scale to avoid
                    // reflow when double tapped.
                    mTextWrapScale = getReadingLevelScale();
                }
            }
            boolean reflowText = false;
            if (!viewState.mIsRestored) {
                scale = Math.max(scale, overviewScale);
                mTextWrapScale = Math.max(mTextWrapScale, overviewScale);
                reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale);
            }
            mInitialZoomOverview = !exceedsMinScaleIncrement(scale, overviewScale);
            setZoomScale(scale, reflowText);

            // update the zoom buttons as the scale can be changed