Skip to content

Commit

Permalink
feat(datepicker): Changed DatePicker to default on native picker on i…
Browse files Browse the repository at this point in the history
…OS & Android.
  • Loading branch information
carldebilly committed Feb 26, 2021
1 parent ef13d6a commit 94004df
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 34 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
<Page
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_DatePartVisibility"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.DatePicker"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_DatePartVisibility"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xamarin="http://uno.ui/xamarin"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d xamarin"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<StackPanel>
<DatePicker Header="All parts shown" />
<DatePicker Header="Month and year shown" DayVisible="False" />
<DatePicker Header="Month and day shown" YearVisible="False" />
<DatePicker Header="Day and year shown" MonthVisible="False" />
<DatePicker Header="Only year shown" MonthVisible="False" DayVisible="False" />
</StackPanel>
<ScrollViewer>
<StackPanel Spacing="6">
<DatePicker Header="All parts shown" xamarin:UseNativePicker="False" />
<DatePicker Header="Month and year shown" DayVisible="False" xamarin:UseNativePicker="False" />
<DatePicker Header="Month and day shown" YearVisible="False" xamarin:UseNativePicker="False" />
<DatePicker Header="Day and year shown" MonthVisible="False" xamarin:UseNativePicker="False" />
<DatePicker Header="Only year shown" MonthVisible="False" DayVisible="False" xamarin:UseNativePicker="False" />
<DatePicker Header="All parts shown (native)" xamarin:UseNativePicker="True" />
<DatePicker Header="Month and year shown (native)" DayVisible="False" xamarin:UseNativePicker="True" />
<DatePicker Header="Month and day shown (native)" YearVisible="False" xamarin:UseNativePicker="True" />
<DatePicker Header="Day and year shown (native)" MonthVisible="False" xamarin:UseNativePicker="True" />
<DatePicker Header="Only year shown (native)" MonthVisible="False" DayVisible="False" xamarin:UseNativePicker="True" />
</StackPanel>
</ScrollViewer>
</Page>
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
x:Class="UITests.Windows_UI_Xaml_Controls.DatePicker.DatePicker_Features"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UITests.Windows_UI_Xaml_Controls.DatePicker"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:ios="http://uno.ui/ios"
xmlns:android="http://uno.ui/android"
xmlns:xamarin="http://uno.ui/xamarin"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d ios android"
mc:Ignorable="d ios android xamarin"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

<StackPanel Spacing="10" Margin="20">
Expand Down Expand Up @@ -65,7 +65,8 @@
CalendarIdentifier="{Binding SelectedItem.Content, ElementName=calendarIdentifier, FallbackValue=GregorianCalendar}"
DayVisible="{Binding IsChecked, ElementName=dayVisible}"
MonthVisible="{Binding IsChecked, ElementName=monthVisible}"
YearVisible="{Binding IsChecked, ElementName=yearVisible}" />
YearVisible="{Binding IsChecked, ElementName=yearVisible}"
xamarin:UseNativeStyle="False" />
<Button x:Name="pickerYear" Click="AddYear" Tag="{Binding ElementName=picker}">Y++</Button>
<Button x:Name="pickerMonth" Click="AddMonth" Tag="{Binding ElementName=picker}">M++</Button>
<Button x:Name="pickerDay" Click="AddDay" Tag="{Binding ElementName=picker}">D++</Button>
Expand Down Expand Up @@ -156,18 +157,8 @@
</android:TextBlock>
</StackPanel>
<StackPanel Orientation="Horizontal" Spacing="7">
<ios:DatePicker
UseNativeStyle="True"
x:Name="nativeDatePicker"
Date="{x:Bind PickedDate, Mode=TwoWay}"
MinYear="{x:Bind DtYear(minYear.SelectedItem), Mode=OneWay}"
MaxYear="{x:Bind DtYear(maxYear.SelectedItem), Mode=OneWay}"
CalendarIdentifier="{Binding SelectedItem.Content, ElementName=calendarIdentifier, FallbackValue=GregorianCalendar}"
DayVisible="{Binding IsChecked, ElementName=dayVisible}"
MonthVisible="{Binding IsChecked, ElementName=monthVisible}"
YearVisible="{Binding IsChecked, ElementName=yearVisible}" />
<android:DatePicker
UseNativeStyle="True"
<DatePicker
xamarin:UseNativeStyle="True"
x:Name="nativeDatePicker"
Date="{x:Bind PickedDate, Mode=TwoWay}"
MinYear="{x:Bind DtYear(minYear.SelectedItem), Mode=OneWay}"
Expand Down
13 changes: 9 additions & 4 deletions src/Uno.UI/UI/Xaml/Controls/DatePicker/DatePicker.Flyout.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,16 @@ namespace Windows.UI.Xaml.Controls
partial class DatePicker
{
#if __IOS__ || __ANDROID__
public static DependencyProperty UseNativeStyleProperty { get; }= DependencyProperty.Register(
private const bool DEFAULT_NATIVE_STYLE = true;
#else
private const bool DEFAULT_NATIVE_STYLE = false;
#endif

public static DependencyProperty UseNativeStyleProperty { get; } = DependencyProperty.Register(
"UseNativeStyle",
typeof(bool),
typeof(DatePicker),
new PropertyMetadata(default(bool)));
new PropertyMetadata(DEFAULT_NATIVE_STYLE));

/// <summary>
/// If we should use the native picker for the platform.
Expand All @@ -22,6 +27,8 @@ public bool UseNativeStyle
set => SetValue(UseNativeStyleProperty, value);
}

#if __IOS__ || __ANDROID__

private Lazy<DatePickerFlyout> _lazyFlyout;

private DatePickerFlyout _flyout => _lazyFlyout.Value;
Expand All @@ -34,8 +41,6 @@ public bool UseNativeStyle
private void InitPartial()
{
#if __IOS__ || __ANDROID__
UseNativeStyle = !Style.ShouldUseUWPDefaultStyle(typeof(DatePicker));

DatePickerFlyout CreateFlyout()
{
var f = UseNativeStyle
Expand Down

0 comments on commit 94004df

Please sign in to comment.