diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderProgressIndicator.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderProgressIndicator.kt index 2bf9cf95f..e91b375ab 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderProgressIndicator.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ReaderProgressIndicator.kt @@ -39,7 +39,7 @@ class ReaderProgressIndicator @JvmOverloads constructor( @Composable override fun Content() { TachiyomiTheme { - CombinedCircularProgressIndicator(progress = progress) + CombinedCircularProgressIndicator(progress = { progress }) } } diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/components/CircularProgressIndicator.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/components/CircularProgressIndicator.kt index bda305890..b123e26e5 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/components/CircularProgressIndicator.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/components/CircularProgressIndicator.kt @@ -37,16 +37,15 @@ import androidx.compose.ui.tooling.preview.Preview * By always rotating we give the feedback to the user that the application isn't 'stuck'. */ @Composable -fun CombinedCircularProgressIndicator(progress: Float) { - val animatedProgress by animateFloatAsState( - targetValue = progress, - animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec, - label = "progress", - ) +fun CombinedCircularProgressIndicator( + progress: () -> Float, + modifier: Modifier = Modifier, +) { AnimatedContent( - targetState = progress == 0f, + targetState = progress() == 0f, transitionSpec = { fadeIn() togetherWith fadeOut() }, label = "progressState", + modifier = modifier, ) { indeterminate -> if (indeterminate) { // Indeterminate @@ -63,8 +62,13 @@ fun CombinedCircularProgressIndicator(progress: Float) { ), label = "rotation", ) + val animatedProgress by animateFloatAsState( + targetValue = progress(), + animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec, + label = "progress", + ) CircularProgressIndicator( - progress = animatedProgress, + progress = { animatedProgress }, modifier = Modifier.rotate(rotation), ) } @@ -101,7 +105,7 @@ private fun CombinedCircularProgressIndicatorPreview() { .fillMaxSize() .padding(it), ) { - CombinedCircularProgressIndicator(progress = progress) + CombinedCircularProgressIndicator(progress = { progress }) } } }