mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Add 'displayed' event for android, close to the Displayed point logged in the android monitor for activity startup
This commit is contained in:
@@ -21,6 +21,7 @@ import { UnhandledErrorEventData, iOSApplication, AndroidApplication, CssChanged
|
|||||||
|
|
||||||
export const launchEvent = "launch";
|
export const launchEvent = "launch";
|
||||||
export const suspendEvent = "suspend";
|
export const suspendEvent = "suspend";
|
||||||
|
export const displayedEvent = "displayed";
|
||||||
export const resumeEvent = "resume";
|
export const resumeEvent = "resume";
|
||||||
export const exitEvent = "exit";
|
export const exitEvent = "exit";
|
||||||
export const lowMemoryEvent = "lowMemory";
|
export const lowMemoryEvent = "lowMemory";
|
||||||
@@ -45,6 +46,7 @@ export let ios = undefined;
|
|||||||
export const on: typeof events.on = events.on.bind(events);
|
export const on: typeof events.on = events.on.bind(events);
|
||||||
export const off: typeof events.off = events.off.bind(events);
|
export const off: typeof events.off = events.off.bind(events);
|
||||||
export const notify: typeof events.notify = events.notify.bind(events);
|
export const notify: typeof events.notify = events.notify.bind(events);
|
||||||
|
export const hasListeners: typeof events.hasListeners = events.hasListeners.bind(events);
|
||||||
|
|
||||||
let app: iOSApplication | AndroidApplication;
|
let app: iOSApplication | AndroidApplication;
|
||||||
export function setApplication(instance: iOSApplication | AndroidApplication): void {
|
export function setApplication(instance: iOSApplication | AndroidApplication): void {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
} from ".";
|
} from ".";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
notify, lowMemoryEvent, orientationChangedEvent, suspendEvent, resumeEvent,
|
notify, hasListeners, lowMemoryEvent, orientationChangedEvent, suspendEvent, resumeEvent, displayedEvent,
|
||||||
setApplication, livesync, Observable
|
setApplication, livesync, Observable
|
||||||
} from "./application-common";
|
} from "./application-common";
|
||||||
|
|
||||||
@@ -181,7 +181,19 @@ function initLifecycleCallbacks() {
|
|||||||
androidApp.startActivity = activity;
|
androidApp.startActivity = activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
androidApp.notify(<AndroidActivityBundleEventData>{ eventName: ActivityCreated, object: androidApp, activity: activity, bundle: savedInstanceState });
|
androidApp.notify(<AndroidActivityBundleEventData>{ eventName: ActivityCreated, object: androidApp, activity, bundle: savedInstanceState });
|
||||||
|
|
||||||
|
if (hasListeners(displayedEvent)) {
|
||||||
|
let rootView = activity.findViewById((<any>android).R.id.content);
|
||||||
|
let onGlobalLayoutListener = new android.view.ViewTreeObserver.OnGlobalLayoutListener({
|
||||||
|
onGlobalLayout() {
|
||||||
|
notify({ eventName: displayedEvent, object: androidApp, activity });
|
||||||
|
let viewTreeObserver = rootView.getViewTreeObserver();
|
||||||
|
viewTreeObserver.removeOnGlobalLayoutListener(onGlobalLayoutListener);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
rootView.getViewTreeObserver().addOnGlobalLayoutListener(onGlobalLayoutListener);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onActivityDestroyed: function (activity: android.app.Activity) {
|
onActivityDestroyed: function (activity: android.app.Activity) {
|
||||||
|
|||||||
10
tns-core-modules/application/application.d.ts
vendored
10
tns-core-modules/application/application.d.ts
vendored
@@ -11,6 +11,11 @@ import { NavigationEntry, View, Observable, EventData } from "../ui/frame";
|
|||||||
*/
|
*/
|
||||||
export var launchEvent: string;
|
export var launchEvent: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* String value used when hooking to displayed event.
|
||||||
|
*/
|
||||||
|
export var displayedEvent: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String value used when hooking to uncaughtError event.
|
* String value used when hooking to uncaughtError event.
|
||||||
*/
|
*/
|
||||||
@@ -189,6 +194,11 @@ export function hasListeners(eventName: string): boolean;
|
|||||||
*/
|
*/
|
||||||
export function on(event: "launch", callback: (args: LaunchEventData) => void, thisArg?: any);
|
export function on(event: "launch", callback: (args: LaunchEventData) => void, thisArg?: any);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is raised after the application has launched and was fully drawn.
|
||||||
|
*/
|
||||||
|
export function on(event: "displayed", callback: (args: EventData) => void, thisArg?: any);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This event is raised when the Application is suspended.
|
* This event is raised when the Application is suspended.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user