Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions tns-core-modules/application/application.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -290,15 +290,10 @@ function initLifecycleCallbacks() {
onActivityResumed: profile("onActivityResumed", function (activity: android.support.v7.app.AppCompatActivity) {
androidApp.foregroundActivity = activity;

if ((<any>activity).isNativeScriptActivity) {
notify(<ApplicationEventData>{ eventName: resumeEvent, object: androidApp, android: activity });
androidApp.paused = false;
}

androidApp.notify(<AndroidActivityEventData>{ eventName: ActivityResumed, object: androidApp, activity: activity });
}),

onActivitySaveInstanceState: profile("onActivityResumed", function (activity: android.support.v7.app.AppCompatActivity, outState: android.os.Bundle) {
onActivitySaveInstanceState: profile("onActivitySaveInstanceState", function (activity: android.support.v7.app.AppCompatActivity, outState: android.os.Bundle) {
androidApp.notify(<AndroidActivityBundleEventData>{ eventName: SaveActivityState, object: androidApp, activity: activity, bundle: outState });
}),

Expand Down
4 changes: 4 additions & 0 deletions tns-core-modules/ui/frame/activity.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ class NativeScriptActivity extends android.support.v7.app.AppCompatActivity {
this._callbacks.onDestroy(this, super.onDestroy);
}

public onPostResume(): void {
this._callbacks.onPostResume(this, super.onPostResume);
}

public onBackPressed(): void {
this._callbacks.onBackPressed(this, super.onBackPressed);
}
Expand Down
28 changes: 26 additions & 2 deletions tns-core-modules/ui/frame/frame.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -859,13 +859,13 @@ class FragmentCallbacksImplementation implements AndroidFragmentCallbacks {
// lose its parent we temporarily add it to the parent, and then remove it (addViewInLayout doesn't trigger layout pass)
const nativeView = page.nativeViewProtected;
if (nativeView != null) {
const parentView = nativeView.getParent();
const parentView = nativeView.getParent();
if (parentView instanceof android.view.ViewGroup) {
if (parentView.getChildCount() === 0) {
parentView.addViewInLayout(nativeView, -1, new org.nativescript.widgets.CommonLayoutParams());
}

parentView.removeView(nativeView);
parentView.removeView(nativeView);
}
}

Expand Down Expand Up @@ -1006,6 +1006,30 @@ class ActivityCallbacksImplementation implements AndroidActivityCallbacks {
}
}

@profile
public onPostResume(activity: any, superFunc: Function): void {
superFunc.call(activity);

if (traceEnabled()) {
traceWrite("NativeScriptActivity.onPostResume();", traceCategories.NativeLifecycle);
}

// NOTE: activity.onPostResume() is called when activity resume is complete and we can
// safely raise the application resume event;
// onActivityResumed(...) lifecycle callback registered in application is called too early
// and raising the application resume event there causes issues like
// https://github.com/NativeScript/NativeScript/issues/6708
if ((<any>activity).isNativeScriptActivity) {
const args = <application.ApplicationEventData>{
eventName: application.resumeEvent,
object: application.android,
android: activity
};
application.notify(args);
application.android.paused = false;
}
}

@profile
public onDestroy(activity: any, superFunc: Function): void {
if (traceEnabled()) {
Expand Down
1 change: 1 addition & 0 deletions tns-core-modules/ui/frame/frame.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,7 @@ export interface AndroidActivityCallbacks {
onSaveInstanceState(activity: any, outState: any, superFunc: Function): void;
onStart(activity: any, superFunc: Function): void;
onStop(activity: any, superFunc: Function): void;
onPostResume(activity: any, superFunc: Function): void;
onDestroy(activity: any, superFunc: Function): void;
onBackPressed(activity: any, superFunc: Function): void;
onRequestPermissionsResult(activity: any, requestCode: number, permissions: Array<String>, grantResults: Array<number>, superFunc: Function): void;
Expand Down