4.7.30
jeromelaban
released this
26 Jan 20:37
·
95 commits
to release/stable/4.7
since this release
Our first release of 2023 is ready and brings over 230 new features and bug fixes, most notably introducing a new project template, improving performance across all platforms supported by Uno Platform and Shared Fonts.
Here are some highlights of the release:
- An updated project template which uses a Class Library instead of a "Shared Project"
- Support for Shared Fonts assets, which is removing platform specific steps
- Support for
ms-appx:///
Uris Images in library assets - Support for AppointmentStore (Android) by @pkar70
- XAML Trimming improvements (e.g. 33% in the Calculator app)
- Support for
ISelectionRange
- .NET 7 performance improvements with
JSImport
/JSExport
- Markup extension in
Style
Setter - Readonly
TextBox
selection support - .NET Native AOT support for the Skia GTK and Framebuffer heads
- Framebuffer fixes for 32 bits depths
- Android interop performance improvements
More details can be found in our blog post!
See below for the complete changelog.
Features
- fonts: Add support for fonts in Assets 67f91ec
- fonts: Add support for symbols font uri override 026c7fc
- notimplemented: Update error messages to include a link for not implemented APIs 2dc18e0
- xamlgen: Add support for debugging information, refactor BaseUri location fb3a55e
- xamlparser: Adjust support for relative Uri parsing to enable contextual image loading 8b4c228
- Add AutoPtr/StructPtr to TSInteropMarshaller 553f390
- Add linker attributes ee01391
- Add platform tags for Linux and Cloud on Uno templates 55ee8d0
- Add WinRT interop methods d6e9b26
- Adhere to HorizontalOffset and VerticalOffset 3f687ab
- Adjust metadata update agent for explicit updates afc258e
- Android Calendar (AppointmentStore), with struct (for all platforms) d641eaf
- Android Calendar, Reminder column a4b9c45
- Annotate Accelerometer 7ec2bdf
- Annotate Gyrometer 122744d
- Annotate LightSensor d8ef246
- Annotate Magnetometer 760d7b1
- Branded Item Templates a9b79b9
- Improve corner radius accuracy on Android dc358f2
- Initial focus on ContentDialog 91cd6f1
- Initialize runtime exports at startup 83f5da7
- ISelectionRange 83867cb
- Load Samples app Pages within Frame 913da44
- NeedsFrame porperty for SampleAttribute eacb4a0
- Preserve types conditionally 5d88cf7
- RectangleClip 35a8e98
- StorageFileHelper ca2f177
- Support custom markup extension in Style Setter 95bca12
- Support for TextBox and PasswordBox clipboard methods f42b59c
- TextElement.XamlRoot f4fd1b5
- droid: enable copy from readonly TextBox 85ba608
- gtk: Add support for .NET Native AOT 8d9ff09
- template: Move to single location projects 023502f
- Warn when Window constructor is used in Uno Platform targets 221f061
- droid: add property for native behaviour a8ed9ea
- Use RectangleClip for rounded corner border 0f71961
Performance Improvements
- Skia: Skip border shape creation with empty area, avoid generating border with empty thickness 0ed6b6f
- trim: Allow for ExpandoObject and DynamicObject to be linked out base on non-uno uses 7165749
- trimming: Break static dependency on FlyoutBase 006ec63
- trimming: Remove duplicate resource files 4e10391
- wasm: Enable trimming for external drag and drop 7dbab4f
- WindowManager: Add ArrangeElement binding 927ab11
- WindowManager: Add CreateContentNativeFast binding 406c5e2
- WindowManager: Add DestroyViewNativeFast binding 31233d7
- WindowManager: Add MeasureViewNativeFast binding 58bd823
- WindowManager: Add SetAttributes binding 4089821
- WindowManager: Add SetElementTransformNativeFast binding 89d6b2b
- WindowManager: Add SetPointerEventsNativeFast binding 6c33537
- WindowManager: Add SetStylesNativeFast binding 5b28b35
- WindowManager: Add SetStyleString bindings 1088eee
- WindowManager: Add SetVisibilityNativeFast binding 523230f
- Accelerometer JSImport bindings cd0bf46
- Adjust IsLayoutRequested interop on arrange b41bac4
- Adjust RichTextBox, MenuFlyout and TextBox trimming a9d1394
- Cache textblock static native properties 4fdef8c
- Geolocator JSImport bindings f662939
- ImplementedRoutedEvents evaluated at compile-time via a source generator f2b18d9
- Misc linker hints updates e927734
- Reduce allocations in
RegisterCustomScheme
6ad7b7c - Reuse java strings instances in TextBlock 0164ed0
- Reuse radii arrays c74ff5a
- Specialized binding for BorderLayerRenderer.GetOverlayDrawable() e4e87de
- Specialized binding for Brush.GetBackgroundDrawable() 0adc2ea
- Specialized binding for UIElement.AdjustCornerRadius() 6d16f8a
- use a ref inside the new array and reduce code size af90eb7
- Use records instead of record structs for large SG models 026dfd9
Bug Fixes
- assets: Use orginal library name casing for ms-appx:/// uri 73e0145
- flyout: XamlRoot not implemented 2dbc661
- fonts: [Android] Adjust backward compatibilty for explicit AndroidAssets-included fonts 98acad0
- fonts: Adjust font loading for ms-appx resources from assemblies 88be67d
- gen: generate less local variables c1c1a20
- gtk: Add more descriptive message on initialization failure 58f5bf6
- image: Fail with a descriptive error on relative Uri loading 30ffcda
- metadata: restore metadata updates for net6 or greater 4349883
- nuspec: Remove Mono.Cecil 5892a1e
- reg: Adjust UnoHasLocalizationResources metadata dd3d179
- reg: Include explicitly specified fonts in info.plist for backward compatibilty 9204b8f
- reg: Update symbols after ms-appx:/// casing update 26ba9bb
- remotecontrol: Don't fail on multi-targeted projacts loading 634febb
- remotecontrol: Don't force InterdemediateOutputPath for metadata updates ddf9c1b
- remotecontrol: Ensure generators run after a referenced project file update db174a8
- remotecontrol: Explicitly await all connection tasks to avoid unobserved tasks exceptions 65dee61
- added not implemented method for Win and UWP d2a1d65
- cleaned code 449f6cc
- document uno.ui/uno.winui conflicts 8423f0a
- identation 47fd961
- included implementation for UWP/WinAppSDK and updated docs f5b36e3
- Invisible invalid char c722537
- moved helper to UI.Toolkit project 65043da
- Native popup panel positioning on iOS ed00261
- remotecontrol: Observe changes on ProjectReferences during HR sessions 0b5a801
- resw: Adjust resources resolution for project references 7cb9abd
- template: Adjust default language for Windows head 0efd543
- template: Ensure x86, x64, arm64 windows head is deployable by default 2c1e21c
- winui: Adjust WinUI build 7ff5cef
- Adjust for 17.5 Preview 2 additional obsolete members on iOS a9dcd75
- Avoid deflating layout slot rect by border thickness twice dd3631e
- EffectiveViewport does not goes through native only elements 55205be
- LayoutSlotWithMarginsAndAlignments is not correct on WASM due to BorderThickness 1bd2555
- Remove incorrect UnoRuntimeIdentifier value 116ab96
- Remove some duplicated namespaces e2da443
- Remove unused generated code fb00901
- trimming: Disable XAML trimming on mono+OSX/Linux 0442a1a
- Pack analyzers in
analyzers/dotnet/cs
ba806d1 - Remove unsupported TFMs from WinUI package 800b18d
- removed redundant code and small refactors 8f794c0
- renamed AssetsManager internal member 80f7974
- Restore ProgressRing.xaml a4bbd3a
- Set XamlRoot on Popup if not set for Uno.UI bce4b14
- skia target a79184a
- Support for custom markup extension in VisualState Setter eb0f7e9
- CI: TakeScreenshot on Android b026c4b
- templates: Only build net6.0-windows10.0.18362 on Windows 55cabb4
- uap: Fix generators should not run under uap builds 26c6772
- ToolTip not styled correctly 1d3473c
- updated compiler directive for windows implementation 27015f6
- Use executing assembly path for InstalledPath on Skia 72de4e3
- animation: forever animation not repeating from default value 5f3ea8e
- dependencyobject: Clear binding on ClearValue 9b2f394
- dispatcherqueue: Use proper
CheckThreadAccess
/HasThreadAccess
behavior 7aa064d - DispatcherQueueTimer: [Wasm] Ensure ticks are raised on the dispatcher c7f011a
- dotnetnew: Adjust Server template compilation conditionals 1671dcd
- embeddedresources: Restore proper AssignTargetPaths/AssignLinkMetadata for EmbeddedResource LogicalName metadata 1cb346c
- framebuffer: Restore 32 bits color format 533ecf0
- ios: animation stopped when app resumes from background 8e06564
- perf: Don't include pdbs by default for xamarin targets in nuspec 1802e9d
- reg: Add missing embedded resource in vsix 2022 f29240c
- reg: Add missing generic and server projects to mac filter d6e2a96
- reg: Adjust dotnet new unoapp parameters 093f3f5
- reg: Adjust for XAML Trimming cross-runtime libraries build before Uno 4.6 e83fa35
- reg: don't raise XA0101 72286c3
- reg: Remove duplicate font asset fbe4ab6
- reg: Restore multi-folder project structure a6ef125
- reg: restore xaml trimming for net5 or below d537147
- SetStyleString: Add missing parameter 0944535
- Skia: Initialize DisplayBlock text in TextBoxView 80a2ac1
- xamlreader: Process members on top-level resource dicitonaries 732d001
- XamlReader: Fix invalid Windows.UI lookups c840727
- Add partial keyword to CustomControl.cs at TemplateControl 5a6fb00
- added caching for Android and Wasm assets 64dc566
- added compilation constraint for netstd f0d06da
- Attempt to fix possible crash when using GCColor 7a9c89e
- Avoid creation of unholded ref of CGColor fdd52d9
- ci targets for MacOS and broken skia reference 7856037
- Ensure clipping when corner radius is set 5da0fad
- Android: Correctly report network connectivity on VPN 0168e97
- flyout: Adjust DataContext propagation d7217c2
- metadataupdate: Use latest roslyn for net7 21dd5b5
- rc: use net7 binaries with net7 project 33415a8
- reg: adjust for C# preview support 032599d
- reg: Don't use shadow parameters for C# 7.3 1c5de88
- address review 32e610d
- Address review 7c9d72e
- Adjust dotnet new uno app description 503d315
- Ensure flyout Opening and Closing cancellation works fb17e25
- Revert "chore: Ensure that Uno.Samples.UITest.Generator build before SamplesApp.Droid when build from IDE" b636511
- android: Ensure ApiInformation is initialized early enough e3b0e87
- android: Ensure memory manager values are updated properly 02b0712
- AutoSuggestBox: Correctly report chosen suggestion on item click b745b96
- dp: Don't keep a strong reference to the last local value c63817e
- droid: LV oscillating snapping c0bcd4e
- ListView: fe item removal cleanup 867b4c6
- lottie: Lottie animation using ms-appx source fails to manually start be63194
- MenuFlyoutItem: synchronize can execute on loaded bb7f2bc
- reg: Adjust generation for missing x:Class 1bc71c6
- reg: Adjust hot reload generation for C# 7.3 d110eda
- reg: don't dispose AssemblyDefinition on mono, it may crash d133c05
- reg: Don't use C# 8.0 lambda parameter shadowing for xamarin projects 3d45ec0
- reg: Metadata update is optional below net6 for skia targets 8950100
- resources: Adjust XamlReader to use XamlScope and resolve visual parent resources 33bca7c
- resources: Use visual parent search for style setters and visual states ea30cd3
- Skia: Unset Image when Source becomes null 30a2fa3
- SV: snapping issues bf4843c
- templates: Have MacCatalyst apps logs just like macOS apps do 6aa4051
- uap: Fix generators should not run under uap library builds 0a0f1b5
- xamlreader: Support for geometry parsing 6c1b45d
- xamlreader: Support for geometry parsing 0e47e8a
- xamltrim: Trim trop-level ControlTemplate as resource key 2427d28
- Adjust border and shape positioning and clipping b72499c
- adjust component naming generation for mono capabilities 50feeb0
- Adjust corner-radius border rendering on Skia f9a6eb6
- Adjust for browserload updates when changes types are not available 8f3a57d
- Adjust name of web app manifest, include app icons as Content 28c560f
- Adjust rendering area after layout rounding 5d56a5c
- Adjust rendering on Android for StrokeThickness bf6a30c
- Adjust support for x:Bind edition 5d1de36
- Adjust template rewriting for versioning 89eba2c
- Avoid memory leaks in AnimatedIcon bf1266b
- avoid NRE when DOTNET_MODIFIABLE_ASSEMBLIES is not set b1c44f6
- BreadcrumbBar with items leaks 7c06945
- Capture focus for button-only dialogs 5df0ae0
- Created a partial class per platform e3bd829
- don't reset runinfos on full builds as generations are no longer ignored e006082
- Emit UTF-8 BOM when converting sources c60adbf
- Ensure Flyout.Opening is executed before MenuFlyout processing 060536c
- Ensure Holder counter is reset between individual leak tests b261241
- Ensure Measure/Arrange of panel when popup offset changes eb2706b
- Expander memory leaks bef4894
- Fix condition to use SDK linker when appropriate 3d55400
- Fix NotImplemented attribute platforms for RenderTargetBitmap 6e0190e
- Fix SDK linker path when building inside VS 653fa60
- Fixed PR comments 8e60f99
- ignore case when comparing environment variable 607da54
- included compiler directive to avoid compiler issues on WinAppSdk based targets b911d5f
- incomplete mehtod signature 5e093a0
- Increase HighMemoryThreshold for Samples app 7719e11
- List .NET 7 mobile targets in crosstargeting sample 04c4487
- missed xml comments and renamed main method 47c559d
- missing 'method' word in docs 009e865
- pr comments e39d486
- SamplesApp.netcoremobile build 6de329e
- SelectorItem should get focus on pointer release, not press ef4331f
- TextBox focus leak on GTK 4e86e09
- TextBox focus leak on WPF 709b22f
- There is a circular dependency 045a77a
- Uno Item Template improvements dadb0ae
- Unwrap
TargetInvocationException
16f71bf - updated doc comments 584cb5d
- updated tests and docs for FileStorage Api de34bcb
- wrong parameter in xml doc 0283d1d
- XamlRoot propagation in Flyout and ToolTip 18a0b9a
- assets: Align target path using platform's separator f4faded
- iOS: allow selection TextBox readonly 41ab934
- iOS: text selection on readonly MultiLine TextBox 62e4ffe
- iOS: TextBox delegate order validation 7df64d7
- reg: Adjust winappsdk references cleanup d8ad97f
- reg: Don't use TargetPlatformIdentifier a9c8235
- reg: Remove invalid removal of uno.ui files when building with WinAppSDK. 990acd3
- reg: Restore location of the globs tempalte file 40eef9c
- reg: Restore property nuspec targets files 0a5c249
- reg: Typo in nuspec for XamlHost net7 049a0a8
- skia: Apply proper font fallback on invalid font fe12216
- skia: support inline rendering for constrained measure size b9e191e
- vsix: Adjust bootstrapper and AppDesignFolder 93081a3
- wasm: Adjust _UnoWasmContentAdjust transitive assets copy 6b9b243
- winappsdk: Ensure that only the ui.toolkit assemby is referenced 5cd29ea
- Distribute corner radius fairly along each side of an element a5ce5f3
- Ensure border thickness is used for both outer and inner corners on Skia ff27c65
- Pass unimplemented platforms to attribute bd1230d
BREAKING CHANGES
- assets: The ms-appx:/// specifier for libraries introduced in Uno Platform 4.6 was incorrectly lower-casing the library name. This change now uses the original name used by the library, which is the AssemblyName property of the library hosting the assets.