DownloadWorker: Avoid passing download data as input
Parsing the data otherwise pukes error on old Android versions due to size Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -15,7 +15,6 @@ import com.aurora.store.data.room.download.DownloadDao
|
||||
import com.aurora.store.data.room.update.Update
|
||||
import com.aurora.store.data.work.DownloadWorker
|
||||
import com.aurora.store.util.PathUtil
|
||||
import com.google.gson.Gson
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
@@ -30,17 +29,15 @@ import javax.inject.Inject
|
||||
*/
|
||||
class DownloadHelper @Inject constructor(
|
||||
@ApplicationContext private val context: Context,
|
||||
private val downloadDao: DownloadDao,
|
||||
private val gson: Gson
|
||||
private val downloadDao: DownloadDao
|
||||
) {
|
||||
|
||||
companion object {
|
||||
const val DOWNLOAD_WORKER = "DOWNLOAD_WORKER"
|
||||
const val DOWNLOAD_DATA = "DOWNLOAD_DATA"
|
||||
const val PACKAGE_NAME = "PACKAGE_NAME"
|
||||
|
||||
private const val DOWNLOAD_APP = "DOWNLOAD_APP"
|
||||
private const val DOWNLOAD_UPDATE = "DOWNLOAD_UPDATE"
|
||||
private const val PACKAGE_NAME = "PACKAGE_NAME"
|
||||
private const val VERSION_CODE = "VERSION_CODE"
|
||||
}
|
||||
|
||||
@@ -166,7 +163,7 @@ class DownloadHelper @Inject constructor(
|
||||
|
||||
private fun trigger(download: Download) {
|
||||
val inputData = Data.Builder()
|
||||
.putString(DOWNLOAD_DATA, gson.toJson(download))
|
||||
.putString(PACKAGE_NAME, download.packageName)
|
||||
.build()
|
||||
|
||||
val work = OneTimeWorkRequestBuilder<DownloadWorker>()
|
||||
|
||||
@@ -34,7 +34,6 @@ import com.aurora.store.data.room.download.DownloadDao
|
||||
import com.aurora.store.util.CertUtil
|
||||
import com.aurora.store.util.NotificationUtil
|
||||
import com.aurora.store.util.PathUtil
|
||||
import com.google.gson.Gson
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedInject
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -56,7 +55,6 @@ import com.aurora.gplayapi.data.models.File as GPlayFile
|
||||
@HiltWorker
|
||||
class DownloadWorker @AssistedInject constructor(
|
||||
private val downloadDao: DownloadDao,
|
||||
private val gson: Gson,
|
||||
private val appInstaller: AppInstaller,
|
||||
private val authProvider: AuthProvider,
|
||||
private val httpClient: IHttpClient,
|
||||
@@ -89,10 +87,10 @@ class DownloadWorker @AssistedInject constructor(
|
||||
return Result.failure()
|
||||
}
|
||||
|
||||
// Try to parse input data into a valid app
|
||||
// Fetch required data for download
|
||||
try {
|
||||
val downloadData = inputData.getString(DownloadHelper.DOWNLOAD_DATA)
|
||||
download = gson.fromJson(downloadData, Download::class.java)
|
||||
val packageName = inputData.getString(DownloadHelper.PACKAGE_NAME)
|
||||
download = downloadDao.getDownload(packageName!!)
|
||||
|
||||
val bitmap = BitmapFactory.decodeStream(withContext(Dispatchers.IO) {
|
||||
(httpClient as HttpClient).call(download.iconURL).body!!.byteStream()
|
||||
|
||||
Reference in New Issue
Block a user