Releases: CommunityToolkit/Maui
v9.0.2: Windows Sample App Redesign!
Some Friday bugfixes for you! Special shout out to @GuidoNeele and @myix765 for their first contributions to this project, thank you so much! 👏 Find all the details about the fixes below.
And, did you know that we have an amazing sample app in this repository that shows you how to use all the features of the Toolkit?! Now you do! And the Windows version just got a refresh by @mhrastegari
Check this out 🤩
What's Changed
- Queue up the Text update when running on Android by @bijington in #1922
- Tidy up the masked text behavior handling of text changed by @bijington in #1925
- Set unloaded event to make sure popup is shown on Windows. by @GuidoNeele in #1932
- Swap the order of checks to prevent an unnecessary exception by @bijington in #1926
- Fix IconTintColorBehavior not tinting UriImageSource on Windows by @myix765 in #1949
- Fix for AvatarView child dimensions not being correctly set by @GeorgeLeithead in #1963
- Improve Windows sample app UI by @mhrastegari in #1861
Bumps and Housekeepings
- Bump Microsoft.NET.Test.Sdk from 17.9.0 to 17.10.0 in /samples by @dependabot in #1936
- Bump xunit from 2.7.0 to 2.8.1 in /samples by @dependabot in #1937
- Bump xunit.runner.visualstudio from 2.5.7 to 2.8.1 in /samples by @dependabot in #1938
- Bump Microsoft.CodeAnalysis.CSharp.CodeFix.Testing.XUnit from 1.1.1 to 1.1.2 in /samples by @dependabot in #1959
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1964
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1999
New Contributors
- @GuidoNeele made their first contribution in #1932
- @myix765 made their first contribution in #1949
Full Changelog: 9.0.1...9.0.2
v4.0.1 MediaElement: Go Away Volume Bar!
When using the MediaElement on Android the volume bar would keep popping up whenever you interacted with the MediaElement control. This version fixes that!
Additionally, the MediaWidth
and MediaHeight
properties weren't populated, not cool! So as of this version, those are working again too 👏
What's Changed
- fixed sample application crashed with MediaElement for Windows by @olekssokol in #1870
- Update Media Element to fix code compliance by @ne0rrmatrix in #1955
- Prevent volume bar from popping up on Android by @jfversluis in #1965
- Reinstate MediaElement MediaWidth & MediaHeight functionality by @jfversluis in #1950
Full Changelog: 1.0.2-camera...4.0.1-mediaelement
v1.0.3 Camera: Small bugfix for the Camera Analyzer
Some people were experiencing a warning/error about the camera analyzer, that has been fixed with this release!
What's Changed
- Fix Camera analyzer by @jfversluis in #1996
Full Changelog: 1.0.2-camera...1.0.3-camera
v1.0.2 Camera: Prevent Android Crash on Capture
All beginnings are hard... Despite our extensive testing it seems we still had a bug in our Android implementation that would crash your application when you captured an image.
Luckily, our amazing @bijington quickly found out why it happened and fixed it and because it's such a nasty one that will block you... Releasing it right away for you to enjoy! 🚀
What's Changed
- Remove ArrayPool usage for now to avoid BufferUnderflow by @bijington in #1961
Full Changelog: 1.0.1-camera...1.0.2-camera
v1.0.1 Camera: No More Core Dependency!
Whoops! It happens to the best of us...
The Microsoft.Maui.Camera
package took a dependency on Microsoft.Maui.Core
which wasn't even necessary! So we took care of that to prevent any weird behavior and are quickly pushing out this v1.0.1 so that no one will even ever notice 👀
What's Changed
- Remove
CommunityToolkit.Maui.Core
dependency fromCommunityToolkit.Maui.Camera
by @brminnick in #1941 - Don't copy Core & main package to artifacts for Camera package build by @jfversluis in #1944
Full Changelog: 1.0.0-camera...1.0.1-camera
v4.0.0 MediaElement: Lock Screen Controls & Metadata Support
Introducing the next major version of MediaElement
version 4.0, all thanks to the amazing @ne0rrmatrix!
In this version you can play media in the background and control that through the OS integrated lock screen controls 🤯 this comes together with properties to influence the metadata that is shown in said lock screen as well.
Go check it out and let us know what you think. To get you started, we have updated our docs for this new amazing functionality.
Additionally we threw in a couple of bugfixes for you to enjoy, see all the details below.
What's Changed
- Bug fix for MediaElement File Duplication by @ne0rrmatrix in #1868
- Fix IOS crash on invalid or missing file extension on Resource Media Source by @ne0rrmatrix in #1858
- Lock Screen Controls and Metadata Support for Windows, Android, IOS and Mac Catalyst by @ne0rrmatrix in #1782
- Fix MediaElement Layout for Android by @ne0rrmatrix in #1873
- Fix Media Element Windows CTD by @ne0rrmatrix in #1921
Full Changelog: 3.1.1-mediaelement...4.0.0-mediaelement
v1.0.0 CameraView: Smile for the Camera!
Get in line to high-five @zhitaop and take a selfie 🤳 with him through the new camera control we now have because of him!
Zhitao almost single-handedly did all the work to port CameraView
over from Xamarin to .NET MAUI. In fact, its a great story, because the company where he works is a big fan of the .NET MAUI Community Toolkit (and open-source in general) and this is their way to contribute back by donating time to contribute code that they need themselves.
This release is a separate package from the main Toolkit, just like the Windows Maps and MediaElement
. We decided to name the package to just Camera so that we can also add other things to this amazing control. But the control itself will still be named CameraView
. If you want to install the NuGet, go look for CommunityToolkit.Maui.Camera
.
For v1, we tried to stick with the core functionality first and make that work as stable as possible and from there branch out to all the amazing things we can come up with for a camera.
We think you will love this, please let us know!
If you decide to go try it out, maybe the docs will come in handy as well to get you started. Find those here: https://learn.microsoft.com/dotnet/communitytoolkit/maui/views/camera-view
Again, a big thank you to @zhitaop and his company and others who helped make this possible. A big milestone for our little project!
Added APIs
Have a look at all the APIs we added for this below.
public class CameraView
{
public static readonly BindableProperty SelectedCameraProperty;
public static readonly BindableProperty ZoomFactorProperty;
public static readonly BindableProperty ResolutionProperty;
public static readonly BindableProperty IsCameraBusyProperty;
public static readonly BindableProperty IsAvailableProperty;
public static readonly BindableProperty FlashModeProperty;
public static readonly BindableProperty IsTorchOnProperty;
public event EventHandler<MediaCapturedEventArgs> MediaCaptured;
public event EventHandler<MediaCaptureFailedEventArgs> MediaCaptureFailed;
public CameraInfo? SelectedCamera { get; set; } // To be discussed: ActiveCamera?
public float ZoomFactor { get; set; }
public Size CaptureResolution { get; set; } // renamed from `Resolution`
public bool IsCameraBusy { get; set; }
public bool IsAvailable { get; set; }
public bool IsTorchOn { get; set; }
public CameraFlashMode FlashMode { get; set; }
public void Shutter()
public void Start()
public void Stop()
}
public enum CameraFlashMode
{
Off,
On,
Auto
}
public class CameraInfo
{
public string Name { get; }
public string DeviceId { get; }
public CameraPosition Position { get; }
public bool IsFlashSupported { get; } //To be discussed: adding a list of capabilities like Auto Focus, etc?
public float MinimumZoomFactor { get; }
public float MaximumZoomFactor { get; }
public IReadOnlyList<Size> SupportedResolutions { get; }
}
public enum CameraPosition
{
Unknown,
Rear,
Front
}
public class CameraProvider
{
public ObservableCollection<CameraInfo> AvailableCameras { get; }
public void RefreshAvailableCameras();
}
What's Changed
New Contributors
Full Changelog: 9.0.1...1.0.0-camera
v9.0.1: Bugfixes! That's it, that's the release.
Just a couple of bugfixes for you to enjoy!
No fancy funny text here this time, sorry. It's Friday for me too you know?!
What's Changed
- issue-1884-fix-snackbar-anchoring-ios: Attach snackbar to top anchor … by @raginmari in #1896
- Fixing crash in IconTintColorBehavior by @PaulNiemiec in #1883
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1902
- Add PresentationStyle by @cat0363 in #1892
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1915
New Contributors
- @raginmari made their first contribution in #1896
- @PaulNiemiec made their first contribution in #1883
Full Changelog: 9.0.0...9.0.1
v9.0.0: Breaking Bugfixes
Version 9! That must mean amazing new goodies! 😱
Unfortunately, no. Although every release of the Toolkit is a party of its own, for this release there are a couple of bugfixes that required breaking changes and therefore we bumped the version up to 9.
However, is XAML and converters are your jam, then be sure to check out the improvements in usage with CompareConverter
. @bijington has done some great work with that and you can find the documentation for that right here.
Find all the details below, if you have any questions or concerns, please let us know!
You might also like the .NET MAUI Community Toolkit standup live stream recording for May. Join us live and come hang out every first Thursday of every month on the .NET Foundation YouTube channel!
As always, many thanks to our contributors for this version, especially the community ones 👏 you are our heroes!
Breaking Changes
Replace FrozenSet
with IReadOnlyList
By @brminnick in #1839
This was breaking because it changed the signature of some public APIs:
AlertView.macios.cs
changed the Children
property from:
public FrozenSet<UIView> Children
to
public IReadOnlyList<UIView> Children
Improve the usage experience with CompareConverter in XAML
By @bijington in #1841
This change is breaking because CompareConverter
now takes 2 type arguments.
It went from
public abstract class CompareConverter<TReturnObject> : BaseConverterOneWay<IComparable, object>
to
public abstract class CompareConverter<TValue, TReturnObject> : BaseConverterOneWay<TValue, object> where TValue : IComparable
NOTE this is only breaking if you inherited from CompareConverter
.
What's Changed
- Fix Android AvatarView Image BackgroundColor by @TRybina132 in #1786
- Fixes Snackbar and Toast on iOS release builds by @mjo151 in #1767
- Update Touch Behavior Sample by @Axemasta in #1784
🥱
- FabricBot: Onboarding to GitOps.ResourceManagement because of FabricBot decommissioning by @dotnet-policy-service in #1675
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1821
- [Housekeeping] Use Collection Expressions by @brminnick in #1792
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1840
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1843
- [housekeeping] Automated PR to fix formatting errors by @github-actions in #1848
New Contributors
- @dotnet-policy-service made their first contribution in #1675
- @mjo151 made their first contribution in #1767
- @tsanie made their first contribution in #1827
- @mikelor made their first contribution in #1817
Full Changelog: 8.0.1...9.0.0
v3.1.1 MediaElement: 🙅 say no to bugs!
Our beloved MediaElement is getting some attention lately, so here is a new bugfix release with some improvements ✨
Thank you @tsanie for your contribution to this project!
What's Changed
- Fix problem that ErrorCode always overwritten by ErrorCodeName. (Android) by @tsanie in #1827
- Fix Back button behavior when Media Element is full screen by @ne0rrmatrix in #1761
- Fix AVPlayer Crash on IOS 16.x and 17.x by @ne0rrmatrix in #1813
- Fix Media Element Android Layout by @ne0rrmatrix in #1814
New Contributors
Full Changelog: 8.0.1...3.1.1-mediaelement