From 0a0b6861190b087776e60e8e20b5cb21d7e2a855 Mon Sep 17 00:00:00 2001 From: arkon Date: Tue, 24 Oct 2023 22:16:03 -0400 Subject: [PATCH] Add Compose previews for reading and orientation mode dialogs --- .../reader/OrientationModeSelectDialog.kt | 58 +++++++++++++------ .../reader/ReadingModeSelectDialog.kt | 58 +++++++++++++------ 2 files changed, 82 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/eu/kanade/presentation/reader/OrientationModeSelectDialog.kt b/app/src/main/java/eu/kanade/presentation/reader/OrientationModeSelectDialog.kt index 0fbe079a93..a143634ab5 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/OrientationModeSelectDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/OrientationModeSelectDialog.kt @@ -15,13 +15,13 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.unit.dp import eu.kanade.domain.manga.model.orientationType import eu.kanade.presentation.components.AdaptiveSheet +import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.reader.setting.OrientationType import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel import tachiyomi.presentation.core.components.SettingsIconGrid import tachiyomi.presentation.core.components.material.IconToggleButton - -private val orientationTypeOptions = OrientationType.entries.map { it.stringRes to it } +import tachiyomi.presentation.core.util.ThemePreviews @Composable fun OrientationModeSelectDialog( @@ -33,22 +33,46 @@ fun OrientationModeSelectDialog( val orientationType = remember(manga) { OrientationType.fromPreference(manga?.orientationType?.toInt()) } AdaptiveSheet(onDismissRequest = onDismissRequest) { - Box(modifier = Modifier.padding(vertical = 16.dp)) { - SettingsIconGrid(R.string.rotation_type) { - items(orientationTypeOptions) { (stringRes, mode) -> - IconToggleButton( - checked = mode == orientationType, - onCheckedChange = { - screenModel.onChangeOrientation(mode) - onChange(stringRes) - onDismissRequest() - }, - modifier = Modifier.fillMaxWidth(), - imageVector = ImageVector.vectorResource(mode.iconRes), - title = stringResource(stringRes), - ) - } + DialogContent( + orientationType = orientationType, + onChangeOrientation = { + screenModel.onChangeOrientation(it) + onChange(it.stringRes) + onDismissRequest() + }, + ) + } +} + +@Composable +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 = {}, + ) + } +} diff --git a/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt b/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt index cb11d9950e..a2089c7f58 100644 --- a/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt +++ b/app/src/main/java/eu/kanade/presentation/reader/ReadingModeSelectDialog.kt @@ -15,14 +15,14 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import eu.kanade.domain.manga.model.readingModeType import eu.kanade.presentation.components.AdaptiveSheet +import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType import tachiyomi.presentation.core.components.SettingsIconGrid import tachiyomi.presentation.core.components.material.IconToggleButton import tachiyomi.presentation.core.components.material.padding - -private val readingModeOptions = ReadingModeType.entries.map { it.stringRes to it } +import tachiyomi.presentation.core.util.ThemePreviews @Composable fun ReadingModeSelectDialog( @@ -34,22 +34,46 @@ fun ReadingModeSelectDialog( val readingMode = remember(manga) { ReadingModeType.fromPreference(manga?.readingModeType?.toInt()) } AdaptiveSheet(onDismissRequest = onDismissRequest) { - Box(modifier = Modifier.padding(vertical = MaterialTheme.padding.medium)) { - SettingsIconGrid(R.string.pref_category_reading_mode) { - items(readingModeOptions) { (stringRes, mode) -> - IconToggleButton( - checked = mode == readingMode, - onCheckedChange = { - screenModel.onChangeReadingMode(mode) - onChange(stringRes) - onDismissRequest() - }, - modifier = Modifier.fillMaxWidth(), - imageVector = ImageVector.vectorResource(mode.iconRes), - title = stringResource(stringRes), - ) - } + DialogContent( + readingMode = readingMode, + onChangeReadingMode = { + screenModel.onChangeReadingMode(it) + onChange(it.stringRes) + onDismissRequest() + }, + ) + } +} + +@Composable +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 = {}, + ) + } +}