diff --git a/app/src/main/java/com/aurora/store/data/room/download/DownloadDao.kt b/app/src/main/java/com/aurora/store/data/room/download/DownloadDao.kt index 9b721a7b3..8e47f1520 100644 --- a/app/src/main/java/com/aurora/store/data/room/download/DownloadDao.kt +++ b/app/src/main/java/com/aurora/store/data/room/download/DownloadDao.kt @@ -5,6 +5,7 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import androidx.room.Update +import com.aurora.store.data.model.DownloadStatus import kotlinx.coroutines.flow.Flow @Dao @@ -16,6 +17,9 @@ interface DownloadDao { @Update suspend fun update(download: Download) + @Query("UPDATE download SET downloadStatus=:downloadStatus WHERE packageName=:packageName") + suspend fun updateStatus(packageName: String, downloadStatus: DownloadStatus) + @Query("SELECT * FROM download") fun downloads(): Flow> 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 4e9a5e845..61a65d184 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 @@ -307,11 +307,7 @@ class DownloadWorker @AssistedInject constructor( private suspend fun notifyStatus(status: DownloadStatus, dID: Int = -1) { // Update database for all status except downloading which is handled onProgress if (status != DownloadStatus.DOWNLOADING) { - download.apply { - this.downloadStatus = status - if (download.downloadStatus == DownloadStatus.COMPLETED) this.progress = 100 - } - downloadDao.update(download) + downloadDao.updateStatus(download.packageName, status) } if (status == DownloadStatus.CANCELLED) return