瀏覽代碼

Crop borders for webtoons. Closes #904

len 7 年之前
父節點
當前提交
aa46c52eee

+ 1 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonHolder.kt

@@ -63,6 +63,7 @@ class WebtoonHolder(private val view: View, private val adapter: WebtoonAdapter)
             setMinimumTileDpi(180)
             setRegionDecoderClass(webtoonReader.regionDecoderClass)
             setBitmapDecoderClass(webtoonReader.bitmapDecoderClass)
+            setCropBorders(webtoonReader.cropBorders)
             setVerticalScrollingParent(true)
             setOnTouchListener(adapter.touchListener)
             setOnLongClickListener { webtoonReader.onLongClick(page) }

+ 19 - 5
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonReader.kt

@@ -53,6 +53,12 @@ class WebtoonReader : BaseReader() {
     lateinit var layoutManager: PreCachingLayoutManager
         private set
 
+    /**
+     * Whether to crop image borders.
+     */
+    var cropBorders: Boolean = false
+        private set
+
     /**
      * Gesture detector for image touch events.
      */
@@ -109,16 +115,24 @@ class WebtoonReader : BaseReader() {
                 .doOnNext { setDecoderClass(it) }
                 .skip(1)
                 .distinctUntilChanged()
-                .subscribe {
-                    val activePage = layoutManager.findFirstVisibleItemPosition()
-                    recycler.adapter = adapter
-                    setActivePage(activePage)
-                })
+                .subscribe { refreshAdapter() })
+
+        subscriptions.add(readerActivity.preferences.cropBorders()
+                .asObservable()
+                .doOnNext { cropBorders = it }
+                .skip(1)
+                .distinctUntilChanged()
+                .subscribe { refreshAdapter() })
 
         setPagesOnAdapter()
         return recycler
     }
 
+    fun refreshAdapter() {
+        val activePage = layoutManager.findFirstVisibleItemPosition()
+        recycler.adapter = adapter
+        setActivePage(activePage)
+    }
 
     /**
      * Uses two ways to scroll to the last page read.