Revert "Reuse the root download location UniFile object"

Reason for revert: Caused OOM.
This commit is contained in:
FooIbar committed 2024-07-03 22:34:18 +08:00
1 parent 699a1ab801
commit c805ca8aff
2 files changed
+11 -18

No files matched your search

@@ -809,16 +809,17 @@ object DownloadManager : OnSpiderListener, CoroutineScope {
private fun comparator() = SortMode.from(Settings.downloadSortMode.value).comparator()
}
var downloadLocation = with(Settings) {
val uri = Uri.Builder().apply {
scheme(downloadScheme)
encodedAuthority(downloadAuthority)
encodedPath(downloadPath)
encodedQuery(downloadQuery)
encodedFragment(downloadFragment)
}.build()
uri.asUniFileOrNull() ?: AppConfig.defaultDownloadDir?.asUniFile() ?: UniFile.Stub
}
var downloadLocation: UniFile
get() = with(Settings) {
val uri = Uri.Builder().apply {
scheme(downloadScheme)
encodedAuthority(downloadAuthority)
encodedPath(downloadPath)
encodedQuery(downloadQuery)
encodedFragment(downloadFragment)
}.build()
uri.asUniFileOrNull() ?: AppConfig.defaultDownloadDir?.asUniFile() ?: UniFile.Stub
}
set(value) = with(value.uri) {
Settings.edit {
downloadScheme = scheme
@@ -827,13 +828,8 @@ var downloadLocation = with(Settings) {
downloadQuery = encodedQuery
downloadFragment = encodedFragment
}
field = value
}
fun invalidateDownloadDirCache() {
downloadLocation = downloadLocation.uri.asUniFile()
}
val DownloadInfo.downloadDir get() = dirname?.let { downloadLocation.findFile(it) }
val DownloadInfo.archiveFile get() = downloadDir?.run { findFile("$gid.cbz") ?: findFile("$gid.zip") }
val GalleryInfo.tempDownloadDir get() = AppConfig.getTempDir("$gid")?.asUniFile()
@@ -37,7 +37,6 @@ import com.hippo.ehviewer.dao.DownloadInfo
import com.hippo.ehviewer.download.DownloadManager
import com.hippo.ehviewer.download.downloadDir
import com.hippo.ehviewer.download.downloadLocation
import com.hippo.ehviewer.download.invalidateDownloadDirCache
import com.hippo.ehviewer.spider.COMIC_INFO_FILE
import com.hippo.ehviewer.spider.SpiderDen
import com.hippo.ehviewer.spider.SpiderQueen.Companion.SPIDER_INFO_FILENAME
@@ -216,8 +215,6 @@ fun DownloadScreen(navigator: DestinationsNavigator) = composing(navigator) {
}.getOrNull()
}
runSuspendCatching {
// Rescan download directory for new files added by the user
invalidateDownloadDirCache()
val result = downloadLocation.listFiles().parMapNotNull { getRestoreItem(it) }.also {
fillGalleryListByApi(it, EhUrl.referer)
}