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);