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 fc9fcce90aea..9ba9b55e19f0 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 @@ -813,7 +813,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 00f9e2933d17..33d84971ab3b 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 @@ -836,6 +836,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)) {