Skip to content

Commit 26eb15a

Browse files
committed
allow user to delete normal files together with auto upload folders
Signed-off-by: alperozturk96 <alper_ozturk@proton.me>
1 parent 841c178 commit 26eb15a

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

app/src/main/java/com/nextcloud/client/jobs/upload/FileUploadHelper.kt

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -640,11 +640,31 @@ class FileUploadHelper {
640640
}
641641
}
642642

643-
suspend fun getAutoUploadFolder(files: List<OCFile>, accountName: String): List<SyncedFolderEntity> =
644-
files.mapNotNull { file ->
645-
getAutoUploadFolderEntity(file, accountName)
643+
/**
644+
* Splits a list of files into:
645+
* 1. Files that have an auto-upload folder configured.
646+
* 2. Files that don't.
647+
*/
648+
suspend fun splitFilesByAutoUpload(
649+
files: List<OCFile>,
650+
accountName: String
651+
): Pair<List<SyncedFolderEntity>, List<OCFile>> {
652+
653+
val autoUploadFolders = mutableListOf<SyncedFolderEntity>()
654+
val nonAutoUploadFiles = mutableListOf<OCFile>()
655+
656+
for (file in files) {
657+
val entity = getAutoUploadFolderEntity(file, accountName)
658+
if (entity != null) {
659+
autoUploadFolders.add(entity)
660+
} else {
661+
nonAutoUploadFiles.add(file)
662+
}
646663
}
647664

665+
return autoUploadFolders to nonAutoUploadFiles
666+
}
667+
648668
suspend fun getAutoUploadFolderEntity(file: ServerFileInterface, accountName: String): SyncedFolderEntity? {
649669
val dao = uploadsStorageManager.syncedFolderDao
650670
val normalizedRemotePath = file.remotePath.trimEnd()

app/src/main/java/com/owncloud/android/ui/dialog/RemoveFilesDialogFragment.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,19 @@ class RemoveFilesDialogFragment :
112112
val listener = getTypedActivity(OnFilesRemovedListener::class.java)
113113

114114
lifecycleScope.launch(Dispatchers.IO) {
115-
val autoUploadEntities =
116-
FileUploadHelper.instance().getAutoUploadFolder(files, userAccountManager.user.accountName)
115+
val (autoUploadEntities, filesToRemove) =
116+
FileUploadHelper.instance().splitFilesByAutoUpload(files, userAccountManager.user.accountName)
117117
withContext(Dispatchers.Main) {
118118
if (autoUploadEntities.isNotEmpty()) {
119119
listener?.onAutoUploadFolderRemoved(
120120
entities = autoUploadEntities,
121121
filesToRemove = files,
122122
onlyLocalCopy = onlyLocalCopy
123123
)
124-
return@withContext
125124
}
126125

127126
val fileActivity = getTypedActivity(FileActivity::class.java)
128-
fileActivity?.removeFiles(offlineFiles, files, onlyLocalCopy, listener)
127+
fileActivity?.removeFiles(offlineFiles, filesToRemove, onlyLocalCopy, listener)
129128
finishActionMode()
130129
}
131130
}

0 commit comments

Comments
 (0)