wireup global coinjoin active state.
MODIFY
WalletWasabi.Fluent/ViewModels/MainViewModel.cs
WalletWasabi.Fluent/ViewModels/MainViewModel.cs
@@ -14,6 +14,7 @@ using WalletWasabi.Fluent.ViewModels.HelpAndSupport;
using WalletWasabi.Fluent.ViewModels.OpenDirectory;
using WalletWasabi.Logging;
using WalletWasabi.Fluent.ViewModels.StatusBar;
+using WalletWasabi.WabiSabi.Client;
namespace WalletWasabi.Fluent.ViewModels;
@@ -34,6 +35,7 @@ public partial class MainViewModel : ViewModelBase
[AutoNotify] private string _title = "Wasabi Wallet";
[AutoNotify] private WindowState _windowState;
[AutoNotify] private bool _isOobeBackgroundVisible;
+ [AutoNotify] private bool _isCoinJoinActive;
public MainViewModel()
{
@@ -163,6 +165,11 @@ public partial class MainViewModel : ViewModelBase
{
StatusBar.Initialize();
+ if (Services.HostedServices.GetOrDefault<CoinJoinManager>() is { } coinJoinManager)
+ {
+ IsCoinJoinActive = coinJoinManager.HighestCoinJoinClientState != CoinJoinClientState.Idle;
+ }
+
if (Services.Config.Network != Network.Main)
{
Title += $" - {Services.Config.Network}";

MODIFY
WalletWasabi.Fluent/Views/MainView.axaml
WalletWasabi.Fluent/Views/MainView.axaml
<Border Background="{DynamicResource RegionColor}" IsHitTestVisible="False" />
<Panel Background="{DynamicResource RegionColor}" VerticalAlignment="Bottom"
Height="64">
- <c:SpectrumControl Opacity="0.6" IsActive="True" />
+ <c:SpectrumControl Opacity="0.6" IsActive="{Binding IsCoinJoinActive}" />
<c:CustomBlurBehind />
<statusBar:StatusBar DataContext="{Binding StatusBar}" />
</Panel>

MODIFY
WalletWasabi.Fluent/Views/Wallets/MusicControlsView.axaml
WalletWasabi.Fluent/Views/Wallets/MusicControlsView.axaml
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="WalletWasabi.Fluent.Views.Wallets.MusicControlsView">
- <Border Padding="20 10" CornerRadius="4" BorderThickness="1" Background="#19FFFFFF" BorderBrush="#3CFFFFFF" Height="48">
+ <UserControl.Styles>
+ <Style Selector="TextBlock">
+ <Setter Property="VerticalAlignment" Value="Center" />
+ </Style>
+ </UserControl.Styles>
+ <Border
+ TextBlock.FontFamily="{StaticResource MonospacedFont}"
+ Padding="20 10" CornerRadius="4 4 0 0" BorderThickness="1 1 1 0" Background="#19FFFFFF" BorderBrush="#3CFFFFFF">
<StackPanel Orientation="Horizontal" Spacing="20">
- <TextBlock Text="Round in progress: 2m 15s remaining" VerticalAlignment="Center" />
+ <TextBlock Text="Round in progress" />
+
<Separator Classes="vertical" />
+
+ <ProgressBar Minimum="0" Maximum="100" Value="89" Foreground="White" />
+
+ <TextBlock Text="09:59" />
+
+ <Separator Classes="vertical" />
+
<Button Classes="plain">
<PathIcon Data="{StaticResource pause_regular}" />
</Button>
<Button Classes="plain">
<PathIcon Data="{StaticResource stop_regular}" />
</Button>
- <Separator Classes="vertical" />
- <ProgressBar Minimum="0" Maximum="100" Value="33" />
</StackPanel>
</Border>
</UserControl>

MODIFY
WalletWasabi.Fluent/Views/Wallets/WalletView.axaml
WalletWasabi.Fluent/Views/Wallets/WalletView.axaml
</Panel.Styles>
<home:WalletTiles />
</Panel>
- <controls:MusicControlsView DockPanel.Dock="Bottom" HorizontalAlignment="Center" Margin="0 20 0 -10" />
+ <controls:MusicControlsView DockPanel.Dock="Bottom" HorizontalAlignment="Center" Margin="0 20 0 -22" Height="64" />
<Panel>
<history:HistoryTable Name="HistoryTable"
DataContext="{Binding History}"

wireup global coinjoin active state.