From 62c3e9290ec7557b06b2a401a4eea3aa563b4a7e Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 12 Jul 2023 09:35:32 +0800 Subject: [PATCH] Suspend DownloadDirnameDao deleteByKey --- app/src/main/java/com/hippo/ehviewer/EhDB.kt | 3 +-- .../com/hippo/ehviewer/dao/DownloadDirnameDao.kt | 2 +- .../hippo/ehviewer/ui/scene/DownloadsScene.kt | 16 ++++++++-------- .../ehviewer/ui/scene/GalleryDetailScene.kt | 4 ++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhDB.kt b/app/src/main/java/com/hippo/ehviewer/EhDB.kt index 442c3f5df..a9dcd9078 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhDB.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhDB.kt @@ -88,8 +88,7 @@ object EhDB { } } - @Synchronized - fun removeDownloadDirname(gid: Long) { + suspend fun removeDownloadDirname(gid: Long) { val dao = db.downloadDirnameDao() dao.deleteByKey(gid) } diff --git a/app/src/main/java/com/hippo/ehviewer/dao/DownloadDirnameDao.kt b/app/src/main/java/com/hippo/ehviewer/dao/DownloadDirnameDao.kt index c308ceb6c..5fa8201d9 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/DownloadDirnameDao.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/DownloadDirnameDao.kt @@ -17,7 +17,7 @@ interface DownloadDirnameDao { fun insert(t: DownloadDirname): Long @Query("DELETE FROM DOWNLOAD_DIRNAME WHERE GID = :gid") - fun deleteByKey(gid: Long) + suspend fun deleteByKey(gid: Long) @Query("SELECT * FROM DOWNLOAD_DIRNAME") fun list(): List diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index 1e940bed2..59cbe0ec3 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -774,15 +774,15 @@ class DownloadsScene : val checked = mBuilder.isChecked Settings.removeImageFiles = checked if (checked) { - val files = arrayOfNulls(mDownloadInfoList.size) - for ((i, info) in mDownloadInfoList.withIndex()) { - // Put file - files[i] = SpiderDen.getGalleryDownloadDir(info.gid) - // Remove download path - EhDB.removeDownloadDirname(info.gid) - } - // Delete file lifecycleScope.launchIO { + val files = arrayOfNulls(mDownloadInfoList.size) + for ((i, info) in mDownloadInfoList.withIndex()) { + // Put file + files[i] = SpiderDen.getGalleryDownloadDir(info.gid) + // Remove download path + EhDB.removeDownloadDirname(info.gid) + } + // Delete file files.forEach { it?.delete() } } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index a2e5ea0a6..c2ea1417b 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -1271,10 +1271,10 @@ class GalleryDetailScene : BaseScene() { val checked = mBuilder.isChecked Settings.removeImageFiles = checked if (checked) { - val file = SpiderDen.getGalleryDownloadDir(mGalleryInfo.gid) - EhDB.removeDownloadDirname(mGalleryInfo.gid) lifecycleScope.launchIO { runCatching { + val file = SpiderDen.getGalleryDownloadDir(mGalleryInfo.gid) + EhDB.removeDownloadDirname(mGalleryInfo.gid) file?.delete() } }