From 5951237f2cc8f46faa4a51df3f2136f6ae6d12b9 Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Sat, 10 Jul 2021 12:02:56 +0200 Subject: [PATCH] Optional folder mapping --- app/libgocryptfs | 2 +- .../droidfs/explorers/BaseExplorerActivity.kt | 33 +++++++++++-------- .../main/res/drawable/icon_folder_search.xml | 9 +++++ app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values/strings.xml | 4 ++- app/src/main/res/xml/root_preferences.xml | 7 ++++ 7 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/drawable/icon_folder_search.xml diff --git a/app/libgocryptfs b/app/libgocryptfs index 39af24d..47c6caf 160000 --- a/app/libgocryptfs +++ b/app/libgocryptfs @@ -1 +1 @@ -Subproject commit 39af24d4e655b0228e81f3beb3266d625e6f76d3 +Subproject commit 47c6caf2d597590c73e45e006aed0465e0fa0546 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 672d488..3ee7e56 100644 --- a/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt +++ b/app/src/main/java/sushi/hardcore/droidfs/explorers/BaseExplorerActivity.kt @@ -46,6 +46,7 @@ open class BaseExplorerActivity : BaseActivity() { private lateinit var sortOrderEntries: Array private lateinit var sortOrderValues: Array private var foldersFirst = true + private var mapFolders = true private var currentSortOrderIndex = 0 protected lateinit var gocryptfsVolume: GocryptfsVolume private lateinit var volumeName: String @@ -80,6 +81,7 @@ open class BaseExplorerActivity : BaseActivity() { sortOrderEntries = resources.getStringArray(R.array.sort_orders_entries) sortOrderValues = resources.getStringArray(R.array.sort_orders_values) foldersFirst = sharedPrefs.getBoolean("folders_first", true) + mapFolders = sharedPrefs.getBoolean("map_folders", true) currentSortOrderIndex = resources.getStringArray(R.array.sort_orders_values).indexOf(sharedPrefs.getString(ConstValues.sort_order_key, "name")) init() toolbar = findViewById(R.id.toolbar) @@ -221,25 +223,30 @@ open class BaseExplorerActivity : BaseActivity() { currentDirectoryPath = path currentPathText.text = getString(R.string.location, currentDirectoryPath) 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 + val totalSizeValue = if (mapFolders) { + 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 } - element.size = dirSize - totalSize += dirSize - } else if (element.isRegularFile) { - totalSize += element.size } } + PathUtils.formatSize(totalSize) + } else { + getString(R.string.default_total_size) } runOnUiThread { - totalSizeText.text = getString(R.string.total_size, PathUtils.formatSize(totalSize)) + totalSizeText.text = getString(R.string.total_size, totalSizeValue) synchronized(this) { sortExplorerElements() } diff --git a/app/src/main/res/drawable/icon_folder_search.xml b/app/src/main/res/drawable/icon_folder_search.xml new file mode 100644 index 0000000..8b6ce33 --- /dev/null +++ b/app/src/main/res/drawable/icon_folder_search.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ba80234..451aa55 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -48,6 +48,7 @@ Você tem certeza de que deseja excluir estos %s itens ? Local: /%s Tamanho total: %s + N/A Importar do outro volume Falha ao abrir o arquivo. Volume: %s @@ -146,7 +147,6 @@ Tirar foto Foto salva ao %s Falha ao salvar esta imagem. - N//A %s já existe, você quer substitui-lo ? %s já existe, você quer integrar ao conteúdo ? Digite um novo nome diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 61822cc..b7d90df 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -48,6 +48,7 @@ Удалить %s элементов? Путь: /%s Общий размер: %s + Импорт из другого тома Невозможно открыть файл. Том: %s @@ -143,7 +144,6 @@ Сфотографировать Изображение сохранено в %s Невозможно сохранить изображение. - %s уже существует, переписать его? %s уже существует, объединить содержимое? Введите новое имя diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 56dc83f..8fc890f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -48,6 +48,7 @@ Are you sure you want to delete these %s items ? Location: /%s Total size: %s + N/A Import from another volume Failed to open this file. Volume: %s @@ -146,7 +147,6 @@ Take photo Picture saved to %s Failed to save this picture. - N//A %s already exists, do you want to overwrite it ? %s already exists, do you want to merge its content ? Enter new name @@ -198,4 +198,6 @@ Close volume Sort By Cut + Map folders + Recursively map folders to calculate their sizes (you should disable this when opening large volumes) diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index 67a93a6..3df88d7 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -42,6 +42,13 @@ android:title="@string/folders_first" android:summary="@string/folders_first_summary"/> + +