Pārlūkot izejas kodu

Refresh webtoon adapter on image property changed

arkon 5 gadi atpakaļ
vecāks
revīzija
b323b9c843

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

@@ -14,6 +14,8 @@ import eu.kanade.tachiyomi.ui.reader.model.ViewerChapters
 import eu.kanade.tachiyomi.ui.reader.viewer.BaseViewer
 import rx.subscriptions.CompositeSubscription
 import timber.log.Timber
+import kotlin.math.max
+import kotlin.math.min
 
 /**
  * Implementation of a [BaseViewer] to display pages with a [RecyclerView].
@@ -110,6 +112,10 @@ class WebtoonViewer(val activity: ReaderActivity) : BaseViewer {
             false
         }
 
+        config.imagePropertyChangedListener = {
+            refreshAdapter()
+        }
+
         frame.layoutParams = ViewGroup.LayoutParams(MATCH_PARENT, MATCH_PARENT)
         frame.addView(recycler)
     }
@@ -250,4 +256,13 @@ class WebtoonViewer(val activity: ReaderActivity) : BaseViewer {
         return false
     }
 
+    /**
+     * Notifies adapter of changes around the current page to trigger a relayout in the recycler.
+     * Used when a image configuration is changed.
+     */
+    private fun refreshAdapter() {
+        val position = layoutManager.findLastEndVisibleItemPosition()
+        adapter.notifyItemRangeChanged(max(0, position - 1), min(2, adapter.itemCount - position))
+    }
+
 }