Try to ensure that reader page error message is removed if image is loaded

Maybe fixes #5687
This commit is contained in:
arkon 2023-10-28 17:18:42 -04:00
parent 443d56f69b
commit 4868dd2d03
4 changed files with 18 additions and 7 deletions

View file

@ -1,5 +1,6 @@
package eu.kanade.presentation.reader package eu.kanade.presentation.reader
import androidx.annotation.IntRange
import androidx.compose.foundation.Canvas import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -10,7 +11,7 @@ import kotlin.math.abs
@Composable @Composable
fun BrightnessOverlay( fun BrightnessOverlay(
value: Int, @IntRange(from = -100, to = 100) value: Int,
) { ) {
if (value >= 0) return if (value >= 0) return

View file

@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.reader
import android.app.Application import android.app.Application
import android.net.Uri import android.net.Uri
import androidx.annotation.IntRange
import androidx.compose.runtime.Immutable import androidx.compose.runtime.Immutable
import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
@ -900,7 +901,7 @@ class ReaderViewModel @JvmOverloads constructor(
val viewer: Viewer? = null, val viewer: Viewer? = null,
val dialog: Dialog? = null, val dialog: Dialog? = null,
val menuVisible: Boolean = false, val menuVisible: Boolean = false,
val brightnessOverlayValue: Int = 0, @IntRange(from = -100, to = 100) val brightnessOverlayValue: Int = 0,
) { ) {
val currentChapter: ReaderChapter? val currentChapter: ReaderChapter?
get() = viewerChapters?.currChapter get() = viewerChapters?.currChapter

View file

@ -109,7 +109,7 @@ class PagerPageHolder(
*/ */
private fun setQueued() { private fun setQueued() {
progressIndicator.show() progressIndicator.show()
errorLayout?.root?.isVisible = false removeErrorLayout()
} }
/** /**
@ -117,7 +117,7 @@ class PagerPageHolder(
*/ */
private fun setLoading() { private fun setLoading() {
progressIndicator.show() progressIndicator.show()
errorLayout?.root?.isVisible = false removeErrorLayout()
} }
/** /**
@ -125,7 +125,7 @@ class PagerPageHolder(
*/ */
private fun setDownloading() { private fun setDownloading() {
progressIndicator.show() progressIndicator.show()
errorLayout?.root?.isVisible = false removeErrorLayout()
} }
/** /**
@ -133,7 +133,6 @@ class PagerPageHolder(
*/ */
private suspend fun setImage() { private suspend fun setImage() {
progressIndicator.setProgress(0) progressIndicator.setProgress(0)
errorLayout?.root?.isVisible = false
val streamFn = page.stream ?: return val streamFn = page.stream ?: return
@ -170,6 +169,7 @@ class PagerPageHolder(
pageBackground = background pageBackground = background
} }
} }
removeErrorLayout()
} }
} }
@ -280,4 +280,12 @@ class PagerPageHolder(
errorLayout?.root?.isVisible = true errorLayout?.root?.isVisible = true
return errorLayout!! return errorLayout!!
} }
/**
* Removes the decode error layout from the holder, if found.
*/
private fun removeErrorLayout() {
errorLayout?.root?.isVisible = false
errorLayout = null
}
} }

View file

@ -181,7 +181,6 @@ class WebtoonPageHolder(
*/ */
private suspend fun setImage() { private suspend fun setImage() {
progressIndicator.setProgress(0) progressIndicator.setProgress(0)
removeErrorLayout()
val streamFn = page?.stream ?: return val streamFn = page?.stream ?: return
@ -202,6 +201,7 @@ class WebtoonPageHolder(
cropBorders = viewer.config.imageCropBorders, cropBorders = viewer.config.imageCropBorders,
), ),
) )
removeErrorLayout()
} }
// Suspend the coroutine to close the input stream only when the WebtoonPageHolder is recycled // Suspend the coroutine to close the input stream only when the WebtoonPageHolder is recycled
suspendCancellableCoroutine<Nothing> { continuation -> suspendCancellableCoroutine<Nothing> { continuation ->
@ -234,6 +234,7 @@ class WebtoonPageHolder(
*/ */
private fun onImageDecoded() { private fun onImageDecoded() {
progressContainer.isVisible = false progressContainer.isVisible = false
removeErrorLayout()
} }
/** /**