1 Commits
Author SHA1 Message Date
nino ad2c9d43c5 v1.1.1: Delete empty folders after upload regardless of album toggle 2026-07-31 20:17:04 -06:00
3 changed files with 22 additions and 2 deletions
+2 -2
View File
@@ -11,8 +11,8 @@ android {
applicationId "com.folderredirect.app"
minSdk 26
targetSdk 34
versionCode 2
versionName "1.1.0"
versionCode 3
versionName "1.1.1"
}
buildTypes {
@@ -119,6 +119,7 @@ class FileMoveWorker(appContext: Context, params: WorkerParameters) : CoroutineW
val totalFiles = filesToProcess.size
if (totalFiles == 0) {
deleteEmptyFoldersRecursively(sourceDir)
rulesManager.updateImmichRuleProgress(rule.id, 100)
sendProgressUpdate()
return@withContext 0
@@ -175,6 +176,8 @@ class FileMoveWorker(appContext: Context, params: WorkerParameters) : CoroutineW
sendProgressUpdate()
}
deleteEmptyFoldersRecursively(sourceDir)
return@withContext count
} catch (e: Exception) {
Log.e(TAG, "Error procesando regla Immich: ${e.message}")
@@ -186,6 +189,9 @@ class FileMoveWorker(appContext: Context, params: WorkerParameters) : CoroutineW
private fun deleteEmptyParentFoldersImmich(folder: File?, baseFolder: File) =
FileUtils.deleteEmptyParentFolders(folder, baseFolder)
private fun deleteEmptyFoldersRecursively(baseFolder: File) =
FileUtils.deleteEmptyFoldersRecursively(baseFolder)
private fun getAllFilesRecursively(dir: File): List<File> =
FileUtils.getAllFilesRecursively(dir)
@@ -47,6 +47,20 @@ object FileUtils {
}
}
fun deleteEmptyFoldersRecursively(baseFolder: File) {
if (!baseFolder.exists() || !baseFolder.isDirectory) return
val children = baseFolder.listFiles() ?: return
for (child in children) {
if (child.isDirectory) {
deleteEmptyFoldersRecursively(child)
if (child.exists() && child.listFiles()?.isEmpty() == true) {
child.delete()
Log.d(TAG, "Carpeta vacía eliminada: ${child.absolutePath}")
}
}
}
}
fun getAllFilesRecursively(dir: File): List<File> {
val files = mutableListOf<File>()
dir.listFiles()?.forEach { file ->