From e9cd66a852361d01a66b9a1f39407da53f5c5527 Mon Sep 17 00:00:00 2001 From: vakrilov Date: Wed, 22 Jul 2015 16:33:26 +0300 Subject: [PATCH] Add type checks fro all app lifecycle events --- application/application.android.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/application/application.android.ts b/application/application.android.ts index ead87cd67..1131a5958 100644 --- a/application/application.android.ts +++ b/application/application.android.ts @@ -18,6 +18,10 @@ var initEvents = function () { // TODO: Verify whether the logic for triggerring application-wide events based on Activity callbacks is working properly var lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({ onActivityCreated: function (activity: any, bundle: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + if (!androidApp.startActivity) { androidApp.startActivity = activity; @@ -32,6 +36,10 @@ var initEvents = function () { }, onActivityDestroyed: function (activity: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + // Clear the current activity reference to prevent leak if (activity === androidApp.foregroundActivity) { androidApp.foregroundActivity = undefined; @@ -62,6 +70,10 @@ var initEvents = function () { }, onActivityPaused: function (activity: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + if (activity === androidApp.foregroundActivity) { if (exports.onSuspend) { exports.onSuspend(); @@ -78,6 +90,10 @@ var initEvents = function () { }, onActivityResumed: function (activity: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + if (activity === androidApp.foregroundActivity) { if (exports.onResume) { exports.onResume(); @@ -94,6 +110,10 @@ var initEvents = function () { }, onActivitySaveInstanceState: function (activity: any, bundle: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + androidApp.notify({ eventName: "saveActivityState", object: androidApp, activity: activity, bundle: bundle }); if (androidApp.onSaveActivityState) { @@ -102,6 +122,10 @@ var initEvents = function () { }, onActivityStarted: function (activity: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + androidApp.foregroundActivity = activity; androidApp.notify({ eventName: "activityStarted", object: androidApp, activity: activity }); @@ -112,6 +136,10 @@ var initEvents = function () { }, onActivityStopped: function (activity: any) { + if (!(activity instanceof (com).tns.NativeScriptActivity)) { + return; + } + androidApp.notify({ eventName: "activityStopped", object: androidApp, activity: activity }); if (androidApp.onActivityStopped) {