diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt index 1ea66dbab3..bbd2c6b4ac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/v2/ShareRepository.kt @@ -60,11 +60,16 @@ class ShareRepository(context: Context) { val size = getSize(appContext, uri) val name = getFileName(appContext, uri) - val blobUri = BlobProvider.getInstance() - .forData(stream, size) - .withMimeType(mimeType) - .withFileName(name) - .createForSingleSessionOnDisk(appContext) + val blobUri: Uri = try { + BlobProvider.getInstance() + .forData(stream, size) + .withMimeType(mimeType) + .withFileName(name) + .createForSingleSessionOnDisk(appContext) + } catch (e: IOException) { + Log.e(TAG, "Failed to get blob uri") + return ResolvedShareData.Failure + } return ResolvedShareData.ExternalUri( uri = blobUri, @@ -93,16 +98,21 @@ class ShareRepository(context: Context) { appContext.contentResolver.openInputStream(uri) } catch (e: IOException) { Log.w(TAG, "Failed to open: $uri") - return@map null - } ?: return ResolvedShareData.Failure + null + } ?: return@map null val size = getSize(appContext, uri) val dimens: Pair = MediaUtil.getDimensions(appContext, mimeType, uri).toKotlinPair() val duration = 0L - val blobUri = BlobProvider.getInstance() - .forData(stream, size) - .withMimeType(mimeType) - .createForSingleSessionOnDisk(appContext) + val blobUri = try { + BlobProvider.getInstance() + .forData(stream, size) + .withMimeType(mimeType) + .createForSingleSessionOnDisk(appContext) + } catch (e: IOException) { + Log.w(TAG, "Failed create blob uri") + return@map null + } Media( blobUri,