Fix infinite animation loop when system animations are disabled.

main
Alex Hart 2022-11-08 09:51:06 -04:00 zatwierdzone przez Greyson Parrelli
rodzic 2cfa31a9b0
commit b1d1aee373
2 zmienionych plików z 16 dodań i 0 usunięć

Wyświetl plik

@ -19,6 +19,7 @@ import com.bumptech.glide.request.target.Target
import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.blurhash.BlurHash import org.thoughtcrime.securesms.blurhash.BlurHash
import org.thoughtcrime.securesms.mms.GlideApp import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.util.areSystemAnimationsDisabled
import org.thoughtcrime.securesms.util.visible import org.thoughtcrime.securesms.util.visible
class StoryFirstTimeNavigationView @JvmOverloads constructor( class StoryFirstTimeNavigationView @JvmOverloads constructor(
@ -118,6 +119,10 @@ class StoryFirstTimeNavigationView @JvmOverloads constructor(
} }
private fun startLottieAnimations() { private fun startLottieAnimations() {
if (context.contentResolver.areSystemAnimationsDisabled()) {
return
}
isPlayingAnimations = true isPlayingAnimations = true
tapToAdvance.addAnimatorListener(object : AnimatorListenerAdapter() { tapToAdvance.addAnimatorListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) { override fun onAnimationEnd(animation: Animator?) {

Wyświetl plik

@ -0,0 +1,11 @@
package org.thoughtcrime.securesms.util
import android.content.ContentResolver
import android.provider.Settings
fun ContentResolver.areSystemAnimationsDisabled(): Boolean {
val durationScale = Settings.System.getFloat(this, Settings.Global.ANIMATOR_DURATION_SCALE)
val transitionScale = Settings.System.getFloat(this, Settings.Global.TRANSITION_ANIMATION_SCALE)
return !(durationScale > 0f && transitionScale > 0f)
}