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)) {