From def2804a8580191eea3483be4f7c48fd030f12e8 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Thu, 13 Jul 2023 22:28:44 +0200 Subject: [PATCH] add AccelerateInterpolator based on AOSP version --- .../animation/AccelerateInterpolator.java | 25 +++++++++++++++++++ .../android/view/animation/Interpolator.java | 5 ++++ src/api-impl/meson.build | 2 ++ 3 files changed, 32 insertions(+) create mode 100644 src/api-impl/android/view/animation/AccelerateInterpolator.java create mode 100644 src/api-impl/android/view/animation/Interpolator.java diff --git a/src/api-impl/android/view/animation/AccelerateInterpolator.java b/src/api-impl/android/view/animation/AccelerateInterpolator.java new file mode 100644 index 00000000..e373d045 --- /dev/null +++ b/src/api-impl/android/view/animation/AccelerateInterpolator.java @@ -0,0 +1,25 @@ +package android.view.animation; + +/** + * An interpolator where the rate of change starts out slowly and + * and then accelerates. + * + */ +public class AccelerateInterpolator implements Interpolator { + private final float mFactor; + private final double mDoubleFactor; + + public AccelerateInterpolator() { + mFactor = 1.0f; + mDoubleFactor = 2.0; + } + + public float getInterpolation(float input) { + if (mFactor == 1.0f) { + return input * input; + } else { + return (float)Math.pow(input, mDoubleFactor); + } + } + +} diff --git a/src/api-impl/android/view/animation/Interpolator.java b/src/api-impl/android/view/animation/Interpolator.java new file mode 100644 index 00000000..511c6123 --- /dev/null +++ b/src/api-impl/android/view/animation/Interpolator.java @@ -0,0 +1,5 @@ +package android.view.animation; + +public interface Interpolator { + +} diff --git a/src/api-impl/meson.build b/src/api-impl/meson.build index 73f7493d..a1d6c3e4 100644 --- a/src/api-impl/meson.build +++ b/src/api-impl/meson.build @@ -191,6 +191,8 @@ hax_jar = jar('hax', [ 'android/util/TypedValue.java', 'android/util/Xml.java', 'android/util/XmlPullAttributes.java', + 'android/view/animation/AccelerateInterpolator.java', + 'android/view/animation/Interpolator.java', 'android/view/Choreographer.java', 'android/view/Display.java', 'android/view/Gravity.java',