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

Commit f00eb033 authored by Jeremy Sim's avatar Jeremy Sim
Browse files

Add EMPHASIZED_COMPLEMENT interpolator

Moving this interpolator from ActivityLaunchAnimator so it can be used in other classes.

Bug: 309618233
Flag: ACONFIG com.android.wm.shell.enable_app_pairs DEVELOPMENT
Test: Manual
Change-Id: I9c901f0320483c6125caac3c0e5886ba46a442ed
parent 4c5ae6ab
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -45,6 +45,14 @@ public class Interpolators {
     */
    public static final Interpolator EMPHASIZED = createEmphasizedInterpolator();

    /**
     * Complement to {@link #EMPHASIZED}. Used when animating hero movement in two dimensions to
     * create a smooth, emphasized, curved movement.
     * <br>
     * Example usage: Animate y-movement with {@link #EMPHASIZED} and x-movement with this.
     */
    public static final Interpolator EMPHASIZED_COMPLEMENT = createEmphasizedComplement();

    /**
     * The accelerated emphasized interpolator. Used for hero / emphasized movement of content that
     * is disappearing e.g. when moving off screen.
@@ -311,6 +319,18 @@ public class Interpolators {
        return new PathInterpolator(path);
    }

    /**
     * Creates a complement to {@link #createEmphasizedInterpolator()} for use when animating in
     * two dimensions.
     */
    private static PathInterpolator createEmphasizedComplement() {
        Path path = new Path();
        path.moveTo(0f, 0f);
        path.cubicTo(0.1217f, 0.0462f, 0.15f, 0.4686f, 0.1667f, 0.66f);
        path.cubicTo(0.1834f, 0.8878f, 0.1667f, 1f, 1f, 1f);
        return new PathInterpolator(path);
    }

    /**
     * Returns a function that runs the given interpolator such that the entire progress is set
     * between the given bounds. That is, we set the interpolation to 0 until lowerBound and reach
+20 −0
Original line number Diff line number Diff line
@@ -52,6 +52,14 @@ public class InterpolatorsAndroidX {
     */
    public static final Interpolator EMPHASIZED = createEmphasizedInterpolator();

    /**
     * Complement to {@link #EMPHASIZED}. Used when animating hero movement in two dimensions to
     * create a smooth, emphasized, curved movement.
     * <br>
     * Example usage: Animate y-movement with {@link #EMPHASIZED} and x-movement with this.
     */
    public static final Interpolator EMPHASIZED_COMPLEMENT = createEmphasizedComplement();

    /**
     * The accelerated emphasized interpolator. Used for hero / emphasized movement of content that
     * is disappearing e.g. when moving off screen.
@@ -317,6 +325,18 @@ public class InterpolatorsAndroidX {
        return new PathInterpolator(path);
    }

    /**
     * Creates a complement to {@link #createEmphasizedInterpolator()} for use when animating in
     * two dimensions.
     */
    private static PathInterpolator createEmphasizedComplement() {
        Path path = new Path();
        path.moveTo(0f, 0f);
        path.cubicTo(0.1217f, 0.0462f, 0.15f, 0.4686f, 0.1667f, 0.66f);
        path.cubicTo(0.1834f, 0.8878f, 0.1667f, 1f, 1f, 1f);
        return new PathInterpolator(path);
    }

    /**
     * Returns a function that runs the given interpolator such that the entire progress is set
     * between the given bounds. That is, we set the interpolation to 0 until lowerBound and reach