Add Compose previews for reading and orientation mode dialogs
This commit is contained in:
parent
092d930175
commit
0a0b686119
2 changed files with 82 additions and 34 deletions
|
@ -15,13 +15,13 @@ import androidx.compose.ui.res.vectorResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import eu.kanade.domain.manga.model.orientationType
|
import eu.kanade.domain.manga.model.orientationType
|
||||||
import eu.kanade.presentation.components.AdaptiveSheet
|
import eu.kanade.presentation.components.AdaptiveSheet
|
||||||
|
import eu.kanade.presentation.theme.TachiyomiTheme
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
import eu.kanade.tachiyomi.ui.reader.setting.OrientationType
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
|
||||||
import tachiyomi.presentation.core.components.SettingsIconGrid
|
import tachiyomi.presentation.core.components.SettingsIconGrid
|
||||||
import tachiyomi.presentation.core.components.material.IconToggleButton
|
import tachiyomi.presentation.core.components.material.IconToggleButton
|
||||||
|
import tachiyomi.presentation.core.util.ThemePreviews
|
||||||
private val orientationTypeOptions = OrientationType.entries.map { it.stringRes to it }
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun OrientationModeSelectDialog(
|
fun OrientationModeSelectDialog(
|
||||||
|
@ -33,22 +33,46 @@ fun OrientationModeSelectDialog(
|
||||||
val orientationType = remember(manga) { OrientationType.fromPreference(manga?.orientationType?.toInt()) }
|
val orientationType = remember(manga) { OrientationType.fromPreference(manga?.orientationType?.toInt()) }
|
||||||
|
|
||||||
AdaptiveSheet(onDismissRequest = onDismissRequest) {
|
AdaptiveSheet(onDismissRequest = onDismissRequest) {
|
||||||
Box(modifier = Modifier.padding(vertical = 16.dp)) {
|
DialogContent(
|
||||||
SettingsIconGrid(R.string.rotation_type) {
|
orientationType = orientationType,
|
||||||
items(orientationTypeOptions) { (stringRes, mode) ->
|
onChangeOrientation = {
|
||||||
IconToggleButton(
|
screenModel.onChangeOrientation(it)
|
||||||
checked = mode == orientationType,
|
onChange(it.stringRes)
|
||||||
onCheckedChange = {
|
onDismissRequest()
|
||||||
screenModel.onChangeOrientation(mode)
|
},
|
||||||
onChange(stringRes)
|
)
|
||||||
onDismissRequest()
|
}
|
||||||
},
|
}
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
imageVector = ImageVector.vectorResource(mode.iconRes),
|
@Composable
|
||||||
title = stringResource(stringRes),
|
private fun DialogContent(
|
||||||
)
|
orientationType: OrientationType,
|
||||||
}
|
onChangeOrientation: (OrientationType) -> Unit,
|
||||||
|
) {
|
||||||
|
Box(modifier = Modifier.padding(vertical = 16.dp)) {
|
||||||
|
SettingsIconGrid(R.string.rotation_type) {
|
||||||
|
items(OrientationType.entries) { mode ->
|
||||||
|
IconToggleButton(
|
||||||
|
checked = mode == orientationType,
|
||||||
|
onCheckedChange = {
|
||||||
|
onChangeOrientation(mode)
|
||||||
|
},
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
imageVector = ImageVector.vectorResource(mode.iconRes),
|
||||||
|
title = stringResource(mode.stringRes),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ThemePreviews
|
||||||
|
@Composable
|
||||||
|
private fun DialogContentPreview() {
|
||||||
|
TachiyomiTheme {
|
||||||
|
DialogContent(
|
||||||
|
orientationType = OrientationType.DEFAULT,
|
||||||
|
onChangeOrientation = {},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -15,14 +15,14 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.res.vectorResource
|
import androidx.compose.ui.res.vectorResource
|
||||||
import eu.kanade.domain.manga.model.readingModeType
|
import eu.kanade.domain.manga.model.readingModeType
|
||||||
import eu.kanade.presentation.components.AdaptiveSheet
|
import eu.kanade.presentation.components.AdaptiveSheet
|
||||||
|
import eu.kanade.presentation.theme.TachiyomiTheme
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
|
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
|
||||||
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
|
import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType
|
||||||
import tachiyomi.presentation.core.components.SettingsIconGrid
|
import tachiyomi.presentation.core.components.SettingsIconGrid
|
||||||
import tachiyomi.presentation.core.components.material.IconToggleButton
|
import tachiyomi.presentation.core.components.material.IconToggleButton
|
||||||
import tachiyomi.presentation.core.components.material.padding
|
import tachiyomi.presentation.core.components.material.padding
|
||||||
|
import tachiyomi.presentation.core.util.ThemePreviews
|
||||||
private val readingModeOptions = ReadingModeType.entries.map { it.stringRes to it }
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ReadingModeSelectDialog(
|
fun ReadingModeSelectDialog(
|
||||||
|
@ -34,22 +34,46 @@ fun ReadingModeSelectDialog(
|
||||||
val readingMode = remember(manga) { ReadingModeType.fromPreference(manga?.readingModeType?.toInt()) }
|
val readingMode = remember(manga) { ReadingModeType.fromPreference(manga?.readingModeType?.toInt()) }
|
||||||
|
|
||||||
AdaptiveSheet(onDismissRequest = onDismissRequest) {
|
AdaptiveSheet(onDismissRequest = onDismissRequest) {
|
||||||
Box(modifier = Modifier.padding(vertical = MaterialTheme.padding.medium)) {
|
DialogContent(
|
||||||
SettingsIconGrid(R.string.pref_category_reading_mode) {
|
readingMode = readingMode,
|
||||||
items(readingModeOptions) { (stringRes, mode) ->
|
onChangeReadingMode = {
|
||||||
IconToggleButton(
|
screenModel.onChangeReadingMode(it)
|
||||||
checked = mode == readingMode,
|
onChange(it.stringRes)
|
||||||
onCheckedChange = {
|
onDismissRequest()
|
||||||
screenModel.onChangeReadingMode(mode)
|
},
|
||||||
onChange(stringRes)
|
)
|
||||||
onDismissRequest()
|
}
|
||||||
},
|
}
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
imageVector = ImageVector.vectorResource(mode.iconRes),
|
@Composable
|
||||||
title = stringResource(stringRes),
|
private fun DialogContent(
|
||||||
)
|
readingMode: ReadingModeType,
|
||||||
}
|
onChangeReadingMode: (ReadingModeType) -> Unit,
|
||||||
|
) {
|
||||||
|
Box(modifier = Modifier.padding(vertical = MaterialTheme.padding.medium)) {
|
||||||
|
SettingsIconGrid(R.string.pref_category_reading_mode) {
|
||||||
|
items(ReadingModeType.entries) { mode ->
|
||||||
|
IconToggleButton(
|
||||||
|
checked = mode == readingMode,
|
||||||
|
onCheckedChange = {
|
||||||
|
onChangeReadingMode(mode)
|
||||||
|
},
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
imageVector = ImageVector.vectorResource(mode.iconRes),
|
||||||
|
title = stringResource(mode.stringRes),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ThemePreviews
|
||||||
|
@Composable
|
||||||
|
private fun DialogContentPreview() {
|
||||||
|
TachiyomiTheme {
|
||||||
|
DialogContent(
|
||||||
|
readingMode = ReadingModeType.DEFAULT,
|
||||||
|
onChangeReadingMode = {},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Reference in a new issue