[Android] Implemented Material3 support for DatePicker #33651
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
This pull request introduces support for a new Material 3-based DatePicker handler on Android, while maintaining compatibility with the existing handler for other platforms and scenarios. It adds a new internal
DatePickerHandler2and supporting platform code, and updates the handler registration logic to conditionally use the new handler when Material 3 is enabled on Android.Material 3 DatePicker handler for Android:
DatePickerHandler2class that uses Google's Material 3MaterialDatePickerfor a modern date selection UI, including dialog management, property mapping, and min/max date constraints.MauiMaterialDatePickeras a new internal platform control, with appropriate initialization, click handling, and integration points for showing and hiding the picker dialog.MauiMaterialDatePicker, including methods to update format, date, and text.Handler registration logic:
AddControlsHandlersinAppHostBuilderExtensions.csto register either the newDatePickerHandler2or the existingDatePickerHandlerforDatePicker, depending on whether Material 3 is enabled on Android. Other platforms continue to use the existing handler.Issues Fixed
Fixes #33650
Material Design Spec - DatePicker
Screenshot