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

Commit 5040335e authored by Jon Miranda's avatar Jon Miranda
Browse files

Remove keepWindowOpaque and have the window always fade out.

We built this method so that the window would have
something to fade out on top of. But with longer icon loading times,
this causes a buggy experience since the window is opaque
for the entire duration of the animation.

Having the window always fade out is a better UX for now.
Next step is to always init the FloatingIconView with the
in-memory icon, and then possibly caching both layers
of AdaptiveIcon.

Test: restart phone, swipe up to home
      restart phone, back swipe to home (This flow never called keepWindowOpaque)
Bug: 207389002

Change-Id: Ida64829c60881786ed91e8641cdf7a278b37e201
parent ed05712f
Loading
Loading
Loading
Loading
+1 −21
Original line number Diff line number Diff line
@@ -115,8 +115,6 @@ public class LauncherSwipeHandlerV2 extends
    }

    private HomeAnimationFactory createIconHomeAnimationFactory(View workspaceView) {
        final ResourceProvider rp = DynamicResource.provider(mActivity);
        final float transY = dpToPx(rp.getFloat(R.dimen.swipe_up_trans_y_dp));
        RectF iconLocation = new RectF();
        FloatingIconView floatingIconView = getFloatingIconView(mActivity, workspaceView,
                true /* hideOriginal */, iconLocation, false /* isOpening */);
@@ -127,19 +125,15 @@ public class LauncherSwipeHandlerV2 extends

        return new FloatingViewHomeAnimationFactory(floatingIconView) {

            // There is a delay in loading the icon, so we need to keep the window
            // opaque until it is ready.
            private boolean mIsFloatingIconReady = false;

            @Nullable
            @Override
            protected View getViewIgnoredInWorkspaceRevealAnimation() {
                return workspaceView;
            }

            @NonNull
            @Override
            public RectF getWindowTargetRect() {
                super.getWindowTargetRect();
                return iconLocation;
            }

@@ -151,15 +145,6 @@ public class LauncherSwipeHandlerV2 extends
                floatingIconView.setFastFinishRunnable(anim::end);
            }

            @Override
            public boolean keepWindowOpaque() {
                if (mIsFloatingIconReady || floatingIconView.isVisibleToUser()) {
                    mIsFloatingIconReady = true;
                    return false;
                }
                return true;
            }

            @Override
            public void update(RectF currentRect, float progress, float radius) {
                super.update(currentRect, progress, radius);
@@ -214,11 +199,6 @@ public class LauncherSwipeHandlerV2 extends
                floatingWidgetView.setFastFinishRunnable(anim::end);
            }

            @Override
            public boolean keepWindowOpaque() {
                return false;
            }

            @Override
            public void update(RectF currentRect, float progress, float radius) {
                super.update(currentRect, progress, radius);
+0 −5
Original line number Diff line number Diff line
@@ -183,8 +183,6 @@ public abstract class SwipeUpAnimationLogic implements

        public void setAnimation(RectFSpringAnim anim) { }

        public boolean keepWindowOpaque() { return false; }

        public void update(RectF currentRect, float progress, float radius) { }

        public void onCancel() { }
@@ -338,9 +336,6 @@ public abstract class SwipeUpAnimationLogic implements
            mMatrix.setRectToRect(mCropRectF, mWindowCurrentRect, ScaleToFit.FILL);
            float cornerRadius = Utilities.mapRange(progress, mStartRadius, mEndRadius);
            float alpha = mAnimationFactory.getWindowAlpha(progress);
            if (mAnimationFactory.keepWindowOpaque()) {
                alpha = 1f;
            }
            mLocalTransformParams
                    .setTargetAlpha(alpha)
                    .setCornerRadius(cornerRadius);