From 22b40631d92eb721281d5f79e2787b9d3f5824a8 Mon Sep 17 00:00:00 2001 From: Fabian Devel Date: Tue, 1 Oct 2024 15:35:34 +0200 Subject: [PATCH] feat(PublicShareFolderSort): Apply suggestions --- .../java/com/infomaniak/drive/ui/fileList/FileAdapter.kt | 2 ++ .../drive/ui/publicShare/PublicShareListFragment.kt | 5 +---- .../drive/ui/publicShare/PublicShareViewModel.kt | 7 +++++++ 3 files changed, 10 insertions(+), 4 deletions(-) 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 4aeb8c0892..5e2a187ada 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 @@ -165,6 +165,8 @@ open class FileAdapter( fun setFiles(newItemList: List, isFileListResetNeeded: Boolean = false) { fileList = RealmList(*newItemList.toTypedArray()) hideLoading() + // isFileListResetNeeded is used because when sorting file in PublicShareListFragment, the animation of the asynclist + // is bugged, so we just redraw the whole list. As it's only once it's not a problem if (fileAsyncListDiffer == null || isFileListResetNeeded) { notifyDataSetChanged() } else { diff --git a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareListFragment.kt b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareListFragment.kt index 03ab25aa74..f16cf26fe5 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareListFragment.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareListFragment.kt @@ -205,10 +205,7 @@ class PublicShareListFragment : FileListFragment() { openFolder(file) } else { multiSelectManager.isMultiSelectAuthorized = false - val fileList = file?.let(::listOf) ?: listOf() - publicShareViewModel.childrenLiveData.postValue( - PublicShareFilesResult(fileList, shouldUpdate = true, isNewSort = false) - ) + publicShareViewModel.setSingleRootFile(file) } } } diff --git a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareViewModel.kt b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareViewModel.kt index 35ca3bf83d..ddad217a41 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareViewModel.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicShareViewModel.kt @@ -168,6 +168,13 @@ class PublicShareViewModel(application: Application, val savedStateHandle: Saved buildArchiveResult.postValue(result) } + fun setSingleRootFile(file: File?) { + val fileList = file?.let(::listOf) ?: listOf() + childrenLiveData.postValue( + PublicShareFilesResult(fileList, shouldUpdate = true, isNewSort = false) + ) + } + fun fetchCacheFileForAction(file: File?, action: DownloadAction, navigateToDownloadDialog: suspend () -> Unit) { viewModelScope.launch(Dispatchers.IO) { runCatching {