Merge pull request #6664 from vector-im/fix/mna/cancel-infinite-animation

Cancel infinite animations in TypingMessageDotsView
This commit is contained in:
Maxime NATUREL 2022-07-28 11:48:26 +02:00 committed by GitHub
commit d60683d991
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 3 deletions

1
changelog.d/6663.bugfix Normal file
View File

@ -0,0 +1 @@
ObjectAnimators are not canceled in TypingMessageDotsView

View File

@ -42,6 +42,7 @@ class TypingMessageDotsView(context: Context, attrs: AttributeSet) :
}
private val circles = mutableListOf<View>()
private val objectAnimators = mutableListOf<ObjectAnimator>()
init {
orientation = HORIZONTAL
@ -76,15 +77,17 @@ class TypingMessageDotsView(context: Context, attrs: AttributeSet) :
}
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
startDelay = DEFAULT_START_ANIM_CIRCLE_DURATION * index
repeatCount = ValueAnimator.INFINITE
}.start()
}
objectAnimators.add(objectAnimator)
objectAnimator.start()
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
circles.forEach { it.clearAnimation() }
objectAnimators.forEach { it.cancel() }
}
}