diff --git a/app/src/main/java/com/infomaniak/drive/ui/fileList/FileAdapter.kt b/app/src/main/java/com/infomaniak/drive/ui/fileList/FileAdapter.kt index 5b1620057a..74b6257d8c 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/fileList/FileAdapter.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/fileList/FileAdapter.kt @@ -202,6 +202,13 @@ open class FileAdapter( } } + fun deleteByFileName(fileName: String) { + if (!fileList.isManaged) { + val position = indexOf(fileName) + if (position >= 0) deleteAt(position) + } + } + private fun indexOf(fileId: Int) = fileList.indexOfFirst { it.id == fileId } fun indexOf(fileName: String) = fileList.indexOfFirst { it.name == fileName } diff --git a/app/src/main/java/com/infomaniak/drive/ui/fileList/UploadInProgressFragment.kt b/app/src/main/java/com/infomaniak/drive/ui/fileList/UploadInProgressFragment.kt index 8881a93197..c326bc5274 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/fileList/UploadInProgressFragment.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/fileList/UploadInProgressFragment.kt @@ -136,10 +136,8 @@ class UploadInProgressFragment : FileListFragment() { pendingUploadFiles.find { it.fileName == fileName }?.let { syncFile -> val title = getString(R.string.uploadInProgressCancelFileUploadTitle, syncFile.fileName) Utils.createConfirmation(requireContext(), title) { - if (fileAdapter.fileList.getOrNull(position)?.name == fileName) { - closeItemClicked(uploadFile = syncFile) - fileAdapter.deleteAt(position) - } + closeItemClicked(uploadFile = syncFile) + fileAdapter.deleteByFileName(fileName) } } } @@ -197,7 +195,6 @@ class UploadInProgressFragment : FileListFragment() { ApiRepository.cancelSession(AccountUtils.currentDriveId, token, it.okHttpClient) } UploadFile.deleteAll(listOf(it)) - needPopBackStack = true } folderId?.let { UploadFile.cancelAllPendingFilesSessions(folderId = it)