diff --git a/Files/Assets/AnimatedVisuals/LottiePulseStatusCenter.json b/Files/Assets/AnimatedVisuals/LottiePulseStatusCenter.json new file mode 100644 index 000000000000..ed8a3b8c6893 --- /dev/null +++ b/Files/Assets/AnimatedVisuals/LottiePulseStatusCenter.json @@ -0,0 +1 @@ +{"v":"5.5.7","fr":30,"ip":0,"op":60,"w":24,"h":24,"nm":"Comp 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"pointer","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.3805,11.447,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.412,0.412,0.833],"y":[0.998,0.998,3.63]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[5,5,100]},{"i":{"x":[0.548,0.548,0.833],"y":[1.001,1.001,-2.565]},"o":{"x":[0.951,0.951,0.167],"y":[-0.004,-0.004,-3.006]},"t":28,"s":[8.3095,8.3095,100]},{"t":60.0000024438501,"s":[5,5,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[91.375,91.375],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.522,2.212],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[105.072,104.426],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":150.000006109625,"op":150.000006109625,"st":0,"bm":0,"hidden":0},{"ddd":0,"ind":2,"ty":4,"nm":"pulse","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[100]},{"t":31.0000012626559,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[12.3805,11.447,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[5,5,100]},{"t":31.0000012626559,"s":[25,25,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[91.375,91.375],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.47058823529411764,0.8431372549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-1.522,2.212],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[105.072,104.426],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":150.000006109625,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/Files/Files.csproj b/Files/Files.csproj index 6e728be4d1a8..0a327322ffae 100644 --- a/Files/Files.csproj +++ b/Files/Files.csproj @@ -370,6 +370,7 @@ PreserveNewest + PreserveNewest @@ -683,6 +684,9 @@ 6.1.1 + + 6.1.0 + 2.4.3 diff --git a/Files/MultilingualResources/Files.hu-HU.xlf b/Files/MultilingualResources/Files.hu-HU.xlf index 45aae6a1cedf..b85bd9c2ea5b 100644 --- a/Files/MultilingualResources/Files.hu-HU.xlf +++ b/Files/MultilingualResources/Files.hu-HU.xlf @@ -1445,4 +1445,4 @@ - + \ No newline at end of file diff --git a/Files/UserControls/StatusBarControl.xaml b/Files/UserControls/StatusBarControl.xaml index 3b64dd462cf0..e9a93adcff05 100644 --- a/Files/UserControls/StatusBarControl.xaml +++ b/Files/UserControls/StatusBarControl.xaml @@ -5,7 +5,9 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:Files.UserControls" xmlns:local1="using:Files" + xmlns:lottie="using:Microsoft.Toolkit.Uwp.UI.Lottie" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:muxc="using:Microsoft.UI.Xaml.Controls" d:DesignHeight="40" d:DesignWidth="400" mc:Ignorable="d"> @@ -141,32 +143,39 @@ - - + + + + + + \ No newline at end of file diff --git a/Files/UserControls/StatusBarControl.xaml.cs b/Files/UserControls/StatusBarControl.xaml.cs index 7c778381afca..1f5f634bd6c2 100644 --- a/Files/UserControls/StatusBarControl.xaml.cs +++ b/Files/UserControls/StatusBarControl.xaml.cs @@ -18,6 +18,20 @@ public sealed partial class StatusBarControl : UserControl public StatusBarControl() { this.InitializeComponent(); + OngoingTasksControl.ProgressBannerPosted += OngoingTasksControl_ProgressBannerPosted; + } + + private void OngoingTasksControl_ProgressBannerPosted(object sender, EventArgs e) + { + PlayBannerAddedVisualAnimation(); + } + + public async void PlayBannerAddedVisualAnimation() + { + StatusCenterPulseVisualPlayer.Visibility = Windows.UI.Xaml.Visibility.Visible; + await StatusCenterPulseVisualPlayer.PlayAsync(0, 1, false); + await StatusCenterPulseVisualPlayer.PlayAsync(0, 1, false); + StatusCenterPulseVisualPlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed; } } } \ No newline at end of file diff --git a/Files/UserControls/StatusCenter.xaml.cs b/Files/UserControls/StatusCenter.xaml.cs index 3f8b9b06a084..8a08860de9b5 100644 --- a/Files/UserControls/StatusCenter.xaml.cs +++ b/Files/UserControls/StatusCenter.xaml.cs @@ -15,6 +15,7 @@ namespace Files.UserControls public sealed partial class StatusCenter : UserControl { public static ObservableCollection StatusBannersSource { get; set; } = new ObservableCollection(); + public event EventHandler ProgressBannerPosted; public StatusCenter() { @@ -35,6 +36,7 @@ public PostedStatusBanner PostBanner(string title, string message, uint initialP { var item = new StatusBanner(message, title, initialProgress, severity, operation); StatusBannersSource.Add(item); + ProgressBannerPosted?.Invoke(this, EventArgs.Empty); return new PostedStatusBanner(item); }