diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt index cc36f54..1818c8a 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt @@ -95,7 +95,8 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { ) { innerPadding -> Column(modifier = Modifier.padding(innerPadding)) { ProgressFragment( - viewModel = viewModel, + totalTasks = toDoList.value.size, + completedTasks = toDoList.value.count { it.isCompleted }, modifier = Modifier .weight(2f) .fillMaxSize() diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ProgressFragment.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ProgressFragment.kt index 4e63efd..eb347c8 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ProgressFragment.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/ProgressFragment.kt @@ -10,21 +10,20 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ProgressIndicatorDefaults import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import cn.super12138.todo.ui.viewmodels.MainViewModel @Composable -fun ProgressFragment(viewModel: MainViewModel, modifier: Modifier = Modifier) { - val toDoList = viewModel.toDos.collectAsState(initial = emptyList()) - val totalTask = toDoList.value.size - val completedTasks = toDoList.value.count { it.isCompleted } - val progress = if (toDoList.value.isNotEmpty()) { - completedTasks / totalTask.toFloat() +fun ProgressFragment( + totalTasks: Int, + completedTasks: Int, + modifier: Modifier = Modifier +) { + val progress = if (totalTasks != 0) { + completedTasks / totalTasks.toFloat() } else { // 没有任务时 0f @@ -59,7 +58,7 @@ fun ProgressFragment(viewModel: MainViewModel, modifier: Modifier = Modifier) { ) ) Text( - text = totalTask.toString(), + text = totalTasks.toString(), style = MaterialTheme.typography.displayMedium.copy( fontWeight = FontWeight.Bold )