@@ -7,8 +7,7 @@ import android.graphics.Paint
7
7
import android.graphics.RectF
8
8
import android.util.AttributeSet
9
9
import android.view.View
10
- import android.view.animation.LinearInterpolator
11
- import android.view.animation.OvershootInterpolator
10
+ import android.view.animation.*
12
11
import androidx.annotation.ColorInt
13
12
import com.sn.lib.Constants.ANIM_DURATION
14
13
import com.sn.lib.Constants.CIRCLE_RADIUS
@@ -270,8 +269,21 @@ class NestedProgress @JvmOverloads constructor(
270
269
paint.strokeWidth = strokeWidth
271
270
}
272
271
272
+ private fun getAnimation (interpolator : Int ): Interpolator {
273
+ return when (interpolator) {
274
+ 0 -> AccelerateInterpolator ()
275
+ 1 -> DecelerateInterpolator ()
276
+ 2 -> AccelerateDecelerateInterpolator ()
277
+ 3 -> AnticipateInterpolator ()
278
+ 4 -> AnticipateOvershootInterpolator ()
279
+ 5 -> LinearInterpolator ()
280
+ 6 -> OvershootInterpolator ()
281
+ else -> AccelerateDecelerateInterpolator ()
282
+ }
283
+ }
284
+
273
285
private fun innerLoaderAnimation () {
274
- innerLoaderAnimator.interpolator = OvershootInterpolator ( )
286
+ innerLoaderAnimator.interpolator = getAnimation(innerAnimInterpolator )
275
287
innerLoaderAnimator.duration = innerLoaderAnimDuration.toLong()
276
288
innerLoaderAnimator.repeatCount = ValueAnimator .INFINITE
277
289
innerLoaderAnimator.addUpdateListener { animation ->
@@ -281,7 +293,7 @@ class NestedProgress @JvmOverloads constructor(
281
293
}
282
294
283
295
private fun outerLoaderAnimation () {
284
- outerLoaderAnimator.interpolator = LinearInterpolator ( )
296
+ outerLoaderAnimator.interpolator = getAnimation(outerAnimInterpolator )
285
297
outerLoaderAnimator.duration = outerLoaderAnimDuration.toLong()
286
298
outerLoaderAnimator.repeatCount = ValueAnimator .INFINITE
287
299
outerLoaderAnimator.addUpdateListener { animation ->
0 commit comments