From 8b9e2b774f9de0a4b1f3cfd93835c02547c4bdcd Mon Sep 17 00:00:00 2001 From: alperozturk96 Date: Fri, 10 Jul 2026 15:25:45 +0200 Subject: [PATCH] fix(file-data-storage-manager): save file with parent network on main thread exception Signed-off-by: alperozturk96 --- .../ui/activity/FileDisplayActivity.kt | 4 +++- .../ui/dialog/CreateFolderDialogFragment.kt | 22 +++++++++++++------ 2 files changed, 18 insertions(+), 8 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..b9bf1e172f4a 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 @@ -1130,7 +1130,9 @@ class FileDisplayActivity : ) } } else { - fileDataStorageManager.addCreateFileOfflineOperation(filePaths, decryptedRemotePaths) + lifecycleScope.launch(Dispatchers.IO) { + fileDataStorageManager.addCreateFileOfflineOperation(filePaths, decryptedRemotePaths) + } } } } else { diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt b/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt index cc3902d3231e..12fddaf4fbf2 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt @@ -19,6 +19,7 @@ import android.view.View import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment +import androidx.lifecycle.lifecycleScope import com.google.android.material.button.MaterialButton import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.common.collect.Sets @@ -40,6 +41,9 @@ import com.owncloud.android.ui.activity.FileDisplayActivity import com.owncloud.android.utils.DisplayUtils import com.owncloud.android.utils.KeyboardUtils import com.owncloud.android.utils.theme.ViewThemeUtils +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject /** @@ -198,13 +202,17 @@ class CreateFolderDialogFragment : componentGetter?.fileOperationsHelper?.createFolder(path, encrypted) } else { Log_OC.d(TAG, "Network not available, creating offline operation") - fileDataStorageManager.addCreateFolderOfflineOperation( - path, - newFolderName, - parentFolder?.fileId - ) - - fda?.refreshCurrentDirectory() + lifecycleScope.launch(Dispatchers.IO) { + fileDataStorageManager.addCreateFolderOfflineOperation( + path, + newFolderName, + parentFolder?.fileId + ) + + withContext(Dispatchers.Main) { + fda?.refreshCurrentDirectory() + } + } } } }