mirror of
https://github.com/whyorean/AuroraStore.git
synced 2026-06-16 11:42:16 -04:00
DownloadWorker: Update file and sharedLib list atomically
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import androidx.room.Update
|
||||
import com.aurora.gplayapi.data.models.File
|
||||
import com.aurora.store.data.model.DownloadStatus
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
@@ -20,6 +21,12 @@ interface DownloadDao {
|
||||
@Query("UPDATE download SET downloadStatus=:downloadStatus WHERE packageName=:packageName")
|
||||
suspend fun updateStatus(packageName: String, downloadStatus: DownloadStatus)
|
||||
|
||||
@Query("UPDATE download SET fileList=:fileList WHERE packageName=:packageName")
|
||||
suspend fun updateFiles(packageName: String, fileList: List<File>)
|
||||
|
||||
@Query("UPDATE download SET sharedLibs=:sharedLibs WHERE packageName=:packageName")
|
||||
suspend fun updateSharedLibs(packageName: String, sharedLibs: List<SharedLib>)
|
||||
|
||||
@Query(
|
||||
"""
|
||||
UPDATE download
|
||||
|
||||
@@ -131,8 +131,9 @@ class DownloadWorker @AssistedInject constructor(
|
||||
download.totalFiles = requestList.size
|
||||
totalBytes = requestList.sumOf { it.size }
|
||||
|
||||
// Update database with all latest changes
|
||||
downloadDao.update(download)
|
||||
// Update database with all latest purchases
|
||||
downloadDao.updateFiles(download.packageName, download.fileList)
|
||||
downloadDao.updateSharedLibs(download.packageName, download.sharedLibs)
|
||||
|
||||
// Download and verify all files exists
|
||||
requestList.forEach { request ->
|
||||
|
||||
Reference in New Issue
Block a user