From 388a61f1318e6867379ee92fe236301e8f889f45 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 12 Sep 2024 12:13:58 +0530 Subject: [PATCH] DownloadWorker: Move possible blocking call to IO dispatcher Also use okhttpclient instead Signed-off-by: Aayush Gupta --- .../com/aurora/store/data/work/DownloadWorker.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt index fa0057d4f..8271b4074 100644 --- a/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/DownloadWorker.kt @@ -36,15 +36,14 @@ import com.aurora.store.util.PathUtil import com.google.gson.Gson import dagger.assisted.Assisted import dagger.assisted.AssistedInject +import java.io.File +import java.io.FileOutputStream +import java.security.DigestInputStream +import java.security.MessageDigest import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.delay import kotlinx.coroutines.withContext -import java.io.File -import java.io.FileOutputStream -import java.net.URL -import java.security.DigestInputStream -import java.security.MessageDigest import kotlin.properties.Delegates import com.aurora.gplayapi.data.models.File as GPlayFile @@ -93,7 +92,9 @@ class DownloadWorker @AssistedInject constructor( val downloadData = inputData.getString(DownloadWorkerUtil.DOWNLOAD_DATA) download = gson.fromJson(downloadData, Download::class.java) - val bitmap = BitmapFactory.decodeStream(URL(download.iconURL).openStream()) + val bitmap = BitmapFactory.decodeStream(withContext(Dispatchers.IO) { + (httpClient as OkHttpClient).call(download.iconURL).body!!.byteStream() + }) icon = Bitmap.createScaledBitmap(bitmap, 96, 96, true) } catch (exception: Exception) { Log.e(TAG, "Failed to parse download data", exception)