Bug Fixes
- android: ensure android application is created before setting listeners (#9876) (54f454f)
- android: improve content uri handling (#9874) (a272296), closes #9871
- file access cross platform stub (338ae56)
- removed unecessary
console.log
(#9877) (74e42fc)
Features
- added Utils.executeOnUIThread (36a55da)
Bug Fixes
- ActionItem: rendering threw errors if it had a nested child. (#9821) (efa80c7)
- android: gesture events fix (#9842) (2664783)
- css: borderColor parse handling for hsl(a) color values (#9857) (da3bd2c)
- ios: navigation button now allows using custom icon (#9835) (f88c158)
- RootLayout: close popup views on live-sync (#9834) (6941466)
- Utils.queueGC debounce and throttle with reuse of different settings (#9852) (9ce7455)
Features
- RootLayout: added topmost method to retrieve view at top (#9826) (3bb8fc2)
- TouchManager: touchDelay property for nested tap control (c05145b)
Performance Improvements
Bug Fixes
- android: a11y - do not provide content description for TextView elements (#9673) (dbaf203), closes #9588
- android: api17 crash on a11y service (#9792) (2efcdf5)
- android: boolean keyboardType should not set inputType (#9795) (9e6371f)
- android: edge cases and compatibility with fragments 1.2.x (#9782) (6b41268)
- android: fragment creation loaded/unloaded protection (ac2e944)
- android: nested frames were sometimes not recreated (#9725) (902a4c6)
- android: nested frames were sometimes not recreated (#9748) (cb648e3)
- android: NullPointerException on navigation (#9669) (9b5d125), closes #8441
- android: prevent error when detaching from unloaded ScrollView (#9666) (e59f3ff)
- android: text-transform: capitalize behavior (#9598) (aa1c631), closes #7059
- android: when hiding the keyboard make view lose focus to match ios behavior (#9786) (b78996a)
- application instance creation occurs only within Application.run (a518249)
- core: animation iteration correct for android css animations and iOS rotation (#9628) (608bb1e), closes #7712
- core: Application handling of nativeApp instance (6c06c77)
- core: parse template literal syntax with nested identifiers as expression. (#9744) (57cc4ed)
- ensure android can access native app instance before bootstrap (f10cffc)
- fs: wrong common paths (51b92f3)
- ios: do not redraw if background image is 'none' (#9800) (402a7bb)
- ios: force layout of view when changing the safe area insets (#9773) (a1ba1f6)
- ios: proper UITabBarAppearance handling (6c71ce2)
- ios: tabview background color with appearance api in iOS 15+ (#9617) (2749221)
- ios: UIImage memory leaking after Image is disposed (#9777) (19d8869)
- memory leaks around image picking/saving to device (7dcfecf)
- qualifier matcher did not support multiple qualifiers for a single file. (#9720) (3d03f8f)
- setup script to build only what's necessary (b05650c)
- tear down views after a modal is closed (#9801) (b38337e)
- time-picker: correction for super.disposeNativeView (c41e702)
Features
- android: content uri support for File (#9807) (c68d002)
- android: tab view icon rendering mode (#9605) (66d8aff)
- android: update ui-mobile-base to gradle7 (#9778) (c7df2d0)
- background/foreground events (#9763) (b553a90)
- bindable: allow "global" context for expressions inside bindings (#9734) (2cbb135)
- binding expression parser additions and improvements (#9791) (716b831)
- config: add new option for pathsToClean (08d5656)
- config: cli.additionalPathsToClean to clean other paths with 'ns clean' (#9808) (3ec8c42)
- core: add event when disposeNativeView is called (f038e6b)
- core: support RGB alpha notation (#9699) (388d7ea)
- datepicker: ability to show time via showTime property (#9570) (ab4e47a)
- gestures: GestureEvents.gestureAttached added to modify native recognizers when needed (168a169)
- improved background handling (#9615) (dde9e02)
- improved converter and function call parsing mechanism for XML expressions (#9805) (c5856c6)
- ios: allow dynamic ProMotion frame refresh rate changes (#9775) (b292495)
- new expression parser for xml bindings (#9729) (90ceed1)
- proper handling for bindings with converters that were undefined (#9813) (a1772c0)
- root-layout: support gradient colors on shade cover (#9626) (d756eb5)
- switch: :checked pseudo and color fixes (#9790) (6437352)
- testID property for use with e2e testing without interfering with a11y (#9793) (8be543b), closes #9748
- touch animations demo in toolbox (d7916d7)
- types-android: updated types + api32 (#9774) (2393dad)
- types-ios: iOS 15.2 (#9710) (25679a6)
- types-ios: iOS 15.4 (#9806) (39164ef)
- types-ios: reduced ios types to common types for optimized ts resolution (#9809) (6cd8b8e)
- ui: TouchManager for ease in adding interactivity (26953ec)
- Utils for queueGC, debounce and throttle (40c5984)
Performance Improvements
- ios: autoreleasepool for image extensions (fbefea4)
- ios: prevent crash with image release (1fb687d)
- ios: uifont and formatted string optimizations plus uiimage scaling (#9761) (9d3977e)
- ios: UIImage memory leaks (#9783) (988f372)
Breaking Changes
For vanilla NativeScript users (using .xml views), several adjustments were made to the xml binding expressions parsing and you may need a few adjustments, for example:
BEFORE:
{{ default ? ' something' : ' something else' }}
AFTER:
Note: renamed default
to variable name.
{{ enableSubmit ? ' something' : ' something else' }}
This is related to the fact that default
is a reserved keyword and the expression parsing uses natural language syntax now.
BEFORE:
Note: This would apply to example usage: {{ variable | someConv }}
getResources().someConv = {
toView: function () {}
}
AFTER:
getResources().someConv = function () {}
This is related to improving/simplifying the convertors syntax with bindings.
Features
--env.e2e
support to go along with the new testID
property in core
Bug Fixes
- webpack: exclude other platforms from require.context (#9686) (cb7bd2a), closes #9682
- webpack: xml-namespace-loader incorrect dependency mapping (#9780) (151d6e8)
Features
- allow better tree shaking (#9798) (d3674de)
- support webpack profiling (#9804) (af4b7e3)
- webpack: add support for .mjs files (#9747) (4fa51b6)
- webpack: allow watching node_modules (#9781) (9c9c831)
- webpack: read nativescript.config.ts main if set before fallback to package.json (#9769) (61ff7e4), closes #9658
Bug Fixes
- android: StringIndexOutOfBoundsException with invalid drawables (#9563) (8e76bbe)
- background parsing color #9559 (#9560) (3e21748)
- ios: ActionBar flat property using new appearance api for iOS 15 (#9558) (183b4d4)
- ios: TextView respect editable binding (#9589) (2b2ce37)
- ios: replace autofill string in textfield (#9555) (889f6d7)
- style: CSS variables should be case-sensitive. (#9603) (02aa0f6)