Skip to content

Commit ed86a2b

Browse files
committed
POC
1 parent 53806c1 commit ed86a2b

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

src/Files.App/UserControls/NavigationToolbar.xaml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -474,36 +474,33 @@
474474
Visibility="{x:Bind ViewModel.ShowStatusCenterButton, Mode=OneWay}">
475475

476476
<Grid Margin="-16">
477-
478477
<controls:ThemedIcon
479478
x:Name="StatusCenterIcon"
480479
Width="16"
481480
Height="16"
482-
x:Load="{x:Bind OngoingTasksViewModel.HasAnyItem, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"
483481
Style="{StaticResource App.ThemedIcons.StatusCenter}" />
484482

485483
<ProgressRing
486484
x:Name="MedianOperationProgressRing"
487485
HorizontalAlignment="Center"
488486
VerticalAlignment="Center"
489-
x:Load="{x:Bind OngoingTasksViewModel.HasAnyItemInProgress, Mode=OneWay}"
490-
Background="{ThemeResource SubtleFillColorSecondaryBrush}"
491487
IsIndeterminate="False"
488+
Visibility="{x:Bind OngoingTasksViewModel.ShowStatusCenterProgressRing, Mode=OneWay}"
492489
Value="{x:Bind OngoingTasksViewModel.AverageOperationProgressValue, Mode=OneWay}" />
493490

494491
<InfoBadge
495492
x:Name="StatusInfoBadge"
496493
HorizontalAlignment="Center"
497494
VerticalAlignment="Center"
498-
Visibility="{x:Bind OngoingTasksViewModel.HasAnyItem, Mode=OneWay}"
495+
Visibility="{x:Bind OngoingTasksViewModel.HasAnyItemInProgress, Mode=OneWay}"
499496
Value="{x:Bind OngoingTasksViewModel.InfoBadgeValue, Mode=OneWay}" />
500-
501497
</Grid>
502498

503499
<Button.Flyout>
504500
<Flyout
505501
contract8Present:ShouldConstrainToRootBounds="False"
506502
AutomationProperties.Name="{helpers:ResourceString Name=StatusCenter}"
503+
Opened="{x:Bind OngoingTasksViewModel.OnStatusCenterFlyoutOpened, Mode=OneWay}"
507504
Placement="BottomEdgeAlignedRight">
508505
<Flyout.FlyoutPresenterStyle>
509506
<Style TargetType="FlyoutPresenter">
@@ -627,7 +624,7 @@
627624
To="0" />
628625
</VisualState.StateTriggers>
629626
<VisualState.Setters>
630-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource SuccessIconInfoBadgeStyle}" />
627+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SystemFillColorSuccessBrush}" />
631628
</VisualState.Setters>
632629
</VisualState>
633630
<VisualState x:Name="TasksOnging">
@@ -638,7 +635,9 @@
638635
To="1" />
639636
</VisualState.StateTriggers>
640637
<VisualState.Setters>
641-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource AttentionValueInfoBadgeStyle}" />
638+
<Setter Target="MedianOperationProgressRing.Foreground" Value="{ThemeResource SystemFillColorAttentionBrush}" />
639+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SubtleFillColorSecondaryBrush}" />
640+
<Setter Target="StatusCenterIcon.Visibility" Value="Collapsed" />
642641
</VisualState.Setters>
643642
</VisualState>
644643
<VisualState x:Name="TasksFailure">
@@ -649,7 +648,7 @@
649648
To="2" />
650649
</VisualState.StateTriggers>
651650
<VisualState.Setters>
652-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource CriticalValueInfoBadgeStyle}" />
651+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SystemFillColorCriticalBrush}" />
653652
</VisualState.Setters>
654653
</VisualState>
655654
<VisualState x:Name="TasksCompletionWithFailure">
@@ -660,11 +659,11 @@
660659
To="3" />
661660
</VisualState.StateTriggers>
662661
<VisualState.Setters>
663-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource CriticalIconInfoBadgeStyle}" />
662+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SystemFillColorCriticalBrush}" />
664663
</VisualState.Setters>
665664
</VisualState>
666665
</VisualStateGroup>
667666
</VisualStateManager.VisualStateGroups>
668667
</Grid>
669668

670-
</UserControl>
669+
</UserControl>

src/Files.App/ViewModels/UserControls/StatusCenterViewModel.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,28 @@ public int InProgressItemCount
3131
}
3232

3333
public bool HasAnyItemInProgress
34-
=> InProgressItemCount > 0;
34+
{
35+
get
36+
{
37+
if (InProgressItemCount > 0)
38+
ShowStatusCenterProgressRing = true;
39+
40+
return InProgressItemCount > 0;
41+
}
42+
}
3543

3644
public bool HasAnyItem
3745
=> StatusCenterItems.Any();
3846

47+
48+
private bool _ShowStatusCenterProgressRing = false;
49+
public bool ShowStatusCenterProgressRing
50+
{
51+
get => _ShowStatusCenterProgressRing;
52+
private set => SetProperty(ref _ShowStatusCenterProgressRing, value);
53+
54+
}
55+
3956
public int InfoBadgeState
4057
{
4158
get
@@ -64,6 +81,11 @@ public StatusCenterViewModel()
6481
StatusCenterItems.CollectionChanged += (s, e) => OnPropertyChanged(nameof(HasAnyItem));
6582
}
6683

84+
public void OnStatusCenterFlyoutOpened()
85+
{
86+
ShowStatusCenterProgressRing = HasAnyItemInProgress;
87+
}
88+
6789
public StatusCenterItem AddItem(
6890
string headerResource,
6991
string subHeaderResource,

0 commit comments

Comments
 (0)