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

Commit 6b0afadd authored by Jim Miller's avatar Jim Miller
Browse files

Fix flash caused by frame resize code

This fixes a problem where the frame would resize mid-animation because
the widget frame was being always being resized.

The issue was caused by having an extra fadeOutChallenge() in
onPageSwitching().   The fix is to remove this and handle this case
special for warping in onPageEndWarp()

Fixes bug 11190745

Change-Id: I6dbda4d09c77e3923887f8d41efb2215e1afb1b9
parent 371427b5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ public interface ChallengeLayout {
     *
     * @param b true to show, false to hide
     */
    void showChallenge(boolean b);
    void showChallenge(boolean show);

    /**
     * Show the bouncer challenge. This may block access to other child views.
+4 −9
Original line number Diff line number Diff line
@@ -120,21 +120,19 @@ public class KeyguardViewStateManager implements

    public void fadeOutSecurity(int duration) {
        ((View) mKeyguardSecurityContainer).animate().alpha(0f).setDuration(duration)
                .setListener(mPauseListener).start();
                .setListener(mPauseListener);
    }

    public void fadeInSecurity(int duration) {
        ((View) mKeyguardSecurityContainer).animate().alpha(1f).setDuration(duration)
                .setListener(mResumeListener).start();
                .setListener(mResumeListener);
    }

    public void onPageBeginMoving() {
        if (mChallengeLayout.isChallengeOverlapping() &&
                mChallengeLayout instanceof SlidingChallengeLayout) {
            SlidingChallengeLayout scl = (SlidingChallengeLayout) mChallengeLayout;
            if (!mKeyguardWidgetPager.isWarping()) {
            scl.fadeOutChallenge();
            }
            mPageIndexOnPageBeginMoving = mKeyguardWidgetPager.getCurrentPage();
        }
        // We use mAppWidgetToShow to show a particular widget after you add it--
@@ -158,9 +156,6 @@ public class KeyguardViewStateManager implements
            boolean isCameraPage = newPage instanceof CameraWidgetFrame;
            SlidingChallengeLayout scl = (SlidingChallengeLayout) mChallengeLayout;
            scl.setChallengeInteractive(!isCameraPage);
            if (isCameraPage) {
                scl.fadeOutChallenge();
            }
            final int currentFlags = mKeyguardWidgetPager.getSystemUiVisibility();
            final int newFlags = isCameraPage ? (currentFlags | View.STATUS_BAR_DISABLE_SEARCH)
                    : (currentFlags & ~View.STATUS_BAR_DISABLE_SEARCH);
@@ -197,7 +192,7 @@ public class KeyguardViewStateManager implements
            boolean challengeOverlapping = mChallengeLayout.isChallengeOverlapping();
            if (challengeOverlapping && !newCurPage.isSmall()
                    && mPageListeningToSlider != newPageIndex) {
                newCurPage.shrinkWidget();
                newCurPage.shrinkWidget(true);
            }
        }

+0 −4
Original line number Diff line number Diff line
@@ -375,10 +375,6 @@ public class KeyguardWidgetFrame extends FrameLayout {
        return mSmallFrameHeight;
    }

    public void shrinkWidget() {
        shrinkWidget(true);
    }

    public void setWidgetLockedSmall(boolean locked) {
        if (locked) {
            setWidgetHeight(mSmallWidgetHeight);
+4 −2
Original line number Diff line number Diff line
@@ -194,7 +194,9 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit

    @Override
    public void onPageEndWarp() {
        hideOutlinesAndSidePages();
        // if we're moving to the warp page, then immediately hide the other widgets.
        int duration = getPageWarpIndex() == getNextPage() ? 0 : -1;
        animateOutlinesAndSidePages(false, duration);
        mViewStateManager.onPageEndWarp();
    }

@@ -669,7 +671,7 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit
                // On the very first measure pass, if the challenge is showing, we need to make sure
                // that the widget on the current page is small.
                if (challengeShowing && i == mCurrentPage && !mHasMeasure) {
                    frame.shrinkWidget();
                    frame.shrinkWidget(true);
                }
            }
        }
+1 −1
Original line number Diff line number Diff line
@@ -2725,7 +2725,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
    };

    private void cancelWarpAnimation(String msg, boolean abortAnimation) {
        if (DEBUG_WARP) Log.v(TAG, "cancelWarpAnimation(" + msg + ")");
        if (DEBUG_WARP) Log.v(TAG, "cancelWarpAnimation(" + msg + ",abort=" + abortAnimation + ")");
        if (abortAnimation) {
            // We're done with the animation and moving to a new page.  Let the scroller
            // take over the animation.