blob: bf1735e338782233fe25327316927c96e44fd47a [file] [log] [blame]
package com.airbnb.lottie.compose
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
@Composable
fun rememberLottieAnimationState(
autoPlay: Boolean = true,
repeatCount: Int = 0,
initialProgress: Float = 0f
): LottieAnimationState {
return remember(repeatCount, autoPlay) {
LottieAnimationState(isPlaying = autoPlay, repeatCount, initialProgress)
}
}
class LottieAnimationState(isPlaying: Boolean, repeatCount: Int = 0, initialProgress: Float = 0f) {
var progress by mutableStateOf(initialProgress)
private var _frame = mutableStateOf(0)
val frame: Int by _frame
var isPlaying by mutableStateOf(isPlaying)
var repeatCount by mutableStateOf(repeatCount)
var speed by mutableStateOf(1f)
internal fun updateFrame(frame: Int) {
_frame.value = frame
}
fun toggleIsPlaying() {
isPlaying = !isPlaying
}
}