From a09190f264e5dc53f1fb88cc941745f0b9721d77 Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Mon, 13 Jul 2026 14:40:11 +0200 Subject: [PATCH 1/2] fix Can not perform this action after onSaveInstanceState Signed-off-by: alperozturk96 --- .../ui/activity/FileDisplayActivity.kt | 67 +++++++++---------- 1 file changed, 30 insertions(+), 37 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 1ef105280bb8..d07f287f59a9 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 @@ -714,17 +714,12 @@ class FileDisplayActivity : } prepareFragmentBeforeCommit(showSortListGroup) - commitFragment( - fragment, - object : CompletionCallback { - override fun onComplete(isFragmentCommitted: Boolean) { - Log_OC.d( - TAG, - "Left fragment committed: $isFragmentCommitted" - ) - } - } - ) + commitFragment(fragment) { + Log_OC.d( + TAG, + "Left fragment committed: $it" + ) + } } private fun prepareFragmentBeforeCommit(showSortListGroup: Boolean) { @@ -737,17 +732,20 @@ class FileDisplayActivity : showSortListGroup(showSortListGroup) } - private fun commitFragment(fragment: Fragment, callback: CompletionCallback) { + private fun commitFragment(fragment: Fragment, callback: (Boolean) -> Unit) { val fragmentManager = supportFragmentManager - if (this.isActive() && !fragmentManager.isDestroyed) { - val transaction = fragmentManager.beginTransaction() - transaction.addToBackStack(null) - transaction.replace(R.id.left_fragment_container, fragment, TAG_LIST_OF_FILES) - transaction.commit() - callback.onComplete(true) - } else { - callback.onComplete(false) + if (!isActive() || fragmentManager.isDestroyed || fragmentManager.isStateSaved) { + callback(false) + return } + + fragmentManager.beginTransaction().run { + addToBackStack(null) + replace(R.id.left_fragment_container, fragment, TAG_LIST_OF_FILES) + commit() + } + + callback(true) } private fun getOCFileListFragmentFromFile(transaction: TransactionInterface) { @@ -767,24 +765,19 @@ class FileDisplayActivity : val fm = supportFragmentManager if (!fm.isStateSaved && !fm.isDestroyed) { prepareFragmentBeforeCommit(true) - commitFragment( - listOfFiles, - object : CompletionCallback { - override fun onComplete(value: Boolean) { - if (value) { - Log_OC.d(TAG, "OCFileListFragment committed, executing pending transaction") - fm.executePendingTransactions() - transaction.onOCFileListFragmentComplete(listOfFiles) - } else { - Log_OC.d( - TAG, - "OCFileListFragment not committed, skipping executing " + - "pending transaction" - ) - } - } + commitFragment(listOfFiles) { + if (it) { + Log_OC.d(TAG, "OCFileListFragment committed, executing pending transaction") + fm.executePendingTransactions() + transaction.onOCFileListFragmentComplete(listOfFiles) + } else { + Log_OC.d( + TAG, + "OCFileListFragment not committed, skipping executing " + + "pending transaction" + ) } - ) + } } } } From 00ccbf92bc46ea80273c13940ac5a5e5a91935ec Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Mon, 13 Jul 2026 14:48:43 +0200 Subject: [PATCH 2/2] remove callback Signed-off-by: alperozturk96 --- .../ui/activity/FileDisplayActivity.kt | 41 +++++++------------ 1 file changed, 14 insertions(+), 27 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 d07f287f59a9..1a91f73856d3 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 @@ -714,12 +714,7 @@ class FileDisplayActivity : } prepareFragmentBeforeCommit(showSortListGroup) - commitFragment(fragment) { - Log_OC.d( - TAG, - "Left fragment committed: $it" - ) - } + commitFragment(fragment) } private fun prepareFragmentBeforeCommit(showSortListGroup: Boolean) { @@ -732,20 +727,21 @@ class FileDisplayActivity : showSortListGroup(showSortListGroup) } - private fun commitFragment(fragment: Fragment, callback: (Boolean) -> Unit) { + private fun commitFragment(fragment: Fragment): Boolean { val fragmentManager = supportFragmentManager if (!isActive() || fragmentManager.isDestroyed || fragmentManager.isStateSaved) { - callback(false) - return + Log_OC.d(TAG, "${fragment.javaClass.simpleName} not committed, skipping") + return false } - fragmentManager.beginTransaction().run { - addToBackStack(null) - replace(R.id.left_fragment_container, fragment, TAG_LIST_OF_FILES) - commit() - } + fragmentManager.beginTransaction() + .addToBackStack(null) + .replace(R.id.left_fragment_container, fragment, TAG_LIST_OF_FILES) + .commit() + + Log_OC.d(TAG, "${fragment.javaClass.simpleName} committed, pending transaction") - callback(true) + return true } private fun getOCFileListFragmentFromFile(transaction: TransactionInterface) { @@ -765,18 +761,9 @@ class FileDisplayActivity : val fm = supportFragmentManager if (!fm.isStateSaved && !fm.isDestroyed) { prepareFragmentBeforeCommit(true) - commitFragment(listOfFiles) { - if (it) { - Log_OC.d(TAG, "OCFileListFragment committed, executing pending transaction") - fm.executePendingTransactions() - transaction.onOCFileListFragmentComplete(listOfFiles) - } else { - Log_OC.d( - TAG, - "OCFileListFragment not committed, skipping executing " + - "pending transaction" - ) - } + if (commitFragment(listOfFiles)) { + fm.executePendingTransactions() + transaction.onOCFileListFragmentComplete(listOfFiles) } } }