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

Commit cd587212 authored by Schneider Victor-tulias's avatar Schneider Victor-tulias Committed by Android (Google) Code Review
Browse files

Merge "Refactor recents attached to window animation to keep state handling...

Merge "Refactor recents attached to window animation to keep state handling synchronized." into tm-qpr-dev
parents 3cf77927 5bb69206
Loading
Loading
Loading
Loading
+28 −29
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.annotation.TargetApi;
import android.content.Context;
@@ -501,45 +502,43 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
                        "setRecentsAttachedToAppWindow: exiting early"));
                return;
            }
            mActivity.getStateManager()
                    .cancelStateElementAnimation(INDEX_RECENTS_FADE_ANIM);
            mActivity.getStateManager()
                    .cancelStateElementAnimation(INDEX_RECENTS_TRANSLATE_X_ANIM);

            AnimatorSet animatorSet = new AnimatorSet();
            animatorSet.addListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationStart(Animator animation) {
                    super.onAnimationStart(animation);
                    mIsAttachedToWindow = attached;
            RecentsView recentsView = mActivity.getOverviewPanel();
                    if (attached) {
                        mHasEverAttachedToWindow = true;
                    }
                }});

            long animationDuration = animate ? RECENTS_ATTACH_DURATION : 0;
            Animator fadeAnim = mActivity.getStateManager()
                    .createStateElementAnimation(INDEX_RECENTS_FADE_ANIM, attached ? 1 : 0);
            fadeAnim.setInterpolator(attached ? INSTANT : ACCEL_2);
            fadeAnim.setDuration(animationDuration);
            animatorSet.play(fadeAnim);

            float fromTranslation = attached ? 1 : 0;
            float fromTranslation = ADJACENT_PAGE_HORIZONTAL_OFFSET.get(
                    mActivity.getOverviewPanel());
            float toTranslation = attached ? 0 : 1;
            mActivity.getStateManager()
                    .cancelStateElementAnimation(INDEX_RECENTS_TRANSLATE_X_ANIM);
            if (!recentsView.isShown() && animate) {
                ADJACENT_PAGE_HORIZONTAL_OFFSET.set(recentsView, fromTranslation);
                ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString(
                        "setRecentsAttachedToAppWindow: recents view not shown, setting ")
                        .append("ADJACENT_PAGE_HORIZONTAL_OFFSET to ")
                        .append(Float.toString(fromTranslation)));
            } else {
                fromTranslation = ADJACENT_PAGE_HORIZONTAL_OFFSET.get(recentsView);
                ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString(
                        "setRecentsAttachedToAppWindow: updating fromTranslation to ")
                        .append(Float.toString(fromTranslation)));
            }
            ActiveGestureLog.INSTANCE.addLog(new ActiveGestureLog.CompoundString(
                    "setRecentsAttachedToAppWindow: fromTranslation=")
                    .append(Float.toString(fromTranslation))
                    .append(", toTranslation=")
                    .append(Float.toString(toTranslation)));
            if (!animate) {
                ADJACENT_PAGE_HORIZONTAL_OFFSET.set(recentsView, toTranslation);
            } else {
                mActivity.getStateManager().createStateElementAnimation(
                        INDEX_RECENTS_TRANSLATE_X_ANIM,
                        fromTranslation, toTranslation).start();
            }

            fadeAnim.setInterpolator(attached ? INSTANT : ACCEL_2);
            fadeAnim.setDuration(animate ? RECENTS_ATTACH_DURATION : 0).start();
            Animator translationAnimator = mActivity.getStateManager().createStateElementAnimation(
                    INDEX_RECENTS_TRANSLATE_X_ANIM, fromTranslation, toTranslation);
            translationAnimator.setDuration(animationDuration);
            animatorSet.play(translationAnimator);
            animatorSet.start();
        }

        @Override