@@ -7,8 +7,7 @@ import android.graphics.Paint
77import android.graphics.RectF
88import android.util.AttributeSet
99import android.view.View
10- import android.view.animation.LinearInterpolator
11- import android.view.animation.OvershootInterpolator
10+ import android.view.animation.*
1211import androidx.annotation.ColorInt
1312import com.sn.lib.Constants.ANIM_DURATION
1413import com.sn.lib.Constants.CIRCLE_RADIUS
@@ -270,8 +269,21 @@ class NestedProgress @JvmOverloads constructor(
270269 paint.strokeWidth = strokeWidth
271270 }
272271
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+
273285 private fun innerLoaderAnimation () {
274- innerLoaderAnimator.interpolator = OvershootInterpolator ( )
286+ innerLoaderAnimator.interpolator = getAnimation(innerAnimInterpolator )
275287 innerLoaderAnimator.duration = innerLoaderAnimDuration.toLong()
276288 innerLoaderAnimator.repeatCount = ValueAnimator .INFINITE
277289 innerLoaderAnimator.addUpdateListener { animation ->
@@ -281,7 +293,7 @@ class NestedProgress @JvmOverloads constructor(
281293 }
282294
283295 private fun outerLoaderAnimation () {
284- outerLoaderAnimator.interpolator = LinearInterpolator ( )
296+ outerLoaderAnimator.interpolator = getAnimation(outerAnimInterpolator )
285297 outerLoaderAnimator.duration = outerLoaderAnimDuration.toLong()
286298 outerLoaderAnimator.repeatCount = ValueAnimator .INFINITE
287299 outerLoaderAnimator.addUpdateListener { animation ->
0 commit comments