Add 'displayed' event for android, close to the Displayed point logged in the android monitor for activity startup

This commit is contained in:
Panayot Cankov
2017-05-16 10:55:10 +03:00
parent 3dce766b87
commit 90d36b26d3
3 changed files with 26 additions and 2 deletions

View File

@@ -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) {