From 04b6b3674d3bd32374d562d39b1c8c398def02a4 Mon Sep 17 00:00:00 2001 From: Valere Date: Thu, 25 Jun 2020 13:44:29 +0200 Subject: [PATCH] Also Clear download cache when clearing media --- .../matrix/android/api/session/file/FileService.kt | 4 ++++ .../android/internal/session/DefaultFileService.kt | 13 +++++++++++++ .../settings/VectorSettingsGeneralFragment.kt | 4 +++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/file/FileService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/file/FileService.kt index a6f9f1b078..d5ec14f6a7 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/file/FileService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/file/FileService.kt @@ -71,4 +71,8 @@ interface FileService { fun getTemporarySharableURI(mxcUrl: String, mimeType: String?): Uri? fun fileState(mxcUrl: String, mimeType: String?) : FileState + + fun clearCache() + + fun getCacheSize() : Int } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultFileService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultFileService.kt index da701747b5..0a4f4dbc39 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultFileService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultFileService.kt @@ -238,4 +238,17 @@ internal class DefaultFileService @Inject constructor( file } } + + override fun getCacheSize(): Int { + return downloadFolder.walkTopDown() + .onEnter { + Timber.v("Get size of ${it.absolutePath}") + true + } + .sumBy { it.length().toInt() } + } + + override fun clearCache() { + downloadFolder.deleteRecursively() + } } diff --git a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsGeneralFragment.kt b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsGeneralFragment.kt index 17739c2503..928d795eac 100644 --- a/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsGeneralFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/settings/VectorSettingsGeneralFragment.kt @@ -237,7 +237,7 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() { // clear medias cache findPreference(VectorPreferences.SETTINGS_CLEAR_MEDIA_CACHE_PREFERENCE_KEY)!!.let { - val size = getSizeOfFiles(File(requireContext().cacheDir, DiskCache.Factory.DEFAULT_DISK_CACHE_DIR)) + val size = getSizeOfFiles(File(requireContext().cacheDir, DiskCache.Factory.DEFAULT_DISK_CACHE_DIR)) + session.getCacheSize() it.summary = TextUtils.formatFileSize(requireContext(), size.toLong()) @@ -247,6 +247,7 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() { displayLoadingView() Glide.get(requireContext()).clearMemory() + session.clearCache() var newSize = 0 @@ -255,6 +256,7 @@ class VectorSettingsGeneralFragment : VectorSettingsBaseFragment() { Glide.get(requireContext()).clearDiskCache() newSize = getSizeOfFiles(File(requireContext().cacheDir, DiskCache.Factory.DEFAULT_DISK_CACHE_DIR)) + newSize += session.getCacheSize() } it.summary = TextUtils.formatFileSize(requireContext(), newSize.toLong())