From f3a5c16530f1b247f59960cc20280f65fdfc1715 Mon Sep 17 00:00:00 2001 From: Samuel Schultze Date: Mon, 7 Nov 2022 13:28:09 -0300 Subject: [PATCH] fix(android): application fallback for `startActivity` (#10062) --- packages/core/application/index.android.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/core/application/index.android.ts b/packages/core/application/index.android.ts index 19f671b8b..99eecd608 100644 --- a/packages/core/application/index.android.ts +++ b/packages/core/application/index.android.ts @@ -373,6 +373,7 @@ function initLifecycleCallbacks() { }); let activitiesStarted = 0; + let nativescriptActivity: androidx.appcompat.app.AppCompatActivity = undefined; const lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({ onActivityCreated: profile('onActivityCreated', function (activity: androidx.appcompat.app.AppCompatActivity, savedInstanceState: android.os.Bundle) { @@ -382,6 +383,10 @@ function initLifecycleCallbacks() { androidApp.startActivity = activity; } + if (!nativescriptActivity && (activity)?.isNativeScriptActivity) { + nativescriptActivity = activity; + } + notifyActivityCreated(activity, savedInstanceState, undefined); if (appCommon.hasListeners(appCommon.displayedEvent)) { @@ -394,8 +399,17 @@ function initLifecycleCallbacks() { androidApp.foregroundActivity = undefined; } + if (activity === nativescriptActivity) { + nativescriptActivity = undefined; + } + if (activity === androidApp.startActivity) { androidApp.startActivity = undefined; + + // Fallback for start activity when it is destroyed but we have a known nativescript activity + if (nativescriptActivity) { + androidApp.startActivity = nativescriptActivity; + } } androidApp.notify({