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

Commit d14b11ad authored by Fengjiang Li's avatar Fengjiang Li Committed by Automerger Merge Worker
Browse files

Merge "[Predictive Back] Fix bug where closing task bar's all apps will show...

Merge "[Predictive Back] Fix bug where closing task bar's all apps will show scale animation even if predicitve back is disabled" into tm-qpr-dev am: 47c03be9

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21911161



Change-Id: I1b74b3a49c48936039c501ca07ca4d7aa0ceeb3a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents b8614e29 47c03be9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -55,6 +55,11 @@ public class AnimatedFloat {
        mUpdateCallback = updateCallback;
    }

    public AnimatedFloat(Runnable updateCallback, float initialValue) {
        this(updateCallback);
        value = initialValue;
    }

    /**
     * Returns an animation from the current value to the given value.
     */
+6 −4
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ public abstract class AbstractSlideInView<T extends Context & ActivityContext>
            };
    protected static final float TRANSLATION_SHIFT_CLOSED = 1f;
    protected static final float TRANSLATION_SHIFT_OPENED = 0f;
    private static final float VIEW_NO_SCALE = 1f;

    protected final T mActivityContext;

@@ -93,7 +94,8 @@ public abstract class AbstractSlideInView<T extends Context & ActivityContext>
    protected @Nullable OnCloseListener mOnCloseBeginListener;
    protected List<OnCloseListener> mOnCloseListeners = new ArrayList<>();

    private final AnimatedFloat mSlidInViewScale = new AnimatedFloat(this::onScaleProgressChanged);
    private final AnimatedFloat mSlideInViewScale =
            new AnimatedFloat(this::onScaleProgressChanged, VIEW_NO_SCALE);
    private boolean mIsBackProgressing;
    @Nullable private Drawable mContentBackground;

@@ -184,12 +186,12 @@ public abstract class AbstractSlideInView<T extends Context & ActivityContext>
        float deceleratedProgress =
                Interpolators.PREDICTIVE_BACK_DECELERATED_EASE.getInterpolation(progress);
        mIsBackProgressing = progress > 0f;
        mSlidInViewScale.updateValue(PREDICTIVE_BACK_MIN_SCALE
        mSlideInViewScale.updateValue(PREDICTIVE_BACK_MIN_SCALE
                + (1 - PREDICTIVE_BACK_MIN_SCALE) * (1 - deceleratedProgress));
    }

    private void onScaleProgressChanged() {
        float scaleProgress = mSlidInViewScale.value;
        float scaleProgress = mSlideInViewScale.value;
        SCALE_PROPERTY.set(this, scaleProgress);
        setClipChildren(!mIsBackProgressing);
        mContent.setClipChildren(!mIsBackProgressing);
@@ -209,7 +211,7 @@ public abstract class AbstractSlideInView<T extends Context & ActivityContext>
    }

    protected void animateSlideInViewToNoScale() {
        mSlidInViewScale.animateToValue(1f)
        mSlideInViewScale.animateToValue(1f)
                .setDuration(REVERT_SWIPE_ALL_APPS_TO_HOME_ANIMATION_DURATION_MS)
                .start();
    }