diff --git a/Wino.Core/Synchronizers/GmailSynchronizer.cs b/Wino.Core/Synchronizers/GmailSynchronizer.cs
index b46b9ea1..dd64f8ab 100644
--- a/Wino.Core/Synchronizers/GmailSynchronizer.cs
+++ b/Wino.Core/Synchronizers/GmailSynchronizer.cs
@@ -79,10 +79,6 @@ namespace Wino.Core.Synchronizers.Mail
string senderName = string.Empty, base64ProfilePicture = string.Empty, address = string.Empty;
- //var gmailUserData = _gmailService.Users.GetProfile("me");
- //var gmailProfile = await gmailUserData.ExecuteAsync();
-
-
var userProfile = await profileRequest.ExecuteAsync();
senderName = userProfile.Names?.FirstOrDefault()?.DisplayName ?? Account.SenderName;
@@ -94,7 +90,7 @@ namespace Wino.Core.Synchronizers.Mail
base64ProfilePicture = await GetProfilePictureBase64EncodedAsync(profilePicture).ConfigureAwait(false);
}
- address = userProfile.EmailAddresses.FirstOrDefault().Value;
+ address = userProfile.EmailAddresses.FirstOrDefault(a => a.Metadata.Primary == true).Value;
return new ProfileInformation(senderName, base64ProfilePicture, address);
}
diff --git a/Wino.Mail/Animations/Synchronization.cs b/Wino.Mail/Animations/Synchronization.cs
new file mode 100644
index 00000000..0a76a6d0
--- /dev/null
+++ b/Wino.Mail/Animations/Synchronization.cs
@@ -0,0 +1,557 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// LottieGen version:
+// 8.1.240821.1+077322fa26
+//
+// Command:
+// LottieGen -Language CSharp -Public -WinUIVersion 2.6 -InputFile synchronization.json
+//
+// Input file:
+// synchronization.json (2404 bytes created 18:54+01:00 Dec 21 2024)
+//
+// LottieGen source:
+// http://aka.ms/Lottie
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+// ___________________________________________________________
+// | Object stats | UAP v15 count | UAP v7 count |
+// |__________________________|_______________|______________|
+// | All CompositionObjects | 26 | 26 |
+// |--------------------------+---------------+--------------|
+// | Expression animators | 1 | 1 |
+// | KeyFrame animators | 1 | 1 |
+// | Reference parameters | 1 | 1 |
+// | Expression operations | 0 | 0 |
+// |--------------------------+---------------+--------------|
+// | Animated brushes | - | - |
+// | Animated gradient stops | - | - |
+// | ExpressionAnimations | 1 | 1 |
+// | PathKeyFrameAnimations | - | - |
+// |--------------------------+---------------+--------------|
+// | ContainerVisuals | 1 | 1 |
+// | ShapeVisuals | 1 | 1 |
+// |--------------------------+---------------+--------------|
+// | ContainerShapes | 1 | 1 |
+// | CompositionSpriteShapes | 2 | 2 |
+// |--------------------------+---------------+--------------|
+// | Brushes | 1 | 1 |
+// | Gradient stops | - | - |
+// | CompositionVisualSurface | - | - |
+// -----------------------------------------------------------
+using Microsoft.Graphics.Canvas.Geometry;
+using System;
+using System.Collections.Generic;
+using System.Numerics;
+using Windows.Graphics;
+using Windows.UI;
+using Windows.UI.Composition;
+
+namespace AnimatedVisuals
+{
+ // Name: main_libary_shelf_icon_sync
+ // Frame rate: 60 fps
+ // Frame count: 61
+ // Duration: 1016.7 mS
+ sealed class Synchronization
+ : Microsoft.UI.Xaml.Controls.IAnimatedVisualSource
+ , Microsoft.UI.Xaml.Controls.IAnimatedVisualSource2
+ {
+ // Animation duration: 1.017 seconds.
+ internal const long c_durationTicks = 10166666;
+
+ public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor)
+ {
+ object ignored = null;
+ return TryCreateAnimatedVisual(compositor, out ignored);
+ }
+
+ public Microsoft.UI.Xaml.Controls.IAnimatedVisual TryCreateAnimatedVisual(Compositor compositor, out object diagnostics)
+ {
+ diagnostics = null;
+
+ if (Synchronization_AnimatedVisual_UAPv15.IsRuntimeCompatible())
+ {
+ var res =
+ new Synchronization_AnimatedVisual_UAPv15(
+ compositor
+ );
+ return res;
+ }
+
+ if (Synchronization_AnimatedVisual_UAPv7.IsRuntimeCompatible())
+ {
+ var res =
+ new Synchronization_AnimatedVisual_UAPv7(
+ compositor
+ );
+ return res;
+ }
+
+ return null;
+ }
+
+ ///
+ /// Gets the number of frames in the animation.
+ ///
+ public double FrameCount => 61d;
+
+ ///
+ /// Gets the frame rate of the animation.
+ ///
+ public double Framerate => 60d;
+
+ ///
+ /// Gets the duration of the animation.
+ ///
+ public TimeSpan Duration => TimeSpan.FromTicks(10166666);
+
+ ///
+ /// Converts a zero-based frame number to the corresponding progress value denoting the
+ /// start of the frame.
+ ///
+ public double FrameToProgress(double frameNumber)
+ {
+ return frameNumber / 61d;
+ }
+
+ ///
+ /// Returns a map from marker names to corresponding progress values.
+ ///
+ public IReadOnlyDictionary Markers =>
+ new Dictionary
+ {
+ };
+
+ ///
+ /// Sets the color property with the given name, or does nothing if no such property
+ /// exists.
+ ///
+ public void SetColorProperty(string propertyName, Color value)
+ {
+ }
+
+ ///
+ /// Sets the scalar property with the given name, or does nothing if no such property
+ /// exists.
+ ///
+ public void SetScalarProperty(string propertyName, double value)
+ {
+ }
+
+ sealed class Synchronization_AnimatedVisual_UAPv15
+ : Microsoft.UI.Xaml.Controls.IAnimatedVisual
+ {
+ const long c_durationTicks = 10166666;
+ readonly Compositor _c;
+ readonly ExpressionAnimation _reusableExpressionAnimation;
+ AnimationController _animationController_0;
+ CompositionColorBrush _colorBrush_AlmostDarkSlateGray_FF2D3846;
+ ContainerVisual _root;
+
+ void BindProperty(
+ CompositionObject target,
+ string animatedPropertyName,
+ string expression,
+ string referenceParameterName,
+ CompositionObject referencedObject)
+ {
+ _reusableExpressionAnimation.ClearAllParameters();
+ _reusableExpressionAnimation.Expression = expression;
+ _reusableExpressionAnimation.SetReferenceParameter(referenceParameterName, referencedObject);
+ target.StartAnimation(animatedPropertyName, _reusableExpressionAnimation);
+ }
+
+ ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation(float initialProgress, float initialValue, CompositionEasingFunction initialEasingFunction)
+ {
+ var result = _c.CreateScalarKeyFrameAnimation();
+ result.Duration = TimeSpan.FromTicks(c_durationTicks);
+ result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
+ return result;
+ }
+
+ CompositionSpriteShape CreateSpriteShape(CompositionGeometry geometry, Matrix3x2 transformMatrix, CompositionBrush fillBrush)
+ {
+ var result = _c.CreateSpriteShape(geometry);
+ result.TransformMatrix = transformMatrix;
+ result.FillBrush = fillBrush;
+ return result;
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ AnimationController AnimationController_0()
+ {
+ var result = _animationController_0 = _c.CreateAnimationController();
+ result.Pause();
+ BindProperty(result, "Progress", "_.Progress", "_", _root);
+ return result;
+ }
+
+ // - - - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // - - ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ CanvasGeometry Geometry_0()
+ {
+ CanvasGeometry result;
+ using (var builder = new CanvasPathBuilder(null))
+ {
+ builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
+ builder.BeginFigure(new Vector2(11.7449999F, 5.09700012F));
+ builder.AddCubicBezier(new Vector2(11.7449999F, -3.66000009F), new Vector2(4.56699991F, -10.9189997F), new Vector2(-4.25500011F, -10.9189997F));
+ builder.AddCubicBezier(new Vector2(-8.6239996F, -10.9189997F), new Vector2(-12.7040005F, -9.20300007F), new Vector2(-15.7449999F, -6.08900023F));
+ builder.AddLine(new Vector2(-12.8739996F, -3.32599998F));
+ builder.AddCubicBezier(new Vector2(-10.5930004F, -5.66200018F), new Vector2(-7.53200006F, -6.94799995F), new Vector2(-4.25500011F, -6.94799995F));
+ builder.AddCubicBezier(new Vector2(2.36199999F, -6.94799995F), new Vector2(7.74499989F, -1.47099996F), new Vector2(7.74499989F, 5.09700012F));
+ builder.AddLine(new Vector2(3.74499989F, 5.09700012F));
+ builder.AddLine(new Vector2(9.74499989F, 10.9189997F));
+ builder.AddLine(new Vector2(15.7449999F, 5.09700012F));
+ builder.AddLine(new Vector2(11.7449999F, 5.09700012F));
+ builder.EndFigure(CanvasFigureLoop.Closed);
+ result = CanvasGeometry.CreatePath(builder);
+ }
+ return result;
+ }
+
+ // - - - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // - - ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ CanvasGeometry Geometry_1()
+ {
+ CanvasGeometry result;
+ using (var builder = new CanvasPathBuilder(null))
+ {
+ builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
+ builder.BeginFigure(new Vector2(4.25500011F, 6.94799995F));
+ builder.AddCubicBezier(new Vector2(-2.36199999F, 6.94799995F), new Vector2(-7.74499989F, 1.472F), new Vector2(-7.74499989F, -5.09499979F));
+ builder.AddLine(new Vector2(-3.74499989F, -5.09499979F));
+ builder.AddLine(new Vector2(-9.74499989F, -10.9189997F));
+ builder.AddLine(new Vector2(-15.7449999F, -5.09499979F));
+ builder.AddLine(new Vector2(-11.7449999F, -5.09499979F));
+ builder.AddCubicBezier(new Vector2(-11.7449999F, 3.66199994F), new Vector2(-4.56699991F, 10.9189997F), new Vector2(4.25500011F, 10.9189997F));
+ builder.AddCubicBezier(new Vector2(8.6260004F, 10.9189997F), new Vector2(12.7060003F, 9.20300007F), new Vector2(15.7449999F, 6.08900023F));
+ builder.AddLine(new Vector2(12.8739996F, 3.32500005F));
+ builder.AddCubicBezier(new Vector2(10.5930004F, 5.66099977F), new Vector2(7.53200006F, 6.94799995F), new Vector2(4.25500011F, 6.94799995F));
+ builder.EndFigure(CanvasFigureLoop.Closed);
+ result = CanvasGeometry.CreatePath(builder);
+ }
+ return result;
+ }
+
+ CompositionColorBrush ColorBrush_AlmostDarkSlateGray_FF2D3846()
+ {
+ return _colorBrush_AlmostDarkSlateGray_FF2D3846 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x2D, 0x38, 0x46));
+ }
+
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ CompositionContainerShape ContainerShape()
+ {
+ var result = _c.CreateContainerShape();
+ result.CenterPoint = new Vector2(24F, 24F);
+ var shapes = result.Shapes;
+ // ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ shapes.Add(SpriteShape_0());
+ // ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ shapes.Add(SpriteShape_1());
+ result.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_360(), AnimationController_0());
+ return result;
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ CompositionPathGeometry PathGeometry_0()
+ {
+ return _c.CreatePathGeometry(new CompositionPath(Geometry_0()));
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ CompositionPathGeometry PathGeometry_1()
+ {
+ return _c.CreatePathGeometry(new CompositionPath(Geometry_1()));
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Path 1
+ CompositionSpriteShape SpriteShape_0()
+ {
+ // Offset:<28.255, 18.903>
+ var geometry = PathGeometry_0();
+ var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 28.2549992F, 18.9029999F), ColorBrush_AlmostDarkSlateGray_FF2D3846());;
+ return result;
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Path 1
+ CompositionSpriteShape SpriteShape_1()
+ {
+ // Offset:<19.745, 29.096>
+ var geometry = PathGeometry_1();
+ var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 19.7450008F, 29.0960007F), _colorBrush_AlmostDarkSlateGray_FF2D3846);;
+ return result;
+ }
+
+ // The root of the composition.
+ ContainerVisual Root()
+ {
+ var result = _root = _c.CreateContainerVisual();
+ var propertySet = result.Properties;
+ propertySet.InsertScalar("Progress", 0F);
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ result.Children.InsertAtTop(ShapeVisual_0());
+ return result;
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Rotation
+ ScalarKeyFrameAnimation RotationAngleInDegreesScalarAnimation_0_to_360()
+ {
+ // Frame 0.
+ var result = CreateScalarKeyFrameAnimation(0F, 0F, HoldThenStepEasingFunction());
+ // Frame 61.
+ result.InsertKeyFrame(1F, 360F, _c.CreateCubicBezierEasingFunction(new Vector2(0.314999998F, 0F), new Vector2(0.465000004F, 0.861999989F)));
+ return result;
+ }
+
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ ShapeVisual ShapeVisual_0()
+ {
+ var result = _c.CreateShapeVisual();
+ result.Size = new Vector2(48F, 48F);
+ result.Shapes.Add(ContainerShape());
+ return result;
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // RotationAngleInDegrees
+ StepEasingFunction HoldThenStepEasingFunction()
+ {
+ var result = _c.CreateStepEasingFunction();
+ result.IsFinalStepSingleFrame = true;
+ return result;
+ }
+
+ internal Synchronization_AnimatedVisual_UAPv15(
+ Compositor compositor
+ )
+ {
+ _c = compositor;
+ _reusableExpressionAnimation = compositor.CreateExpressionAnimation();
+ Root();
+ }
+
+ public Visual RootVisual => _root;
+ public TimeSpan Duration => TimeSpan.FromTicks(c_durationTicks);
+ public Vector2 Size => new Vector2(48F, 48F);
+ void IDisposable.Dispose() => _root?.Dispose();
+
+ internal static bool IsRuntimeCompatible()
+ {
+ return Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 15);
+ }
+ }
+
+ sealed class Synchronization_AnimatedVisual_UAPv7
+ : Microsoft.UI.Xaml.Controls.IAnimatedVisual
+ {
+ const long c_durationTicks = 10166666;
+ readonly Compositor _c;
+ readonly ExpressionAnimation _reusableExpressionAnimation;
+ CompositionColorBrush _colorBrush_AlmostDarkSlateGray_FF2D3846;
+ ContainerVisual _root;
+
+ void BindProperty(
+ CompositionObject target,
+ string animatedPropertyName,
+ string expression,
+ string referenceParameterName,
+ CompositionObject referencedObject)
+ {
+ _reusableExpressionAnimation.ClearAllParameters();
+ _reusableExpressionAnimation.Expression = expression;
+ _reusableExpressionAnimation.SetReferenceParameter(referenceParameterName, referencedObject);
+ target.StartAnimation(animatedPropertyName, _reusableExpressionAnimation);
+ }
+
+ ScalarKeyFrameAnimation CreateScalarKeyFrameAnimation(float initialProgress, float initialValue, CompositionEasingFunction initialEasingFunction)
+ {
+ var result = _c.CreateScalarKeyFrameAnimation();
+ result.Duration = TimeSpan.FromTicks(c_durationTicks);
+ result.InsertKeyFrame(initialProgress, initialValue, initialEasingFunction);
+ return result;
+ }
+
+ CompositionSpriteShape CreateSpriteShape(CompositionGeometry geometry, Matrix3x2 transformMatrix, CompositionBrush fillBrush)
+ {
+ var result = _c.CreateSpriteShape(geometry);
+ result.TransformMatrix = transformMatrix;
+ result.FillBrush = fillBrush;
+ return result;
+ }
+
+ // - - - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // - - ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ CanvasGeometry Geometry_0()
+ {
+ CanvasGeometry result;
+ using (var builder = new CanvasPathBuilder(null))
+ {
+ builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
+ builder.BeginFigure(new Vector2(11.7449999F, 5.09700012F));
+ builder.AddCubicBezier(new Vector2(11.7449999F, -3.66000009F), new Vector2(4.56699991F, -10.9189997F), new Vector2(-4.25500011F, -10.9189997F));
+ builder.AddCubicBezier(new Vector2(-8.6239996F, -10.9189997F), new Vector2(-12.7040005F, -9.20300007F), new Vector2(-15.7449999F, -6.08900023F));
+ builder.AddLine(new Vector2(-12.8739996F, -3.32599998F));
+ builder.AddCubicBezier(new Vector2(-10.5930004F, -5.66200018F), new Vector2(-7.53200006F, -6.94799995F), new Vector2(-4.25500011F, -6.94799995F));
+ builder.AddCubicBezier(new Vector2(2.36199999F, -6.94799995F), new Vector2(7.74499989F, -1.47099996F), new Vector2(7.74499989F, 5.09700012F));
+ builder.AddLine(new Vector2(3.74499989F, 5.09700012F));
+ builder.AddLine(new Vector2(9.74499989F, 10.9189997F));
+ builder.AddLine(new Vector2(15.7449999F, 5.09700012F));
+ builder.AddLine(new Vector2(11.7449999F, 5.09700012F));
+ builder.EndFigure(CanvasFigureLoop.Closed);
+ result = CanvasGeometry.CreatePath(builder);
+ }
+ return result;
+ }
+
+ // - - - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // - - ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ CanvasGeometry Geometry_1()
+ {
+ CanvasGeometry result;
+ using (var builder = new CanvasPathBuilder(null))
+ {
+ builder.SetFilledRegionDetermination(CanvasFilledRegionDetermination.Winding);
+ builder.BeginFigure(new Vector2(4.25500011F, 6.94799995F));
+ builder.AddCubicBezier(new Vector2(-2.36199999F, 6.94799995F), new Vector2(-7.74499989F, 1.472F), new Vector2(-7.74499989F, -5.09499979F));
+ builder.AddLine(new Vector2(-3.74499989F, -5.09499979F));
+ builder.AddLine(new Vector2(-9.74499989F, -10.9189997F));
+ builder.AddLine(new Vector2(-15.7449999F, -5.09499979F));
+ builder.AddLine(new Vector2(-11.7449999F, -5.09499979F));
+ builder.AddCubicBezier(new Vector2(-11.7449999F, 3.66199994F), new Vector2(-4.56699991F, 10.9189997F), new Vector2(4.25500011F, 10.9189997F));
+ builder.AddCubicBezier(new Vector2(8.6260004F, 10.9189997F), new Vector2(12.7060003F, 9.20300007F), new Vector2(15.7449999F, 6.08900023F));
+ builder.AddLine(new Vector2(12.8739996F, 3.32500005F));
+ builder.AddCubicBezier(new Vector2(10.5930004F, 5.66099977F), new Vector2(7.53200006F, 6.94799995F), new Vector2(4.25500011F, 6.94799995F));
+ builder.EndFigure(CanvasFigureLoop.Closed);
+ result = CanvasGeometry.CreatePath(builder);
+ }
+ return result;
+ }
+
+ CompositionColorBrush ColorBrush_AlmostDarkSlateGray_FF2D3846()
+ {
+ return _colorBrush_AlmostDarkSlateGray_FF2D3846 = _c.CreateColorBrush(Color.FromArgb(0xFF, 0x2D, 0x38, 0x46));
+ }
+
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ CompositionContainerShape ContainerShape()
+ {
+ var result = _c.CreateContainerShape();
+ result.CenterPoint = new Vector2(24F, 24F);
+ var shapes = result.Shapes;
+ // ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ shapes.Add(SpriteShape_0());
+ // ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ shapes.Add(SpriteShape_1());
+ result.StartAnimation("RotationAngleInDegrees", RotationAngleInDegreesScalarAnimation_0_to_360());
+ var controller = result.TryGetAnimationController("RotationAngleInDegrees");
+ controller.Pause();
+ BindProperty(controller, "Progress", "_.Progress", "_", _root);
+ return result;
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // ShapeGroup: Group 2 Offset:<28.255, 18.903>
+ CompositionPathGeometry PathGeometry_0()
+ {
+ return _c.CreatePathGeometry(new CompositionPath(Geometry_0()));
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // ShapeGroup: Group 1 Offset:<19.745, 29.096>
+ CompositionPathGeometry PathGeometry_1()
+ {
+ return _c.CreatePathGeometry(new CompositionPath(Geometry_1()));
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Path 1
+ CompositionSpriteShape SpriteShape_0()
+ {
+ // Offset:<28.255, 18.903>
+ var geometry = PathGeometry_0();
+ var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 28.2549992F, 18.9029999F), ColorBrush_AlmostDarkSlateGray_FF2D3846());;
+ return result;
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Path 1
+ CompositionSpriteShape SpriteShape_1()
+ {
+ // Offset:<19.745, 29.096>
+ var geometry = PathGeometry_1();
+ var result = CreateSpriteShape(geometry, new Matrix3x2(1F, 0F, 0F, 1F, 19.7450008F, 29.0960007F), _colorBrush_AlmostDarkSlateGray_FF2D3846);;
+ return result;
+ }
+
+ // The root of the composition.
+ ContainerVisual Root()
+ {
+ var result = _root = _c.CreateContainerVisual();
+ var propertySet = result.Properties;
+ propertySet.InsertScalar("Progress", 0F);
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ result.Children.InsertAtTop(ShapeVisual_0());
+ return result;
+ }
+
+ // - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // Rotation
+ ScalarKeyFrameAnimation RotationAngleInDegreesScalarAnimation_0_to_360()
+ {
+ // Frame 0.
+ var result = CreateScalarKeyFrameAnimation(0F, 0F, HoldThenStepEasingFunction());
+ // Frame 61.
+ result.InsertKeyFrame(1F, 360F, _c.CreateCubicBezierEasingFunction(new Vector2(0.314999998F, 0F), new Vector2(0.465000004F, 0.861999989F)));
+ return result;
+ }
+
+ // Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ ShapeVisual ShapeVisual_0()
+ {
+ var result = _c.CreateShapeVisual();
+ result.Size = new Vector2(48F, 48F);
+ result.Shapes.Add(ContainerShape());
+ return result;
+ }
+
+ // - - Shape tree root for layer: main_library_shelf_icon_sync Outlines
+ // RotationAngleInDegrees
+ StepEasingFunction HoldThenStepEasingFunction()
+ {
+ var result = _c.CreateStepEasingFunction();
+ result.IsFinalStepSingleFrame = true;
+ return result;
+ }
+
+ internal Synchronization_AnimatedVisual_UAPv7(
+ Compositor compositor
+ )
+ {
+ _c = compositor;
+ _reusableExpressionAnimation = compositor.CreateExpressionAnimation();
+ Root();
+ }
+
+ public Visual RootVisual => _root;
+ public TimeSpan Duration => TimeSpan.FromTicks(c_durationTicks);
+ public Vector2 Size => new Vector2(48F, 48F);
+ void IDisposable.Dispose() => _root?.Dispose();
+
+ internal static bool IsRuntimeCompatible()
+ {
+ return Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7);
+ }
+ }
+ }
+}
diff --git a/Wino.Mail/Services/MailAuthenticatorConfiguration.cs b/Wino.Mail/Services/MailAuthenticatorConfiguration.cs
index 5c8c0388..f1be40f1 100644
--- a/Wino.Mail/Services/MailAuthenticatorConfiguration.cs
+++ b/Wino.Mail/Services/MailAuthenticatorConfiguration.cs
@@ -23,7 +23,8 @@ namespace Wino.Services
{
"https://mail.google.com/",
"https://www.googleapis.com/auth/userinfo.profile",
- "https://www.googleapis.com/auth/gmail.labels"
+ "https://www.googleapis.com/auth/gmail.labels",
+ "https://www.googleapis.com/auth/userinfo.email"
};
public string GmailTokenStoreIdentifier => "WinoMailGmailTokenStore";
diff --git a/Wino.Mail/Wino.Mail.csproj b/Wino.Mail/Wino.Mail.csproj
index e24d49ef..6ddfeac7 100644
--- a/Wino.Mail/Wino.Mail.csproj
+++ b/Wino.Mail/Wino.Mail.csproj
@@ -192,9 +192,6 @@
5.1.2
-
- 20.1.63
-
4.1.0
@@ -634,4 +631,4 @@
-->
-
\ No newline at end of file
+