为网络导入添加错误状态
This commit is contained in:
@@ -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()
|
||||
|
||||
+29
@@ -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 <T> 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<T>
|
||||
|
||||
var cachedState by remember { mutableStateOf<BaseImportUiState.Success<T>?>(null) }
|
||||
|
||||
Reference in New Issue
Block a user