Do custom statuses for status bar.
MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/SendTabViewModel.cs
@@ -13,6 +13,7 @@ using System.Threading.Tasks;
using WalletWasabi.Exceptions;
using WalletWasabi.Gui.Models;
using WalletWasabi.Gui.Tabs.WalletManager;
+using WalletWasabi.Gui.ViewModels;
using WalletWasabi.Gui.ViewModels.Validation;
using WalletWasabi.Helpers;
using WalletWasabi.Models;
@@ -184,9 +185,11 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
BuildTransactionCommand = ReactiveCommand.Create(async () =>
{
- IsBusy = true;
try
{
+ IsBusy = true;
+ MainWindowViewModel.Instance.StatusBar.SetStatusAndDoUpdateActions("Building transaction...");
+
Password = Guard.Correct(Password);
Label = Label.Trim(',', ' ').Trim();
if (!IsMax && string.IsNullOrWhiteSpace(Label))
@@ -250,6 +253,8 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
var result = await Task.Run(() => Global.WalletService.BuildTransaction(Password, new[] { operation }, FeeTarget, allowUnconfirmed: true, allowedInputs: selectedCoinReferences));
+ MainWindowViewModel.Instance.StatusBar.SetStatusAndDoUpdateActions("Broadcasting transaction...");
+
await Task.Run(async () => await Global.WalletService.SendTransactionAsync(result.Transaction));
ResetMax();
@@ -271,6 +276,7 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
finally
{
IsBusy = false;
+ MainWindowViewModel.Instance.StatusBar.SetStatusAndDoUpdateActions();
}
},
this.WhenAny(x => x.IsMax, x => x.Amount, x => x.Address, x => x.IsBusy,

MODIFY
WalletWasabi.Gui/Tabs/WalletManager/LoadWalletViewModel.cs
WalletWasabi.Gui/Tabs/WalletManager/LoadWalletViewModel.cs
@@ -172,6 +172,15 @@ namespace WalletWasabi.Gui.Tabs.WalletManager
SetLoadButtonText(value);
SetWalletStates();
+
+ if (value)
+ {
+ MainWindowViewModel.Instance.StatusBar.SetStatusAndDoUpdateActions("Loading...");
+ }
+ else
+ {
+ MainWindowViewModel.Instance.StatusBar.SetStatusAndDoUpdateActions();
+ }
}
}

MODIFY
WalletWasabi.Gui/ViewModels/StatusBarViewModel.cs
WalletWasabi.Gui/ViewModels/StatusBarViewModel.cs
@@ -296,7 +296,10 @@ namespace WalletWasabi.Gui.ViewModels
}
}
- private void SetStatusAndDoUpdateActions()
+ /// <summary>
+ /// Custom status have low priority. It is not guaranteed the status will be that one.
+ /// </summary>
+ public void SetStatusAndDoUpdateActions(string customStatus = null)
{
if (UpdateStatus == UpdateStatus.Critical)
{
@@ -315,9 +318,16 @@ namespace WalletWasabi.Gui.ViewModels
Status = "Synchronizing...";
}
else
+ {
+ if (customStatus is null)
{
Status = "Ready";
}
+ else
+ {
+ Status = customStatus;
+ }
+ }
}
private void SetPeers(int peers)

Do custom statuses for status bar.