From da2b53ace726b51584edbd94c76722dd0ee43acc Mon Sep 17 00:00:00 2001 From: CherretGit Date: Sat, 14 Mar 2026 20:47:09 +0700 Subject: [PATCH] add author and description to hosts, strategies and ipsets --- .../com/cherret/zaprett/ui/component/ListItems.kt | 12 ++++++++++-- .../com/cherret/zaprett/ui/screen/HostsScreen.kt | 2 +- .../com/cherret/zaprett/ui/screen/IpsetsScreen.kt | 2 +- .../com/cherret/zaprett/ui/screen/StrategyScreen.kt | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/cherret/zaprett/ui/component/ListItems.kt b/app/src/main/java/com/cherret/zaprett/ui/component/ListItems.kt index 7838cdc..47ce5de 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/component/ListItems.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/component/ListItems.kt @@ -51,6 +51,7 @@ import androidx.compose.ui.unit.sp import com.cherret.zaprett.R import com.cherret.zaprett.data.DependencyUI import com.cherret.zaprett.data.RepoItemUI +import com.cherret.zaprett.data.StorageData import com.cherret.zaprett.data.StrategyCheckResult import com.cherret.zaprett.data.StrategyTestingStatus import com.cherret.zaprett.ui.viewmodel.BaseRepoViewModel @@ -60,7 +61,7 @@ import com.cherret.zaprett.utils.getActiveStrategy import kotlinx.coroutines.launch @Composable -fun ListSwitchItem(item: String, isChecked: Boolean, onCheckedChange: (Boolean) -> Unit, onDeleteClick: () -> Unit) { +fun ListSwitchItem(item: StorageData, isChecked: Boolean, onCheckedChange: (Boolean) -> Unit, onDeleteClick: () -> Unit) { ElevatedCard( elevation = CardDefaults.cardElevation(defaultElevation = 6.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainer), @@ -74,7 +75,14 @@ fun ListSwitchItem(item: String, isChecked: Boolean, onCheckedChange: (Boolean) .fillMaxWidth() .padding(16.dp) ) { - Text(text = item, modifier = Modifier.weight(1f)) + Column( + modifier = Modifier.weight(1f), + verticalArrangement = Arrangement.spacedBy(4.dp) + ) { + Text(text = item.name) + Text(text = stringResource(R.string.title_author, item.author)) + Text(text = item.description) + } Switch( checked = isChecked, onCheckedChange = onCheckedChange, diff --git a/app/src/main/java/com/cherret/zaprett/ui/screen/HostsScreen.kt b/app/src/main/java/com/cherret/zaprett/ui/screen/HostsScreen.kt index 8e98701..03c0b41 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/screen/HostsScreen.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/screen/HostsScreen.kt @@ -170,7 +170,7 @@ fun HostsScreen(navController: NavController, viewModel: HostsViewModel = viewMo else -> { items(allLists) { item -> ListSwitchItem ( - item = item.name, + item = item, isChecked = checked[item] == true, onCheckedChange = { isChecked -> viewModel.onCheckedChange(item, isChecked, snackbarHostState, scope) diff --git a/app/src/main/java/com/cherret/zaprett/ui/screen/IpsetsScreen.kt b/app/src/main/java/com/cherret/zaprett/ui/screen/IpsetsScreen.kt index 827fd4d..45296ea 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/screen/IpsetsScreen.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/screen/IpsetsScreen.kt @@ -170,7 +170,7 @@ fun IpsetsScreen(navController: NavController, viewModel: IpsetViewModel = viewM else -> { items(allLists) { item -> ListSwitchItem ( - item = item.name, + item = item, isChecked = checked[item] == true, onCheckedChange = { isChecked -> viewModel.onCheckedChange(item, isChecked, snackbarHostState, scope) diff --git a/app/src/main/java/com/cherret/zaprett/ui/screen/StrategyScreen.kt b/app/src/main/java/com/cherret/zaprett/ui/screen/StrategyScreen.kt index d9c30d1..090c48f 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/screen/StrategyScreen.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/screen/StrategyScreen.kt @@ -167,7 +167,7 @@ fun StrategyScreen(navController: NavController, viewModel: StrategyViewModel = else -> { items(allLists) { item -> ListSwitchItem( - item = item.name, + item = item, isChecked = checked[item] == true, onCheckedChange = { isChecked -> viewModel.onCheckedChange(item, isChecked, snackbarHostState, scope)