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

Commit ade26e2e authored by Mangesh Ghiware's avatar Mangesh Ghiware Committed by Android (Google) Code Review
Browse files

Merge "Fix restore of view and text wrap scales." into ics-mr1

parents 7165b92e f0e96d54
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ public final class WebViewCore {
     */
    private int mViewportDensityDpi = -1;

    private boolean mIsRestored = false;
    private float mRestoredScale = 0;
    private float mRestoredTextWrapScale = 0;
    private int mRestoredX = 0;
@@ -2254,7 +2255,7 @@ public final class WebViewCore {

        if (mWebView == null) return;

        boolean updateViewState = standardLoad || mRestoredScale > 0;
        boolean updateViewState = standardLoad || mIsRestored;
        setupViewport(updateViewState);
        // if updateRestoreState is true, ViewManager.postReadyToDrawAll() will
        // be called after the WebView updates its state. If updateRestoreState
@@ -2271,6 +2272,7 @@ public final class WebViewCore {

        // reset the scroll position, the restored offset and scales
        mRestoredX = mRestoredY = 0;
        mIsRestored = false;
        mRestoredScale = mRestoredTextWrapScale = 0;
    }

@@ -2399,14 +2401,10 @@ public final class WebViewCore {
        mInitialViewState.mScrollX = mRestoredX;
        mInitialViewState.mScrollY = mRestoredY;
        mInitialViewState.mMobileSite = (0 == mViewportWidth);
        if (mRestoredScale > 0) {
        if (mIsRestored) {
            mInitialViewState.mIsRestored = true;
            mInitialViewState.mViewScale = mRestoredScale;
            if (mRestoredTextWrapScale > 0) {
            mInitialViewState.mTextWrapScale = mRestoredTextWrapScale;
            } else {
                mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale;
            }
        } else {
            if (mViewportInitialScale > 0) {
                mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale =
@@ -2525,14 +2523,9 @@ public final class WebViewCore {
    // called by JNI
    private void restoreScale(float scale, float textWrapScale) {
        if (mBrowserFrame.firstLayoutDone() == false) {
            // If restored scale and textWrapScale are 0, set them to
            // overview and reading level scale respectively.
            mRestoredScale = (scale <= 0.0)
                ? mWebView.getZoomOverviewScale() : scale;
            if (mSettings.getUseWideViewPort()) {
                mRestoredTextWrapScale = (textWrapScale <= 0.0)
                    ? mWebView.getReadingLevelScale() : textWrapScale;
            }
            mIsRestored = true;
            mRestoredScale = scale;
            mRestoredTextWrapScale = textWrapScale;
        }
    }

+5 −3
Original line number Diff line number Diff line
@@ -1121,9 +1121,11 @@ class ZoomManager {
            if (mInitialScale > 0) {
                scale = mInitialScale;
                mTextWrapScale = scale;
            } else if (viewState.mViewScale > 0) {
                mTextWrapScale = viewState.mTextWrapScale;
                scale = viewState.mViewScale;
            } else if (viewState.mIsRestored) {
                scale = (viewState.mViewScale > 0)
                    ? viewState.mViewScale : overviewScale;
                mTextWrapScale = (viewState.mTextWrapScale > 0)
                    ? viewState.mTextWrapScale : getReadingLevelScale();
            } else {
                scale = overviewScale;
                if (!settings.getUseWideViewPort()