Skip to content

Commit f8c635a

Browse files
committed
Concept
1 parent 53806c1 commit f8c635a

File tree

2 files changed

+40
-12
lines changed

2 files changed

+40
-12
lines changed

src/Files.App/UserControls/NavigationToolbar.xaml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
<converters:NullToTrueConverter x:Key="NullToFalseConverter" Inverse="True" />
3030
<converters:NullToVisibilityCollapsedConverter x:Key="NullToVisibilityCollapsedConverter" />
3131
<converters1:BoolNegationConverter x:Key="BoolNegationConverter" />
32+
<converters:VisibilityInvertConverter x:Key="VisibilityInvertConverter" />
3233

3334
<ResourceDictionary.MergedDictionaries>
3435
<ResourceDictionary Source="ms-appx:///UserControls/KeyboardShortcut/KeyboardShortcut.xaml" />
@@ -474,36 +475,34 @@
474475
Visibility="{x:Bind ViewModel.ShowStatusCenterButton, Mode=OneWay}">
475476

476477
<Grid Margin="-16">
477-
478478
<controls:ThemedIcon
479479
x:Name="StatusCenterIcon"
480480
Width="16"
481481
Height="16"
482-
x:Load="{x:Bind OngoingTasksViewModel.HasAnyItem, Converter={StaticResource BoolNegationConverter}, Mode=OneWay}"
483-
Style="{StaticResource App.ThemedIcons.StatusCenter}" />
482+
Style="{StaticResource App.ThemedIcons.StatusCenter}"
483+
Visibility="{x:Bind OngoingTasksViewModel.ShowProgressRing, Converter={StaticResource VisibilityInvertConverter}, Mode=OneWay}" />
484484

485485
<ProgressRing
486486
x:Name="MedianOperationProgressRing"
487487
HorizontalAlignment="Center"
488488
VerticalAlignment="Center"
489-
x:Load="{x:Bind OngoingTasksViewModel.HasAnyItemInProgress, Mode=OneWay}"
490-
Background="{ThemeResource SubtleFillColorSecondaryBrush}"
491489
IsIndeterminate="False"
490+
Visibility="{x:Bind OngoingTasksViewModel.ShowProgressRing, Mode=OneWay}"
492491
Value="{x:Bind OngoingTasksViewModel.AverageOperationProgressValue, Mode=OneWay}" />
493492

494493
<InfoBadge
495494
x:Name="StatusInfoBadge"
496495
HorizontalAlignment="Center"
497496
VerticalAlignment="Center"
498-
Visibility="{x:Bind OngoingTasksViewModel.HasAnyItem, Mode=OneWay}"
497+
Visibility="{x:Bind OngoingTasksViewModel.ShowProgressRing, Mode=OneWay}"
499498
Value="{x:Bind OngoingTasksViewModel.InfoBadgeValue, Mode=OneWay}" />
500-
501499
</Grid>
502500

503501
<Button.Flyout>
504502
<Flyout
505503
contract8Present:ShouldConstrainToRootBounds="False"
506504
AutomationProperties.Name="{helpers:ResourceString Name=StatusCenter}"
505+
Opened="{x:Bind OngoingTasksViewModel.OnStatusCenterFlyoutOpened, Mode=OneWay}"
507506
Placement="BottomEdgeAlignedRight">
508507
<Flyout.FlyoutPresenterStyle>
509508
<Style TargetType="FlyoutPresenter">
@@ -515,7 +514,7 @@
515514
<ucs:StatusCenter
516515
x:Name="OngoingTasksControl"
517516
Width="400"
518-
MinHeight="300"
517+
MinHeight="120"
519518
MaxHeight="500"
520519
x:FieldModifier="public"
521520
IsTabStop="True" />
@@ -627,6 +626,7 @@
627626
To="0" />
628627
</VisualState.StateTriggers>
629628
<VisualState.Setters>
629+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SystemFillColorSuccessBrush}" />
630630
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource SuccessIconInfoBadgeStyle}" />
631631
</VisualState.Setters>
632632
</VisualState>
@@ -638,7 +638,9 @@
638638
To="1" />
639639
</VisualState.StateTriggers>
640640
<VisualState.Setters>
641-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource AttentionValueInfoBadgeStyle}" />
641+
<Setter Target="MedianOperationProgressRing.Foreground" Value="{ThemeResource SystemFillColorAttentionBrush}" />
642+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SubtleFillColorSecondaryBrush}" />
643+
<Setter Target="StatusCenterIcon.Visibility" Value="Collapsed" />
642644
</VisualState.Setters>
643645
</VisualState>
644646
<VisualState x:Name="TasksFailure">
@@ -649,7 +651,9 @@
649651
To="2" />
650652
</VisualState.StateTriggers>
651653
<VisualState.Setters>
652-
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource CriticalValueInfoBadgeStyle}" />
654+
<Setter Target="MedianOperationProgressRing.Foreground" Value="{ThemeResource SystemFillColorAttentionBrush}" />
655+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SubtleFillColorSecondaryBrush}" />
656+
<Setter Target="StatusCenterIcon.Visibility" Value="Collapsed" />
653657
</VisualState.Setters>
654658
</VisualState>
655659
<VisualState x:Name="TasksCompletionWithFailure">
@@ -660,11 +664,13 @@
660664
To="3" />
661665
</VisualState.StateTriggers>
662666
<VisualState.Setters>
667+
<Setter Target="MedianOperationProgressRing.Background" Value="{ThemeResource SystemFillColorCriticalBrush}" />
668+
<Setter Target="StatusCenterIcon.Visibility" Value="Collapsed" />
663669
<Setter Target="StatusInfoBadge.Style" Value="{StaticResource CriticalIconInfoBadgeStyle}" />
664670
</VisualState.Setters>
665671
</VisualState>
666672
</VisualStateGroup>
667673
</VisualStateManager.VisualStateGroups>
668674
</Grid>
669675

670-
</UserControl>
676+
</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+
ShowProgressRing = true;
39+
40+
return InProgressItemCount > 0;
41+
}
42+
}
3543

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

47+
48+
private bool _ShowProgressRing = false;
49+
public bool ShowProgressRing
50+
{
51+
get => _ShowProgressRing;
52+
private set => SetProperty(ref _ShowProgressRing, 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+
ShowProgressRing = HasAnyItemInProgress || InfoBadgeState == 3;
87+
}
88+
6789
public StatusCenterItem AddItem(
6890
string headerResource,
6991
string subHeaderResource,

0 commit comments

Comments
 (0)