From b323b9c8431a9c60ad84e9af00d8f1b0ed38cace Mon Sep 17 00:00:00 2001 From: arkon Date: Sun, 23 Feb 2020 14:58:51 -0500 Subject: [PATCH] Refresh webtoon adapter on image property changed --- .../ui/reader/viewer/webtoon/WebtoonViewer.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt index 09bec0eeda..1ef206fede 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonViewer.kt +++ b/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)) + } + }