From f64355ba7a53cddf7c0a147ea7678f0fe6de6fba Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Wed, 17 May 2023 21:02:06 +0200 Subject: [PATCH] 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); ``` --- .prettierrc.json | 10 +- apps/automated/package.json | 1 + .../application/application-tests-common.ts | 9 +- .../application/application-tests.android.ts | 6 +- .../src/file-system/file-system-tests.ts | 5 +- .../src/image-source/image-source-tests.ts | 15 +- apps/automated/src/livesync/livesync-tests.ts | 11 +- apps/automated/src/main.ts | 84 +- apps/automated/src/pages/page5.ts | 49 +- .../src/ui/core/bindable/bindable-tests.ts | 37 +- apps/automated/src/ui/image/image-tests.ts | 4 +- .../src/ui/list-picker/list-picker-tests.ts | 43 +- .../src/ui/root-view/reset-root-view-tests.ts | 44 +- .../src/ui/tab-view/tab-view-root-tests.ts | 14 +- .../src/ui/view/view-tests-common.ts | 37 +- apps/automated/webpack.config.js | 20 +- .../accessibility/accessibility-css-helper.ts | 11 +- .../accessibility-service.android.ts | 57 +- .../accessibility-service.ios.ts | 2 +- .../core/accessibility/font-scale.android.ts | 3 +- packages/core/accessibility/font-scale.ios.ts | 2 +- packages/core/accessibility/index.android.ts | 4 +- packages/core/accessibility/index.ios.ts | 2 +- .../application-settings/index.android.ts | 4 +- packages/core/application/Readme.md | 1 - .../core/application/application-common.ts | 727 +++++++++++++---- .../application/application-interfaces.ts | 197 +++-- .../core/application/application-shims.ts | 391 +++++++++ .../core/application/application.android.ts | 489 +++++++++++ packages/core/application/application.d.ts | 186 +++++ packages/core/application/application.ios.ts | 436 ++++++++++ packages/core/application/index.android.ts | 591 +------------- packages/core/application/index.d.ts | 761 +----------------- packages/core/application/index.ios.ts | 600 +------------- packages/core/connectivity/index.android.ts | 9 +- .../file-system/file-system-access.android.ts | 6 +- packages/core/file-system/index.ts | 12 +- packages/core/image-source/index.android.ts | 4 +- packages/core/index.d.ts | 159 +--- packages/core/index.ts | 188 +---- packages/core/jest.setup.ts | 19 +- packages/core/module-name-resolver/index.ts | 14 +- .../non-bundle-workflow-compat.ts | 4 +- packages/core/platform/index.android.ts | 10 +- packages/core/ui/action-bar/index.android.ts | 10 +- packages/core/ui/core/view/index.android.ts | 20 +- .../ui/core/view/view-helper/index.ios.ts | 12 +- packages/core/ui/dialogs/index.ios.ts | 12 +- packages/core/ui/frame/activity.android.ts | 4 +- packages/core/ui/frame/index.android.ts | 151 ++-- packages/core/ui/frame/index.ios.ts | 4 +- .../core/ui/styling/background.android.ts | 8 +- packages/core/ui/styling/style-scope.ts | 16 +- packages/core/ui/tab-view/index.android.ts | 4 +- .../shared-transition-helper.ios.ts | 38 +- .../core/ui/transition/shared-transition.ts | 15 +- packages/core/utils/android/index.ts | 171 ++++ packages/core/utils/index.android.ts | 25 +- packages/core/utils/index.d.ts | 16 +- packages/core/utils/index.ios.ts | 21 +- packages/core/utils/ios/index.ts | 329 ++++++++ .../core/utils/layout-helper/index.android.ts | 6 +- .../core/utils/mainthread-helper.android.ts | 4 +- packages/core/utils/native-helper.android.ts | 182 +---- packages/core/utils/native-helper.d.ts | 523 ++++++------ packages/core/utils/native-helper.ios.ts | 339 +------- packages/core/utils/platform-check.ts | 26 + 67 files changed, 3536 insertions(+), 3678 deletions(-) delete mode 100644 packages/core/application/Readme.md create mode 100644 packages/core/application/application-shims.ts create mode 100644 packages/core/application/application.android.ts create mode 100644 packages/core/application/application.d.ts create mode 100644 packages/core/application/application.ios.ts create mode 100644 packages/core/utils/android/index.ts create mode 100644 packages/core/utils/ios/index.ts create mode 100644 packages/core/utils/platform-check.ts diff --git a/.prettierrc.json b/.prettierrc.json index 098f6bab3..bc8dae834 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,6 @@ { - "useTabs": true, - "printWidth": 600, - "tabWidth": 2, - "singleQuote": true -} \ No newline at end of file + "useTabs": true, + "printWidth": 600, + "tabWidth": 2, + "singleQuote": true +} diff --git a/apps/automated/package.json b/apps/automated/package.json index 0de8f239a..9ed1314a9 100644 --- a/apps/automated/package.json +++ b/apps/automated/package.json @@ -14,6 +14,7 @@ "@nativescript/android": "~8.5.0", "@nativescript/ios": "~8.5.0", "@nativescript/webpack": "file:../../dist/packages/nativescript-webpack.tgz", + "circular-dependency-plugin": "^5.2.2", "typescript": "~4.9.5" }, "gitHead": "c06800e52ee1a184ea2dffd12a6702aaa43be4e3", diff --git a/apps/automated/src/application/application-tests-common.ts b/apps/automated/src/application/application-tests-common.ts index dba7f33ff..440ecb35e 100644 --- a/apps/automated/src/application/application-tests-common.ts +++ b/apps/automated/src/application/application-tests-common.ts @@ -1,5 +1,4 @@ -import * as app from '@nativescript/core/application'; -import { isAndroid, isIOS, Device, Application, platformNames } from '@nativescript/core'; +import { isAndroid, isIOS, Device, Application, platformNames } from '@nativescript/core'; import * as TKUnit from '../tk-unit'; @@ -11,9 +10,9 @@ if (isAndroid) { export function testInitialized() { if (Device.os === platformNames.android) { - TKUnit.assert(app.android, 'Application module not properly intialized'); + TKUnit.assert(Application.android, 'Application module not properly intialized'); } else if (Device.os === platformNames.ios) { - TKUnit.assert(app.ios, 'Application module not properly intialized'); + TKUnit.assert(Application.ios, 'Application module not properly intialized'); } } @@ -23,5 +22,5 @@ export function testDisplayedEvent() { } export function testOrientation() { - TKUnit.assert(Application.orientation(), 'Orientation not initialized.'); + TKUnit.assert(Application.orientation, 'Orientation not initialized.'); } diff --git a/apps/automated/src/application/application-tests.android.ts b/apps/automated/src/application/application-tests.android.ts index 80f899652..d927fb1cc 100644 --- a/apps/automated/src/application/application-tests.android.ts +++ b/apps/automated/src/application/application-tests.android.ts @@ -40,7 +40,11 @@ export function testAndroidApplicationInitialized() { TKUnit.assert(Application.android, 'Android application not initialized.'); TKUnit.assert(Application.android.context, 'Android context not initialized.'); TKUnit.assert(Application.android.foregroundActivity, 'Android foregroundActivity not initialized.'); - TKUnit.assert(Application.android.foregroundActivity.isNativeScriptActivity, 'Android foregroundActivity.isNativeScriptActivity is false.'); + TKUnit.assert( + // @ts-expect-error + Application.android.foregroundActivity.isNativeScriptActivity, + 'Android foregroundActivity.isNativeScriptActivity is false.' + ); TKUnit.assert(Application.android.startActivity, 'Android startActivity not initialized.'); TKUnit.assert(Application.android.nativeApp, 'Android nativeApp not initialized.'); TKUnit.assert(Application.android.orientation, 'Android orientation not initialized.'); diff --git a/apps/automated/src/file-system/file-system-tests.ts b/apps/automated/src/file-system/file-system-tests.ts index d6a30e99b..3a2ba03c8 100644 --- a/apps/automated/src/file-system/file-system-tests.ts +++ b/apps/automated/src/file-system/file-system-tests.ts @@ -4,8 +4,7 @@ import * as fs from '@nativescript/core/file-system'; // << file-system-require import * as TKUnit from '../tk-unit'; -import * as appModule from '@nativescript/core/application'; -import { isIOS, Device, platformNames, isAndroid } from '@nativescript/core'; +import { Application, isIOS, Device, platformNames, isAndroid } from '@nativescript/core'; export var testPathNormalize = function () { // >> file-system-normalize @@ -600,7 +599,7 @@ export var testFolderClear = function () { // misc export var testKnownFolderRename = function () { // You can rename known folders in android - so skip this test. - if (!appModule.android) { + if (!Application.android) { var folder = fs.knownFolders.documents(); folder.rename('Something').then( function (result) { diff --git a/apps/automated/src/image-source/image-source-tests.ts b/apps/automated/src/image-source/image-source-tests.ts index f46acce80..2c0715616 100644 --- a/apps/automated/src/image-source/image-source-tests.ts +++ b/apps/automated/src/image-source/image-source-tests.ts @@ -1,11 +1,8 @@ import { ImageSource } from '@nativescript/core/image-source'; import * as imageAssetModule from '@nativescript/core/image-asset'; import * as fs from '@nativescript/core/file-system'; -import * as app from '@nativescript/core/application'; import * as TKUnit from '../tk-unit'; -import { Font } from '@nativescript/core/ui/styling/font'; -import { Color } from '@nativescript/core/color'; -import * as utils from '@nativescript/core/utils'; +import { Application, Font, Color, Utils } from '@nativescript/core'; const imagePath = '~/assets/logo.png'; const splashscreenPath = '~/assets/splashscreen.png'; @@ -23,7 +20,7 @@ export function testFromResource() { export function testDrawableSetNativeSource() { if (global.isAndroid) { - const context = utils.ad.getApplicationContext() as android.content.Context; + const context = Utils.android.getApplicationContext() as android.content.Context; const rDrawable = `${context.getPackageName()}.R$drawable`; const rClazz = java.lang.Class.forName(`${rDrawable}`); const iconId = rClazz.getDeclaredField('icon').get(null) as java.lang.Integer; @@ -253,9 +250,9 @@ export function testFromAssetWithBiggerScaling(done) { export function testNativeFields() { const img = ImageSource.fromFileSync(imagePath); - if (app.android) { + if (Application.android) { TKUnit.assert(img.android != null, 'Image.android not updated.'); - } else if (app.ios) { + } else if (Application.ios) { TKUnit.assert(img.ios != null, 'Image.ios not updated.'); } } @@ -315,9 +312,9 @@ export function testLoadFromBase64Encode_JPEG() { export function testLoadFromBase64Encode_PNG() { let img: ImageSource; - if (app.android) { + if (Application.android) { img = ImageSource.fromBase64Sync(fullAndroidPng); - } else if (app.ios) { + } else if (Application.ios) { img = ImageSource.fromBase64Sync(fullIosPng); } diff --git a/apps/automated/src/livesync/livesync-tests.ts b/apps/automated/src/livesync/livesync-tests.ts index 427e30112..67e69e8a9 100644 --- a/apps/automated/src/livesync/livesync-tests.ts +++ b/apps/automated/src/livesync/livesync-tests.ts @@ -1,12 +1,7 @@ import * as helper from '../ui-helper'; import * as TKUnit from '../tk-unit'; -import * as app from '@nativescript/core/application'; -import * as frame from '@nativescript/core/ui/frame'; -import { Color } from '@nativescript/core/color'; -import { Builder } from '@nativescript/core/ui/builder'; -import { Page } from '@nativescript/core/ui/page'; -import { Frame } from '@nativescript/core/ui/frame'; +import { Application, Frame, Page, Builder, Color } from '@nativescript/core'; const LIVESYNC_FOLDER = 'livesync/'; @@ -45,7 +40,7 @@ export function setUp() { } export function tearDown() { - app.setCssFileName(appCssFileName); + Application.setCssFileName(appCssFileName); } export function test_onLiveSync_ModuleContext_AppStyle_AppNewCss() { @@ -143,7 +138,7 @@ function _test_onLiveSync_ModuleContext_AppStyle(appStyleFileName: string, lives const buttonPage = Builder.createViewFromEntry({ moduleName: buttonPageModuleName }); helper.navigateWithHistory(() => buttonPage); - app.setCssFileName(appStyleFileName); + Application.setCssFileName(appStyleFileName); const pageBeforeLiveSync = helper.getCurrentPage(); livesync({ type: 'style', path: livesyncStyleFileName }); diff --git a/apps/automated/src/main.ts b/apps/automated/src/main.ts index acb8fc89c..05cbb7bf8 100644 --- a/apps/automated/src/main.ts +++ b/apps/automated/src/main.ts @@ -5,12 +5,12 @@ if (typeof NSDate !== 'undefined') { start = java.lang.System.currentTimeMillis(); } -import { Application, ApplicationEventData, UnhandledErrorEventData, DiscardedErrorEventData, AndroidActivityBundleEventData, AndroidActivityEventData, AndroidApplication, AndroidActivityNewIntentEventData, AndroidActivityResultEventData, AndroidActivityBackPressedEventData } from '@nativescript/core'; +import { AndroidActivityBackPressedEventData, AndroidActivityBundleEventData, AndroidActivityEventData, AndroidActivityNewIntentEventData, AndroidActivityResultEventData, Application, ApplicationEventData, DiscardedErrorEventData, LaunchEventData, UnhandledErrorEventData } from '@nativescript/core'; if (Application.ios) { // Observe application notifications. Application.ios.addNotificationObserver(UIApplicationDidFinishLaunchingNotification, (notification: NSNotification) => { - console.log('UIApplicationDidFinishLaunchingNotification: ' + notification); + console.log('UIApplicationDidFinishLaunchingNotification:', notification); }); } @@ -19,118 +19,118 @@ Application.on(Application.displayedEvent, function (args: ApplicationEventData) global.isDisplayedEventFired = true; if (args.android) { - // For Android applications, args.android is an Android activity class. - console.log('Displayed Activity: ' + args.android); + // For Android applications, args.activity is an Android activity class. + console.log('Displayed Activity:', (args as AndroidActivityEventData).activity); } else if (args.ios) { // For iOS applications, args.ios is UIApplication. - console.log('Displayed UIApplication: ' + args.ios); + console.log('Displayed UIApplication:', args.ios); } }); -Application.on(Application.launchEvent, function (args: ApplicationEventData) { +Application.on(Application.launchEvent, function (args: LaunchEventData) { if (args.android) { // For Android applications, args.android is an android.content.Intent class. - console.log('Launched Android application with the following intent: ' + args.android + '.'); + console.log('Launched Android application with the following intent:', args.android); } else if (args.ios !== undefined) { // For iOS applications, args.ios is NSDictionary (launchOptions). - console.log('Launched iOS application with options: ' + args.ios); + console.log('Launched iOS application with options:', args.ios); } }); Application.on(Application.suspendEvent, function (args: ApplicationEventData) { if (args.android) { // For Android applications, args.android is an Android activity class. - console.log('Suspend Activity: ' + args.android); + console.log('Suspend Activity:', args.android); } else if (args.ios) { // For iOS applications, args.ios is UIApplication. - console.log('Suspend UIApplication: ' + args.ios); + console.log('Suspend UIApplication:', args.ios); } }); Application.on(Application.resumeEvent, function (args: ApplicationEventData) { if (args.android) { // For Android applications, args.android is an Android activity class. - console.log('Resume Activity: ' + args.android); + console.log('Resume Activity:', args.android); } else if (args.ios) { // For iOS applications, args.ios is UIApplication. - console.log('Resume UIApplication: ' + args.ios); + console.log('Resume UIApplication:', args.ios); } }); Application.on(Application.exitEvent, function (args: ApplicationEventData) { if (args.android) { // For Android applications, args.android is an Android activity class. - console.log('Exit Activity: ' + args.android); + console.log('Exit Activity:', args.android); } else if (args.ios) { // For iOS applications, args.ios is UIApplication. - console.log('Exit UIApplication: ' + args.ios); + console.log('Exit UIApplication:', args.ios); } }); Application.on(Application.lowMemoryEvent, function (args: ApplicationEventData) { if (args.android) { // For Android applications, args.android is an Android activity class. - console.log('Low Memory: ' + args.android); + console.log('Low Memory:', args.android); } else if (args.ios) { // For iOS applications, args.ios is UIApplication. - console.log('Low Memory: ' + args.ios); + console.log('Low Memory:', args.ios); } }); // Error events. Application.on(Application.uncaughtErrorEvent, function (args: UnhandledErrorEventData) { - console.log('NativeScriptError: ' + args.error); - console.log((args.error).nativeException || (args.error).nativeError); - console.log((args.error).stackTrace || (args.error).stack); + console.log('NativeScriptError:', args.error); + console.log((args.error).nativeException ?? (args.error).nativeError); + console.log((args.error).stackTrace ?? (args.error).stack); }); Application.on(Application.discardedErrorEvent, function (args: DiscardedErrorEventData) { - console.log('[Discarded] NativeScriptError: ' + args.error); - console.log((args.error).nativeException || (args.error).nativeError); - console.log((args.error).stackTrace || (args.error).stack); + console.log('[Discarded] NativeScriptError:', args.error); + console.log((args.error).nativeException ?? (args.error).nativeError); + console.log((args.error).stackTrace ?? (args.error).stack); }); // Android activity events. if (Application.android) { - Application.android.on(AndroidApplication.activityCreatedEvent, function (args: AndroidActivityBundleEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Bundle: ' + args.bundle); + Application.android.on(Application.android.activityCreatedEvent, function (args: AndroidActivityBundleEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity, ', Bundle:', args.bundle); }); - Application.android.on(AndroidApplication.activityDestroyedEvent, function (args: AndroidActivityEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityDestroyedEvent, function (args: AndroidActivityEventData) { + console.log('Event: ' + args.eventName + ', Activity: ', args.activity); }); - Application.android.on(AndroidApplication.activityStartedEvent, function (args: AndroidActivityEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityStartedEvent, function (args: AndroidActivityEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity); }); - Application.android.on(AndroidApplication.activityPausedEvent, function (args: AndroidActivityEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityPausedEvent, function (args: AndroidActivityEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity); }); - Application.android.on(AndroidApplication.activityResumedEvent, function (args: AndroidActivityEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityResumedEvent, function (args: AndroidActivityEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity); }); - Application.android.on(AndroidApplication.activityStoppedEvent, function (args: AndroidActivityEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityStoppedEvent, function (args: AndroidActivityEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity); }); - Application.android.on(AndroidApplication.saveActivityStateEvent, function (args: AndroidActivityBundleEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Bundle: ' + args.bundle); + Application.android.on(Application.android.saveActivityStateEvent, function (args: AndroidActivityBundleEventData) { + console.log('Event: ' + args.eventName + ', Activity:', args.activity, ', Bundle:', args.bundle); }); - Application.android.on(AndroidApplication.activityResultEvent, function (args: AndroidActivityResultEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', requestCode: ' + args.requestCode + ', resultCode: ' + args.resultCode + ', Intent: ' + args.intent); + Application.android.on(Application.android.activityResultEvent, function (args: AndroidActivityResultEventData) { + console.log('Event:', args.eventName, ', Activity:', args.activity, ', requestCode: ', args.requestCode, ', resultCode: ', args.resultCode, ', Intent: ', args.intent); }); - Application.android.on(AndroidApplication.activityBackPressedEvent, function (args: AndroidActivityBackPressedEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity); + Application.android.on(Application.android.activityBackPressedEvent, function (args: AndroidActivityBackPressedEventData) { + console.log('Event:', args.eventName, ', Activity:', args.activity); // Set args.cancel = true to cancel back navigation and do something custom. }); - Application.android.on(AndroidApplication.activityNewIntentEvent, function (args: AndroidActivityNewIntentEventData) { - console.log('Event: ' + args.eventName + ', Activity: ' + args.activity + ', Intent: ' + args.intent); + Application.android.on(Application.android.activityNewIntentEvent, function (args: AndroidActivityNewIntentEventData) { + console.log('Event: ', args.eventName, ', Activity:', args.activity, ', Intent:', args.intent); }); } diff --git a/apps/automated/src/pages/page5.ts b/apps/automated/src/pages/page5.ts index 55c0945ca..349e272a9 100644 --- a/apps/automated/src/pages/page5.ts +++ b/apps/automated/src/pages/page5.ts @@ -1,8 +1,5 @@ -import * as gridModule from '@nativescript/core/ui/layouts/grid-layout'; -import * as pages from '@nativescript/core/ui/page'; -import * as buttons from '@nativescript/core/ui/button'; -import * as app from '@nativescript/core/application'; import * as platform from '@nativescript/core/platform'; +import { Application, Page, Button, GridLayout } from '@nativescript/core'; function printDeviceInfoAndroid() { console.log('android.os.Build.DEVICE = ' + android.os.Build.DEVICE); //android.os.Build.DEVICE = hammerhead @@ -10,7 +7,9 @@ function printDeviceInfoAndroid() { console.log('android.os.Build.VERSION.SDK_INT = ' + android.os.Build.VERSION.SDK_INT); //android.os.Build.VERSION.SDK_INT = 19 console.log('android.os.Build.VERSION.CODENAME = ' + android.os.Build.VERSION.CODENAME); //android.os.Build.VERSION.CODENAME = REL console.log('android.os.Build.VERSION.RELEASE = ' + android.os.Build.VERSION.RELEASE); //android.os.Build.VERSION.RELEASE = 4.4.4 - var metrics: android.util.DisplayMetrics = app.android.context.getResources().getDisplayMetrics(); + var metrics: android.util.DisplayMetrics = Application.android.context + .getResources() + .getDisplayMetrics(); console.log('metrics.density = ' + metrics.density); //metrics.density = 3 console.log('metrics.scaledDensity = ' + metrics.scaledDensity); //metrics.scaledDensity = 3 console.log('metrics.densityDpi = ' + metrics.densityDpi); //metrics.densityDpi = 480 @@ -19,11 +18,16 @@ function printDeviceInfoAndroid() { console.log('metrics.widthPixels = ' + metrics.widthPixels); //metrics.widthPixels = 1080 console.log('metrics.heightPixels = ' + metrics.heightPixels); //metrics.heightPixels = 1776 - var config = app.android.context.getResources().getConfiguration(); + var config = Application.android.context.getResources().getConfiguration(); console.log('config.screenWidthDp = ' + config.screenWidthDp); console.log('config.screenHeightDp = ' + config.screenHeightDp); console.log('config.smallestScreenWidthDp = ' + config.smallestScreenWidthDp); - console.log('config.orientation = ' + (config.orientation === android.content.res.Configuration.ORIENTATION_PORTRAIT ? 'portrait' : 'ladscape')); + console.log( + 'config.orientation = ' + + (config.orientation === android.content.res.Configuration.ORIENTATION_PORTRAIT + ? 'portrait' + : 'ladscape') + ); } function printDeviceInfoIOS() { @@ -37,7 +41,12 @@ function printDeviceInfoIOS() { console.log('device.batteryLevel = ' + device.batteryLevel); //device.batteryLevel = -1 var screen = UIScreen.mainScreen; console.log('screen = ' + screen); - console.log('screen.nativeBounds = ' + screen.nativeBounds.size.width + ', ' + screen.nativeBounds.size.height); //screen.nativeBounds = 640, 1136 + console.log( + 'screen.nativeBounds = ' + + screen.nativeBounds.size.width + + ', ' + + screen.nativeBounds.size.height + ); //screen.nativeBounds = 640, 1136 console.log('screen.scale = ' + screen.scale); //screen.scale = 2 console.log('screen.nativeScale = ' + screen.nativeScale); //screen.nativeScale = 2 } @@ -49,15 +58,23 @@ function printTNSInfo() { console.log('platform.Device.sdkVersion = ' + platform.Device.sdkVersion); console.log('platform.Device.deviceType = ' + platform.Device.deviceType); - console.log('platform.Screen.mainScreen.widthDIPs = ' + platform.Screen.mainScreen.widthDIPs); - console.log('platform.Screen.mainScreen.heightDIPs = ' + platform.Screen.mainScreen.heightDIPs); + console.log( + 'platform.Screen.mainScreen.widthDIPs = ' + platform.Screen.mainScreen.widthDIPs + ); + console.log( + 'platform.Screen.mainScreen.heightDIPs = ' + platform.Screen.mainScreen.heightDIPs + ); console.log('platform.Screen.mainScreen.scale = ' + platform.Screen.mainScreen.scale); - console.log('platform.Screen.mainScreen.widthPixels = ' + platform.Screen.mainScreen.widthPixels); - console.log('platform.Screen.mainScreen.heightPixels = ' + platform.Screen.mainScreen.heightPixels); + console.log( + 'platform.Screen.mainScreen.widthPixels = ' + platform.Screen.mainScreen.widthPixels + ); + console.log( + 'platform.Screen.mainScreen.heightPixels = ' + platform.Screen.mainScreen.heightPixels + ); } function print() { - if (app.android) { + if (Application.android) { printDeviceInfoAndroid(); } else { printDeviceInfoIOS(); @@ -67,10 +84,10 @@ function print() { //print(); export function createPage() { - var page = new pages.Page(); - var grid = new gridModule.GridLayout(); + var page = new Page(); + var grid = new GridLayout(); - var btn = new buttons.Button(); + var btn = new Button(); btn.text = 'print'; btn.on('tap', (d) => { print(); diff --git a/apps/automated/src/ui/core/bindable/bindable-tests.ts b/apps/automated/src/ui/core/bindable/bindable-tests.ts index 28f87fabe..8007ee0ff 100644 --- a/apps/automated/src/ui/core/bindable/bindable-tests.ts +++ b/apps/automated/src/ui/core/bindable/bindable-tests.ts @@ -5,14 +5,7 @@ import * as TKUnit from '../../../tk-unit'; import * as types from '@nativescript/core/utils/types'; import * as helper from '../../../ui-helper'; import * as bindingBuilder from '@nativescript/core/ui/builder/binding-builder'; -import * as appModule from '@nativescript/core/application'; -import { Trace } from '@nativescript/core'; -import { View } from '@nativescript/core/ui/core/view'; -import { Button } from '@nativescript/core/ui/button'; -import { Page } from '@nativescript/core/ui/page'; -import { StackLayout } from '@nativescript/core/ui/layouts/stack-layout'; -import { Label } from '@nativescript/core/ui/label'; -import { TextField } from '@nativescript/core/ui/text-field'; +import { Application, View, Button, Page, StackLayout, Label, TextField, Trace } from '@nativescript/core'; declare var WeakRef: any; // // For information and examples how to use bindings please refer to special [**Data binding**](../../../../bindings.md) topic. @@ -583,7 +576,11 @@ export function test_BindingToParentView_ShouldNotLeaveGarbageInViewModel() { testStack.bindingContext = stackViewModel; let testLabel =