Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Merge Develop to Main #1790

Merged
merged 62 commits into from
Jan 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
d0b3df8
merge main -> dev (#1300)
pictos May 16, 2021
eefea7c
Merge branch 'main' into develop
jfversluis May 16, 2021
fc9e01f
Merge branch 'main' into develop
jfversluis May 17, 2021
b558d91
Merge branch 'main' into develop
jfversluis May 20, 2021
4711e71
Expander: Add touch capture view + common animation length / easing p…
AndreiMisiukevich Jun 2, 2021
867d491
Merge branch 'main' into develop
jfversluis Jun 2, 2021
e9805fd
Updated light dismiss xml docs (#1366)
SkyeHoefling Jun 5, 2021
c0dc1bb
Merge branch 'main' into develop
TheCodeTraveler Jun 7, 2021
c1e290b
Merge branch 'main' into develop
TheCodeTraveler Jun 8, 2021
70d5df5
Merge branch 'main' into develop
jfversluis Jun 14, 2021
da5d0a3
Merge branch 'main' into develop
TheCodeTraveler Jun 17, 2021
9ba26d8
Merge branch 'main' into develop
jfversluis Jun 18, 2021
6dfc3d2
[Converter] Added IsInRangeConverter (#1158)
GUOLDEV Jun 20, 2021
a762932
Drawing View (#740)
pictos Jun 20, 2021
0ab0be0
Added IsLightDismissed to PopupDismissedEvent (#1362)
SkyeHoefling Jun 20, 2021
1be322f
Merge branch 'main' into develop
TheCodeTraveler Jun 21, 2021
6e93253
Fix Android crashes if Bitmap is small, Fix iOS drawing in scrollView…
VladislavAntonyuk Jun 22, 2021
3571304
Merge branch 'main' into develop
jfversluis Jun 22, 2021
247d990
Merge branch 'main' into develop
TheCodeTraveler Jun 27, 2021
c7ef97b
Add StatusBarEffect and NavigationBarEffect classes to manage their c…
maxkoshevoi Jun 30, 2021
0822454
Merge branch 'main' into develop
TheCodeTraveler Jul 1, 2021
b08f3c4
Drawing view fixes (#1459)
VladislavAntonyuk Jul 2, 2021
50d153e
Snackbar corner radius (#1437)
VladislavAntonyuk Jul 2, 2021
66bf143
Merge branch 'main' into develop
TheCodeTraveler Jul 6, 2021
d066bed
Merge branch 'main' into develop
jfversluis Jul 7, 2021
98939bc
Added missing using System (#1483)
pictos Jul 7, 2021
742c783
Merge branch 'main' into develop
jfversluis Jul 9, 2021
8ece47b
[MacOS] Added MediaElement implementation (#1488)
yurkinh Jul 9, 2021
baa8990
Merge branch 'main' into develop
jfversluis Jul 13, 2021
5b930b3
Merge branch 'main' into develop
jfversluis Jul 15, 2021
8d688e4
Drawing view multi line (#1475)
VladislavAntonyuk Jul 16, 2021
80d05aa
[Bug] Fixed CameraView Linker issue (#1503)
GUOLDEV Jul 17, 2021
65bbc68
[iOS | Android] TextSwitcher + [iOS] ImageSwitcher (#1422)
AndreiMisiukevich Jul 18, 2021
a7eaf7d
Merge branch 'main' into develop
jfversluis Jul 19, 2021
fb6dc0a
iOS, macOS - Clean DrawingView on Lines clean (#1520)
VladislavAntonyuk Jul 20, 2021
8299885
Merge branch 'main' into develop
TheCodeTraveler Jul 27, 2021
229f398
[Bug] Fixed CameraView crash on FlashMode Torch (#1522)
GUOLDEV Jul 27, 2021
e865863
Consolidate our XCT platform class (#1559)
pictos Aug 6, 2021
4573f5d
Merge branch 'main' into develop
jfversluis Aug 9, 2021
ac206d4
[Bug] Fixed CameraView Shutter not responding (#1535)
GUOLDEV Aug 9, 2021
5d28f0b
Added Speed Property to mediaelement (#1570)
jfversluis Aug 11, 2021
f64f4e0
Merge branch 'main' into develop
jfversluis Aug 13, 2021
ed01700
Merge branch 'main' into develop
TheCodeTraveler Aug 14, 2021
5f3e4f0
Utc to local string converter (#1555)
LeoJHarris Aug 18, 2021
bcd609a
Merge branch 'main' into develop
jfversluis Aug 18, 2021
1c028fe
Merge branch 'main' into develop
TheCodeTraveler Aug 23, 2021
5216ed9
Merge branch 'main' into develop
TheCodeTraveler Aug 24, 2021
b6b15f3
Merge branch 'main' into develop
TheCodeTraveler Aug 24, 2021
9c8de42
Update RangeSlider.shared.cs (#1545)
GUOLDEV Aug 26, 2021
fdc3118
Merge branch 'main' into develop
jfversluis Aug 26, 2021
08642c4
Removed unused code (#1586)
GUOLDEV Sep 8, 2021
1764673
[Enhancement][Converter] Add Expression property to MathExpressionCon…
GUOLDEV Sep 20, 2021
b7fd3d8
Merge branch 'main' into develop
TheCodeTraveler Nov 11, 2021
d989f44
[Bug] [XCT.Sample] Fixed ContentPages BackgroundColor (#1595)
GUOLDEV Nov 11, 2021
effd10f
Merge branch 'main' into develop
TheCodeTraveler Nov 11, 2021
af358a4
CornerRadiusEffect (#1316)
YZahringer Nov 11, 2021
51fdd66
Merge branch 'main' into develop
jfversluis Nov 29, 2021
2884a0b
Update dotnet-format-daily.yml
TheCodeTraveler Jan 19, 2022
8423af3
Merge branch 'main' into develop
TheCodeTraveler Jan 19, 2022
7fc5945
MauiCompat Fix for preview 12 (#1792)
VladislavAntonyuk Jan 21, 2022
f43edc9
Match Visual Studio 2022 .NET 6.0.2 Preview Version
TheCodeTraveler Jan 21, 2022
43ad369
Update azure-pipelines.yml
TheCodeTraveler Jan 21, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/dotnet-format-daily.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ jobs:
committer: GitHub <[email protected]>
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
labels: housekeeping
assignees: jfversluis
reviewers: jfversluis
assignees: brminnick
reviewers: brminnick
branch: housekeeping/fix-codeformatting

# Pushing won't work to forked repos
Expand Down
5 changes: 5 additions & 0 deletions MauiCompat.sh
Original file line number Diff line number Diff line change
Expand Up @@ -426,6 +426,10 @@ sed -i '' 's/, v/, (float)v/g' ./src/CommunityToolkit/Xamarin.CommunityToolkit.M

sed -i '' 's/public SnackBarLayout Microsoft.Maui.Controls.Layout/public SnackBarLayout Layout/g' ./src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/**/NativeSnackBar.ios.macos.cs

# NativeSnackBarButton.ios.macos.cs

sed -i '' 's/LineBreakMode =/TitleLabel.LineBreakMode =/g' ./src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/**/NativeSnackButton.ios.macos.cs

# VisualFeedbackEffect.shared.cs

sed -i '' 's/nativeColor.Alpha/nativeColor.A/g' ./src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/**/VisualFeedbackEffect.shared.cs
Expand Down Expand Up @@ -500,6 +504,7 @@ sed -i '' 's/Xamarin.Forms.RelativeLayout/Microsoft.Maui.Controls.Compatibility.
sed -i '' 's/Xamarin.Forms.View/Microsoft.Maui.Controls.View/g' ./src/Markup/Xamarin.CommunityToolkit.Markup.MauiCompat/RelativeLayout.cs
sed -i '' 's/Xamarin.Forms.Constraint/Microsoft.Maui.Controls.Compatibility.Constraint/g' ./src/Markup/Xamarin.CommunityToolkit.Markup.MauiCompat/RelativeLayout.cs
sed -i '' 's/using Microsoft.Maui.Controls.Compatibility;/using Microsoft.Maui.Controls.Compatibility;using Grid = Microsoft.Maui.Controls.Grid;/g' ./src/Markup/Xamarin.CommunityToolkit.Markup.MauiCompat/ViewInGridExtensions.cs
sed -i '' 's/using Xamarin.Forms.Shapes;/using Microsoft.Maui.Controls.Shapes;using Rect = Microsoft.Maui.Graphics.Rectangle;/g' ./src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/Effects/CornerRadius/CornerRadiusEffect.shared.cs

# MauiColorExtensions
printf > ./src/CommunityToolkit/Xamarin.CommunityToolkit.MauiCompat/Extensions/MauiColorExtensions.android.cs "
Expand Down
11 changes: 6 additions & 5 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,13 +196,14 @@ jobs:
pool:
vmImage: macos-11
steps:
- task: UseDotNet@2
displayName: 'Install .NET SDK'
- task: CmdLine@2
displayName: Install .NET 6.0.200-preview.22055.15
inputs:
version: $(NETCORE_VERSION)
includePreviewVersions: false
script: |
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version 6.0.200-preview.22055.15 --quality preview
dotnet --version
- task: CmdLine@2
displayName: 'Install .NET MAUI workload'
displayName: 'Install .NET MAUI Workload'
inputs:
script: 'dotnet workload install maui'
- task: JavaToolInstaller@0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
x:Class="Xamarin.CommunityToolkit.Sample.Pages.Converters.MathExpressionConverterPage">
<ContentPage.Resources>
<ResourceDictionary>
<xct:MathExpressionConverter x:Key="MathExpressionConverter" />
<xct:MathExpressionConverter x:Key="DivideByTwoConverter" Expression="x/2" />
<xct:MultiMathExpressionConverter x:Key="MultiMathExpressionConverter" />
</ResourceDictionary>
</ContentPage.Resources>
Expand All @@ -27,7 +27,7 @@
BackgroundColor="Bisque"
Padding="10"
HeightRequest="120"
CornerRadius="{Binding Source={x:Reference CalculatedFrame}, Path=HeightRequest, Converter={StaticResource MathExpressionConverter}, ConverterParameter='x/2'}">
CornerRadius="{Binding Source={x:Reference CalculatedFrame}, Path=HeightRequest, Converter={StaticResource DivideByTwoConverter}}">
<Label
Text="Frame with calculated CornerRadius = HeightRequest / 2"
TextColor="Black"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<pages:BasePage
xmlns:pages="clr-namespace:Xamarin.CommunityToolkit.Sample.Pages"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
xmlns:vm="clr-namespace:Xamarin.CommunityToolkit.Sample.ViewModels.Converters"
x:DataType="vm:UtcDateTimeToLocalStringConverterViewModel"
x:Class="Xamarin.CommunityToolkit.Sample.Pages.Converters.UtcDateTimeToLocalStringConverterPage">
<pages:BasePage.BindingContext>
<vm:UtcDateTimeToLocalStringConverterViewModel/>
</pages:BasePage.BindingContext>
<pages:BasePage.Resources>
<ResourceDictionary>
<x:String x:Key="dateTimeFormat">MM/dd/yyyy h:mm tt</x:String>
<xct:UtcDateTimeToLocalStringConverter x:Key="UtcDateTimeToLocalStringConverter" DateTimeFormat="{StaticResource dateTimeFormat}"/>
</ResourceDictionary>
</pages:BasePage.Resources>
<ContentPage.Content>
<StackLayout
Padding="10,10"
HorizontalOptions="Fill"
Spacing="10"
VerticalOptions="Fill">
<Label Text="The UtcDateTimeToLocalStringConverter is a converter that allows users to convert an incoming DateTime or DateTimeOffset value and return the local time representation in the provided datetime format" TextColor="{StaticResource NormalLabelTextColor}" />
<Label Text="Convert the following DateTime to local time string value." TextColor="{StaticResource NormalLabelTextColor}" />
<Label
TextColor="{StaticResource NormalLabelTextColor}" >
<Label.FormattedText>
<FormattedString>
<Span Text="DateTime in UTC now: "/>
<Span Text="{Binding UtcDateTime, StringFormat='{0:MM/dd/yyyy h:mm tt}'}"/>
</FormattedString>
</Label.FormattedText>
</Label>
<Label
Padding="0,0,0,0"
TextColor="{StaticResource NormalLabelTextColor}" >
<Label.FormattedText>
<FormattedString>
<Span Text="Local date time string value: "/>
<Span Text="{Binding UtcDateTime, Converter={StaticResource UtcDateTimeToLocalStringConverter}}"/>
</FormattedString>
</Label.FormattedText>
</Label>
</StackLayout>
</ContentPage.Content>
</pages:BasePage>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace Xamarin.CommunityToolkit.Sample.Pages.Converters
{
public partial class UtcDateTimeToLocalStringConverterPage
{
public UtcDateTimeToLocalStringConverterPage() => InitializeComponent();
}
}
137 changes: 137 additions & 0 deletions samples/XCT.Sample/Pages/Effects/CornerRadiusEffectPage.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8" ?>
<pages:BasePage
x:Class="Xamarin.CommunityToolkit.Sample.Pages.Effects.CornerRadiusEffectPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:pages="clr-namespace:Xamarin.CommunityToolkit.Sample.Pages"
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
x:Name="Page">

<pages:BasePage.Resources>
<ResourceDictionary>
<Style TargetType="Slider">
<Setter Property="MaximumTrackColor" Value="White" />
<Setter Property="ThumbColor" Value="Blue" />
</Style>
<Style TargetType="Label">
<Setter Property="LineBreakMode" Value="TailTruncation" />
</Style>
</ResourceDictionary>
</pages:BasePage.Resources>

<ScrollView>
<Grid RowDefinitions="*,Auto">
<Grid Grid.Row="0">
<ContentView
Grid.Row="0"
xct:CornerRadiusEffect.CornerRadius="{Binding CornerRadius, Source={x:Reference Page}}"
BackgroundColor="Blue"
HeightRequest="{Binding Value, Source={x:Reference Name=SliderHeight}}"
HorizontalOptions="Center"
VerticalOptions="Center"
WidthRequest="{Binding Value, Source={x:Reference Name=SliderWidth}}" />
</Grid>

<Grid
Grid.Row="1"
Padding="10"
BackgroundColor="LightGray"
RowSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Label
Grid.Row="0"
Grid.Column="1"
HorizontalOptions="End"
Text="Width" />
<Slider
x:Name="SliderWidth"
Grid.Row="0"
Grid.Column="2"
Maximum="1000"
Minimum="100"
Value="100" />

<Label
Grid.Row="0"
Grid.Column="3"
HorizontalOptions="End"
Text="Height" />
<Slider
x:Name="SliderHeight"
Grid.Row="0"
Grid.Column="4"
Maximum="1000"
Minimum="100"
Value="100" />

<Label
Grid.Row="1"
Grid.Column="1"
HorizontalOptions="End"
Text="TopLeft" />
<Slider
x:Name="SliderCornerRadiusTopLeft"
Grid.Row="1"
Grid.Column="2"
Maximum="200"
Minimum="0"
Value="10" />

<Label
Grid.Row="1"
Grid.Column="3"
HorizontalOptions="End"
Text="TopRight" />
<Slider
x:Name="SliderCornerRadiusTopRight"
Grid.Row="1"
Grid.Column="4"
Maximum="200"
Minimum="0"
Value="10" />

<Label
Grid.Row="2"
Grid.Column="1"
HorizontalOptions="End"
Text="BottomLeft" />
<Slider
x:Name="SliderCornerRadiusBottomLeft"
Grid.Row="2"
Grid.Column="2"
Maximum="200"
Minimum="0"
Value="10" />

<Label
Grid.Row="2"
Grid.Column="3"
HorizontalOptions="End"
Text="BottomRight" />
<Slider
x:Name="SliderCornerRadiusBottomRight"
Grid.Row="2"
Grid.Column="4"
Maximum="200"
Minimum="0"
Value="10" />
</Grid>
</Grid>
</ScrollView>
</pages:BasePage>
27 changes: 27 additions & 0 deletions samples/XCT.Sample/Pages/Effects/CornerRadiusEffectPage.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Xamarin.Forms;

namespace Xamarin.CommunityToolkit.Sample.Pages.Effects
{
public partial class CornerRadiusEffectPage
{
public CornerRadiusEffectPage()
{
InitializeComponent();

SliderCornerRadiusTopLeft.ValueChanged += OnCornerRadiusValueChanged;
SliderCornerRadiusTopRight.ValueChanged += OnCornerRadiusValueChanged;
SliderCornerRadiusBottomLeft.ValueChanged += OnCornerRadiusValueChanged;
SliderCornerRadiusBottomRight.ValueChanged += OnCornerRadiusValueChanged;
}

void OnCornerRadiusValueChanged(object sender, ValueChangedEventArgs e)
{
CornerRadius = new CornerRadius(
SliderCornerRadiusTopLeft.Value, SliderCornerRadiusTopRight.Value,
SliderCornerRadiusBottomLeft.Value, SliderCornerRadiusBottomRight.Value);
OnPropertyChanged(nameof(CornerRadius));
}

public CornerRadius CornerRadius { get; private set; } = new (10);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ protected override IEnumerable<SectionModel> CreateItems() => new[]
typeof(ColorsConverterPage),
"Colors converters",
"A group of converters that convert a Color to your strings values (RGB, HEX, HSL, etc)"),
new SectionModel(
typeof(UtcDateTimeToLocalStringConverterPage),
nameof(UtcDateTimeToLocalStringConverter),
"A converter that allows you to convert either a DateTimeOffset or DateTime from UTC into the local time string value with the provided datetime format."),
};
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;

namespace Xamarin.CommunityToolkit.Sample.ViewModels.Converters
{
public class UtcDateTimeToLocalStringConverterViewModel : BaseViewModel
{
DateTime utcDateTime = DateTime.Now.ToUniversalTime();

public DateTime UtcDateTime
{
get => utcDateTime;
set => SetProperty(ref utcDateTime, value);
}

DateTimeOffset utcDateTimeOffset = DateTimeOffset.Now.ToUniversalTime();

public DateTimeOffset UtcDateTimeOffset
{
get => utcDateTimeOffset;
set => SetProperty(ref utcDateTimeOffset, value);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ protected override IEnumerable<SectionModel> CreateItems() => new[]
"The SemanticEffect allows you to set semantic properties for accessibility."),

new SectionModel(
typeof(CornerRadiusEffectPage),
nameof(CornerRadiusEffect),
"The CornerRadius allows rounded corners everywhere."),

new SectionModel(
typeof(StatusBarEffectPage),
nameof(StatusBarEffect),
"The StatusBar allows to change status bar color and style. This page also demonstrates Android only NavigationBar changes.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,27 @@ public void MathExpressionConverter_ReturnsCorrectResult(
}
}

[TestCase("min(max(4+x, 5), 10)", 2d, 6d)]
public void MathExpressionConverter_ExpressionProperty_ReturnsCorrectResult(
string expression, double x, double expectedResult)
{
var mathExpressionConverter = new MathExpressionConverter
{
Expression = expression
};

var result = mathExpressionConverter.Convert(x, type, null, cultureInfo);

if (result == null)
{
Assert.Fail();
}
else
{
Assert.IsTrue(Math.Abs((double)result - expectedResult) < tolerance);
}
}

[TestCase("x + x1 * x1", new object[] { 2d, 1d }, 3d)]
[TestCase("(x1 + x) * x1", new object[] { 2d, 3d }, 15d)]
[TestCase("3 + x * x1 / (1 - 5)^x1", new object[] { 4d, 2d }, 3.5d)]
Expand All @@ -59,6 +80,27 @@ public void MathExpressionConverter_WithMultiplyVariable_ReturnsCorrectResult(
}
}

[TestCase("x + x1 * x1", new object[] { 2d, 1d }, 3d)]
public void MathExpressionConverter_WithMultiplyVariable_ExpressionProperty_ReturnsCorrectResult(
string expression, object[] variables, double expectedResult)
{
var mathExpressionConverter = new MultiMathExpressionConverter
{
Expression = expression
};

var result = mathExpressionConverter.Convert(variables, type, null, cultureInfo);

if (result == null)
{
Assert.Fail();
}
else
{
Assert.IsTrue(Math.Abs((double)result - expectedResult) < tolerance);
}
}

[TestCase("1 + 3 + 5 + (3 - 2))")]
[TestCase("1 + 2) + (9")]
[TestCase("100 + pow(2)")]
Expand Down
Loading