handle when delay is happening
MODIFY
WalletWasabi.Fluent/ViewModels/Wallets/CoinJoinStateViewModel.cs
WalletWasabi.Fluent/ViewModels/Wallets/CoinJoinStateViewModel.cs
@@ -46,6 +46,7 @@ public partial class CoinJoinStateViewModel : ViewModelBase
[AutoNotify] private string _remainingTime;
[AutoNotify] private bool _isBalanceDisplayed;
[AutoNotify] private bool _isInCriticalPhase;
+ [AutoNotify] private bool _isCountDownDelayHappening;
private DateTimeOffset _countDownStartTime;
private DateTimeOffset _countDownEndTime;
@@ -311,6 +312,17 @@ public partial class CoinJoinStateViewModel : ViewModelBase
private void UpdateCountDown()
{
+ IsCountDownDelayHappening = IsCounting && IsCountDownFinished;
+
+ // This case mostly happens when there is some delay between the client and the server,
+ // and the countdown has finished but the client hasn't received any new phase changed message.
+ if (IsCountDownDelayHappening)
+ {
+ // Show the balance and an indeterminate progress bar.
+ UpdateAndShowWalletMixedProgress();
+ return;
+ }
+
var format = @"hh\:mm\:ss";
ElapsedTime = $"{GetElapsedTime().ToString(format)}";
RemainingTime = $"-{GetRemainingTime().ToString(format)}";

MODIFY
WalletWasabi.Fluent/Views/Wallets/MusicControlsView.axaml
WalletWasabi.Fluent/Views/Wallets/MusicControlsView.axaml
</TransitioningContentControl.DataTemplates>
</TransitioningContentControl>
- <ProgressBar Minimum="0" Maximum="100" Value="{Binding ProgressValue}" Foreground="White" />
+ <ProgressBar Minimum="0" Maximum="100" IsIndeterminate="{Binding IsCountDownDelayHappening}" Value="{Binding ProgressValue}" Foreground="White" />
<DockPanel LastChildFill="False">
<TextBlock Text="{Binding ElapsedTime}" />

handle when delay is happening