Skip to content

Commit f64355b

Browse files
rigor789NathanWalker
authored andcommitted
refactor: improved core barrel exports and Application class (#10286)
BREAKING CHANGES: `Application.orientation` is no longer a function. Migration: Remove `()` from the `Application.orientation()` call: ```diff import { Application } from "@nativescript/core"; -console.log(Application.orientation()); +console.log(Application.orientation); ``` `Application.systemAppearance` is no longer a function. Migration: Remove `()` from the `Application.systemAppearance()` call: ```diff import { Application } from "@nativescript/core"; -console.log(Application.systemAppearance()); +console.log(Application.systemAppearance); ```
1 parent 963d024 commit f64355b

File tree

67 files changed

+3503
-3645
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+3503
-3645
lines changed

.prettierrc.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"useTabs": true,
3-
"printWidth": 600,
4-
"tabWidth": 2,
5-
"singleQuote": true
6-
}
2+
"useTabs": true,
3+
"printWidth": 600,
4+
"tabWidth": 2,
5+
"singleQuote": true
6+
}

apps/automated/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"@nativescript/android": "~8.5.0",
1515
"@nativescript/ios": "~8.5.0",
1616
"@nativescript/webpack": "file:../../dist/packages/nativescript-webpack.tgz",
17+
"circular-dependency-plugin": "^5.2.2",
1718
"typescript": "~4.9.5"
1819
},
1920
"gitHead": "c06800e52ee1a184ea2dffd12a6702aaa43be4e3",

apps/automated/src/application/application-tests-common.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import * as app from '@nativescript/core/application';
2-
import { isAndroid, isIOS, Device, Application, platformNames } from '@nativescript/core';
1+
import { isAndroid, isIOS, Device, Application, platformNames } from '@nativescript/core';
32

43
import * as TKUnit from '../tk-unit';
54

@@ -11,9 +10,9 @@ if (isAndroid) {
1110

1211
export function testInitialized() {
1312
if (Device.os === platformNames.android) {
14-
TKUnit.assert(app.android, 'Application module not properly intialized');
13+
TKUnit.assert(Application.android, 'Application module not properly intialized');
1514
} else if (Device.os === platformNames.ios) {
16-
TKUnit.assert(app.ios, 'Application module not properly intialized');
15+
TKUnit.assert(Application.ios, 'Application module not properly intialized');
1716
}
1817
}
1918

@@ -23,5 +22,5 @@ export function testDisplayedEvent() {
2322
}
2423

2524
export function testOrientation() {
26-
TKUnit.assert(Application.orientation(), 'Orientation not initialized.');
25+
TKUnit.assert(Application.orientation, 'Orientation not initialized.');
2726
}

apps/automated/src/application/application-tests.android.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ export function testAndroidApplicationInitialized() {
4040
TKUnit.assert(Application.android, 'Android application not initialized.');
4141
TKUnit.assert(Application.android.context, 'Android context not initialized.');
4242
TKUnit.assert(Application.android.foregroundActivity, 'Android foregroundActivity not initialized.');
43-
TKUnit.assert(Application.android.foregroundActivity.isNativeScriptActivity, 'Android foregroundActivity.isNativeScriptActivity is false.');
43+
TKUnit.assert(
44+
// @ts-expect-error
45+
Application.android.foregroundActivity.isNativeScriptActivity,
46+
'Android foregroundActivity.isNativeScriptActivity is false.'
47+
);
4448
TKUnit.assert(Application.android.startActivity, 'Android startActivity not initialized.');
4549
TKUnit.assert(Application.android.nativeApp, 'Android nativeApp not initialized.');
4650
TKUnit.assert(Application.android.orientation, 'Android orientation not initialized.');

apps/automated/src/file-system/file-system-tests.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import * as fs from '@nativescript/core/file-system';
44
// << file-system-require
55

66
import * as TKUnit from '../tk-unit';
7-
import * as appModule from '@nativescript/core/application';
8-
import { isIOS, Device, platformNames, isAndroid } from '@nativescript/core';
7+
import { Application, isIOS, Device, platformNames, isAndroid } from '@nativescript/core';
98

109
export var testPathNormalize = function () {
1110
// >> file-system-normalize
@@ -600,7 +599,7 @@ export var testFolderClear = function () {
600599
// misc
601600
export var testKnownFolderRename = function () {
602601
// You can rename known folders in android - so skip this test.
603-
if (!appModule.android) {
602+
if (!Application.android) {
604603
var folder = fs.knownFolders.documents();
605604
folder.rename('Something').then(
606605
function (result) {

apps/automated/src/image-source/image-source-tests.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
import { ImageSource } from '@nativescript/core/image-source';
22
import * as imageAssetModule from '@nativescript/core/image-asset';
33
import * as fs from '@nativescript/core/file-system';
4-
import * as app from '@nativescript/core/application';
54
import * as TKUnit from '../tk-unit';
6-
import { Font } from '@nativescript/core/ui/styling/font';
7-
import { Color } from '@nativescript/core/color';
8-
import * as utils from '@nativescript/core/utils';
5+
import { Application, Font, Color, Utils } from '@nativescript/core';
96

107
const imagePath = '~/assets/logo.png';
118
const splashscreenPath = '~/assets/splashscreen.png';
@@ -23,7 +20,7 @@ export function testFromResource() {
2320

2421
export function testDrawableSetNativeSource() {
2522
if (global.isAndroid) {
26-
const context = utils.ad.getApplicationContext() as android.content.Context;
23+
const context = Utils.android.getApplicationContext() as android.content.Context;
2724
const rDrawable = `${context.getPackageName()}.R$drawable`;
2825
const rClazz = java.lang.Class.forName(`${rDrawable}`);
2926
const iconId = rClazz.getDeclaredField('icon').get(null) as java.lang.Integer;
@@ -253,9 +250,9 @@ export function testFromAssetWithBiggerScaling(done) {
253250

254251
export function testNativeFields() {
255252
const img = ImageSource.fromFileSync(imagePath);
256-
if (app.android) {
253+
if (Application.android) {
257254
TKUnit.assert(img.android != null, 'Image.android not updated.');
258-
} else if (app.ios) {
255+
} else if (Application.ios) {
259256
TKUnit.assert(img.ios != null, 'Image.ios not updated.');
260257
}
261258
}
@@ -315,9 +312,9 @@ export function testLoadFromBase64Encode_JPEG() {
315312

316313
export function testLoadFromBase64Encode_PNG() {
317314
let img: ImageSource;
318-
if (app.android) {
315+
if (Application.android) {
319316
img = ImageSource.fromBase64Sync(fullAndroidPng);
320-
} else if (app.ios) {
317+
} else if (Application.ios) {
321318
img = ImageSource.fromBase64Sync(fullIosPng);
322319
}
323320

apps/automated/src/livesync/livesync-tests.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
import * as helper from '../ui-helper';
22
import * as TKUnit from '../tk-unit';
33

4-
import * as app from '@nativescript/core/application';
5-
import * as frame from '@nativescript/core/ui/frame';
6-
import { Color } from '@nativescript/core/color';
7-
import { Builder } from '@nativescript/core/ui/builder';
8-
import { Page } from '@nativescript/core/ui/page';
9-
import { Frame } from '@nativescript/core/ui/frame';
4+
import { Application, Frame, Page, Builder, Color } from '@nativescript/core';
105

116
const LIVESYNC_FOLDER = 'livesync/';
127

@@ -45,7 +40,7 @@ export function setUp() {
4540
}
4641

4742
export function tearDown() {
48-
app.setCssFileName(appCssFileName);
43+
Application.setCssFileName(appCssFileName);
4944
}
5045

5146
export function test_onLiveSync_ModuleContext_AppStyle_AppNewCss() {
@@ -143,7 +138,7 @@ function _test_onLiveSync_ModuleContext_AppStyle(appStyleFileName: string, lives
143138
const buttonPage = <Page>Builder.createViewFromEntry({ moduleName: buttonPageModuleName });
144139
helper.navigateWithHistory(() => buttonPage);
145140

146-
app.setCssFileName(appStyleFileName);
141+
Application.setCssFileName(appStyleFileName);
147142
const pageBeforeLiveSync = helper.getCurrentPage();
148143
livesync({ type: 'style', path: livesyncStyleFileName });
149144

apps/automated/src/main.ts

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ if (typeof NSDate !== 'undefined') {
55
start = java.lang.System.currentTimeMillis();
66
}
77

8-
import { Application, ApplicationEventData, UnhandledErrorEventData, DiscardedErrorEventData, AndroidActivityBundleEventData, AndroidActivityEventData, AndroidApplication, AndroidActivityNewIntentEventData, AndroidActivityResultEventData, AndroidActivityBackPressedEventData } from '@nativescript/core';
8+
import { AndroidActivityBackPressedEventData, AndroidActivityBundleEventData, AndroidActivityEventData, AndroidActivityNewIntentEventData, AndroidActivityResultEventData, Application, ApplicationEventData, DiscardedErrorEventData, LaunchEventData, UnhandledErrorEventData } from '@nativescript/core';
99

1010
if (Application.ios) {
1111
// Observe application notifications.
1212
Application.ios.addNotificationObserver(UIApplicationDidFinishLaunchingNotification, (notification: NSNotification) => {
13-
console.log('UIApplicationDidFinishLaunchingNotification: ' + notification);
13+
console.log('UIApplicationDidFinishLaunchingNotification:', notification);
1414
});
1515
}
1616

@@ -19,118 +19,118 @@ Application.on(Application.displayedEvent, function (args: ApplicationEventData)
1919
global.isDisplayedEventFired = true;
2020

2121
if (args.android) {
22-
// For Android applications, args.android is an Android activity class.
23-
console.log('Displayed Activity: ' + args.android);
22+
// For Android applications, args.activity is an Android activity class.
23+
console.log('Displayed Activity:', (args as AndroidActivityEventData).activity);
2424
} else if (args.ios) {
2525
// For iOS applications, args.ios is UIApplication.
26-
console.log('Displayed UIApplication: ' + args.ios);
26+
console.log('Displayed UIApplication:', args.ios);
2727
}
2828
});
2929

30-
Application.on(Application.launchEvent, function (args: ApplicationEventData) {
30+
Application.on(Application.launchEvent, function (args: LaunchEventData) {
3131
if (args.android) {
3232
// For Android applications, args.android is an android.content.Intent class.
33-
console.log('Launched Android application with the following intent: ' + args.android + '.');
33+
console.log('Launched Android application with the following intent:', args.android);
3434
} else if (args.ios !== undefined) {
3535
// For iOS applications, args.ios is NSDictionary (launchOptions).
36-
console.log('Launched iOS application with options: ' + args.ios);
36+
console.log('Launched iOS application with options:', args.ios);
3737
}
3838
});
3939

4040
Application.on(Application.suspendEvent, function (args: ApplicationEventData) {
4141
if (args.android) {
4242
// For Android applications, args.android is an Android activity class.
43-
console.log('Suspend Activity: ' + args.android);
43+
console.log('Suspend Activity:', args.android);
4444
} else if (args.ios) {
4545
// For iOS applications, args.ios is UIApplication.
46-
console.log('Suspend UIApplication: ' + args.ios);
46+
console.log('Suspend UIApplication:', args.ios);
4747
}
4848
});
4949

5050
Application.on(Application.resumeEvent, function (args: ApplicationEventData) {
5151
if (args.android) {
5252
// For Android applications, args.android is an Android activity class.
53-
console.log('Resume Activity: ' + args.android);
53+
console.log('Resume Activity:', args.android);
5454
} else if (args.ios) {
5555
// For iOS applications, args.ios is UIApplication.
56-
console.log('Resume UIApplication: ' + args.ios);
56+
console.log('Resume UIApplication:', args.ios);
5757
}
5858
});
5959

6060
Application.on(Application.exitEvent, function (args: ApplicationEventData) {
6161
if (args.android) {
6262
// For Android applications, args.android is an Android activity class.
63-
console.log('Exit Activity: ' + args.android);
63+
console.log('Exit Activity:', args.android);
6464
} else if (args.ios) {
6565
// For iOS applications, args.ios is UIApplication.
66-
console.log('Exit UIApplication: ' + args.ios);
66+
console.log('Exit UIApplication:', args.ios);
6767
}
6868
});
6969

7070
Application.on(Application.lowMemoryEvent, function (args: ApplicationEventData) {
7171
if (args.android) {
7272
// For Android applications, args.android is an Android activity class.
73-
console.log('Low Memory: ' + args.android);
73+
console.log('Low Memory:', args.android);
7474
} else if (args.ios) {
7575
// For iOS applications, args.ios is UIApplication.
76-
console.log('Low Memory: ' + args.ios);
76+
console.log('Low Memory:', args.ios);
7777
}
7878
});
7979

8080
// Error events.
8181
Application.on(Application.uncaughtErrorEvent, function (args: UnhandledErrorEventData) {
82-
console.log('NativeScriptError: ' + args.error);
83-
console.log((<any>args.error).nativeException || (<any>args.error).nativeError);
84-
console.log((<any>args.error).stackTrace || (<any>args.error).stack);
82+
console.log('NativeScriptError:', args.error);
83+
console.log((<any>args.error).nativeException ?? (<any>args.error).nativeError);
84+
console.log((<any>args.error).stackTrace ?? (<any>args.error).stack);
8585
});
8686

8787
Application.on(Application.discardedErrorEvent, function (args: DiscardedErrorEventData) {
88-
console.log('[Discarded] NativeScriptError: ' + args.error);
89-
console.log((<any>args.error).nativeException || (<any>args.error).nativeError);
90-
console.log((<any>args.error).stackTrace || (<any>args.error).stack);
88+
console.log('[Discarded] NativeScriptError:', args.error);
89+
console.log((<any>args.error).nativeException ?? (<any>args.error).nativeError);
90+
console.log((<any>args.error).stackTrace ?? (<any>args.error).stack);
9191
});
9292

9393
// Android activity events.
9494
if (Application.android) {
95-
Application.android.on(AndroidApplication.activityCreatedEvent, function (args: AndroidActivityBundleEventData) {
96-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Bundle: ' + args.bundle);
95+
Application.android.on(Application.android.activityCreatedEvent, function (args: AndroidActivityBundleEventData) {
96+
console.log('Event: ' + args.eventName + ', Activity:', args.activity, ', Bundle:', args.bundle);
9797
});
9898

99-
Application.android.on(AndroidApplication.activityDestroyedEvent, function (args: AndroidActivityEventData) {
100-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
99+
Application.android.on(Application.android.activityDestroyedEvent, function (args: AndroidActivityEventData) {
100+
console.log('Event: ' + args.eventName + ', Activity: ', args.activity);
101101
});
102102

103-
Application.android.on(AndroidApplication.activityStartedEvent, function (args: AndroidActivityEventData) {
104-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
103+
Application.android.on(Application.android.activityStartedEvent, function (args: AndroidActivityEventData) {
104+
console.log('Event: ' + args.eventName + ', Activity:', args.activity);
105105
});
106106

107-
Application.android.on(AndroidApplication.activityPausedEvent, function (args: AndroidActivityEventData) {
108-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
107+
Application.android.on(Application.android.activityPausedEvent, function (args: AndroidActivityEventData) {
108+
console.log('Event: ' + args.eventName + ', Activity:', args.activity);
109109
});
110110

111-
Application.android.on(AndroidApplication.activityResumedEvent, function (args: AndroidActivityEventData) {
112-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
111+
Application.android.on(Application.android.activityResumedEvent, function (args: AndroidActivityEventData) {
112+
console.log('Event: ' + args.eventName + ', Activity:', args.activity);
113113
});
114114

115-
Application.android.on(AndroidApplication.activityStoppedEvent, function (args: AndroidActivityEventData) {
116-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
115+
Application.android.on(Application.android.activityStoppedEvent, function (args: AndroidActivityEventData) {
116+
console.log('Event: ' + args.eventName + ', Activity:', args.activity);
117117
});
118118

119-
Application.android.on(AndroidApplication.saveActivityStateEvent, function (args: AndroidActivityBundleEventData) {
120-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Bundle: ' + args.bundle);
119+
Application.android.on(Application.android.saveActivityStateEvent, function (args: AndroidActivityBundleEventData) {
120+
console.log('Event: ' + args.eventName + ', Activity:', args.activity, ', Bundle:', args.bundle);
121121
});
122122

123-
Application.android.on(AndroidApplication.activityResultEvent, function (args: AndroidActivityResultEventData) {
124-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', requestCode: ' + args.requestCode + ', resultCode: ' + args.resultCode + ', Intent: ' + args.intent);
123+
Application.android.on(Application.android.activityResultEvent, function (args: AndroidActivityResultEventData) {
124+
console.log('Event:', args.eventName, ', Activity:', args.activity, ', requestCode: ', args.requestCode, ', resultCode: ', args.resultCode, ', Intent: ', args.intent);
125125
});
126126

127-
Application.android.on(AndroidApplication.activityBackPressedEvent, function (args: AndroidActivityBackPressedEventData) {
128-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity);
127+
Application.android.on(Application.android.activityBackPressedEvent, function (args: AndroidActivityBackPressedEventData) {
128+
console.log('Event:', args.eventName, ', Activity:', args.activity);
129129
// Set args.cancel = true to cancel back navigation and do something custom.
130130
});
131131

132-
Application.android.on(AndroidApplication.activityNewIntentEvent, function (args: AndroidActivityNewIntentEventData) {
133-
console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Intent: ' + args.intent);
132+
Application.android.on(Application.android.activityNewIntentEvent, function (args: AndroidActivityNewIntentEventData) {
133+
console.log('Event: ', args.eventName, ', Activity:', args.activity, ', Intent:', args.intent);
134134
});
135135
}
136136

0 commit comments

Comments
 (0)