diff --git a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt index 7b03c60be..1c7923b03 100644 --- a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt +++ b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreenContent.kt @@ -81,15 +81,15 @@ fun WebViewScreenContent( ), AppBar.OverflowAction( title = stringResource(R.string.action_share), - onClick = { onShare(state.lastLoadedUrl ?: return@OverflowAction) }, + onClick = { onShare(state.lastLoadedUrl ?: url) }, ), AppBar.OverflowAction( title = stringResource(R.string.action_open_in_browser), - onClick = { onOpenInBrowser(state.lastLoadedUrl ?: return@OverflowAction) }, + onClick = { onOpenInBrowser(state.lastLoadedUrl ?: url) }, ), AppBar.OverflowAction( title = stringResource(R.string.pref_clear_cookies), - onClick = { onClearCookies(state.lastLoadedUrl ?: return@OverflowAction) }, + onClick = { onClearCookies(state.lastLoadedUrl ?: url) }, ), ), ) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt index 8b6d0348d..d99a9cb6d 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonPageHolder.kt @@ -25,10 +25,12 @@ import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import kotlinx.coroutines.supervisorScope import kotlinx.coroutines.suspendCancellableCoroutine +import logcat.LogPriority import tachiyomi.core.util.lang.launchIO import tachiyomi.core.util.lang.withIOContext import tachiyomi.core.util.lang.withUIContext import tachiyomi.core.util.system.ImageUtil +import tachiyomi.core.util.system.logcat import java.io.BufferedInputStream import java.io.InputStream @@ -246,25 +248,31 @@ class WebtoonPageHolder( } private fun onStripSplit(imageStream: BufferedInputStream): InputStream { - // If we have reached this point [page] and its stream shouldn't be null - val page = page!! - val stream = page.stream!! - val splitData = ImageUtil.getSplitDataForStream( - imageStream, - // SY --> - page.zip4jFile, - page.zip4jEntry, - // SY <-- - ).toMutableList() - val currentSplitData = splitData.removeFirst() - val newPages = splitData.map { - StencilPage(page) { ImageUtil.splitStrip(it, stream) } - } - return ImageUtil.splitStrip(currentSplitData) { imageStream } - .also { - // Running [onLongStripSplit] first results in issues with splitting - viewer.onLongStripSplit(page, newPages) + + try { + // If we have reached this point [page] and its stream shouldn't be null + val page = page!! + val stream = page.stream!! + val splitData = ImageUtil.getSplitDataForStream( + imageStream, + // SY --> + page.zip4jFile, + page.zip4jEntry, + // SY <-- + ).toMutableList() + val currentSplitData = splitData.removeFirst() + val newPages = splitData.map { + StencilPage(page) { ImageUtil.splitStrip(it, stream) } } + return ImageUtil.splitStrip(currentSplitData) { imageStream } + .also { + // Running [onLongStripSplit] first results in issues with splitting + viewer.onLongStripSplit(page, newPages) + } + } catch (e: Exception) { + logcat(LogPriority.ERROR, e) { "Failed to split image" } + return imageStream + } } /** diff --git a/core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt b/core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt index 2d49df4f0..5a1113250 100644 --- a/core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt +++ b/core/src/main/java/tachiyomi/core/util/system/ImageUtil.kt @@ -403,9 +403,8 @@ object ImageUtil { "splitHeight=${splitData.splitHeight} bottomOffset=${splitData.bottomOffset}" } - val region = Rect(0, splitData.topOffset, splitData.splitWidth, splitData.bottomOffset) - try { + val region = Rect(0, splitData.topOffset, splitData.splitWidth, splitData.bottomOffset) val splitBitmap = bitmapRegionDecoder.decodeRegion(region, null) val outputStream = ByteArrayOutputStream() splitBitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream) diff --git a/presentation-core/src/main/java/tachiyomi/presentation/core/util/LazyListState.kt b/presentation-core/src/main/java/tachiyomi/presentation/core/util/LazyListState.kt index 1b2aa1ab8..1abb3205a 100644 --- a/presentation-core/src/main/java/tachiyomi/presentation/core/util/LazyListState.kt +++ b/presentation-core/src/main/java/tachiyomi/presentation/core/util/LazyListState.kt @@ -5,7 +5,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableIntStateOf -import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue