@nativescript/core 8.8.0-alpha.2 → 8.8.0-embed.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/application/application.android.js +4 -0
  2. package/application/application.android.js.map +1 -1
  3. package/application/application.ios.js +2 -1
  4. package/application/application.ios.js.map +1 -1
  5. package/css/system-classes.d.ts +0 -1
  6. package/css/system-classes.js +0 -1
  7. package/css/system-classes.js.map +1 -1
  8. package/package.json +1 -1
  9. package/ui/action-bar/index.ios.js +1 -1
  10. package/ui/action-bar/index.ios.js.map +1 -1
  11. package/ui/embedding/index.android.d.ts +4 -0
  12. package/ui/embedding/index.android.js +14 -0
  13. package/ui/embedding/index.android.js.map +1 -0
  14. package/ui/embedding/index.d.ts +10 -0
  15. package/ui/embedding/index.ios.d.ts +1 -0
  16. package/ui/embedding/index.ios.js +4 -0
  17. package/ui/embedding/index.ios.js.map +1 -0
  18. package/ui/frame/activity.android.js +106 -47
  19. package/ui/frame/activity.android.js.map +1 -1
  20. package/ui/frame/callbacks/activity-callbacks.d.ts +19 -0
  21. package/ui/frame/callbacks/activity-callbacks.js +301 -0
  22. package/ui/frame/callbacks/activity-callbacks.js.map +1 -0
  23. package/ui/frame/callbacks/fragment-callbacks.d.ts +18 -0
  24. package/ui/frame/callbacks/fragment-callbacks.js +323 -0
  25. package/ui/frame/callbacks/fragment-callbacks.js.map +1 -0
  26. package/ui/frame/fragment.android.d.ts +3 -1
  27. package/ui/frame/fragment.android.js +40 -3
  28. package/ui/frame/fragment.android.js.map +1 -1
  29. package/ui/frame/index.android.d.ts +3 -2
  30. package/ui/frame/index.android.js +6 -622
  31. package/ui/frame/index.android.js.map +1 -1
  32. package/ui/frame/index.d.ts +18 -0
  33. package/ui/image/image-common.d.ts +3 -11
  34. package/ui/image/image-common.js +5 -3
  35. package/ui/image/image-common.js.map +1 -1
  36. package/ui/image/index.d.ts +1 -1
  37. package/ui/image/index.ios.js +12 -9
  38. package/ui/image/index.ios.js.map +1 -1
  39. package/ui/image/symbol-effects-common.d.ts +36 -0
  40. package/ui/image/symbol-effects-common.js +35 -0
  41. package/ui/image/symbol-effects-common.js.map +1 -0
  42. package/ui/image/symbol-effects.android.d.ts +4 -0
  43. package/ui/image/symbol-effects.android.js +8 -0
  44. package/ui/image/symbol-effects.android.js.map +1 -0
  45. package/ui/image/symbol-effects.d.ts +13 -0
  46. package/ui/image/symbol-effects.ios.d.ts +2 -0
  47. package/ui/image/symbol-effects.ios.js +93 -0
  48. package/ui/image/symbol-effects.ios.js.map +1 -0
  49. package/ui/index.d.ts +2 -1
  50. package/ui/index.js +2 -1
  51. package/ui/index.js.map +1 -1
  52. package/ui/styling/css-selector.js +0 -4
  53. package/ui/styling/css-selector.js.map +1 -1
  54. package/ui/styling/style-scope.js +7 -13
  55. package/ui/styling/style-scope.js.map +1 -1
@@ -0,0 +1,301 @@
1
+ import { Frame } from '..';
2
+ import { Application } from '../../../application';
3
+ import { Trace } from '../../../trace';
4
+ import { profile } from '../../../profiling';
5
+ import { isEmbedded, setEmbeddedView } from '../../embedding';
6
+ const activityRootViewsMap = new Map();
7
+ const INTENT_EXTRA = 'com.tns.activity';
8
+ const ROOT_VIEW_ID_EXTRA = 'com.tns.activity.rootViewId';
9
+ export let moduleLoaded;
10
+ export class ActivityCallbacksImplementation {
11
+ getRootView() {
12
+ return this._rootView;
13
+ }
14
+ onCreate(activity, savedInstanceState, intentOrSuperFunc, superFunc) {
15
+ if (Trace.isEnabled()) {
16
+ Trace.write(`Activity.onCreate(${savedInstanceState})`, Trace.categories.NativeLifecycle);
17
+ }
18
+ const intent = superFunc ? intentOrSuperFunc : undefined;
19
+ if (!superFunc) {
20
+ console.log('AndroidActivityCallbacks.onCreate(activity: any, savedInstanceState: any, superFunc: Function) ' + 'is deprecated. Use AndroidActivityCallbacks.onCreate(activity: any, savedInstanceState: any, intent: any, superFunc: Function) instead.');
21
+ superFunc = intentOrSuperFunc;
22
+ }
23
+ // If there is savedInstanceState this call will recreate all fragments that were previously in the navigation.
24
+ // We take care of associating them with a Page from our backstack in the onAttachFragment callback.
25
+ // If there is savedInstanceState and moduleLoaded is false we are restarted but process was killed.
26
+ // For now we treat it like first run (e.g. we are not passing savedInstanceState so no fragments are being restored).
27
+ // When we add support for application save/load state - revise this logic.
28
+ const isRestart = !!savedInstanceState && moduleLoaded;
29
+ superFunc.call(activity, isRestart ? savedInstanceState : null);
30
+ // Try to get the rootViewId form the saved state in case the activity
31
+ // was destroyed and we are now recreating it.
32
+ if (savedInstanceState) {
33
+ const rootViewId = savedInstanceState.getInt(ROOT_VIEW_ID_EXTRA, -1);
34
+ if (rootViewId !== -1 && activityRootViewsMap.has(rootViewId)) {
35
+ this._rootView = activityRootViewsMap.get(rootViewId)?.get();
36
+ }
37
+ }
38
+ if (intent && intent.getAction()) {
39
+ Application.android.notify({
40
+ eventName: Application.AndroidApplication.activityNewIntentEvent,
41
+ object: Application.android,
42
+ activity,
43
+ intent,
44
+ });
45
+ }
46
+ this.setActivityContent(activity, savedInstanceState, true);
47
+ moduleLoaded = true;
48
+ }
49
+ onSaveInstanceState(activity, outState, superFunc) {
50
+ superFunc.call(activity, outState);
51
+ const rootView = this._rootView;
52
+ if (rootView instanceof Frame) {
53
+ outState.putInt(INTENT_EXTRA, rootView.android.frameId);
54
+ rootView._saveFragmentsState();
55
+ }
56
+ if (rootView) {
57
+ outState.putInt(ROOT_VIEW_ID_EXTRA, rootView._domId);
58
+ }
59
+ }
60
+ onNewIntent(activity, intent, superSetIntentFunc, superFunc) {
61
+ superFunc.call(activity, intent);
62
+ superSetIntentFunc.call(activity, intent);
63
+ Application.android.notify({
64
+ eventName: Application.AndroidApplication.activityNewIntentEvent,
65
+ object: Application.android,
66
+ activity,
67
+ intent,
68
+ });
69
+ }
70
+ onStart(activity, superFunc) {
71
+ superFunc.call(activity);
72
+ if (Trace.isEnabled()) {
73
+ Trace.write('NativeScriptActivity.onStart();', Trace.categories.NativeLifecycle);
74
+ }
75
+ const rootView = this._rootView;
76
+ if (rootView && !rootView.isLoaded && !isEmbedded()) {
77
+ rootView.callLoaded();
78
+ }
79
+ }
80
+ onStop(activity, superFunc) {
81
+ superFunc.call(activity);
82
+ if (Trace.isEnabled()) {
83
+ Trace.write('NativeScriptActivity.onStop();', Trace.categories.NativeLifecycle);
84
+ }
85
+ const rootView = this._rootView;
86
+ if (rootView && rootView.isLoaded && !isEmbedded()) {
87
+ rootView.callUnloaded();
88
+ }
89
+ }
90
+ onPostResume(activity, superFunc) {
91
+ superFunc.call(activity);
92
+ if (Trace.isEnabled()) {
93
+ Trace.write('NativeScriptActivity.onPostResume();', Trace.categories.NativeLifecycle);
94
+ }
95
+ // NOTE: activity.onPostResume() is called when activity resume is complete and we can
96
+ // safely raise the application resume event;
97
+ // onActivityResumed(...) lifecycle callback registered in application is called too early
98
+ // and raising the application resume event there causes issues like
99
+ // https://github.com/NativeScript/NativeScript/issues/6708
100
+ if (activity.isNativeScriptActivity) {
101
+ Application.setSuspended(false, {
102
+ // todo: deprecate in favor of using event.activity instead.
103
+ android: activity,
104
+ activity,
105
+ });
106
+ }
107
+ }
108
+ onDestroy(activity, superFunc) {
109
+ try {
110
+ if (Trace.isEnabled()) {
111
+ Trace.write('NativeScriptActivity.onDestroy();', Trace.categories.NativeLifecycle);
112
+ }
113
+ const rootView = this._rootView;
114
+ if (rootView) {
115
+ rootView._tearDownUI(true);
116
+ }
117
+ // this may happen when the user changes the system theme
118
+ // In such case, isFinishing() is false (and isChangingConfigurations is true), and the app will start again (onCreate) with a savedInstanceState
119
+ // as a result, launchEvent will never be called
120
+ // possible alternative: always fire launchEvent and exitEvent, but pass extra flags to make it clear what kind of launch/destroy is happening
121
+ if (activity.isFinishing()) {
122
+ const exitArgs = {
123
+ eventName: Application.exitEvent,
124
+ object: Application.android,
125
+ android: activity,
126
+ };
127
+ Application.notify(exitArgs);
128
+ }
129
+ }
130
+ finally {
131
+ superFunc.call(activity);
132
+ }
133
+ }
134
+ onBackPressed(activity, superFunc) {
135
+ if (Trace.isEnabled()) {
136
+ Trace.write('NativeScriptActivity.onBackPressed;', Trace.categories.NativeLifecycle);
137
+ }
138
+ const args = {
139
+ eventName: 'activityBackPressed',
140
+ object: Application,
141
+ android: Application.android,
142
+ activity: activity,
143
+ cancel: false,
144
+ };
145
+ Application.android.notify(args);
146
+ if (args.cancel) {
147
+ return;
148
+ }
149
+ const view = this._rootView;
150
+ let callSuper = false;
151
+ const viewArgs = {
152
+ eventName: 'activityBackPressed',
153
+ object: view,
154
+ activity: activity,
155
+ cancel: false,
156
+ };
157
+ view.notify(viewArgs);
158
+ // In the case of Frame, use this callback only if it was overridden, since the original will cause navigation issues
159
+ if (!viewArgs.cancel && (view.onBackPressed === Frame.prototype.onBackPressed || !view.onBackPressed())) {
160
+ callSuper = view instanceof Frame ? !Frame.goBack() : true;
161
+ }
162
+ if (callSuper) {
163
+ superFunc.call(activity);
164
+ }
165
+ }
166
+ onRequestPermissionsResult(activity, requestCode, permissions, grantResults, superFunc) {
167
+ if (Trace.isEnabled()) {
168
+ Trace.write('NativeScriptActivity.onRequestPermissionsResult;', Trace.categories.NativeLifecycle);
169
+ }
170
+ Application.android.notify({
171
+ eventName: 'activityRequestPermissions',
172
+ object: Application,
173
+ android: Application.android,
174
+ activity: activity,
175
+ requestCode: requestCode,
176
+ permissions: permissions,
177
+ grantResults: grantResults,
178
+ });
179
+ }
180
+ onActivityResult(activity, requestCode, resultCode, data, superFunc) {
181
+ superFunc.call(activity, requestCode, resultCode, data);
182
+ if (Trace.isEnabled()) {
183
+ Trace.write(`NativeScriptActivity.onActivityResult(${requestCode}, ${resultCode}, ${data})`, Trace.categories.NativeLifecycle);
184
+ }
185
+ Application.android.notify({
186
+ eventName: 'activityResult',
187
+ object: Application,
188
+ android: Application.android,
189
+ activity: activity,
190
+ requestCode: requestCode,
191
+ resultCode: resultCode,
192
+ intent: data,
193
+ });
194
+ }
195
+ resetActivityContent(activity) {
196
+ if (this._rootView) {
197
+ const manager = this._rootView._getFragmentManager();
198
+ manager.executePendingTransactions();
199
+ this._rootView._onRootViewReset();
200
+ }
201
+ // Delete previously cached root view in order to recreate it.
202
+ this._rootView = null;
203
+ this.setActivityContent(activity, null, false);
204
+ this._rootView.callLoaded();
205
+ }
206
+ // Paths that go trough this method:
207
+ // 1. Application initial start - there is no rootView in callbacks.
208
+ // 2. Application revived after Activity is destroyed. this._rootView should have been restored by id in onCreate.
209
+ // 3. Livesync if rootView has no custom _onLivesync. this._rootView should have been cleared upfront. Launch event should not fired
210
+ // 4. resetRootView method. this._rootView should have been cleared upfront. Launch event should not fired
211
+ setActivityContent(activity, savedInstanceState, fireLaunchEvent) {
212
+ let rootView = this._rootView;
213
+ if (Trace.isEnabled()) {
214
+ Trace.write(`Frame.setActivityContent rootView: ${rootView} shouldCreateRootFrame: false fireLaunchEvent: ${fireLaunchEvent}`, Trace.categories.NativeLifecycle);
215
+ }
216
+ const intent = activity.getIntent();
217
+ rootView = Application.createRootView(rootView, fireLaunchEvent, {
218
+ // todo: deprecate in favor of args.intent?
219
+ android: intent,
220
+ intent,
221
+ savedInstanceState,
222
+ });
223
+ if (!rootView) {
224
+ // no root view created
225
+ return;
226
+ }
227
+ activityRootViewsMap.set(rootView._domId, new WeakRef(rootView));
228
+ // setup view as styleScopeHost
229
+ rootView._setupAsRootView(activity);
230
+ if (isEmbedded()) {
231
+ setEmbeddedView(rootView);
232
+ }
233
+ else {
234
+ activity.setContentView(rootView.nativeViewProtected, new org.nativescript.widgets.CommonLayoutParams());
235
+ }
236
+ this._rootView = rootView;
237
+ // sets root classes once rootView is ready...
238
+ Application.initRootView(rootView);
239
+ }
240
+ }
241
+ __decorate([
242
+ profile,
243
+ __metadata("design:type", Function),
244
+ __metadata("design:paramtypes", [androidx.appcompat.app.AppCompatActivity, android.os.Bundle, Object, Function]),
245
+ __metadata("design:returntype", void 0)
246
+ ], ActivityCallbacksImplementation.prototype, "onCreate", null);
247
+ __decorate([
248
+ profile,
249
+ __metadata("design:type", Function),
250
+ __metadata("design:paramtypes", [androidx.appcompat.app.AppCompatActivity, android.os.Bundle, Function]),
251
+ __metadata("design:returntype", void 0)
252
+ ], ActivityCallbacksImplementation.prototype, "onSaveInstanceState", null);
253
+ __decorate([
254
+ profile,
255
+ __metadata("design:type", Function),
256
+ __metadata("design:paramtypes", [androidx.appcompat.app.AppCompatActivity, android.content.Intent, Function, Function]),
257
+ __metadata("design:returntype", void 0)
258
+ ], ActivityCallbacksImplementation.prototype, "onNewIntent", null);
259
+ __decorate([
260
+ profile,
261
+ __metadata("design:type", Function),
262
+ __metadata("design:paramtypes", [Object, Function]),
263
+ __metadata("design:returntype", void 0)
264
+ ], ActivityCallbacksImplementation.prototype, "onStart", null);
265
+ __decorate([
266
+ profile,
267
+ __metadata("design:type", Function),
268
+ __metadata("design:paramtypes", [Object, Function]),
269
+ __metadata("design:returntype", void 0)
270
+ ], ActivityCallbacksImplementation.prototype, "onStop", null);
271
+ __decorate([
272
+ profile,
273
+ __metadata("design:type", Function),
274
+ __metadata("design:paramtypes", [Object, Function]),
275
+ __metadata("design:returntype", void 0)
276
+ ], ActivityCallbacksImplementation.prototype, "onPostResume", null);
277
+ __decorate([
278
+ profile,
279
+ __metadata("design:type", Function),
280
+ __metadata("design:paramtypes", [Object, Function]),
281
+ __metadata("design:returntype", void 0)
282
+ ], ActivityCallbacksImplementation.prototype, "onDestroy", null);
283
+ __decorate([
284
+ profile,
285
+ __metadata("design:type", Function),
286
+ __metadata("design:paramtypes", [Object, Function]),
287
+ __metadata("design:returntype", void 0)
288
+ ], ActivityCallbacksImplementation.prototype, "onBackPressed", null);
289
+ __decorate([
290
+ profile,
291
+ __metadata("design:type", Function),
292
+ __metadata("design:paramtypes", [Object, Number, Array, Array, Function]),
293
+ __metadata("design:returntype", void 0)
294
+ ], ActivityCallbacksImplementation.prototype, "onRequestPermissionsResult", null);
295
+ __decorate([
296
+ profile,
297
+ __metadata("design:type", Function),
298
+ __metadata("design:paramtypes", [Object, Number, Number, android.content.Intent, Function]),
299
+ __metadata("design:returntype", void 0)
300
+ ], ActivityCallbacksImplementation.prototype, "onActivityResult", null);
301
+ //# sourceMappingURL=activity-callbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-callbacks.js","sourceRoot":"","sources":["../../../../../../packages/core/ui/frame/callbacks/activity-callbacks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { AndroidFragmentCallbacks, BackstackEntry, Frame } from '..';
2
+ export declare class FragmentCallbacksImplementation implements AndroidFragmentCallbacks {
3
+ frame: Frame;
4
+ entry: BackstackEntry;
5
+ private backgroundBitmap;
6
+ onHiddenChanged(fragment: androidx.fragment.app.Fragment, hidden: boolean, superFunc: Function): void;
7
+ onCreateAnimator(fragment: androidx.fragment.app.Fragment, transit: number, enter: boolean, nextAnim: number, superFunc: Function): android.animation.Animator;
8
+ onCreate(fragment: androidx.fragment.app.Fragment, savedInstanceState: android.os.Bundle, superFunc: Function): void;
9
+ onCreateView(fragment: androidx.fragment.app.Fragment, inflater: android.view.LayoutInflater, container: android.view.ViewGroup, savedInstanceState: android.os.Bundle, superFunc: Function): android.view.View;
10
+ onSaveInstanceState(fragment: androidx.fragment.app.Fragment, outState: android.os.Bundle, superFunc: Function): void;
11
+ onDestroyView(fragment: org.nativescript.widgets.FragmentBase, superFunc: Function): void;
12
+ onDestroy(fragment: androidx.fragment.app.Fragment, superFunc: Function): void;
13
+ onPause(fragment: org.nativescript.widgets.FragmentBase, superFunc: Function): void;
14
+ onResume(fragment: org.nativescript.widgets.FragmentBase, superFunc: Function): void;
15
+ onStop(fragment: androidx.fragment.app.Fragment, superFunc: Function): void;
16
+ toStringOverride(fragment: androidx.fragment.app.Fragment, superFunc: Function): string;
17
+ private loadBitmapFromView;
18
+ }
@@ -0,0 +1,323 @@
1
+ import { profile } from '../../../profiling';
2
+ import { getFrameByNumberId } from '..';
3
+ import { Trace } from '../../../trace';
4
+ import { Application } from '../../../application';
5
+ import { Color } from '../../../color';
6
+ import { _updateTransitions } from '../fragment.transitions';
7
+ const FRAMEID = '_frameId';
8
+ const CALLBACKS = '_callbacks';
9
+ export class FragmentCallbacksImplementation {
10
+ constructor() {
11
+ this.backgroundBitmap = null;
12
+ }
13
+ onHiddenChanged(fragment, hidden, superFunc) {
14
+ if (Trace.isEnabled()) {
15
+ Trace.write(`${fragment}.onHiddenChanged(${hidden})`, Trace.categories.NativeLifecycle);
16
+ }
17
+ superFunc.call(fragment, hidden);
18
+ }
19
+ onCreateAnimator(fragment, transit, enter, nextAnim, superFunc) {
20
+ let animator = null;
21
+ const entry = this.entry;
22
+ // Return enterAnimator only when new (no current entry) nested transition.
23
+ if (enter && entry.isNestedDefaultTransition) {
24
+ animator = entry.enterAnimator;
25
+ entry.isNestedDefaultTransition = false;
26
+ }
27
+ return animator || superFunc.call(fragment, transit, enter, nextAnim);
28
+ }
29
+ onCreate(fragment, savedInstanceState, superFunc) {
30
+ if (Trace.isEnabled()) {
31
+ Trace.write(`${fragment}.onCreate(${savedInstanceState})`, Trace.categories.NativeLifecycle);
32
+ }
33
+ superFunc.call(fragment, savedInstanceState);
34
+ // There is no entry set to the fragment, so this must be destroyed fragment that was recreated by Android.
35
+ // We should find its corresponding page in our backstack and set it manually.
36
+ if (!this.entry) {
37
+ const args = fragment.getArguments();
38
+ const frameId = args.getInt(FRAMEID);
39
+ const frame = getFrameByNumberId(frameId);
40
+ if (!frame) {
41
+ throw new Error(`Cannot find Frame for ${fragment}`);
42
+ }
43
+ findPageForFragment(fragment, frame);
44
+ }
45
+ }
46
+ onCreateView(fragment, inflater, container, savedInstanceState, superFunc) {
47
+ if (Trace.isEnabled()) {
48
+ Trace.write(`${fragment}.onCreateView(inflater, container, ${savedInstanceState})`, Trace.categories.NativeLifecycle);
49
+ }
50
+ const entry = this.entry;
51
+ if (!entry) {
52
+ Trace.error(`${fragment}.onCreateView: entry is null or undefined`);
53
+ return null;
54
+ }
55
+ const page = entry.resolvedPage;
56
+ if (!page) {
57
+ Trace.error(`${fragment}.onCreateView: entry has no resolvedPage`);
58
+ return null;
59
+ }
60
+ const frame = this.frame;
61
+ if (!frame) {
62
+ Trace.error(`${fragment}.onCreateView: this.frame is null or undefined`);
63
+ return null;
64
+ }
65
+ frame._resolvedPage = page;
66
+ if (page.parent === frame) {
67
+ frame._inheritStyles(page);
68
+ // If we are navigating to a page that was destroyed
69
+ // reinitialize its UI.
70
+ if (!page._context) {
71
+ const context = (container && container.getContext()) || (inflater && inflater.getContext());
72
+ page._setupUI(context);
73
+ }
74
+ if (frame.isLoaded && !page.isLoaded) {
75
+ page.callLoaded();
76
+ }
77
+ }
78
+ else {
79
+ if (!page.parent) {
80
+ if (!frame._styleScope) {
81
+ // Make sure page will have styleScope even if parents don't.
82
+ page._updateStyleScope();
83
+ }
84
+ frame._addView(page);
85
+ }
86
+ else {
87
+ throw new Error('Page is already shown on another frame.');
88
+ }
89
+ }
90
+ const savedState = entry.viewSavedState;
91
+ if (savedState) {
92
+ page.nativeViewProtected.restoreHierarchyState(savedState);
93
+ entry.viewSavedState = null;
94
+ }
95
+ // fixes 'java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first'.
96
+ // on app resume in nested frame scenarios with support library version greater than 26.0.0
97
+ // HACK: this whole code block shouldn't be necessary as the native view is supposedly removed from its parent
98
+ // right after onDestroyView(...) is called but for some reason the fragment view (page) still thinks it has a
99
+ // parent while its supposed parent believes it properly removed its children; in order to "force" the child to
100
+ // lose its parent we temporarily add it to the parent, and then remove it (addViewInLayout doesn't trigger layout pass)
101
+ const nativeView = page.nativeViewProtected;
102
+ if (nativeView != null) {
103
+ const parentView = nativeView.getParent();
104
+ if (parentView instanceof android.view.ViewGroup) {
105
+ if (parentView.getChildCount() === 0) {
106
+ parentView.addViewInLayout(nativeView, -1, new org.nativescript.widgets.CommonLayoutParams());
107
+ }
108
+ parentView.removeAllViews();
109
+ }
110
+ }
111
+ return page.nativeViewProtected;
112
+ }
113
+ onSaveInstanceState(fragment, outState, superFunc) {
114
+ if (Trace.isEnabled()) {
115
+ Trace.write(`${fragment}.onSaveInstanceState(${outState})`, Trace.categories.NativeLifecycle);
116
+ }
117
+ superFunc.call(fragment, outState);
118
+ }
119
+ onDestroyView(fragment, superFunc) {
120
+ try {
121
+ if (Trace.isEnabled()) {
122
+ Trace.write(`${fragment}.onDestroyView()`, Trace.categories.NativeLifecycle);
123
+ }
124
+ const hasRemovingParent = fragment.getRemovingParentFragment();
125
+ if (hasRemovingParent) {
126
+ const nativeFrameView = this.frame.nativeViewProtected;
127
+ if (nativeFrameView) {
128
+ const bitmapDrawable = new android.graphics.drawable.BitmapDrawable(Application.android.context.getResources(), this.backgroundBitmap);
129
+ this.frame._originalBackground = this.frame.backgroundColor || new Color('White');
130
+ nativeFrameView.setBackgroundDrawable(bitmapDrawable);
131
+ this.backgroundBitmap = null;
132
+ }
133
+ }
134
+ }
135
+ finally {
136
+ superFunc.call(fragment);
137
+ }
138
+ }
139
+ onDestroy(fragment, superFunc) {
140
+ if (Trace.isEnabled()) {
141
+ Trace.write(`${fragment}.onDestroy()`, Trace.categories.NativeLifecycle);
142
+ }
143
+ superFunc.call(fragment);
144
+ const entry = this.entry;
145
+ if (!entry) {
146
+ Trace.error(`${fragment}.onDestroy: entry is null or undefined`);
147
+ return null;
148
+ }
149
+ // [nested frames / fragments] see https://github.com/NativeScript/NativeScript/issues/6629
150
+ // retaining reference to a destroyed fragment here somehow causes a cryptic
151
+ // "IllegalStateException: Failure saving state: active fragment has cleared index: -1"
152
+ // in a specific mixed parent / nested frame navigation scenario
153
+ entry.fragment = null;
154
+ const page = entry.resolvedPage;
155
+ if (!page) {
156
+ // todo: check why this happens when using shared element transition!!!
157
+ // commented out the Trace.error to prevent a crash (the app will still work interestingly)
158
+ console.log(`${fragment}.onDestroy: entry has no resolvedPage`);
159
+ // Trace.error(`${fragment}.onDestroy: entry has no resolvedPage`);
160
+ return null;
161
+ }
162
+ }
163
+ onPause(fragment, superFunc) {
164
+ try {
165
+ // Get view as bitmap and set it as background. This is workaround for the disapearing nested fragments.
166
+ // TODO: Consider removing it when update to androidx.fragment:1.2.0
167
+ const hasRemovingParent = fragment.getRemovingParentFragment();
168
+ if (hasRemovingParent) {
169
+ this.backgroundBitmap = this.loadBitmapFromView(this.frame.nativeViewProtected);
170
+ }
171
+ }
172
+ finally {
173
+ superFunc.call(fragment);
174
+ }
175
+ }
176
+ onResume(fragment, superFunc) {
177
+ const frame = this.entry.resolvedPage.frame;
178
+ // on some cases during the first navigation on nested frames the animation doesn't trigger
179
+ // we depend on the animation (even None animation) to set the entry as the current entry
180
+ // animation should start between start and resume, so if we have an executing navigation here it probably means the animation was skipped
181
+ // so we manually set the entry
182
+ // also, to be compatible with fragments 1.2.x we need this setTimeout as animations haven't run on onResume yet
183
+ const weakRef = new WeakRef(this);
184
+ setTimeout(() => {
185
+ const owner = weakRef.get();
186
+ if (!owner) {
187
+ return;
188
+ }
189
+ if (frame._executingContext && !owner.entry.isAnimationRunning) {
190
+ frame.setCurrent(owner.entry, frame._executingContext.navigationType);
191
+ }
192
+ }, 0);
193
+ superFunc.call(fragment);
194
+ }
195
+ onStop(fragment, superFunc) {
196
+ superFunc.call(fragment);
197
+ }
198
+ toStringOverride(fragment, superFunc) {
199
+ const entry = this.entry;
200
+ if (entry) {
201
+ return `${entry.fragmentTag}<${entry.resolvedPage}>`;
202
+ }
203
+ else {
204
+ return 'NO ENTRY, ' + superFunc.call(fragment);
205
+ }
206
+ }
207
+ loadBitmapFromView(view) {
208
+ // Don't try to create bitmaps with no dimensions as this causes a crash
209
+ // This might happen when showing and closing dialogs fast.
210
+ if (!(view && view.getWidth() > 0 && view.getHeight() > 0)) {
211
+ return undefined;
212
+ }
213
+ // Another way to get view bitmap. Test performance vs setDrawingCacheEnabled
214
+ // const width = view.getWidth();
215
+ // const height = view.getHeight();
216
+ // const bitmap = android.graphics.Bitmap.createBitmap(width, height, android.graphics.Bitmap.Config.ARGB_8888);
217
+ // const canvas = new android.graphics.Canvas(bitmap);
218
+ // view.layout(0, 0, width, height);
219
+ // view.draw(canvas);
220
+ // view.setDrawingCacheEnabled(true);
221
+ // const drawCache = view.getDrawingCache();
222
+ // const bitmap = android.graphics.Bitmap.createBitmap(drawCache);
223
+ // view.setDrawingCacheEnabled(false);
224
+ return org.nativescript.widgets.Utils.getBitmapFromView(view);
225
+ }
226
+ }
227
+ __decorate([
228
+ profile,
229
+ __metadata("design:type", Function),
230
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, Boolean, Function]),
231
+ __metadata("design:returntype", void 0)
232
+ ], FragmentCallbacksImplementation.prototype, "onHiddenChanged", null);
233
+ __decorate([
234
+ profile,
235
+ __metadata("design:type", Function),
236
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, Number, Boolean, Number, Function]),
237
+ __metadata("design:returntype", android.animation.Animator)
238
+ ], FragmentCallbacksImplementation.prototype, "onCreateAnimator", null);
239
+ __decorate([
240
+ profile,
241
+ __metadata("design:type", Function),
242
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, android.os.Bundle, Function]),
243
+ __metadata("design:returntype", void 0)
244
+ ], FragmentCallbacksImplementation.prototype, "onCreate", null);
245
+ __decorate([
246
+ profile,
247
+ __metadata("design:type", Function),
248
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle, Function]),
249
+ __metadata("design:returntype", android.view.View)
250
+ ], FragmentCallbacksImplementation.prototype, "onCreateView", null);
251
+ __decorate([
252
+ profile,
253
+ __metadata("design:type", Function),
254
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, android.os.Bundle, Function]),
255
+ __metadata("design:returntype", void 0)
256
+ ], FragmentCallbacksImplementation.prototype, "onSaveInstanceState", null);
257
+ __decorate([
258
+ profile,
259
+ __metadata("design:type", Function),
260
+ __metadata("design:paramtypes", [org.nativescript.widgets.FragmentBase, Function]),
261
+ __metadata("design:returntype", void 0)
262
+ ], FragmentCallbacksImplementation.prototype, "onDestroyView", null);
263
+ __decorate([
264
+ profile,
265
+ __metadata("design:type", Function),
266
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, Function]),
267
+ __metadata("design:returntype", void 0)
268
+ ], FragmentCallbacksImplementation.prototype, "onDestroy", null);
269
+ __decorate([
270
+ profile,
271
+ __metadata("design:type", Function),
272
+ __metadata("design:paramtypes", [org.nativescript.widgets.FragmentBase, Function]),
273
+ __metadata("design:returntype", void 0)
274
+ ], FragmentCallbacksImplementation.prototype, "onPause", null);
275
+ __decorate([
276
+ profile,
277
+ __metadata("design:type", Function),
278
+ __metadata("design:paramtypes", [org.nativescript.widgets.FragmentBase, Function]),
279
+ __metadata("design:returntype", void 0)
280
+ ], FragmentCallbacksImplementation.prototype, "onResume", null);
281
+ __decorate([
282
+ profile,
283
+ __metadata("design:type", Function),
284
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, Function]),
285
+ __metadata("design:returntype", void 0)
286
+ ], FragmentCallbacksImplementation.prototype, "onStop", null);
287
+ __decorate([
288
+ profile,
289
+ __metadata("design:type", Function),
290
+ __metadata("design:paramtypes", [androidx.fragment.app.Fragment, Function]),
291
+ __metadata("design:returntype", String)
292
+ ], FragmentCallbacksImplementation.prototype, "toStringOverride", null);
293
+ function findPageForFragment(fragment, frame) {
294
+ const fragmentTag = fragment.getTag();
295
+ if (Trace.isEnabled()) {
296
+ Trace.write(`Finding page for ${fragmentTag}.`, Trace.categories.NativeLifecycle);
297
+ }
298
+ let entry;
299
+ const current = frame._currentEntry;
300
+ const executingContext = frame._executingContext;
301
+ if (current && current.fragmentTag === fragmentTag) {
302
+ entry = current;
303
+ }
304
+ else if (executingContext && executingContext.entry && executingContext.entry.fragmentTag === fragmentTag) {
305
+ entry = executingContext.entry;
306
+ }
307
+ let page;
308
+ if (entry) {
309
+ entry.recreated = true;
310
+ page = entry.resolvedPage;
311
+ }
312
+ if (page) {
313
+ const callbacks = fragment[CALLBACKS];
314
+ callbacks.frame = frame;
315
+ callbacks.entry = entry;
316
+ entry.fragment = fragment;
317
+ _updateTransitions(entry);
318
+ }
319
+ else {
320
+ throw new Error(`Could not find a page for ${fragmentTag}.`);
321
+ }
322
+ }
323
+ //# sourceMappingURL=fragment-callbacks.js.map