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

Commit 3aeea5c2 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Prevent divided by zero if animation is disable" into rvc-dev am: 2afeac47 am: ac2b3184

Change-Id: I566e3bb6fd579899549c8ff644dbbcb804ad54d3
parents 6e60401b ac2b3184
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -382,8 +382,8 @@ class Dimmer {

        @Override
        public void apply(SurfaceControl.Transaction t, SurfaceControl sc, long currentPlayTime) {
            float alpha = ((float) currentPlayTime / getDuration()) * (mToAlpha - mFromAlpha)
                    + mFromAlpha;
            final float fraction = getFraction(currentPlayTime);
            final float alpha = fraction * (mToAlpha - mFromAlpha) + mFromAlpha;
            t.setAlpha(sc, alpha);
        }

+10 −0
Original line number Diff line number Diff line
@@ -130,6 +130,16 @@ class LocalAnimationAdapter implements AnimationAdapter {
         */
        default boolean needsEarlyWakeup() { return false; }

        /**
         * @return The fraction of the animation, returns 1 if duration is 0.
         *
         * @param currentPlayTime The current play time.
         */
        default float getFraction(float currentPlayTime) {
            final float duration = getDuration();
            return duration > 0 ? currentPlayTime / duration : 1.0f;
        }

        void dump(PrintWriter pw, String prefix);

        default void dumpDebug(ProtoOutputStream proto, long fieldId) {
+2 −2
Original line number Diff line number Diff line
@@ -646,8 +646,8 @@ class ScreenRotationAnimation {
                    @Override
                    public void apply(SurfaceControl.Transaction t, SurfaceControl leash,
                        long currentPlayTime) {
                        float fraction = (float)currentPlayTime / (float)getDuration();
                        int color = (Integer) va.evaluate(fraction, startColor, endColor);
                        final float fraction = getFraction(currentPlayTime);
                        final int color = (Integer) va.evaluate(fraction, startColor, endColor);
                        Color middleColor = Color.valueOf(color);
                        rgbTmpFloat[0] = middleColor.red();
                        rgbTmpFloat[1] = middleColor.green();
+1 −1
Original line number Diff line number Diff line
@@ -5606,7 +5606,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP

        @Override
        public void apply(Transaction t, SurfaceControl leash, long currentPlayTime) {
            final float fraction = (float) currentPlayTime / getDuration();
            final float fraction = getFraction(currentPlayTime);
            final float v = mInterpolator.getInterpolation(fraction);
            t.setPosition(leash, mFrom.x + (mTo.x - mFrom.x) * v,
                    mFrom.y + (mTo.y - mFrom.y) * v);