From 0f18695bd9bb2e56117eb961aca81031898c295e Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Fri, 19 Jun 2026 15:22:19 +0200 Subject: [PATCH 1/3] fix directory checking after rename operation completion Signed-off-by: alperozturk96 --- .../com/owncloud/android/ui/activity/FileDisplayActivity.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index d91dcf0dc326..70344d45fecc 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -2375,7 +2375,11 @@ class FileDisplayActivity : } val file = storageManager.getFileById(renamedFile.parentId) - if (file != null && file == getCurrentDir()) { + val isCurrentDirParentDirOfGivenFile = (file != null && file == currentDir) + + // if current dir is root user may be in shared root or favorite root thus + // checking parent of current dir will always fail + if (currentDir?.isRootDirectory == true || isCurrentDirParentDirOfGivenFile) { fileListFragment?.adapter?.updateFile(renamedFile) } From 5bf1da388179f554824b55320367fca9424d4f2c Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Fri, 19 Jun 2026 15:52:26 +0200 Subject: [PATCH 2/3] fix refresh collision with search task Signed-off-by: alperozturk96 --- .../android/ui/activity/FileDisplayActivity.kt | 7 ++++++- .../android/ui/fragment/OCFileListFragment.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index 70344d45fecc..e195bd7e3ed7 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -2380,7 +2380,12 @@ class FileDisplayActivity : // if current dir is root user may be in shared root or favorite root thus // checking parent of current dir will always fail if (currentDir?.isRootDirectory == true || isCurrentDirParentDirOfGivenFile) { - fileListFragment?.adapter?.updateFile(renamedFile) + val fragment = fileListFragment + if (fragment?.isSearchFragment == true) { + fragment.cancelAndRetriggerSearch() + } else { + fragment?.adapter?.updateFile(renamedFile) + } } refreshGalleryFragmentIfNeeded() 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 45fb1fff7c46..b82b2c09ed12 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 @@ -2122,6 +2122,16 @@ public boolean isSearchFragment() { return searchFragment; } + public void cancelAndRetriggerSearch() { + if (searchTask != null) { + searchTask.cancel(); + searchTask = null; + } + if (searchEvent != null) { + handleSearchEvent(searchEvent); + } + } + /** * De-/select all elements in the current list view. * From 631dd87de57c9f26400a754a4f89d934982b36b6 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Fri, 19 Jun 2026 15:58:31 +0200 Subject: [PATCH 3/3] better comments Signed-off-by: alperozturk96 --- .../owncloud/android/ui/activity/FileDisplayActivity.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index e195bd7e3ed7..f6e3670b06e6 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -2377,10 +2377,13 @@ class FileDisplayActivity : val file = storageManager.getFileById(renamedFile.parentId) val isCurrentDirParentDirOfGivenFile = (file != null && file == currentDir) - // if current dir is root user may be in shared root or favorite root thus - // checking parent of current dir will always fail + // checking current dir against renamed file's parent will always fail when user is in Shared/Favorites root. + // thus check is current dir is root or not as well if (currentDir?.isRootDirectory == true || isCurrentDirParentDirOfGivenFile) { val fragment = fileListFragment + + // OCFileSearchTask may still run during rename, so use a single refresh path to avoid + // flicker/inconsistent filenames. if (fragment?.isSearchFragment == true) { fragment.cancelAndRetriggerSearch() } else {