Suspend more db

This commit is contained in:
tarsin committed 2023-07-12 10:41:56 +08:00
1 parent 36895de83b
commit 5cf122c30c
3 files changed
+6 -8

No files matched your search

+4 -6
View File
@@ -39,13 +39,11 @@ object EhDB {
private val db = roomDb<EhDatabase>("eh.db") { allowMainThreadQueries() }
// Fix state
@get:Synchronized
val allDownloadInfo: List<DownloadInfo>
get() = db.downloadsDao().list().onEach {
if (it.state == DownloadInfo.STATE_WAIT || it.state == DownloadInfo.STATE_DOWNLOAD) {
it.state = DownloadInfo.STATE_NONE
}
suspend fun getAllDownloadInfo() = db.downloadsDao().list().onEach {
if (it.state == DownloadInfo.STATE_WAIT || it.state == DownloadInfo.STATE_DOWNLOAD) {
it.state = DownloadInfo.STATE_NONE
}
}
@Synchronized
fun updateDownloadInfo(downloadInfos: List<DownloadInfo>) {
@@ -9,7 +9,7 @@ import androidx.room.Update
@Dao
interface DownloadsDao {
@Query("SELECT * FROM DOWNLOADS ORDER BY TIME DESC")
fun list(): List<DownloadInfo>
suspend fun list(): List<DownloadInfo>
@Query("SELECT * FROM DOWNLOADS ORDER BY TIME DESC LIMIT :limit OFFSET :offset")
fun list(offset: Int, limit: Int): List<DownloadInfo>
@@ -54,7 +54,7 @@ import java.util.LinkedList
object DownloadManager : OnSpiderListener {
// All download info list
val allInfoList: LinkedList<DownloadInfo> = LinkedList(EhDB.allDownloadInfo)
val allInfoList: LinkedList<DownloadInfo> = runAssertingNotMainThread { LinkedList(EhDB.getAllDownloadInfo()) }
// All download info map
private val mAllInfoMap = allInfoList.associateBy { it.gid } as MutableMap<Long, DownloadInfo>