diff --git a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt index e11633cea..41a3bbbd0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadManager.kt @@ -29,6 +29,7 @@ import arrow.fx.coroutines.parMapNotNull import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo +import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.dao.DownloadInfo import com.hippo.ehviewer.dao.DownloadLabel import com.hippo.ehviewer.image.Image @@ -368,6 +369,7 @@ object DownloadManager : OnSpiderListener, CoroutineScope { if (deleteFiles) { info.downloadDir?.delete() + info.tempDownloadDir?.delete() EhDB.removeDownloadDirname(info.gid) } } @@ -788,3 +790,4 @@ var downloadLocation: UniFile val DownloadInfo.downloadDir get() = dirname?.let { downloadLocation / it } val DownloadInfo.archiveFile get() = downloadDir?.findFile("$gid.cbz") +val GalleryInfo.tempDownloadDir get() = AppConfig.getTempDir("$gid") diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt index 716e30f64..fe0879804 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt @@ -32,9 +32,9 @@ import com.hippo.ehviewer.client.getImageKey import com.hippo.ehviewer.coil.read import com.hippo.ehviewer.coil.suspendEdit import com.hippo.ehviewer.download.downloadLocation +import com.hippo.ehviewer.download.tempDownloadDir import com.hippo.ehviewer.image.UniFileSource import com.hippo.ehviewer.jni.archiveFdBatch -import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.FileUtils import com.hippo.ehviewer.util.sendTo import com.hippo.unifile.UniFile @@ -79,7 +79,7 @@ class SpiderDen(val info: GalleryInfo) { downloadDir = getGalleryDownloadDir(gid)?.takeIf { it.ensureDir() } } if (saveAsCbz && tempDownloadDir == null) { - tempDownloadDir = AppConfig.getTempDir("$gid")?.takeIf { it.ensureDir() } + tempDownloadDir = info.tempDownloadDir?.takeIf { it.ensureDir() } } } } @@ -308,7 +308,7 @@ class SpiderDen(val info: GalleryInfo) { suspend fun initDownloadDirIfExist() { downloadDir = getGalleryDownloadDir(gid)?.takeIf { it.isDirectory } - tempDownloadDir = AppConfig.getTempDir("$gid")?.takeIf { it.isDirectory } + tempDownloadDir = info.tempDownloadDir?.takeIf { it.isDirectory } } suspend fun initDownloadDir() { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt index 7c15b9025..7c6386b45 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt @@ -53,6 +53,7 @@ import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.download.DownloadService import com.hippo.ehviewer.download.downloadDir import com.hippo.ehviewer.download.downloadLocation +import com.hippo.ehviewer.download.tempDownloadDir import com.hippo.ehviewer.ui.destinations.ReaderScreenDestination import com.hippo.ehviewer.ui.tools.DialogState import com.hippo.ehviewer.ui.tools.LabeledCheckbox @@ -389,6 +390,7 @@ suspend fun DialogState.confirmRemoveDownloadRange(list: Collection // Delete file info.downloadDir?.delete() + info.tempDownloadDir?.delete() // Remove download path EhDB.removeDownloadDirname(info.gid) }