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 f398dd6d8c3d..9e08a64ae8ce 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 @@ -801,7 +801,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 cd99bf1a2dc7..e17fc275ed40 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 @@ -825,6 +825,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 4bd1e91c379c..41c256e90c33 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 @@ -1354,12 +1354,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)) {