Releases: CommunityToolkit/Maui
v1.0.1 Windows Maps: bugfixes already!
Just a week after v1.0 of the Windows Maps for .NET MAUI, here is v1.0.1!
We found that there were a couple of bugs with placing the pins and triggering the click events etc. so we made sure to fix that! Enjoy!
What's Changed
- [MAPS] Fix location coordinates and Pin/InfoWindow click by @jfversluis in #1257
Full Changelog: 1.0.0-maps...1.0.1-maps
v1.0 Windows Maps: Introducing the Maps control for Windows
It's finally here! A Maps control for Windows! 🗺️
There is a bit of a backstory, gather around, let me tell you all about it. As you know, .NET MAUI uses whatever the underlaying platform provides. For Maps this means, iOS gets Apple Maps and Android gets Google Maps. Unfortunately, for Windows (or rather Win UI) there is no Maps control, so there is nothing on the underlaying platform.
Typically this would mean that the .NET MAUI team can't/won't implement this feature. However, Maps have been around for Xamarin.Forms and it's also something that still has a big audience for iOS and Android. Therefore, it was still implemented but without Windows support. Although that might seem a bit weird, it also makes sense. The .NET MAUI team isn't in the business of creating and maintaining their own controls, they translate everything from the abstract .NET MAUI layer to the platform layer.
To still provide for a .NET MAUI Map control on Windows, we have now implemented Bing Maps through a WebView. All the functionality from the iOS and Android implementation is on Windows with the .NET MAUI Community Toolkit as well: support for pins, zooming, traffic information, etc.
Big shoutout to @rmarinho for starting this, @jfversluis for doing some work but @VladislavAntonyuk mostly for bringing this over the line and getting the PR merged!
Because this has a dependency on the Microsoft.Maui.Controls.Maps package we're delivering the CommunityToolkit.Maui.Maps package as a separate NuGet as well so not everyone will be forced to take on that dependency.
The documentation is already available on the .NET MAUI side: https://learn.microsoft.com/dotnet/maui/user-interface/controls/map
Enjoy this control and let us know how it goes for you!
Note: currently there is a known bug with this v1.0 version on the Map control if being used with .NET 8 Preview 5 and below. This should be fixed in an upcoming .NET 8 version. For now, use this with the stable version of .NET MAUI.
What's Changed
New Contributors
Full Changelog: 2.0.0-mediaelement...1.0.0-maps
v5.2.0: SpeechToText, IconTintColor for Windows & Mac & less bugs!
The Community Toolkit Friday release team is at it again! In this release we're adding some more amazing things for you so you can love the .NET MAUI Community Toolkit even harder 💘
SpeechToText
Our amazing core maintainer @VladislavAntonyuk has been hard at work to add speech-to-text to this library. When you feel a bit lonely you can now talk to your .NET MAUI apps and they will echo back what you said but now in text. All kidding aside, this has a lot of power and we can't wait to see what you will build with it.
The documentation, not written with the help of speech-to-text, can be found here.
IconTintColorBehavior
Not entirely new, but now also available for Windows and macOS thanks to @kperdlich! This behavior allows you to give any given image a tint, or a color overlay if you will. This was already available for iOS and Android, now also for Windows and macOS. We have the docs on how to use it available for you right here.
Popup NRE on Windows & FileSaver/FolderPicker modal bugs
These two notable bugs have been fixed thanks to @softlion and @brminnick. The Popup on Windows might throw an exception in certain scenarios when it was closing and cleaning up, we made sure that won't happen again.
And the FileSaver & FolderPicker would cause trouble if you opened them from a modal page, obviously you also want to save files and pick folders from a modal page, so now you can!
If you need to refresh your mind about how these APIs work again, have a look at our docs for Popup & FileSaver/FolderPicker
All the details
- Fix #1138 File saver and Folder picker by @softlion in #1142
- Fix
MauiPopup.windows.cs
NullReferenceException
by @brminnick in #1181 - Add IconTintColorBehavior for macOS + windows by @kperdlich in #1179
- SpeechToText #808 by @VladislavAntonyuk in #1127
Housekeeping, no one cares but us
- Bump FluentAssertions from 6.10.0 to 6.11.0 in /samples by @dependabot in #1153
- Bump CommunityToolkit.Mvvm from 8.1.0 to 8.2.0 in /samples by @dependabot in #1161
- Update CommunityToolkit.Maui.Core.csproj by @brminnick in #1175
- Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0 in /samples by @dependabot in #1187
- Bump Microsoft.CodeAnalysis.CSharp.Workspaces from 4.5.0 to 4.6.0 in /samples by @dependabot in #1188
- Bump Microsoft.CodeAnalysis from 4.5.0 to 4.6.0 in /samples by @dependabot in #1190
- Bump NuGet.Protocol from 6.5.0 to 6.6.0 in /samples by @dependabot in #1192
- Bump coverlet.collector from 3.2.0 to 6.0.0 in /samples by @dependabot in #1198
New Contributors
- @softlion made their first contribution in #1142
- @kperdlich made their first contribution in #1179
Full Changelog: 5.1.0...5.2.0
v2.0 MediaElement: Breaking change to Seek for Windows
A big bump in version, but actually a small change. Why? Because this is a breaking change and we don't want to surprise you with a nasty surprise, especially since this is released on a Friday.
When using Seek
on Windows it might not do anything or cause an exception because it might not be executed on the main thread. We've fixed that for you now!
What's Changed
- 💥 Breaking Change: Perform MediaElement Seek on main thread for WinUI by @jfversluis in #1015
v5.1.0: LazyView, Keyboard Extensions & Bugfixes!
Happy Friday! Almost weekend, but before you go... Here is the latest release of the .NET MAUI Community Toolkit, our best release yet!
LazyView
A good developer is a lazy developer? If that's true for you, then we have just the control for that!
You might already know and love the LazyView
from the Xamarin Community Toolkit. With the LazyView
control you can delay the initialization of any given View
in .NET MAUI. You can read all about what it is, and more importantly, how to use it in our docs!
All this amazing work is done by our very own @kphillpotts, thanks mate!
Keyboard Extensions
OK, sit down, this is an important one although you might not realize it. There is a lot to do about the keyboard behavior in .NET MAUI.
With these keyboard extensions, now available in .NET MAUI Community Toolkit, you will have more control over how the (soft)keyboard behaves. You can easily check if the keyboard is currently shown, hide it or show it as you please in your .NET MAUI app.
A-MA-ZING, right?! This should send you off into the weekend with a great feeling. Oh, you wonder how to work with it? Say no more, we got the docs right here.
Thank you for your great work on this @PureWeen! Here is your virtual margarita 🍸
All the details
We got a lot of bugfixes and other small changes included in this version as well. Check them out below and let us know your favorite one!
Who am I kidding... No one has a favorite bugfix.
- FileSaver does not truncate existing files by @farmergreg in #1050
- Fixes FileSaver filename on Apple by @VladislavAntonyuk in #1065
- Fix FileSaver exception {"The parameter is incorrect.\r\n"} by @VladislavAntonyuk in #1074
- Fix FileSaver doesn't handle non-seekable streams by @VladislavAntonyuk in #1078
- No need to create choose intent by @VladislavAntonyuk in #1087
- Implementation of LazyView + Sample + Unit Tests by @kphillpotts in #1102
- KeyboardExtensions by @PureWeen in #1064
Housekeeping, no one cares but us
- Bump CommunityToolkit.Maui.Markup from 3.0.0 to 3.1.0 in /samples by @dependabot in #1051
- [Housekeeping] Increase Toolkit .NET Version to v7.0.200 by @brminnick in #1070
- Bump Newtonsoft.Json from 13.0.2 to 13.0.3 in /samples by @dependabot in #1076
- [Housekeeping] Enable
AccelerateBuildsInVisualStudio
by @brminnick in #1079 - [Housekeeping] Fix
Directory.Build.targets
for macOS by @brminnick in #1081 - Bump Microsoft.Extensions.Http.Polly from 7.0.3 to 7.0.4 in /samples by @dependabot in #1096
- Bump Microsoft.Extensions.Http.Polly from 7.0.4 to 7.0.5 in /samples by @dependabot in #1137
New Contributors
- @farmergreg made their first contribution in #1050
Full Changelog: 5.0.0...5.1.0
v5.0.0: SemanticOrderView, FileSaver, FolderPicker and StateContainer love!
Hello again! 👋 It's the .NET MAUI Community Toolkit team with another wonderful release!
SemanticOrderView
In this release we'd love to (re)introduce to you the SemanticOrderView
. The SemanticOrderView
provides the ability to control the order of VisualElement
s for screen readers and improve the accessibility of an application. Phew, now that sounds important, so go check it out in our docs and start implementing it!
FileSaver & FolderPicker
Actually this is more about the FileSaverResult
and FolderPickerResult
. Before, you would get an exception thrown your way when the user cancelled the file save/folder pick action. Now, we've introduced these two objects that will give you a bit more information and control! As a bonus, we fixed the selection of the initial folder on Android.
The docs have also been updated so you can see how to work with this amazing new stuff!
StateContainer
First, we fixed a nasty bug in StateContainer
so it will crash less, that's always good news.
Second, we introduced StateContainer.ChangeStateWithAnimation()
which allows you to customize the behavior or animations whenever the state changes. And who doesn't love some great animations? I know you do!
Did we mention the docs got updates? Well, we made no exception for StateContainer
check it out here.
Highlights
But there is much more to unpack here, we just won't spell everything out because who reads docs anyway? 🤷♂️
Here is the management summary for this release, watch out for those breaking changes:
- 💥 Breaking Change: The minimum dependency of .NET MAUI has increased to .NET MAUI v7.0.59; ie .NET MAUI Community Toolkit now requires .NET MAUI v7.0.59 or higher
- 💥 Breaking Change:
StateContainer.ShouldAnimateOnStateChange
Property replaced withStateContainer.ChangeStateWithAnimation()
method - 💥 Breaking Change:
IFileSaver.SaveAsync()
now returns FileSaverResult (previously returned string) - 💥 Breaking Change:
IFolderPicker.PickAsync()
now returns FolderPickerResult (previously returned string) SemanticOrderView
has been ported from XCT to MCTExpander
now supportsCollectionView
DrawingView.GetImageStream()
now properly sizes the imageSnackbar.ActionButtonFont
now allows supports custom Fonts like Font AwesomeEmailValidationBehavior
now supports email addresses using Domain Names, IPv4 and IPv6EmailValidationBehavior
performance optimized by usingGeneratedRegex
All the details
- Bump Microsoft.Windows.SDK.BuildTools from 10.0.22621.1 to 10.0.22621.755 in /samples by @dependabot in #919
- Postpone popup show until platform is ready by @bijington in #934
- Fix Expander in CollectionView on Apple by @VladislavAntonyuk in #751
- Fix FolderPicker Error when trying to open a second time on MacCatalyst by @VladislavAntonyuk in #956
- Bump CommunityToolkit.Maui.Markup from 2.1.0 to 3.0.0 in /samples by @dependabot in #963
- [Sample App] Implement Typed Bindings by @brminnick in #96
- Bump FluentAssertions from 6.9.0 to 6.10.0 in /samples by @dependabot in #987
- Bump Microsoft.Extensions.Http.Polly from 7.0.2 to 7.0.3 in /samples by @dependabot in #996
- Bump AutoFixture.Xunit2 from 4.17.0 to 4.18.0 in /samples by @dependabot in #1023
- Bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0 in /samples by @dependabot in #1022
- Bump NuGet.Protocol from 6.4.0 to 6.5.0 in /samples by @dependabot in #1025
- Bump Microsoft.CodeAnalysis.CSharp.Workspaces from 4.4.0 to 4.5.0 in /samples by @dependabot in #1028
- Bump Microsoft.CodeAnalysis from 4.4.0 to 4.5.0 in /samples by @dependabot in #1030
- Bump Microsoft.CodeAnalysis.Analyzers from 3.3.3 to 3.3.4 in /samples by @dependabot in #1031
- Fix DrawingView ImageSize by @VladislavAntonyuk in #1037
- StateContainer, Add
ChangeStateWithAnimation()
by @VladislavAntonyuk in #1021 - Add
FileSaverResult
andFolderPickerResult
, Fix Initial folder on Android by @VladislavAntonyuk in #1009 - Use font in Snackbar by @VladislavAntonyuk in #1036
- Update
EmailValidationBehavior
by @brminnick in #770 - Semantic OrderView by @PureWeen in #1011
New Contributors
Full Changelog: 4.0.0...5.0.0
If you made it until here, please tweet at me to get a virtual donut 🍩
v1.0.2 MediaElement: Adding `ShouldMute` and bugfixes!
This release adds the mute functionality to the MediaElement
, but maybe even more important: there are some good bugfixes in here!
We're getting the first real-life feedback from you, thank you for that! And that also means you are using the MediaElement
in ways that we could not foresee. That meant, there were a couple of crashes when using MediaElement
on iOS in different page types and with or without .NET MAUI Shell. And there was a crash when you would clean up the MediaElement
on Windows. Additionally, setting ShouldAutoPlay
to false on iOS did not always have effect, that should be better now too.
We fixed the ones we knew about right now, so it should be much more stable! If you still run into anything, of course please let us know!
What's Changed
- [iOS]
ShouldAutoPlay=false
should not auto play by @jfversluis in #954 - Update ExoPlayer binding dependencies by @jfversluis in #973
- Relax ViewController detection for iOS MediaElement to enable non-Shell usage by @jfversluis in #999
- Fix disposal of MediaElement for Windows by @jfversluis in #1002
- Bump Xam.Plugins.Android.ExoPlayer from 2.18.9 to 2.18.10 in /samples by @dependabot in #1005
- Bump Xam.Plugins.Android.ExoPlayer.Transformer from 2.18.9 to 2.18.10 in /samples by @dependabot in #1006
- Provide parent view controller to MediaElement iOS by @jfversluis in #1008
- Implement Mediaelement ShouldMute by @jfversluis in #953
Full Changelog: 1.0.1-mediaelement...1.0.2-mediaelement
v1.0.1 MediaElement: No more WindowsAppSDK issues and minor bugfixes
This version has a couple of small fixes. The main one being that we removed the explicit WindowsAppSDK dependency. This would cause issues when installing on your .NET MAUI app and you'd have to manually add that explicit reference as well which was not a great experience.
If you did add that explicit reference in your .NET MAUI app csproj, you can remove it after installing this version. For more details see the linked pull request below.
What's Changed
- Various MediaElement fixes by @jfversluis in #928
Full Changelog: 1.0.0-mediaelement...1.1.0-mediaelement
v4.0.0: Lots of new goodies!
New Features
Introducing two new services, IFileSaver.SaveAsync()
and IFolderPicker.PickAsync()
!
Read more in the documentation here: https://learn.microsoft.com/dotnet/communitytoolkit/maui/essentials/
Breaking Change
ToastNotificationExtensions.BuildToastNotificationContent()
was removed when migrating ToastNotificationManager
to AppNotificationManager
: https://github.com/CommunityToolkit/Maui/pull/900/files#diff-9af18ed6af5f7deac7b241d2224fa643a67671f280faf56450e1f716bd345fbb
What's Changed
- Use raw string literals in source generators by @brminnick in #823
- Transparent popup by @VladislavAntonyuk in #789
- Add
StateContainer.CanStateChangeProperty
by @brminnick in #811 - [housekeeping] Automated PR to fix formatting errors by @github-actions in #828
- Fix 827 by @jaigupta91 in #831
- Do not use shared default value for LinesProperty by @Ghostbird in #862
- TokenSource field is never assigned by @GeorgeLeithead in #875
- Close Needs Reproduction issues after 5 days by @VladislavAntonyuk in #826
- Update Contributing guide with opening a bug step ♻️ by @pictos in #885
- Create
IFileSaver.SaveAsync()
andIFolderPicker.PickAsync()
by @VladislavAntonyuk in #699 - Update
ReadMe.txt
Code Snippet To Match the .NET MAUI Templates by @CliffAgius in #869 - Improve bindings on tintcolor by @pictos in #847
- StatusBar. Check for Android Activity for null. by @VladislavAntonyuk in #893
- Use AppNotificationManager instead of ToastNotificationManager by @VladislavAntonyuk in #900
- Fix CharactersValidationBehavior Bindings missing #474 by @VladislavAntonyuk in #896
- Fix Label background color in CompareConverter Sample #796 by @VladislavAntonyuk in #897
- Make ToastNotificationExtensions internal by @VladislavAntonyuk in #913
- Update build pipeline to enable separate MediaElement release by @jfversluis in #916
- Fix Multiple StackLayouts inside of UniformItemsLayout do not show up by @VladislavAntonyuk in #914
- DateTimeOffsetConverter fix ArgumentException by @VladislavAntonyuk in #915
New Contributors
- @jaigupta91 made their first contribution in #831
- @Ghostbird made their first contribution in #862
Full Changelog: 3.1.0...4.0.0
v1.0.0: Welcome MediaElement!
This is the very first release of the .NET MAUI Community Toolkit MediaElement 🎉
Docs with all the features can be found here: https://learn.microsoft.com/dotnet/communitytoolkit/maui/views/mediaelement