From ba19d09a1f29793169622f65a96e4853c62f44c1 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Wed, 8 Apr 2026 07:51:26 +0200 Subject: [PATCH 1/2] Fix: open file from homescreen when app is closed Signed-off-by: tobiasKaminsky --- .../ui/activity/FileDisplayActivity.kt | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 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 05178e85acaa..3c362ce87681 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 @@ -683,33 +683,27 @@ class FileDisplayActivity : val currentFragment = leftFragment - if (currentFragment == null) { - Log_OC.e(TAG, "Can't open file intent, left fragment is null") - return - } - - val fileListFragment: OCFileListFragment = when { - currentFragment is OCFileListFragment && currentFragment !is GalleryFragment -> { - currentFragment + if (currentFragment !is OCFileListFragment || currentFragment is GalleryFragment) { + val name = if (currentFragment == null) { + "null" + } else { + currentFragment::class.simpleName } - else -> { - Log_OC.w( - TAG, - "Left fragment is not a valid OCFileListFragment " + - "(was ${currentFragment::class.simpleName}). " + - "Replacing with OCFileListFragment." - ) - val newFragment = OCFileListFragment() - setLeftFragment(newFragment, false) - setupHomeSearchToolbarWithSortAndListButtons() - newFragment - } + Log_OC.w( + TAG, + "Left fragment is not a valid OCFileListFragment (was $name). " + + "Replacing with OCFileListFragment." + ) + val newFragment = OCFileListFragment() + setLeftFragment(newFragment, false) } // Post to main thread to ensure fragment is fully attached before interacting Handler(Looper.getMainLooper()).post { - fileListFragment.onItemClicked(file) + leftFragment = supportFragmentManager.findFragmentByTag(TAG_LIST_OF_FILES) + setupHomeSearchToolbarWithSortAndListButtons() + (leftFragment as OCFileListFragment).onItemClicked(file) } } From c6ca05e60a8f97211a86aa76c2a91996ec31e847 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Wed, 8 Apr 2026 13:18:26 +0200 Subject: [PATCH 2/2] simplify Signed-off-by: alperozturk96 --- .../ui/activity/FileDisplayActivity.kt | 31 +++++++------------ 1 file changed, 12 insertions(+), 19 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 3c362ce87681..3e1dedeeb797 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 @@ -675,35 +675,28 @@ class FileDisplayActivity : // endregion private fun onOpenFileIntent(intent: Intent) { - val file = getFileFromIntent(intent) - if (file == null) { + val file = getFileFromIntent(intent) ?: run { Log_OC.e(TAG, "Can't open file intent, file is null") return } - val currentFragment = leftFragment - - if (currentFragment !is OCFileListFragment || currentFragment is GalleryFragment) { - val name = if (currentFragment == null) { - "null" - } else { - currentFragment::class.simpleName - } - + // Ensure we have the correct fragment type + if (leftFragment !is OCFileListFragment || leftFragment is GalleryFragment) { Log_OC.w( TAG, - "Left fragment is not a valid OCFileListFragment (was $name). " + - "Replacing with OCFileListFragment." + "Invalid fragment (${leftFragment?.let { it::class.simpleName } ?: "null"}). " + + "Replacing." ) - val newFragment = OCFileListFragment() - setLeftFragment(newFragment, false) + setLeftFragment(OCFileListFragment(), false) } - // Post to main thread to ensure fragment is fully attached before interacting + // Ensure fragment is attached before interaction Handler(Looper.getMainLooper()).post { - leftFragment = supportFragmentManager.findFragmentByTag(TAG_LIST_OF_FILES) - setupHomeSearchToolbarWithSortAndListButtons() - (leftFragment as OCFileListFragment).onItemClicked(file) + (supportFragmentManager.findFragmentByTag(TAG_LIST_OF_FILES) as? OCFileListFragment)?.let { fragment -> + leftFragment = fragment + setupHomeSearchToolbarWithSortAndListButtons() + fragment.onItemClicked(file) + } } }