From 435de6c2e887388c971bbbadb86b1ba63b616f32 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:43:39 +0100 Subject: [PATCH] Fix export failures with some cloud storage providers (#106) --- .../org/fairscan/app/ui/screens/export/ExportViewModel.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt index 0d7bfaa..0f76270 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt @@ -194,7 +194,11 @@ class ExportViewModel(container: AppContainer, val imageRepository: ImageReposit fun onRequestSave(context: Context) { viewModelScope.launch { try { - save(context) + // Must not run on the main thread: some SAF providers (e.g. Nextcloud) + // may perform network I/O + withContext(Dispatchers.IO) { + save(context) + } } catch (e: MissingExportDirPermissionException) { logger.e("FairScan", "Missing export dir permission", e) _uiState.update {