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

Commit 9b856161 authored by Jonathan Miranda's avatar Jonathan Miranda Committed by Android (Google) Code Review
Browse files

Merge "Remove PROTOTYPE_APP_CLOSE feature flag and associated code." into sc-v2-dev

parents 6e5f4e31 029a644a
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -110,7 +110,6 @@ import com.android.launcher3.widget.LauncherAppWidgetHostView;
import com.android.quickstep.RemoteAnimationTargets;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TaskViewUtils;
import com.android.quickstep.util.AppCloseConfig;
import com.android.quickstep.util.MultiValueUpdateListener;
import com.android.quickstep.util.RectFSpringAnim;
import com.android.quickstep.util.RemoteAnimationProvider;
@@ -1338,12 +1337,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener

            RectFSpringAnim.OnUpdateListener runner = new SpringAnimRunner(targets, targetRect) {
                @Override
                public void onUpdate(@Nullable AppCloseConfig values, RectF currentRectF,
                        float progress) {
                public void onUpdate(RectF currentRectF, float progress) {
                    finalFloatingIconView.update(1f, 255 /* fgAlpha */, currentRectF, progress,
                            windowAlphaThreshold, getCornerRadius(progress), false);

                    super.onUpdate(values, currentRectF, progress);
                    super.onUpdate(currentRectF, progress);
                }
            };
            anim.addOnUpdateListener(runner);
@@ -1356,8 +1354,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
            FloatingWidgetView finalFloatingWidget = floatingWidget;
            RectFSpringAnim.OnUpdateListener  runner = new SpringAnimRunner(targets, targetRect) {
                @Override
                public void onUpdate(@Nullable AppCloseConfig values, RectF currentRectF,
                        float progress) {
                public void onUpdate(RectF currentRectF, float progress) {
                    final float fallbackBackgroundAlpha =
                            1 - mapBoundToRange(progress, 0.8f, 1, 0, 1, EXAGGERATED_EASE);
                    final float foregroundAlpha =
@@ -1365,7 +1362,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
                    finalFloatingWidget.update(currentRectF, floatingWidgetAlpha, foregroundAlpha,
                            fallbackBackgroundAlpha, 1 - progress);

                    super.onUpdate(values, currentRectF, progress);
                    super.onUpdate(currentRectF, progress);
                }
            };
            anim.addOnUpdateListener(runner);
@@ -1776,7 +1773,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
        }

        @Override
        public void onUpdate(@Nullable AppCloseConfig values, RectF currentRectF, float progress) {
        public void onUpdate(RectF currentRectF, float progress) {
            SurfaceParams[] params = new SurfaceParams[mAppTargets.length];
            for (int i = mAppTargets.length - 1; i >= 0; i--) {
                RemoteAnimationTargetCompat target = mAppTargets[i];
+1 −1
Original line number Diff line number Diff line
@@ -1449,7 +1449,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
    }

    private void setupWindowAnimation(RectFSpringAnim[] anims) {
        anims[0].addOnUpdateListener((v, r, p) -> {
        anims[0].addOnUpdateListener((r, p) -> {
            updateSysUiFlags(Math.max(p, mCurrentShift.value));
        });
        anims[0].addAnimatorListener(new AnimationSuccessListener() {
+1 −4
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@ import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Utilities;
@@ -59,7 +58,6 @@ import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.anim.SpringAnimationBuilder;
import com.android.quickstep.fallback.FallbackRecentsView;
import com.android.quickstep.fallback.RecentsState;
import com.android.quickstep.util.AppCloseConfig;
import com.android.quickstep.util.RectFSpringAnim;
import com.android.quickstep.util.TransformParams;
import com.android.quickstep.util.TransformParams.BuilderProxy;
@@ -317,8 +315,7 @@ public class FallbackSwipeHandler extends
        }

        @Override
        public void update(@Nullable AppCloseConfig config, RectF currentRect, float progress,
                 float radius) {
        public void update(RectF currentRect, float progress, float radius) {
            if (mSurfaceControl != null) {
                currentRect.roundOut(mTempRect);
                Transaction t = new Transaction();
+8 −79
Original line number Diff line number Diff line
@@ -18,18 +18,14 @@ package com.android.quickstep;
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.Utilities.boundToRange;
import static com.android.launcher3.Utilities.dpToPx;
import static com.android.launcher3.Utilities.mapBoundToRange;
import static com.android.launcher3.anim.Interpolators.EXAGGERATED_EASE;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.config.FeatureFlags.PROTOTYPE_APP_CLOSE;
import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID;
import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION;
import static com.android.launcher3.views.FloatingIconView.getFloatingIconView;

import static java.lang.Math.round;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
@@ -59,10 +55,8 @@ import com.android.launcher3.util.ObjectWrapper;
import com.android.launcher3.views.FloatingIconView;
import com.android.launcher3.views.FloatingView;
import com.android.launcher3.widget.LauncherAppWidgetHostView;
import com.android.quickstep.util.AppCloseConfig;
import com.android.quickstep.util.RectFSpringAnim;
import com.android.quickstep.util.StaggeredWorkspaceAnim;
import com.android.quickstep.util.WorkspaceRevealAnim;
import com.android.quickstep.views.FloatingWidgetView;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
@@ -167,15 +161,9 @@ public class LauncherSwipeHandlerV2 extends
            }

            @Override
            public void update(@Nullable AppCloseConfig config, RectF currentRect,
                    float progress, float radius) {
                super.update(config, currentRect, progress, radius);
                int fgAlpha = 255;
                if (config != null && PROTOTYPE_APP_CLOSE.get()) {
                    progress = config.getInterpolatedProgress();
                    fgAlpha = config.getFgAlpha();
                }
                floatingIconView.update(1f, fgAlpha, currentRect, progress,
            public void update(RectF currentRect, float progress, float radius) {
                super.update(currentRect, progress, radius);
                floatingIconView.update(1f /* alpha */, 255 /* fgAlpha */, currentRect, progress,
                        windowAlphaThreshold, radius, false);
            }
        };
@@ -232,9 +220,8 @@ public class LauncherSwipeHandlerV2 extends
            }

            @Override
            public void update(@Nullable AppCloseConfig config, RectF currentRect, float progress,
                    float radius) {
                super.update(config, currentRect, progress, radius);
            public void update(RectF currentRect, float progress, float radius) {
                super.update(currentRect, progress, radius);
                final float fallbackBackgroundAlpha =
                        1 - mapBoundToRange(progress, 0.8f, 1, 0, 1, EXAGGERATED_EASE);
                final float foregroundAlpha =
@@ -293,27 +280,12 @@ public class LauncherSwipeHandlerV2 extends
        private final float mTransY;
        private final FloatingView mFloatingView;
        private ValueAnimator mBounceBackAnimator;
        private final AnimatorSet mWorkspaceReveal;

        FloatingViewHomeAnimationFactory(FloatingView floatingView) {
            mFloatingView = floatingView;

            ResourceProvider rp = DynamicResource.provider(mActivity);
            mTransY = dpToPx(rp.getFloat(R.dimen.swipe_up_trans_y_dp));

            mWorkspaceReveal = PROTOTYPE_APP_CLOSE.get()
                    ? new WorkspaceRevealAnim(mActivity, true /* animateScrim */).getAnimators()
                    : null;
        }

        @Override
        public @NonNull RectF getWindowTargetRect() {
            if (PROTOTYPE_APP_CLOSE.get()) {
                // We want the target rect to be at this offset position, so that all
                // launcher content can spring back upwards.
                mFloatingView.setPositionOffsetY(mTransY);
            }
            return super.getWindowTargetRect();
        }

        @Override
@@ -321,20 +293,6 @@ public class LauncherSwipeHandlerV2 extends
            return false;
        }

        @Override
        public void update(@Nullable AppCloseConfig config, RectF currentRect, float progress,
                float radius) {
            if (config != null && PROTOTYPE_APP_CLOSE.get()) {
                DragLayer dl = mActivity.getDragLayer();
                float translationY = config.getWorkspaceTransY();
                dl.setTranslationY(translationY);

                long duration = mWorkspaceReveal.getDuration();
                long playTime = boundToRange(round(duration * progress), 0, duration);
                mWorkspaceReveal.setCurrentPlayTime(playTime);
            }
        }

        protected void bounceBackToRestingPosition() {
            final float startValue = mTransY;
            final float endValue = 0;
@@ -368,31 +326,6 @@ public class LauncherSwipeHandlerV2 extends
            mBounceBackAnimator.start();
        }

        @Override
        public void setAnimation(RectFSpringAnim anim) {
            if (PROTOTYPE_APP_CLOSE.get()) {
                // Use a spring to put drag layer translation back to 0.
                anim.addAnimatorListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mFloatingView.setPositionOffsetY(0);
                        bounceBackToRestingPosition();
                    }
                });

                // Will be updated manually below so that the two animations are in sync.
                mWorkspaceReveal.start();
                mWorkspaceReveal.pause();

                anim.addAnimatorListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mWorkspaceReveal.end();
                    }
                });
            }
        }

        @Override
        public void onCancel() {
            mFloatingView.fastFinish();
@@ -425,13 +358,9 @@ public class LauncherSwipeHandlerV2 extends

        @Override
        public void playAtomicAnimation(float velocity) {
            if (!PROTOTYPE_APP_CLOSE.get()) {
            new StaggeredWorkspaceAnim(mActivity, velocity, true /* animateOverviewScrim */,
                    getViewIgnoredInWorkspaceRevealAnimation())
                    .start();
            } else if (shouldPlayAtomicWorkspaceReveal()) {
                new WorkspaceRevealAnim(mActivity, true).start();
            }
        }

        @Override
+4 −21
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.quickstep;
import static com.android.launcher3.anim.Interpolators.ACCEL_1_5;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_SELECT;
import static com.android.launcher3.config.FeatureFlags.PROTOTYPE_APP_CLOSE;

import android.animation.Animator;
import android.content.Context;
@@ -28,7 +27,6 @@ import android.graphics.Rect;
import android.graphics.RectF;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;

import com.android.launcher3.DeviceProfile;
@@ -39,10 +37,8 @@ import com.android.launcher3.anim.PendingAnimation;
import com.android.launcher3.touch.PagedOrientationHandler;
import com.android.quickstep.RemoteTargetGluer.RemoteTargetHandle;
import com.android.quickstep.util.AnimatorControllerWithResistance;
import com.android.quickstep.util.AppCloseConfig;
import com.android.quickstep.util.LauncherSplitScreenListener;
import com.android.quickstep.util.RectFSpringAnim;
import com.android.quickstep.util.RectFSpringAnim2;
import com.android.quickstep.util.TaskViewSimulator;
import com.android.quickstep.util.TransformParams;
import com.android.quickstep.util.TransformParams.BuilderProxy;
@@ -189,8 +185,7 @@ public abstract class SwipeUpAnimationLogic implements

        public boolean keepWindowOpaque() { return false; }

        public void update(@Nullable AppCloseConfig config, RectF currentRect, float progress,
                float radius) { }
        public void update(RectF currentRect, float progress, float radius) { }

        public void onCancel() { }

@@ -290,14 +285,7 @@ public abstract class SwipeUpAnimationLogic implements
        homeToWindowPositionMap.invert(windowToHomePositionMap);
        windowToHomePositionMap.mapRect(startRect);

        RectFSpringAnim anim;
        if (PROTOTYPE_APP_CLOSE.get()) {
            anim = new RectFSpringAnim2(startRect, targetRect, mContext,
                    taskViewSimulator.getCurrentCornerRadius(),
                    homeAnimationFactory.getEndRadius(cropRectF));
        } else {
            anim = new RectFSpringAnim(startRect, targetRect, mContext, mDp);
        }
        RectFSpringAnim anim = new RectFSpringAnim(startRect, targetRect, mContext, mDp);
        homeAnimationFactory.setAnimation(anim);

        SpringAnimationRunner runner = new SpringAnimationRunner(
@@ -343,17 +331,13 @@ public abstract class SwipeUpAnimationLogic implements
        }

        @Override
        public void onUpdate(@Nullable AppCloseConfig config, RectF currentRect, float progress) {
        public void onUpdate(RectF currentRect, float progress) {
            mHomeAnim.setPlayFraction(progress);
            mHomeToWindowPositionMap.mapRect(mWindowCurrentRect, currentRect);

            mMatrix.setRectToRect(mCropRectF, mWindowCurrentRect, ScaleToFit.FILL);
            float cornerRadius = Utilities.mapRange(progress, mStartRadius, mEndRadius);
            float alpha = mAnimationFactory.getWindowAlpha(progress);
            if (config != null && PROTOTYPE_APP_CLOSE.get()) {
                alpha = config.getWindowAlpha();
                cornerRadius = config.getCornerRadius();
            }
            if (mAnimationFactory.keepWindowOpaque()) {
                alpha = 1f;
            }
@@ -362,8 +346,7 @@ public abstract class SwipeUpAnimationLogic implements
                    .setCornerRadius(cornerRadius);
            mLocalTransformParams.applySurfaceParams(mLocalTransformParams
                    .createSurfaceParams(this));
            mAnimationFactory.update(config, currentRect, progress,
                    mMatrix.mapRadius(cornerRadius));
            mAnimationFactory.update(currentRect, progress, mMatrix.mapRadius(cornerRadius));
        }

        @Override
Loading