diff --git a/tests/app/app/mainPage.ts b/tests/app/app/mainPage.ts index 18b64fce2..3f6394614 100644 --- a/tests/app/app/mainPage.ts +++ b/tests/app/app/mainPage.ts @@ -24,7 +24,7 @@ page.on(Page.navigatedToEvent, onNavigatedTo); function onNavigatedTo(args) { let label = new Label(); label.text = "Running non-UI tests..."; - page.content = label + page.content = label; args.object.off(Page.navigatedToEvent, onNavigatedTo); setTimeout(function () { tests.runAll(); diff --git a/tests/app/application-tests.android.ts b/tests/app/application-tests.android.ts index 064a831e2..143ffe7b9 100644 --- a/tests/app/application-tests.android.ts +++ b/tests/app/application-tests.android.ts @@ -43,6 +43,7 @@ export var testAndroidApplicationInitialized = function () { TKUnit.assert(app.android.context, "Android context not initialized."); TKUnit.assert(app.android.currentContext, "Android currentContext not initialized."); TKUnit.assert(app.android.foregroundActivity, "Android foregroundActivity not initialized."); + TKUnit.assert(app.android.foregroundActivity.isNativeScriptActivity, "Andorid foregroundActivity.isNativeScriptActivity is true"); TKUnit.assert(app.android.startActivity, "Android startActivity not initialized."); TKUnit.assert(app.android.nativeApp, "Android nativeApp not initialized."); TKUnit.assert(app.android.packageName, "Android packageName not initialized."); diff --git a/tns-core-modules/application/application.android.ts b/tns-core-modules/application/application.android.ts index 9b356031b..7210055b0 100644 --- a/tns-core-modules/application/application.android.ts +++ b/tns-core-modules/application/application.android.ts @@ -4,7 +4,6 @@ import frame = require("ui/frame"); import observable = require("data/observable"); import * as typesModule from "utils/types"; import * as enumsModule from "ui/enums"; -import { isNativeScriptActivity } from "ui/frame/activity"; let enums: typeof enumsModule; global.moduleMerge(appModule, exports); @@ -14,6 +13,9 @@ function initLifecycleCallbacks() { // TODO: Verify whether the logic for triggerring application-wide events based on Activity callbacks is working properly let lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({ onActivityCreated: function (activity: any, bundle: any) { + + console.log("------> onActivityCreated: " + activity + " activity.isNativeScriptActivity: " + activity.isNativeScriptActivity); + // Set app theme after launch screen was used during startup let activityInfo = activity.getPackageManager().getActivityInfo(activity.getComponentName(), android.content.pm.PackageManager.GET_META_DATA); if (activityInfo.metaData) { @@ -52,7 +54,7 @@ function initLifecycleCallbacks() { androidApp.foregroundActivity = undefined; } - if (isNativeScriptActivity(activity)) { + if (activity.isNativeScriptActivity) { androidApp.paused = true; if (typedExports.onSuspend) { @@ -70,7 +72,7 @@ function initLifecycleCallbacks() { onActivityResumed: function (activity: any) { androidApp.foregroundActivity = activity; - if (isNativeScriptActivity(activity)) { + if (activity.isNativeScriptActivity) { if (typedExports.onResume) { typedExports.onResume(); } diff --git a/tns-core-modules/ui/frame/activity.android.ts b/tns-core-modules/ui/frame/activity.android.ts index 6d9ba2724..229c9a4df 100644 --- a/tns-core-modules/ui/frame/activity.android.ts +++ b/tns-core-modules/ui/frame/activity.android.ts @@ -3,12 +3,16 @@ import {setActivityCallbacks, AndroidActivityCallbacks} from "ui/frame"; @JavaProxy("com.tns.NativeScriptActivity") class NativeScriptActivity extends android.app.Activity { private _callbacks: AndroidActivityCallbacks; + public isNativeScriptActivity; constructor() { super(); return global.__native(this); } protected onCreate(savedInstanceState: android.os.Bundle): void { + // Set isNativeScriptActivity in onCreate. + // The JS construcotr might not be called beacuse the activity is created from Andoird. + this.isNativeScriptActivity = true; if (!this._callbacks) { setActivityCallbacks(this); } @@ -43,8 +47,4 @@ class NativeScriptActivity extends android.app.Activity { protected onActivityResult(requestCode: number, resultCode: number, data: android.content.Intent): void { this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult); } -} - -export function isNativeScriptActivity(activity: android.app.Activity): boolean { - return activity instanceof NativeScriptActivity; } \ No newline at end of file diff --git a/tns-core-modules/ui/frame/activity.d.ts b/tns-core-modules/ui/frame/activity.d.ts deleted file mode 100644 index 3afed6e97..000000000 --- a/tns-core-modules/ui/frame/activity.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module "ui/frame/activity" { - export function isNativeScriptActivity(activity: any/* android.app.Activity */): boolean; -} \ No newline at end of file