fix(android): application fallback for startActivity (#10062)

This commit is contained in:
Samuel Schultze
2022-11-07 13:28:09 -03:00
committed by GitHub
parent 25c862e148
commit f3a5c16530

View File

@ -373,6 +373,7 @@ function initLifecycleCallbacks() {
}); });
let activitiesStarted = 0; let activitiesStarted = 0;
let nativescriptActivity: androidx.appcompat.app.AppCompatActivity = undefined;
const lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks(<any>{ const lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks(<any>{
onActivityCreated: <any>profile('onActivityCreated', function (activity: androidx.appcompat.app.AppCompatActivity, savedInstanceState: android.os.Bundle) { onActivityCreated: <any>profile('onActivityCreated', function (activity: androidx.appcompat.app.AppCompatActivity, savedInstanceState: android.os.Bundle) {
@ -382,6 +383,10 @@ function initLifecycleCallbacks() {
androidApp.startActivity = activity; androidApp.startActivity = activity;
} }
if (!nativescriptActivity && (<any>activity)?.isNativeScriptActivity) {
nativescriptActivity = activity;
}
notifyActivityCreated(activity, <any>savedInstanceState, undefined); notifyActivityCreated(activity, <any>savedInstanceState, undefined);
if (appCommon.hasListeners(appCommon.displayedEvent)) { if (appCommon.hasListeners(appCommon.displayedEvent)) {
@ -394,8 +399,17 @@ function initLifecycleCallbacks() {
androidApp.foregroundActivity = undefined; androidApp.foregroundActivity = undefined;
} }
if (activity === nativescriptActivity) {
nativescriptActivity = undefined;
}
if (activity === androidApp.startActivity) { if (activity === androidApp.startActivity) {
androidApp.startActivity = undefined; 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(<AndroidActivityEventData>{ androidApp.notify(<AndroidActivityEventData>{