Suspend more db
This commit is contained in:
1 parent
36895de83b
commit
5cf122c30c
3 files changed
+6
-8
No files matched your search
@@ -39,13 +39,11 @@ object EhDB {
|
|||||||
private val db = roomDb<EhDatabase>("eh.db") { allowMainThreadQueries() }
|
private val db = roomDb<EhDatabase>("eh.db") { allowMainThreadQueries() }
|
||||||
|
|
||||||
// Fix state
|
// Fix state
|
||||||
@get:Synchronized
|
suspend fun getAllDownloadInfo() = db.downloadsDao().list().onEach {
|
||||||
val allDownloadInfo: List<DownloadInfo>
|
if (it.state == DownloadInfo.STATE_WAIT || it.state == DownloadInfo.STATE_DOWNLOAD) {
|
||||||
get() = db.downloadsDao().list().onEach {
|
it.state = DownloadInfo.STATE_NONE
|
||||||
if (it.state == DownloadInfo.STATE_WAIT || it.state == DownloadInfo.STATE_DOWNLOAD) {
|
|
||||||
it.state = DownloadInfo.STATE_NONE
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Synchronized
|
@Synchronized
|
||||||
fun updateDownloadInfo(downloadInfos: List<DownloadInfo>) {
|
fun updateDownloadInfo(downloadInfos: List<DownloadInfo>) {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import androidx.room.Update
|
|||||||
@Dao
|
@Dao
|
||||||
interface DownloadsDao {
|
interface DownloadsDao {
|
||||||
@Query("SELECT * FROM DOWNLOADS ORDER BY TIME DESC")
|
@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")
|
@Query("SELECT * FROM DOWNLOADS ORDER BY TIME DESC LIMIT :limit OFFSET :offset")
|
||||||
fun list(offset: Int, limit: Int): List<DownloadInfo>
|
fun list(offset: Int, limit: Int): List<DownloadInfo>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ import java.util.LinkedList
|
|||||||
|
|
||||||
object DownloadManager : OnSpiderListener {
|
object DownloadManager : OnSpiderListener {
|
||||||
// All download info list
|
// All download info list
|
||||||
val allInfoList: LinkedList<DownloadInfo> = LinkedList(EhDB.allDownloadInfo)
|
val allInfoList: LinkedList<DownloadInfo> = runAssertingNotMainThread { LinkedList(EhDB.getAllDownloadInfo()) }
|
||||||
|
|
||||||
// All download info map
|
// All download info map
|
||||||
private val mAllInfoMap = allInfoList.associateBy { it.gid } as MutableMap<Long, DownloadInfo>
|
private val mAllInfoMap = allInfoList.associateBy { it.gid } as MutableMap<Long, DownloadInfo>
|
||||||
|
|||||||
Reference in new issue
Block a user