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

Commit ff10d2bf authored by Johannes Gallmann's avatar Johannes Gallmann
Browse files

Fix small alpha flicker for cross activity back

Bug: 321964396
Flag: ACONFIG com.android.window.flags.predictive_back_system_anims TEAMFOOD
Test: Manual, i.e. veryfing that flicker does not occur anymore during cross activity back animation
Change-Id: Ifcd8ee11c661c1f7ff0ab1730569b34c78adece0
parent 96d2cf97
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -310,12 +310,16 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
        float top = mapRange(progress, mEnteringStartRect.top, mStartTaskRect.top);
        float width = mapRange(progress, mEnteringStartRect.width(), mStartTaskRect.width());
        float height = mapRange(progress, mEnteringStartRect.height(), mStartTaskRect.height());
        float alpha = mapRange(progress, mEnteringProgress, 1.0f);

        float alpha = mapRange(progress, getPreCommitEnteringAlpha(), 1.0f);
        mEnteringRect.set(left, top, left + width, top + height);
        applyTransform(mEnteringTarget.leash, mEnteringRect, alpha);
    }

    private float getPreCommitEnteringAlpha() {
        return Math.max(smoothstep(ENTER_ALPHA_THRESHOLD, 0.7f, mEnteringProgress),
                MIN_WINDOW_ALPHA);
    }

    private float getEnteringProgress() {
        return mEnteringProgress * SCALE_FACTOR;
    }
@@ -325,9 +329,7 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
        if (mEnteringTarget != null && mEnteringTarget.leash != null) {
            transformWithProgress(
                    mEnteringProgress,
                    Math.max(
                            smoothstep(ENTER_ALPHA_THRESHOLD, 0.7f, mEnteringProgress),
                            MIN_WINDOW_ALPHA),  /* alpha */
                    getPreCommitEnteringAlpha(),
                    mEnteringTarget.leash,
                    mEnteringRect,
                    -mWindowXShift,
@@ -336,6 +338,11 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
        }
    }

    private float getPreCommitLeavingAlpha() {
        return Math.max(1 - smoothstep(0, ENTER_ALPHA_THRESHOLD, mLeavingProgress),
                MIN_WINDOW_ALPHA);
    }

    private float getLeavingProgress() {
        return mLeavingProgress * SCALE_FACTOR;
    }
@@ -345,9 +352,7 @@ public class CrossActivityBackAnimation extends ShellBackAnimation {
        if (mClosingTarget != null && mClosingTarget.leash != null) {
            transformWithProgress(
                    mLeavingProgress,
                    Math.max(
                            1 - smoothstep(0, ENTER_ALPHA_THRESHOLD, mLeavingProgress),
                            MIN_WINDOW_ALPHA),
                    getPreCommitLeavingAlpha(),
                    mClosingTarget.leash,
                    mClosingRect,
                    0,