From 8bdbef434437883e30a4ce6aed127c96d99ef254 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Nicolas <6371790+pynicolas@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:23:45 +0100 Subject: [PATCH] Fix crash after returning result for an external call (#104) --- app/src/main/java/org/fairscan/app/MainActivity.kt | 9 --------- app/src/main/java/org/fairscan/app/SessionViewModel.kt | 10 +++++++++- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/fairscan/app/MainActivity.kt b/app/src/main/java/org/fairscan/app/MainActivity.kt index dea81f6..c110149 100644 --- a/app/src/main/java/org/fairscan/app/MainActivity.kt +++ b/app/src/main/java/org/fairscan/app/MainActivity.kt @@ -78,8 +78,6 @@ import java.io.File class MainActivity : ComponentActivity() { - private lateinit var sessionDir: File - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) initLibraries() @@ -220,13 +218,6 @@ class MainActivity : ComponentActivity() { } } - override fun onDestroy() { - super.onDestroy() - if (resolveLaunchMode(intent) == LaunchMode.EXTERNAL_SCAN_TO_PDF) { - sessionDir.deleteRecursively() - } - } - private fun resolveLaunchMode(intent: Intent?): LaunchMode { return when (intent?.action) { "org.fairscan.app.action.SCAN_TO_PDF" -> LaunchMode.EXTERNAL_SCAN_TO_PDF diff --git a/app/src/main/java/org/fairscan/app/SessionViewModel.kt b/app/src/main/java/org/fairscan/app/SessionViewModel.kt index e08bf99..7b0a932 100644 --- a/app/src/main/java/org/fairscan/app/SessionViewModel.kt +++ b/app/src/main/java/org/fairscan/app/SessionViewModel.kt @@ -24,7 +24,7 @@ import java.util.UUID class SessionViewModel( app: Application, - launchMode: LaunchMode, + val launchMode: LaunchMode, appContainer: AppContainer ) : AndroidViewModel(app) { @@ -43,6 +43,14 @@ class SessionViewModel( ) val imageRepository: ImageRepository = sessionContainer.imageRepository + + override fun onCleared() { + super.onCleared() + + if (launchMode == LaunchMode.EXTERNAL_SCAN_TO_PDF) { + sessionDir.deleteRecursively() + } + } } class ScanSessionContainer(