Skip to content

Commit 3f2a7c9

Browse files
Merge pull request #17316 from nextcloud/fix/network-on-main-thread-exception
fix(file-data-storage-manager): save file with parent network on main thread
2 parents 9476844 + 8b9e2b7 commit 3f2a7c9

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1115,7 +1115,9 @@ class FileDisplayActivity :
11151115
)
11161116
}
11171117
} else {
1118-
fileDataStorageManager.addCreateFileOfflineOperation(filePaths, decryptedRemotePaths)
1118+
lifecycleScope.launch(Dispatchers.IO) {
1119+
fileDataStorageManager.addCreateFileOfflineOperation(filePaths, decryptedRemotePaths)
1120+
}
11191121
}
11201122
}
11211123
} else {

app/src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import android.view.View
1919
import android.widget.TextView
2020
import androidx.appcompat.app.AlertDialog
2121
import androidx.fragment.app.DialogFragment
22+
import androidx.lifecycle.lifecycleScope
2223
import com.google.android.material.button.MaterialButton
2324
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2425
import com.google.common.collect.Sets
@@ -40,6 +41,9 @@ import com.owncloud.android.ui.activity.FileDisplayActivity
4041
import com.owncloud.android.utils.DisplayUtils
4142
import com.owncloud.android.utils.KeyboardUtils
4243
import com.owncloud.android.utils.theme.ViewThemeUtils
44+
import kotlinx.coroutines.Dispatchers
45+
import kotlinx.coroutines.launch
46+
import kotlinx.coroutines.withContext
4347
import javax.inject.Inject
4448

4549
/**
@@ -198,13 +202,17 @@ class CreateFolderDialogFragment :
198202
componentGetter?.fileOperationsHelper?.createFolder(path, encrypted)
199203
} else {
200204
Log_OC.d(TAG, "Network not available, creating offline operation")
201-
fileDataStorageManager.addCreateFolderOfflineOperation(
202-
path,
203-
newFolderName,
204-
parentFolder?.fileId
205-
)
206-
207-
fda?.refreshCurrentDirectory()
205+
lifecycleScope.launch(Dispatchers.IO) {
206+
fileDataStorageManager.addCreateFolderOfflineOperation(
207+
path,
208+
newFolderName,
209+
parentFolder?.fileId
210+
)
211+
212+
withContext(Dispatchers.Main) {
213+
fda?.refreshCurrentDirectory()
214+
}
215+
}
208216
}
209217
}
210218
}

0 commit comments

Comments
 (0)