Uno Platform v2.3.2 Release Notes

Release Date: 2020-05-12 // almost 4 years ago
  • This release focuses on adding the support for Android10 and AndroidX , WinUI's RadialGradientBrush and ProgressRing , Prism Library, and a number of bug fixes that you can see in the change log below.

    🐎 Using the API level 29 allowed us to review our TextBlock implementation for Android and replace some reflection code required to access hidden APIs for MaxLines by official APIs that are now available. While being safer going forward, this approach also provides performance gains for this crucial control.

    πŸ‘ As the Google Play store won’t accept applications built for Android 8 (SDK 27) since November 2019, we’re removing support for that SDK to simplify our codebase and devops pipelines. To use Uno 2.3 or higher, your application needs to target Android SDK 28 (android 9) or 29 (Android 10).
    πŸ“š If your application makes explicit use of support libraries, you’ll need to update those to Android X, and there’s some good documentation for it. Shout out to the Xamarin team, their migration tooling worked really well.

    Among other notable changes:

    πŸš€ The Uno.Wasm.Bootstrapper 1.2 has been released and removes the unfriendly use of β€œDotNetCliToolReference” that could not be updated via the Visual Studio interface. It includes all the recent improvements such as Windows AOT, Visual Studio 16.6 debugging, .NET interpreter performance improvements, macOS and Linux support, and Visual Studio Code support.

    ⬆️ To upgrade from previous versions of the bootstrapper:

    • 🚚 If you had a <DotNetCliToolReference … /> line in your csproj file, remove it
    • βž• Add a nuget reference to the Uno.Wasm.Bootstrap.DevServer using the Nuget Package manager

    πŸ”‹ Features

    • βž• Add support for Android10 and AndroidX 7b05b51
    • focus: Add support for FindFirstFocusableElement 66c514b
    • focus: Add support for FindLastFocusableElement 2049304
    • gradient: [Wasm] Added support for gradient text 92aa150
    • gradient: Added FallbackColorWithOpacity. d834088
    • gradient: Added Radial Gradient for Android 171f9e4
    • gradient: first working implementation of RadialGradient on WASM fe5d86c
    • gradient: RadialGradientBrush for iOS be6d8af
    • lottie: [Android] Added Progress, IsPlaying & Duration 179c2cc
    • lottie: Allow loading of Lottie files from embedded resources. a211406
    • progressring: First implementation of WinUI 2.4 ProgressRing. 00df9d8
    • progressring: Transposed C++ code from WinUI 06621fd
    • βž• Added NotImplemented Attribute for TopAppBar and BottomAppBar ccfa190
    • ⚑️ Update feature availability for the other platforms fc06be3
    • lottie: [iOS] Added support for Progress, IsPlaying & Duration 9e11da1
    • lottie: [Wasm] Added Progress, IsPlaying and Duration c0887fb
    • Xml: Implemented Windows.Data.Xml.Dom APIs 6f901e1
    • βž• Add support for Prism library dotnet new template 18cccbb
    • βœ‚ Removed conditional compilation for NotImplemented attributes 6362cfb
    • πŸ‘Œ Support WebView.DocumentTitle on macOS 0f54709
    • 🍎 (macOS) Add CurrentOrientation support 1d0a89a
    • 🍎 (macOS) Add default NativeOrientation dfd6cea
    • πŸ’… (macOS) Add default property state to the Style a52d326
    • 🍎 (macOS) Add delegate for PasswordBox 7eee1ef
    • 🍎 (macOS) Add IsPasswordRevealButtonEnabled for PasswordBox b249253
    • 🍎 (macOS) Add SecureTextBox for PasswordBox 7e826cb
    • ⚑️ (macOS) Update PasswordBox implementation a087a21
    • cursor: Support PointerCursor on macOS 057f6bd
    • gradient: Added macOS support for RadialGradientBrush 3c93e6e
    • πŸ“¦ PackageId: macOS support 062ea5d
    • πŸ‘Œ Support ComboBox on macOS 3ede85c

    πŸ’₯ BREAKING CHANGES

    • πŸ‘ All targets are now using the AndroidX support libraries. If your
      ⬆️ application uses explicit references to support libraries, you'll to upgrade
      those as well.

    ⬆️ Uno upgraded from:

    • πŸ‘ Xamarin.Android.Support.v4
    • πŸ‘ Xamarin.Android.Support.v7.AppCompat
    • πŸ‘ Xamarin.Android.Support.v7.RecyclerView

    To :

    • πŸ‘ Xamarin.AndroidX.Legacy.Support.V4
    • Xamarin.AndroidX.AppCompat
    • Xamarin.AndroidX.RecyclerView
    • Xamarin.AndroidX.Fragment

    πŸ› Bug Fixes

    • 🍎 [MacOS] Fix event handler not invoked in the sample app 9bbfa1a
    • πŸ›  Fix support for TextBlock under Android 10 fdc7327, closes #2016
    • android: Uno template for Android now reacts to all ConfigurationChanges 859da96
    • android: various issues with readonly textblock 2dd4bc8
    • android_geolocator: Request and validate permissions ed0d4e3
    • animation: [iOS] Fix InvalidCastException when app resumes while animation is active 32dba9c
    • commandbar: [iOS] Update CommandBar layout when Visibility changes fc18909
    • dotnet_new: Fix automated uno packages version update during CI 87d0798
    • dotnet_new: Update the publisher format 79f41dc
    • flyout: Fix NRE from trying to close uncreated Popup in Flyout 18f0191
    • gradient: Apply Log().IsEnabled for logging in generated code. f383dc6
    • gradient: Fixed default values for Radius & Origin on RadialGradientBrush. d2d60a7
    • gradient: LinearGradientBrush now derives from GradientBrush. ae1a6ad
    • gradient: Removed [NotImplemented] on BrushMappingMode. 7f3c53c
    • lottie: Fixed missing dependencies in NuGet package. 8d4012f
    • lottie: improve assembly scanning. 326251e
    • lottie: Updated Lottie-web to from 5.4.4 to 5.6.8 c49db32
    • 🍎 macos: Adjust default dotnet new sln configurations 76170a6
    • mediaplayer: [iOS] Fix exception from MediaPlayerPresenter returning infinite desired height 3fd116d
    • mediaplayer: Arranges the player even if the video ratio is of 0 as this will lead to a real video ratio. 0ac5e31
    • mediaplayer: Fix invalid stop of the player when toggling the fullscreen mode. efe2e89
    • mediaplayer: NRE when the surface is destroyed but the player has already been released. e29a537
    • mediaplayer: Resets the MediaPlayer and its surface when setting its source to null. 70b79e8
    • pointers: [iOS] Try to re-use pointer ID in order to detect DoubleTap 44df20e
    • progressring: Fixed bug on Wasm where ProgressRing was stuck. c9d0ea0
    • shapes: [WASM] StrokeDashArray is not published to native element 48b971f
    • solidcolorbrush: [ANDROID][WASM] Color brushes added to Thumbtint, TrackTint, Fill, and Stroke missing opacity ff059c3
    • xBind: Fix x:Bind parsing when ignorable directive is not present d17bd91
    • 🍎 (macOS) rename file name to match with class 9698914
    • βž• Add changes to packagediff ignore file 3f34de8
    • Adjust screenshot comparer with missing ZipFile dependency 471a65d
    • 🍎 Adjust Uno.UI and Uno.UI.RemoteControl references in macOS template e6ba3da
    • Adjust WebAssembly detection after a breaking change in RuntimeInformation bd00e78
    • πŸ— build error on CI 6fffaa8
    • πŸ— ci build - make field readonly c1c5eb3
    • πŸ›  Fix http: samples working on macOS c0217b5
    • πŸ›  Fix incorrect XAML parsing of x:Bind with ConverterParameter abb43f9, closes #3049
    • πŸ›  Fix the wasmxfhead template creation was using blank uno app f5fe5e6
    • πŸ‘Œ Improve NativeFramePresenter.iOS implementation to fix concurrency issues. 7985a91
    • property signature 9eca43a
    • βœ‚ Remove explicit DependentUpon from BlankPage.vstemplate 6ed24a5
    • popup: Update position when VerticalOffset changes 239cc2f
    • RemoteControl: Make Wasm WebSockets dependency conditional to netstandard 2.0 c112690
    • template: Adjust default organization for UWP dotnet new app template ff5171b
    • tooltip: Place tooltip relative to mouse pointer f63617f
    • tooltip: Support views as direct TooltipService.ToolTip content 19482e8
    • πŸ›  Fixes symbol icon Home not shown bde78f1
    • βœ‚ Remove the sealed attribute from generated code (#2830) 2e80728, closes #2830
    • ⚑️ Updated UWP Samples app signing certificate 4180cc6