From d4659eca61c7eb167cec23b1914a8016fd0cb90d Mon Sep 17 00:00:00 2001 From: andrekir Date: Sun, 1 Oct 2023 11:09:08 -0300 Subject: [PATCH] refactor: animate `ResponseState.Loading` progress bar --- .../mesh/ui/components/config/PacketResponseStateDialog.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/geeksville/mesh/ui/components/config/PacketResponseStateDialog.kt b/app/src/main/java/com/geeksville/mesh/ui/components/config/PacketResponseStateDialog.kt index 333d347b3..eb2fd803d 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/components/config/PacketResponseStateDialog.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/components/config/PacketResponseStateDialog.kt @@ -1,5 +1,6 @@ package com.geeksville.mesh.ui.components.config +import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -11,6 +12,7 @@ import androidx.compose.material.LinearProgressIndicator import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -34,7 +36,10 @@ fun PacketResponseStateDialog( horizontalAlignment = Alignment.CenterHorizontally ) { if (state is ResponseState.Loading) { - val progress = state.completed.toFloat() / state.total.toFloat() + val progress by animateFloatAsState( + targetValue = state.completed.toFloat() / state.total.toFloat(), + label = "progress", + ) Text("%.0f%%".format(progress * 100)) LinearProgressIndicator( progress = progress,