Potential fix
diff --git a/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java b/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java
index 2025245..f705fc9 100644
--- a/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java
+++ b/lottie/src/main/java/com/airbnb/lottie/animation/content/BaseStrokeContent.java
@@ -1,7 +1,5 @@
 package com.airbnb.lottie.animation.content;
 
-import static com.airbnb.lottie.utils.MiscUtils.clamp;
-
 import android.graphics.BlurMaskFilter;
 import android.graphics.Canvas;
 import android.graphics.ColorFilter;
@@ -11,11 +9,9 @@
 import android.graphics.Path;
 import android.graphics.PathMeasure;
 import android.graphics.RectF;
-
 import androidx.annotation.CallSuper;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-
 import com.airbnb.lottie.L;
 import com.airbnb.lottie.LottieDrawable;
 import com.airbnb.lottie.LottieProperty;
@@ -37,6 +33,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import static com.airbnb.lottie.utils.MiscUtils.clamp;
+
 public abstract class BaseStrokeContent
     implements BaseKeyframeAnimation.AnimationListener, KeyPathElementContent, DrawingContent {
 
@@ -265,10 +263,7 @@
         } else {
           startValue = startLength / length;
         }
-        float endValue = Math.min((endLength - trimPathTotalLength) / length, 1);
-        if (startValue == endValue && endLength != startLength) {
-          endValue += 1;
-        }
+        float endValue = startValue + (endLength - startLength) / length;
         Utils.applyTrimPathIfNeeded(trimPathPath, startValue, endValue, 0);
         canvas.drawPath(trimPathPath, paint);
       } else {