Remove Busy indicator
MODIFY
WalletWasabi.Gui/App.xaml
WalletWasabi.Gui/App.xaml
<StyleInclude Source="resm:WalletWasabi.Gui.Icons.Icons.xaml?assembly=WalletWasabi.Gui" />
<StyleInclude Source="resm:WalletWasabi.Gui.Controls.TogglePasswordBox.xaml?assembly=WalletWasabi.Gui" />
<StyleInclude Source="resm:WalletWasabi.Gui.Controls.MultiTextBox.xaml?assembly=WalletWasabi.Gui" />
- <StyleInclude Source="resm:WalletWasabi.Gui.Controls.BusyIndicator.xaml?assembly=WalletWasabi.Gui" />
<StyleInclude Source="resm:WalletWasabi.Gui.Controls.EditableTextBlock.xaml?assembly=WalletWasabi.Gui" />
</Application.Styles>
<Application.DataTemplates>

DELETE
WalletWasabi.Gui/Controls/BusyIndicator.cs
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Styling;
-using System;
-
-namespace WalletWasabi.Gui.Controls
-{
- public class BusyIndicator : ContentControl, IStyleable
- {
- Type IStyleable.StyleKey => typeof(BusyIndicator);
-
- public static readonly StyledProperty<string> TextProperty =
- AvaloniaProperty.Register<BusyIndicator, string>(nameof(Text));
-
- public static readonly StyledProperty<bool> IsBusyProperty =
- AvaloniaProperty.Register<BusyIndicator, bool>(nameof(IsBusy));
-
- public string Text
- {
- get => GetValue(TextProperty);
- set => SetValue(TextProperty, value);
- }
-
- public bool IsBusy
- {
- get => GetValue(IsBusyProperty);
- set => SetValue(IsBusyProperty, value);
- }
- }
-}

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/CoinListView.xaml
WalletWasabi.Gui/Controls/WalletExplorer/CoinListView.xaml
<TextBlock Text="Merging unmixed coins with mixed ones undoes those mixes." Classes="warningMessage" IsVisible="{Binding LabelExposeCommonOwnershipWarning}" />
</StackPanel>
</StackPanel>
- <controls:BusyIndicator IsBusy="{Binding IsCoinListLoading}" Text="Loading...">
<controls:ExtendedListBox Items="{Binding Coins}" VirtualizationMode="None" SelectedItem="{Binding Path=SelectedCoin, Mode=TwoWay}">
<controls:ExtendedListBox.ContextMenu>
<ContextMenu>
</DataTemplate>
</controls:ExtendedListBox.ItemTemplate>
</controls:ExtendedListBox>
- </controls:BusyIndicator>
</DockPanel>
</Grid>
</UserControl>

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/CoinListViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/CoinListViewModel.cs
@@ -40,7 +40,6 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
private SortOrder _clustersSortDirection;
private Money _selectedAmount;
private bool _isAnyCoinSelected;
- private bool _isCoinListLoading;
private bool _labelExposeCommonOwnershipWarning;
public Global Global { get; }
public CoinListContainerType CoinListContainerType { get; }
@@ -88,12 +87,6 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
set => this.RaiseAndSetIfChanged(ref _selectPrivateCheckBoxState, value);
}
- public bool IsCoinListLoading
- {
- get => _isCoinListLoading;
- set => this.RaiseAndSetIfChanged(ref _isCoinListLoading, value);
- }
-
public SortOrder StatusSortDirection
{
get => _statusSortDirection;
@@ -211,7 +204,6 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
Global = global;
CoinListContainerType = coinListContainerType;
AmountSortDirection = SortOrder.Decreasing;
- IsCoinListLoading = true;
RefreshOrdering();
// Otherwise they're all selected as null on load.
@@ -359,21 +351,7 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
}
});
- InitList = ReactiveCommand.CreateFromTask(async () =>
- {
- try
- {
- IsCoinListLoading = true;
- // We have to wait for the UI to became visible to the user.
- await Task.Delay(800); // Let other tasks run to display the gui.
- OnOpen();
- }
- finally
- {
- IsCoinListLoading = false;
- }
- },
- outputScheduler: RxApp.MainThreadScheduler);
+ InitList = ReactiveCommand.Create(() => OnOpen(), outputScheduler: RxApp.MainThreadScheduler);
InitList.ThrownExceptions.Subscribe(ex => Logger.LogError(ex));
}

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/HistoryTabView.xaml
WalletWasabi.Gui/Controls/WalletExplorer/HistoryTabView.xaml
<controls:SortingArrow Grid.Column="2" Command="{Binding SortCommand}" Text="Amount (BTC)" SortDirection="{Binding AmountSortDirection}" />
<controls:SortingArrow Grid.Column="3" Command="{Binding SortCommand}" Text="Transaction ID" SortDirection="{Binding TransactionSortDirection}" />
</Grid>
- <controls:BusyIndicator Text="Loading..." IsBusy="{Binding IsFirstLoading}">
<controls:ExtendedListBox Items="{Binding Transactions}" SelectedItem="{Binding SelectedTransaction, Mode=TwoWay}">
<controls:ExtendedListBox.ItemTemplate>
<DataTemplate>
</DataTemplate>
</controls:ExtendedListBox.ItemTemplate>
</controls:ExtendedListBox>
- </controls:BusyIndicator>
</DockPanel>
</DockPanel>
</Grid>

MODIFY
WalletWasabi.Gui/Controls/WalletExplorer/HistoryTabViewModel.cs
WalletWasabi.Gui/Controls/WalletExplorer/HistoryTabViewModel.cs
@@ -23,21 +23,11 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
private SortOrder _dateSortDirection;
private SortOrder _amountSortDirection;
private SortOrder _transactionSortDirection;
- private bool _isFirstLoading;
-
- public bool IsFirstLoading
- {
- get => _isFirstLoading;
- set => this.RaiseAndSetIfChanged(ref _isFirstLoading, value);
- }
-
public ReactiveCommand<Unit, Unit> SortCommand { get; }
public HistoryTabViewModel(WalletViewModel walletViewModel)
: base("History", walletViewModel)
{
- IsFirstLoading = true;
-
Transactions = new ObservableCollection<TransactionViewModel>();
this.WhenAnyValue(x => x.SelectedTransaction).Subscribe(async transaction =>
@@ -124,10 +114,6 @@ namespace WalletWasabi.Gui.Controls.WalletExplorer
{
Logger.LogError(ex);
}
- finally
- {
- IsFirstLoading = false;
- }
}
public ObservableCollection<TransactionViewModel> Transactions

Remove Busy indicator