From 225aacff43a275b52f2044ec4fb0631200eaaaa3 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Tue, 28 Nov 2023 15:53:27 +0200 Subject: [PATCH] Temporary disable downsampling in webtoon mode --- app/build.gradle | 2 +- .../reader/ui/pager/webtoon/WebtoonHolder.kt | 8 ++------ .../reader/ui/pager/webtoon/WebtoonImageView.kt | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f3bb4fccd..4125b980b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -134,7 +134,7 @@ dependencies { implementation 'io.coil-kt:coil-base:2.5.0' implementation 'io.coil-kt:coil-svg:2.5.0' - implementation 'com.github.KotatsuApp:subsampling-scale-image-view:c7dab3aefe' + implementation 'com.github.KotatsuApp:subsampling-scale-image-view:771c8753ae' implementation 'com.github.solkin:disk-lru-cache:1.4' implementation 'io.noties.markwon:core:4.6.2' diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonHolder.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonHolder.kt index e02ce2100..e4d1313fa 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonHolder.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonHolder.kt @@ -5,7 +5,6 @@ import android.view.View import androidx.core.view.isVisible import androidx.lifecycle.LifecycleOwner import com.davemorrissey.labs.subscaleview.ImageSource -import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.exceptions.resolve.ExceptionResolver import org.koitharu.kotatsu.core.os.NetworkState @@ -43,7 +42,7 @@ class WebtoonHolder( if (settings.applyBitmapConfig(binding.ssiv)) { delegate.reload() } - binding.ssiv.downsampling = if (isResumed()) 1 else getBackgroundDownsampling() + // FIXME binding.ssiv.downsampling = if (isResumed()) 1 else getBackgroundDownsampling() } override fun onResume() { @@ -53,7 +52,7 @@ class WebtoonHolder( override fun onPause() { super.onPause() - binding.ssiv.downsampling = getBackgroundDownsampling() + // FIXME binding.ssiv.downsampling = getBackgroundDownsampling() } override fun onBind(data: ReaderPage) { @@ -97,9 +96,6 @@ class WebtoonHolder( override fun onImageShowing(settings: ReaderSettings) { binding.ssiv.colorFilter = settings.colorFilter?.toColorFilter() with(binding.ssiv) { - minimumScaleType = SubsamplingScaleImageView.SCALE_TYPE_CUSTOM - minScale = width / sWidth.toFloat() - maxScale = minScale scrollTo( when { scrollToRestore != 0 -> scrollToRestore diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonImageView.kt b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonImageView.kt index d663fa2da..bc42c1ca6 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonImageView.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/reader/ui/pager/webtoon/WebtoonImageView.kt @@ -100,6 +100,17 @@ class WebtoonImageView @JvmOverloads constructor( } } + override fun onReady() { + super.onReady() + adjustScale() + } + + override fun onDownsamplingChanged() { + super.onDownsamplingChanged() + adjustScale() + computeScrollRange() + } + private fun scrollToInternal(pos: Int) { scrollPos = pos ct.set(sWidth / 2f, (height / 2f + pos.toFloat()) / minScale) @@ -117,4 +128,10 @@ class WebtoonImageView @JvmOverloads constructor( private fun parentHeight(): Int { return ancestors.firstNotNullOfOrNull { it as? RecyclerView }?.height ?: 0 } + + private fun adjustScale() { + minScale = width / sWidth.toFloat() + maxScale = minScale + minimumScaleType = SCALE_TYPE_CUSTOM + } }