Temporary disable downsampling in webtoon mode

This commit is contained in:
Koitharu
2023-11-28 15:53:27 +02:00
parent 208c0a494b
commit 225aacff43
3 changed files with 20 additions and 7 deletions

View File

@@ -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

View File

@@ -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
}
}