diff --git a/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/reader/model/Direction.kt b/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/reader/model/Direction.kt index 9780514e..c9594961 100644 --- a/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/reader/model/Direction.kt +++ b/domain/src/commonMain/kotlin/ca/gosyer/jui/domain/reader/model/Direction.kt @@ -18,5 +18,8 @@ enum class Direction(@Transient val res: StringResource) { Down(MR.strings.dir_down), Left(MR.strings.dir_rtl), Right(MR.strings.dir_ltr), - Up(MR.strings.dir_up) + Up(MR.strings.dir_up); + + val isVertical + get() = this == Down || this == Up } diff --git a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/ReaderMenu.kt b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/ReaderMenu.kt index db49bea8..61ed5f66 100644 --- a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/ReaderMenu.kt +++ b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/ReaderMenu.kt @@ -471,7 +471,7 @@ fun ReaderLayout( currentPageOffset = currentPageOffset, loadingModifier = loadingModifier, pageContentScale = if (fitSize) { - if (direction == Direction.Up || direction == Direction.Down) { + if (direction.isVertical) { ContentScale.FillWidth } else { ContentScale.FillHeight diff --git a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Continuous.kt b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Continuous.kt index 0ef891e0..45fd0a3b 100644 --- a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Continuous.kt +++ b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Continuous.kt @@ -110,9 +110,9 @@ fun ContinuousReader( } val imageModifier = if (maxSize != 0) { - when (direction) { - Direction.Up, Direction.Down -> Modifier.width(maxSize.dp) - Direction.Left, Direction.Right -> Modifier.height(maxSize.dp) + when (direction.isVertical) { + true -> Modifier.width(maxSize.dp) + false -> Modifier.height(maxSize.dp) } } else { Modifier @@ -125,8 +125,8 @@ fun ContinuousReader( } fun retry(index: Int) { pages.find { it is ReaderPage && it.index == index }?.let { retry(it as ReaderPage) } } - when (direction) { - Direction.Down, Direction.Up -> { + when (direction.isVertical) { + true -> { LazyColumn( state = state, reverseLayout = direction == Direction.Up, @@ -151,7 +151,7 @@ fun ContinuousReader( reverseLayout = direction == Direction.Up ) } - Direction.Left, Direction.Right -> { + false -> { LazyRow( state = state, reverseLayout = direction == Direction.Left, diff --git a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Pager.kt b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Pager.kt index 24032479..6cf4ab22 100644 --- a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Pager.kt +++ b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/reader/viewer/Pager.kt @@ -81,7 +81,7 @@ fun PagerReader( val modifier = parentModifier then Modifier.fillMaxSize() fun retry(index: Int) { pages.find { it is ReaderPage && it.index == index }?.let { retry(it as ReaderPage) } } - if (direction == Direction.Down || direction == Direction.Up) { + if (direction.isVertical) { VerticalPager( count = pages.size, state = state, diff --git a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/settings/SettingsReaderScreen.kt b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/settings/SettingsReaderScreen.kt index ba140c56..00f84f61 100644 --- a/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/settings/SettingsReaderScreen.kt +++ b/presentation/src/commonMain/kotlin/ca/gosyer/jui/ui/settings/SettingsReaderScreen.kt @@ -242,7 +242,7 @@ fun SettingsReaderScreenContent( stringResource(MR.strings.page_padding) ) val direction by it.direction.collectAsState() - val (title, subtitle) = if (direction == Direction.Up || direction == Direction.Down) { + val (title, subtitle) = if (direction.isVertical) { stringResource(MR.strings.force_fit_width) to stringResource(MR.strings.force_fit_width_sub) } else { stringResource(MR.strings.force_fit_height) to stringResource(MR.strings.force_fit_height_sub) @@ -253,7 +253,7 @@ fun SettingsReaderScreenContent( subtitle ) val maxSize by it.maxSize.collectAsState() - val (maxSizeTitle, maxSizeSubtitle) = if (direction == Direction.Up || direction == Direction.Down) { + val (maxSizeTitle, maxSizeSubtitle) = if (direction.isVertical) { stringResource(MR.strings.max_width) to stringResource( MR.strings.max_width_sub, maxSize