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 suspendEvent = "suspend";
|
||||
export const displayedEvent = "displayed";
|
||||
export const resumeEvent = "resume";
|
||||
export const exitEvent = "exit";
|
||||
export const lowMemoryEvent = "lowMemory";
|
||||
@@ -45,6 +46,7 @@ export let ios = undefined;
|
||||
export const on: typeof events.on = events.on.bind(events);
|
||||
export const off: typeof events.off = events.off.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;
|
||||
export function setApplication(instance: iOSApplication | AndroidApplication): void {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
} from ".";
|
||||
|
||||
import {
|
||||
notify, lowMemoryEvent, orientationChangedEvent, suspendEvent, resumeEvent,
|
||||
notify, hasListeners, lowMemoryEvent, orientationChangedEvent, suspendEvent, resumeEvent, displayedEvent,
|
||||
setApplication, livesync, Observable
|
||||
} from "./application-common";
|
||||
|
||||
@@ -181,7 +181,19 @@ function initLifecycleCallbacks() {
|
||||
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) {
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* String value used when hooking to displayed event.
|
||||
*/
|
||||
export var displayedEvent: string;
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user