From 6246fd98c3d8da23356f6c4707a8994a0893539f Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 2 Sep 2020 18:51:09 +0200 Subject: [PATCH] Cleanup --- .../session/content/ImageCompressor.kt | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ImageCompressor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ImageCompressor.kt index f66561cfee..20a588c13c 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ImageCompressor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/ImageCompressor.kt @@ -33,42 +33,40 @@ import java.text.SimpleDateFormat import java.util.Date import java.util.Locale import javax.inject.Inject -import kotlin.coroutines.CoroutineContext internal class ImageCompressor @Inject constructor( @SessionDownloadsDirectory private val sessionCacheDirectory: File ) { - private val cacheFolder = File(sessionCacheDirectory, "MF") suspend fun compress( context: Context, imageUri: Uri, - desiredWidth: Int = 612, - desiredHeight: Int = 816, - desiredQuality: Int = 80, - coroutineContext: CoroutineContext = Dispatchers.IO - ): Uri = withContext(coroutineContext) { - val compressedBitmap = BitmapFactory.Options().run { - inJustDecodeBounds = true - decodeBitmap(context, imageUri, this) - inSampleSize = calculateInSampleSize(outWidth, outHeight, desiredWidth, desiredHeight) - inJustDecodeBounds = false - decodeBitmap(context, imageUri, this)?.let { - rotateBitmap(context, imageUri, it) - } - } ?: return@withContext imageUri + desiredWidth: Int, + desiredHeight: Int, + desiredQuality: Int = 80): Uri { + return withContext(Dispatchers.IO) { + val compressedBitmap = BitmapFactory.Options().run { + inJustDecodeBounds = true + decodeBitmap(context, imageUri, this) + inSampleSize = calculateInSampleSize(outWidth, outHeight, desiredWidth, desiredHeight) + inJustDecodeBounds = false + decodeBitmap(context, imageUri, this)?.let { + rotateBitmap(context, imageUri, it) + } + } ?: return@withContext imageUri - val destinationUri = createDestinationUri(context) + val destinationUri = createDestinationUri(context) - runCatching { - context.contentResolver.openOutputStream(destinationUri).use { - compressedBitmap.compress(Bitmap.CompressFormat.JPEG, desiredQuality, it) + runCatching { + context.contentResolver.openOutputStream(destinationUri).use { + compressedBitmap.compress(Bitmap.CompressFormat.JPEG, desiredQuality, it) + } } + + return@withContext destinationUri } - - return@withContext destinationUri } private fun rotateBitmap(context: Context, uri: Uri, bitmap: Bitmap): Bitmap {