Browse Source

Fix missing inversion in tap zones help overlay. (#9812)

Mekanik 1 year ago
parent
commit
26b3eb696c

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/ReaderNavigationOverlayView.kt

@@ -61,7 +61,7 @@ class ReaderNavigationOverlayView(context: Context, attributeSet: AttributeSet)
     override fun onDraw(canvas: Canvas) {
         if (navigation == null) return
 
-        navigation?.regions?.forEach { region ->
+        navigation?.getRegions()?.forEach { region ->
             val rect = region.rectF
 
             // Scale rect from 1f,1f to screen width and height

+ 8 - 4
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/ViewerNavigation.kt

@@ -32,15 +32,19 @@ abstract class ViewerNavigation {
 
     private var constantMenuRegion: RectF = RectF(0f, 0f, 1f, 0.05f)
 
-    abstract var regions: List<Region>
-
     var invertMode: ReaderPreferences.TappingInvertMode = ReaderPreferences.TappingInvertMode.NONE
 
+    protected abstract var regionList: List<Region>
+
+    /** Returns regions with applied inversion. */
+    fun getRegions(): List<Region> {
+        return regionList.map { it.invert(invertMode) }
+    }
+
     fun getAction(pos: PointF): NavigationRegion {
         val x = pos.x
         val y = pos.y
-        val region = regions.map { it.invert(invertMode) }
-            .find { it.rectF.contains(x, y) }
+        val region = getRegions().find { it.rectF.contains(x, y) }
         return when {
             region != null -> region.type
             constantMenuRegion.contains(x, y) -> NavigationRegion.MENU

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/DisabledNavigation.kt

@@ -14,5 +14,5 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
 */
 class DisabledNavigation : ViewerNavigation() {
 
-    override var regions: List<Region> = emptyList()
+    override var regionList: List<Region> = emptyList()
 }

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/EdgeNavigation.kt

@@ -15,7 +15,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
 */
 class EdgeNavigation : ViewerNavigation() {
 
-    override var regions: List<Region> = listOf(
+    override var regionList: List<Region> = listOf(
         Region(
             rectF = RectF(0f, 0f, 0.33f, 1f),
             type = NavigationRegion.NEXT,

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/KindlishNavigation.kt

@@ -15,7 +15,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
 */
 class KindlishNavigation : ViewerNavigation() {
 
-    override var regions: List<Region> = listOf(
+    override var regionList: List<Region> = listOf(
         Region(
             rectF = RectF(0.33f, 0.33f, 1f, 1f),
             type = NavigationRegion.NEXT,

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/LNavigation.kt

@@ -15,7 +15,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
  */
 open class LNavigation : ViewerNavigation() {
 
-    override var regions: List<Region> = listOf(
+    override var regionList: List<Region> = listOf(
         Region(
             rectF = RectF(0f, 0.33f, 0.33f, 0.66f),
             type = NavigationRegion.PREV,

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/navigation/RightAndLeftNavigation.kt

@@ -15,7 +15,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.ViewerNavigation
  */
 class RightAndLeftNavigation : ViewerNavigation() {
 
-    override var regions: List<Region> = listOf(
+    override var regionList: List<Region> = listOf(
         Region(
             rectF = RectF(0f, 0f, 0.33f, 1f),
             type = NavigationRegion.LEFT,