From c00a8cdff38b63ba48aa2d8c3a4470204e3d0c4b Mon Sep 17 00:00:00 2001 From: A117870935 Date: Wed, 28 Jun 2023 13:15:34 +0530 Subject: [PATCH] Correctly update file after sharing. NC PR: https://github.com/nextcloud/android/pull/11775 --- .../com/owncloud/android/ui/activity/FileActivity.java | 2 +- .../owncloud/android/ui/adapter/OCFileListAdapter.java | 8 ++++++++ .../owncloud/android/ui/fragment/OCFileListFragment.java | 6 ------ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java index c8ef734ba84b..9a343bc3223c 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileActivity.java @@ -825,7 +825,7 @@ private void onCreateShareViaLinkOperationFinish(CreateShareViaLinkOperation ope } if (fileListFragment instanceof OCFileListFragment && file != null) { - ((OCFileListFragment) fileListFragment).updateOCFile(file); + ((OCFileListFragment) fileListFragment).getAdapter().replaceFile(file); } } else { // Detect Failure (403) --> maybe needs password diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java index bd8c9bee401c..18f223680dd1 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java +++ b/app/src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java @@ -831,6 +831,14 @@ public void setData(List objects, new Handler(Looper.getMainLooper()).post(this::notifyDataSetChanged); } + @SuppressLint("NotifyDataSetChanged") + public void replaceFile(OCFile file) { + mFiles.remove(file); + mFiles.add(file); + mFiles = sortOrder.sortCloudFiles(mFiles); + notifyDataSetChanged(); + } + private void parseShares(List objects) { List shares = new ArrayList<>(); diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java index 3af6eb035c0a..a69f02194b68 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -1366,12 +1366,6 @@ public void listDirectory(OCFile directory, OCFile file, boolean onlyOnDevice, b } } - public void updateOCFile(OCFile file) { - List mFiles = mAdapter.getFiles(); - mFiles.set(mFiles.indexOf(file), file); - mAdapter.notifyItemChanged(file); - } - private void updateLayout() { // decide grid vs list view if (isGridViewPreferred(mFile)) {