diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/GalleryPager.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/GalleryPager.kt index a8a68195b..283dafbac 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/GalleryPager.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/GalleryPager.kt @@ -61,8 +61,7 @@ fun GalleryPager( } else { onNavigationModeChange() } - navigation.invertMode = TappingInvertMode.entries[invertMode] - navigation.regions + navigation.regions(TappingInvertMode.entries[invertMode]) } val navigator by rememberUpdatedState(regions) if (isPagerType) { diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt index 0a601a9e3..f57cf672f 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt @@ -12,7 +12,6 @@ import eu.kanade.tachiyomi.ui.reader.viewer.navigation.RightAndLeftNavigation import eu.kanade.tachiyomi.util.lang.invert abstract class ViewerNavigation { - sealed class NavigationRegion(@StringRes val nameRes: Int, val colorRes: Int) { data object MENU : NavigationRegion(R.string.action_menu, R.color.navigation_menu) data object PREV : NavigationRegion(R.string.nav_zone_prev, R.color.navigation_prev) @@ -21,32 +20,25 @@ abstract class ViewerNavigation { data object RIGHT : NavigationRegion(R.string.nav_zone_right, R.color.navigation_right) } - data class Region( - val rectF: RectF, - val type: NavigationRegion, - ) { + data class Region(val rectF: RectF, val type: NavigationRegion) { fun invert(invertMode: TappingInvertMode): Region { if (invertMode == TappingInvertMode.NONE) return this - return this.copy( - rectF = this.rectF.invert(invertMode), - ) + return this.copy(rectF = rectF.invert(invertMode)) } } protected abstract val originalRegions: List - val regions get() = originalRegions.map { it.invert(invertMode) } - - var invertMode = TappingInvertMode.NONE + fun regions(invertMode: TappingInvertMode = TappingInvertMode.NONE) = originalRegions.map { it.invert(invertMode) } companion object { fun fromPreference(value: Int, isVertical: Boolean) = when (value) { - 1 -> LNavigation() - 2 -> KindlishNavigation() - 3 -> EdgeNavigation() - 4 -> RightAndLeftNavigation() - 5 -> DisabledNavigation() - else -> if (isVertical) LNavigation() else RightAndLeftNavigation() + 1 -> LNavigation + 2 -> KindlishNavigation + 3 -> EdgeNavigation + 4 -> RightAndLeftNavigation + 5 -> DisabledNavigation + else -> if (isVertical) LNavigation else RightAndLeftNavigation } } } diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt index 8fd125d91..5cc092286 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt @@ -12,7 +12,6 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation * | M | M | M | N: Next * +---+---+---+ */ -class DisabledNavigation : ViewerNavigation() { - - override val originalRegions: List = emptyList() +object DisabledNavigation : ViewerNavigation() { + override val originalRegions = emptyList() } diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt index 5b4967355..43c826b22 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt @@ -13,9 +13,8 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation * | N | P | N | N: Next * +---+---+---+ */ -class EdgeNavigation : ViewerNavigation() { - - override val originalRegions: List = listOf( +object EdgeNavigation : ViewerNavigation() { + override val originalRegions = listOf( Region( rectF = RectF(0f, 0f, 0.33f, 1f), type = NavigationRegion.NEXT, diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt index 9ad4f9ab5..609067a2c 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt @@ -13,9 +13,8 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation * | P | N | N | N: Next * +---+---+---+ */ -class KindlishNavigation : ViewerNavigation() { - - override val originalRegions: List = listOf( +object KindlishNavigation : ViewerNavigation() { + override val originalRegions = listOf( Region( rectF = RectF(0.33f, 0.33f, 1f, 1f), type = NavigationRegion.NEXT, diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt index 3c929ba63..c75a8f5ed 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt @@ -13,9 +13,8 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation * | N | N | N | N: Next * +---+---+---+ */ -open class LNavigation : ViewerNavigation() { - - override val originalRegions: List = listOf( +object LNavigation : ViewerNavigation() { + override val originalRegions = listOf( Region( rectF = RectF(0f, 0.33f, 0.33f, 0.66f), type = NavigationRegion.PREV, diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt index aa8df8ec7..949d3cb2f 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt @@ -13,9 +13,8 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation * | N | M | P | N: Move Left * +---+---+---+ */ -class RightAndLeftNavigation : ViewerNavigation() { - - override val originalRegions: List = listOf( +object RightAndLeftNavigation : ViewerNavigation() { + override val originalRegions = listOf( Region( rectF = RectF(0f, 0f, 0.33f, 1f), type = NavigationRegion.LEFT,