From 087a39757f5676ea21ee207e6754814beed9f9a4 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 10 Sep 2023 14:24:57 +0200 Subject: [PATCH] fix: unexpected crashes from seekbar preview bitmap parsing --- .../github/libretube/util/OnlineTimeFrameReceiver.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/github/libretube/util/OnlineTimeFrameReceiver.kt b/app/src/main/java/com/github/libretube/util/OnlineTimeFrameReceiver.kt index 8c654d1d6..c00890193 100644 --- a/app/src/main/java/com/github/libretube/util/OnlineTimeFrameReceiver.kt +++ b/app/src/main/java/com/github/libretube/util/OnlineTimeFrameReceiver.kt @@ -20,13 +20,13 @@ class OnlineTimeFrameReceiver( /** * Cut off a new bitmap from the image that contains multiple preview thumbnails */ - private fun cutBitmapFromPreviewFrame(bitmap: Bitmap, previewFrame: PreviewFrame): Bitmap { - val positionX = previewFrame.positionX * previewFrame.frameWidth - val positionY = previewFrame.positionY * previewFrame.frameHeight - val width = minOf(previewFrame.frameWidth, bitmap.width - positionX) - val height = minOf(previewFrame.frameHeight, bitmap.height - positionY) + private fun cutBitmapFromPreviewFrame(bitmap: Bitmap, previewFrame: PreviewFrame): Bitmap? { + val offsetX = previewFrame.positionX * previewFrame.frameWidth + val offsetY = previewFrame.positionY * previewFrame.frameHeight - return Bitmap.createBitmap(bitmap, positionX, positionY, width, height) + return runCatching { + Bitmap.createBitmap(bitmap, offsetX, offsetY, previewFrame.frameWidth, previewFrame.frameHeight) + }.getOrNull() } /**