From 58391802bee884a6c5f81ad615cf6b67e02604ad Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Sun, 6 Mar 2022 14:59:45 +0100 Subject: [PATCH] More accurate directory size --- .../droidfs/explorers/BaseExplorerActivity.kt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt b/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt index 3015adf..329fefc 100644 --- a/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt +++ b/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt @@ -228,6 +228,15 @@ open class BaseExplorerActivity : BaseActivity() { sharedPrefsEditor.apply() } + private fun recursiveSetSize(directory: ExplorerElement) { + for (child in gocryptfsVolume.listDir(directory.fullPath)) { + if (child.isDirectory) { + recursiveSetSize(child) + } + directory.size += child.size + } + } + protected fun setCurrentPath(path: String, onDisplayed: (() -> Unit)? = null) { synchronized(this) { explorerElements = gocryptfsVolume.listDir(path) @@ -245,19 +254,11 @@ open class BaseExplorerActivity : BaseActivity() { Thread { var totalSize: Long = 0 synchronized(this) { - for (element in explorerElements){ - if (element.isDirectory){ - var dirSize: Long = 0 - for (subFile in gocryptfsVolume.recursiveMapFiles(element.fullPath)){ - if (subFile.isRegularFile){ - dirSize += subFile.size - } - } - element.size = dirSize - totalSize += dirSize - } else if (element.isRegularFile) { - totalSize += element.size + for (element in explorerElements) { + if (element.isDirectory) { + recursiveSetSize(element) } + totalSize += element.size } } val totalSizeValue = PathUtils.formatSize(totalSize)