mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 05:31:21 +03:00
Fixing missing cancel on infinite ObjectAnimators
This commit is contained in:
parent
050c23b578
commit
fbd1009ebc
1 changed files with 6 additions and 3 deletions
|
@ -42,6 +42,7 @@ class TypingMessageDotsView(context: Context, attrs: AttributeSet) :
|
||||||
}
|
}
|
||||||
|
|
||||||
private val circles = mutableListOf<View>()
|
private val circles = mutableListOf<View>()
|
||||||
|
private val objectAnimators = mutableListOf<ObjectAnimator>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
orientation = HORIZONTAL
|
orientation = HORIZONTAL
|
||||||
|
@ -76,15 +77,17 @@ class TypingMessageDotsView(context: Context, attrs: AttributeSet) :
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun animateCircle(index: Int, circle: View) {
|
private fun animateCircle(index: Int, circle: View) {
|
||||||
ObjectAnimator.ofFloat(circle, "alpha", DEFAULT_MAX_ALPHA, DEFAULT_MIN_ALPHA).apply {
|
val objectAnimator = ObjectAnimator.ofFloat(circle, "alpha", DEFAULT_MAX_ALPHA, DEFAULT_MIN_ALPHA).apply {
|
||||||
duration = DEFAULT_CIRCLE_DURATION
|
duration = DEFAULT_CIRCLE_DURATION
|
||||||
startDelay = DEFAULT_START_ANIM_CIRCLE_DURATION * index
|
startDelay = DEFAULT_START_ANIM_CIRCLE_DURATION * index
|
||||||
repeatCount = ValueAnimator.INFINITE
|
repeatCount = ValueAnimator.INFINITE
|
||||||
}.start()
|
}
|
||||||
|
objectAnimators.add(objectAnimator)
|
||||||
|
objectAnimator.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDetachedFromWindow() {
|
override fun onDetachedFromWindow() {
|
||||||
super.onDetachedFromWindow()
|
super.onDetachedFromWindow()
|
||||||
circles.forEach { it.clearAnimation() }
|
objectAnimators.forEach { it.cancel() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue