From 479680a83d6a00936f30d9a5bb8eb5657df68ba7 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Fri, 10 Apr 2026 07:35:22 +0200 Subject: [PATCH] Throw explicit exceptions when decoding images to import --- .../org/fairscan/app/platform/AndroidImageLoader.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/fairscan/app/platform/AndroidImageLoader.kt b/app/src/main/java/org/fairscan/app/platform/AndroidImageLoader.kt index 3a15e64..54e68c1 100644 --- a/app/src/main/java/org/fairscan/app/platform/AndroidImageLoader.kt +++ b/app/src/main/java/org/fairscan/app/platform/AndroidImageLoader.kt @@ -26,6 +26,7 @@ import androidx.core.util.component2 import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.fairscan.app.domain.ImageLoader +import java.io.IOException class AndroidImageLoader( private val contentResolver: ContentResolver @@ -64,10 +65,13 @@ private fun decodeWithImageDecoder( } private fun decodeWithBitmapFactory(contentResolver: ContentResolver, uri: Uri, ): Bitmap { - val decodeOptions = BitmapFactory.Options() - return contentResolver.openInputStream(uri).use { - BitmapFactory.decodeStream(it, null, decodeOptions) - }!! + val options = BitmapFactory.Options() + val inputStream = contentResolver.openInputStream(uri) + ?: throw IOException("Cannot open input stream for uri: $uri") + return inputStream.use { + BitmapFactory.decodeStream(it, null, options) + ?: throw IOException("Failed to decode bitmap for uri: $uri") + } } private fun computeScale(width: Int, height: Int, maxPixels: Int): Float {