diff --git a/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt b/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt index db0aa572e..ebe4e10f1 100644 --- a/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt +++ b/app/src/main/java/io/legado/app/ui/book/toc/TocScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.animation.scaleOut import androidx.compose.animation.slideInVertically import androidx.compose.animation.slideOutVertically import androidx.compose.animation.togetherWith -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Box @@ -51,9 +50,7 @@ import androidx.compose.material.icons.filled.VerticalAlignBottom import androidx.compose.material.icons.filled.VerticalAlignTop import androidx.compose.material.icons.outlined.DownloadForOffline import androidx.compose.material.icons.rounded.LocationOn -import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api -import io.legado.app.ui.widget.components.progressIndicator.AppCircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.FloatingActionButtonMenu import androidx.compose.material3.FloatingActionButtonMenuItem @@ -108,7 +105,6 @@ import io.legado.app.ui.widget.components.card.NormalCard import io.legado.app.ui.widget.components.card.TextCard import io.legado.app.ui.widget.components.divider.PillDivider import io.legado.app.ui.widget.components.divider.PillHeaderDivider -import io.legado.app.ui.widget.components.icon.AppIcon import io.legado.app.ui.widget.components.lazylist.FastScrollLazyColumn import io.legado.app.ui.widget.components.list.TopFloatingStickyItem import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenu @@ -350,16 +346,12 @@ fun TocScreen( 0 -> { RoundDropdownMenuItem( text = "使用替换规则", - trailingIcon = { - Checkbox(checked = useReplace, onCheckedChange = null) - }, + isSelected = useReplace, onClick = { viewModel.toggleUseReplace() } ) RoundDropdownMenuItem( text = "显示字数", - trailingIcon = { - Checkbox(checked = showWordCount, onCheckedChange = null) - }, + isSelected = showWordCount, onClick = { viewModel.toggleShowWordCount() } ) RoundDropdownMenuItem( @@ -407,12 +399,7 @@ fun TocScreen( ) RoundDropdownMenuItem( text = "拆分超长章节", - trailingIcon = { - Checkbox( - checked = viewModel.isSplitLongChapter, - onCheckedChange = null - ) - }, + isSelected = viewModel.isSplitLongChapter, onClick = { viewModel.toggleSplitLongChapter() dismiss() diff --git a/app/src/main/java/io/legado/app/ui/widget/components/importComponents/ImportComponents.kt b/app/src/main/java/io/legado/app/ui/widget/components/importComponents/ImportComponents.kt index 156579ae0..e94779fe9 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/importComponents/ImportComponents.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/importComponents/ImportComponents.kt @@ -29,6 +29,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.res.stringResource @@ -47,6 +48,7 @@ import io.legado.app.ui.widget.components.button.SmallIconButton import io.legado.app.ui.widget.components.card.GlassCard import io.legado.app.ui.widget.components.card.SelectionItemCard import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet +import io.legado.app.ui.widget.components.progressIndicator.AppCircularProgressIndicator import io.legado.app.ui.widget.components.settingItem.SwitchSettingItem import io.legado.app.ui.widget.components.text.AppText import io.legado.app.utils.GSON @@ -72,6 +74,7 @@ fun SourceInputDialog( AppTextField( value = text, onValueChange = { text = it }, + backgroundColor = LegadoTheme.colorScheme.onSheetContent, label = hint, modifier = Modifier.fillMaxWidth(), maxLines = 5 @@ -118,6 +121,32 @@ fun BatchImportDialog( itemTitle: (data: T) -> String, itemSubtitle: (data: T) -> String? = { null } ) { + AppAlertDialog( + data = importState as? BaseImportUiState.Loading, + onDismissRequest = onDismissRequest, + title = stringResource(R.string.loading), + content = { + Box( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 16.dp), + contentAlignment = Alignment.Center + ) { + AppCircularProgressIndicator() + } + } + ) + + AppAlertDialog( + data = importState as? BaseImportUiState.Error, + onDismissRequest = onDismissRequest, + title = stringResource(R.string.error), + onConfirm = { onDismissRequest() }, + content = { error -> + AppText(error.msg) + } + ) + val show = importState is BaseImportUiState.Success var cachedState by remember { mutableStateOf?>(null) }