Notify AnimationListener onEnd when animations are cancelled (#1994)
Lottie now behaves the same way as ValueAnimator in the platform.
Fixes #1963
diff --git a/issue-repro/src/main/res/layout/issue_repro_activity.xml b/issue-repro/src/main/res/layout/issue_repro_activity.xml
index df05e85..dc479bb 100755
--- a/issue-repro/src/main/res/layout/issue_repro_activity.xml
+++ b/issue-repro/src/main/res/layout/issue_repro_activity.xml
@@ -9,6 +9,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
+ app:lottie_rawRes="@raw/heart"
app:lottie_autoPlay="true"
app:lottie_loop="true" />
</FrameLayout>
\ No newline at end of file
diff --git a/lottie/src/main/java/com/airbnb/lottie/utils/LottieValueAnimator.java b/lottie/src/main/java/com/airbnb/lottie/utils/LottieValueAnimator.java
index 2a69b45..6451c1a 100644
--- a/lottie/src/main/java/com/airbnb/lottie/utils/LottieValueAnimator.java
+++ b/lottie/src/main/java/com/airbnb/lottie/utils/LottieValueAnimator.java
@@ -262,6 +262,11 @@
return maxFrame == Integer.MAX_VALUE ? composition.getEndFrame() : maxFrame;
}
+ @Override void notifyCancel() {
+ super.notifyCancel();
+ notifyEnd(isReversed());
+ }
+
protected void postFrameCallback() {
if (isRunning()) {
removeFrameCallback(false);