(cherry picked from commit 8714653a2f3b1a1f536494bcefbe66e7a7bbb4f7) Co-authored-by: Cuong-Tran <16017808+cuong-tran@users.noreply.github.com>
87 lines
3.3 KiB
Kotlin
87 lines
3.3 KiB
Kotlin
package mihon.feature.migration.config
|
|
|
|
import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.layout.Arrangement
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.rememberScrollState
|
|
import androidx.compose.foundation.verticalScroll
|
|
import androidx.compose.material3.HorizontalDivider
|
|
import androidx.compose.material3.ListItem
|
|
import androidx.compose.material3.ListItemDefaults
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Switch
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.unit.dp
|
|
import eu.kanade.domain.source.service.SourcePreferences
|
|
import eu.kanade.presentation.components.AdaptiveSheet
|
|
import tachiyomi.core.common.preference.toggle
|
|
import tachiyomi.i18n.MR
|
|
import tachiyomi.presentation.core.components.material.Button
|
|
import tachiyomi.presentation.core.components.material.padding
|
|
import tachiyomi.presentation.core.i18n.stringResource
|
|
import tachiyomi.presentation.core.util.collectAsState
|
|
|
|
@Composable
|
|
fun MigrationConfigScreenSheet(
|
|
preferences: SourcePreferences,
|
|
onDismissRequest: () -> Unit,
|
|
onStartMigration: () -> Unit,
|
|
) {
|
|
val skipMigrationConfig by preferences.skipMigrationConfig().collectAsState()
|
|
AdaptiveSheet(onDismissRequest = onDismissRequest) {
|
|
Column(modifier = Modifier.fillMaxWidth()) {
|
|
Column(
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.verticalScroll(rememberScrollState()),
|
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
|
) {
|
|
MigrationSheetItem(
|
|
title = stringResource(MR.strings.migrationConfigScreen_skipMigrationConfigTitle),
|
|
subtitle = stringResource(MR.strings.migrationConfigScreen_skipMigrationConfigSubtitle),
|
|
action = {
|
|
Switch(
|
|
checked = skipMigrationConfig,
|
|
onCheckedChange = null,
|
|
)
|
|
},
|
|
onClick = { preferences.skipMigrationConfig().toggle() },
|
|
)
|
|
}
|
|
HorizontalDivider()
|
|
Button(
|
|
onClick = onStartMigration,
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.padding(
|
|
horizontal = MaterialTheme.padding.medium,
|
|
vertical = MaterialTheme.padding.small,
|
|
),
|
|
) {
|
|
Text(text = stringResource(MR.strings.migrationConfigScreen_continueButtonText))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
private fun MigrationSheetItem(
|
|
title: String,
|
|
subtitle: String?,
|
|
action: @Composable () -> Unit,
|
|
onClick: () -> Unit,
|
|
) {
|
|
ListItem(
|
|
headlineContent = { Text(text = title) },
|
|
supportingContent = subtitle?.let { { Text(text = subtitle) } },
|
|
trailingContent = action,
|
|
colors = ListItemDefaults.colors(containerColor = Color.Transparent),
|
|
modifier = Modifier.clickable(onClick = onClick),
|
|
)
|
|
}
|