mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #2898 from NativeScript/snapshot-activity-fix
Snapshot fix
This commit is contained in:
@@ -24,7 +24,7 @@ page.on(Page.navigatedToEvent, onNavigatedTo);
|
|||||||
function onNavigatedTo(args) {
|
function onNavigatedTo(args) {
|
||||||
let label = new Label();
|
let label = new Label();
|
||||||
label.text = "Running non-UI tests...";
|
label.text = "Running non-UI tests...";
|
||||||
page.content = label
|
page.content = label;
|
||||||
args.object.off(Page.navigatedToEvent, onNavigatedTo);
|
args.object.off(Page.navigatedToEvent, onNavigatedTo);
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
tests.runAll();
|
tests.runAll();
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ export var testAndroidApplicationInitialized = function () {
|
|||||||
TKUnit.assert(app.android.context, "Android context not initialized.");
|
TKUnit.assert(app.android.context, "Android context not initialized.");
|
||||||
TKUnit.assert(app.android.currentContext, "Android currentContext 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, "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.startActivity, "Android startActivity not initialized.");
|
||||||
TKUnit.assert(app.android.nativeApp, "Android nativeApp not initialized.");
|
TKUnit.assert(app.android.nativeApp, "Android nativeApp not initialized.");
|
||||||
TKUnit.assert(app.android.packageName, "Android packageName not initialized.");
|
TKUnit.assert(app.android.packageName, "Android packageName not initialized.");
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import frame = require("ui/frame");
|
|||||||
import observable = require("data/observable");
|
import observable = require("data/observable");
|
||||||
import * as typesModule from "utils/types";
|
import * as typesModule from "utils/types";
|
||||||
import * as enumsModule from "ui/enums";
|
import * as enumsModule from "ui/enums";
|
||||||
import { isNativeScriptActivity } from "ui/frame/activity";
|
|
||||||
let enums: typeof enumsModule;
|
let enums: typeof enumsModule;
|
||||||
|
|
||||||
global.moduleMerge(appModule, exports);
|
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
|
// TODO: Verify whether the logic for triggerring application-wide events based on Activity callbacks is working properly
|
||||||
let lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({
|
let lifecycleCallbacks = new android.app.Application.ActivityLifecycleCallbacks({
|
||||||
onActivityCreated: function (activity: any, bundle: any) {
|
onActivityCreated: function (activity: any, bundle: any) {
|
||||||
|
|
||||||
|
console.log("------> onActivityCreated: " + activity + " activity.isNativeScriptActivity: " + activity.isNativeScriptActivity);
|
||||||
|
|
||||||
// Set app theme after launch screen was used during startup
|
// Set app theme after launch screen was used during startup
|
||||||
let activityInfo = activity.getPackageManager().getActivityInfo(activity.getComponentName(), android.content.pm.PackageManager.GET_META_DATA);
|
let activityInfo = activity.getPackageManager().getActivityInfo(activity.getComponentName(), android.content.pm.PackageManager.GET_META_DATA);
|
||||||
if (activityInfo.metaData) {
|
if (activityInfo.metaData) {
|
||||||
@@ -52,7 +54,7 @@ function initLifecycleCallbacks() {
|
|||||||
androidApp.foregroundActivity = undefined;
|
androidApp.foregroundActivity = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNativeScriptActivity(activity)) {
|
if (activity.isNativeScriptActivity) {
|
||||||
androidApp.paused = true;
|
androidApp.paused = true;
|
||||||
|
|
||||||
if (typedExports.onSuspend) {
|
if (typedExports.onSuspend) {
|
||||||
@@ -70,7 +72,7 @@ function initLifecycleCallbacks() {
|
|||||||
onActivityResumed: function (activity: any) {
|
onActivityResumed: function (activity: any) {
|
||||||
androidApp.foregroundActivity = activity;
|
androidApp.foregroundActivity = activity;
|
||||||
|
|
||||||
if (isNativeScriptActivity(activity)) {
|
if (activity.isNativeScriptActivity) {
|
||||||
if (typedExports.onResume) {
|
if (typedExports.onResume) {
|
||||||
typedExports.onResume();
|
typedExports.onResume();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,16 @@ import {setActivityCallbacks, AndroidActivityCallbacks} from "ui/frame";
|
|||||||
@JavaProxy("com.tns.NativeScriptActivity")
|
@JavaProxy("com.tns.NativeScriptActivity")
|
||||||
class NativeScriptActivity extends android.app.Activity {
|
class NativeScriptActivity extends android.app.Activity {
|
||||||
private _callbacks: AndroidActivityCallbacks;
|
private _callbacks: AndroidActivityCallbacks;
|
||||||
|
public isNativeScriptActivity;
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
return global.__native(this);
|
return global.__native(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected onCreate(savedInstanceState: android.os.Bundle): void {
|
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) {
|
if (!this._callbacks) {
|
||||||
setActivityCallbacks(this);
|
setActivityCallbacks(this);
|
||||||
}
|
}
|
||||||
@@ -44,7 +48,3 @@ class NativeScriptActivity extends android.app.Activity {
|
|||||||
this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult);
|
this._callbacks.onActivityResult(this, requestCode, resultCode, data, super.onActivityResult);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isNativeScriptActivity(activity: android.app.Activity): boolean {
|
|
||||||
return activity instanceof NativeScriptActivity;
|
|
||||||
}
|
|
||||||
3
tns-core-modules/ui/frame/activity.d.ts
vendored
3
tns-core-modules/ui/frame/activity.d.ts
vendored
@@ -1,3 +0,0 @@
|
|||||||
declare module "ui/frame/activity" {
|
|
||||||
export function isNativeScriptActivity(activity: any/* android.app.Activity */): boolean;
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user