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

Commit ccc3a662 authored by Peter Kalauskas's avatar Peter Kalauskas
Browse files

Fix text crossfade

When expanding a notification and changing the text displayed, fade-out
the going-away text earlier, and fade-in the new text later.

This avoids a state in between where some text is drawn on top of
other text.

Test: Create notification with long text, use drag to slowly expand
      notification. Check that text is never drawn on top of each other
Bug: 232852389
Change-Id: If0eb86aaf858ba7b2043bca56c4c70196709f078
parent 5d4978d3
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.statusbar.notification;

import android.util.MathUtils;
import android.util.Pools;
import android.view.View;
import android.view.animation.Interpolator;
@@ -98,7 +99,10 @@ public class TransformState {
        if (sameAs(otherState)) {
            ensureVisible();
        } else {
            CrossFadeHelper.fadeIn(mTransformedView, transformationAmount, true /* remap */);
            CrossFadeHelper.fadeIn(
                    mTransformedView,
                    MathUtils.constrainedMap(0, 1, 0.45f, 1, transformationAmount),
                    false /* remap */);
        }
        transformViewFullyFrom(otherState, transformationAmount);
    }
@@ -294,7 +298,10 @@ public class TransformState {
            }
            return false;
        } else {
            CrossFadeHelper.fadeOut(mTransformedView, transformationAmount);
            CrossFadeHelper.fadeOut(
                    mTransformedView,
                    MathUtils.constrainedMap(0, 1, 0, 0.55f, transformationAmount),
                    false /* remap */);
        }
        transformViewFullyTo(otherState, transformationAmount);
        return true;