From 740b855ffc60c19ee155a8cee08d7146c4da875c Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 1 Dec 2025 18:28:08 +0200 Subject: [PATCH] patch expo-modules-core lifecycle fix --- patches/expo-modules-core+3.0.24.patch | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/patches/expo-modules-core+3.0.24.patch b/patches/expo-modules-core+3.0.24.patch index f3d9bfd149..d396099932 100644 --- a/patches/expo-modules-core+3.0.24.patch +++ b/patches/expo-modules-core+3.0.24.patch @@ -1,3 +1,32 @@ +diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultLauncher.kt b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultLauncher.kt +index d300fc2..0890878 100644 +--- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultLauncher.kt ++++ b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/activityresult/AppContextActivityResultLauncher.kt +@@ -3,8 +3,8 @@ package expo.modules.kotlin.activityresult + import androidx.activity.result.ActivityResultCallback + import androidx.activity.result.contract.ActivityResultContract + import java.io.Serializable ++import kotlinx.coroutines.suspendCancellableCoroutine + import kotlin.coroutines.resume +-import kotlin.coroutines.suspendCoroutine + + /** + * A launcher for a previously-[AppContextActivityResultCaller.registerForActivityResult] prepared call +@@ -22,8 +22,12 @@ abstract class AppContextActivityResultLauncher { + */ + abstract fun launch(input: I, callback: ActivityResultCallback) + +- suspend fun launch(input: I): O = suspendCoroutine { continuation -> +- launch(input) { output -> continuation.resume(output) } ++ suspend fun launch(input: I): O = suspendCancellableCoroutine { continuation -> ++ launch(input) { output -> ++ if (continuation.isActive) { ++ continuation.resume(output) ++ } ++ } + } + + abstract val contract: AppContextActivityResultContract diff --git a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt b/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt index 47c4d15..afe138d 100644 --- a/node_modules/expo-modules-core/android/src/main/java/expo/modules/kotlin/devtools/ExpoNetworkInspectOkHttpInterceptors.kt