implement oobe logic.
MODIFY
WalletWasabi.Fluent/ViewModels/MainViewModel.cs
WalletWasabi.Fluent/ViewModels/MainViewModel.cs
@@ -95,16 +95,22 @@ namespace WalletWasabi.Fluent.ViewModels
.ObserveOn(RxApp.MainThreadScheduler)
.Subscribe(x => IsMainContentEnabled = !x);
+ IsSetup = !Services.UiConfig.Oobe;
+
RxApp.MainThreadScheduler.Schedule(async () =>
{
- IsSetup = true;
-
- //if (!Services.WalletManager.HasWallet())
+ if (!Services.WalletManager.HasWallet() || Services.UiConfig.Oobe)
{
IsSetup = false;
await _dialogScreen.NavigateDialogAsync(new WelcomePageViewModel());
+ Services.UiConfig.Oobe = false;
+ IsSetup = true;
+ }
+
+ if (!Services.WalletManager.HasWallet())
+ {
_dialogScreen.To(_addWalletPage, NavigationMode.Clear);
}
});

MODIFY
WalletWasabi.Gui/UiConfig.cs
WalletWasabi.Gui/UiConfig.cs
@@ -24,6 +24,7 @@ namespace WalletWasabi.Gui
private bool _darkModeEnabled;
private string? _lastSelectedWallet;
private string _windowState = "Normal";
+ private bool _oobe = true;
public UiConfig() : base()
{
@@ -40,13 +41,22 @@ namespace WalletWasabi.Gui
x => x.FeeDisplayFormat,
x => x.LastSelectedWallet,
x => x.WindowState,
- (_, _, _, _, _, _, _, _) => Unit.Default)
+ x=>x.Oobe,
+ (_, _, _, _, _, _, _, _, _) => Unit.Default)
.Throttle(TimeSpan.FromMilliseconds(500))
.Skip(1) // Won't save on UiConfig creation.
.ObserveOn(RxApp.TaskpoolScheduler)
.Subscribe(_ => ToFile());
}
+ [JsonProperty(PropertyName = "Oobe")]
+ [DefaultValue(true)]
+ public bool Oobe
+ {
+ get => _oobe;
+ set => RaiseAndSetIfChanged(ref _oobe, value);
+ }
+
[JsonProperty(PropertyName = "WindowState")]
[JsonConverter(typeof(WindowStateAfterStartJsonConverter))]
public string WindowState

implement oobe logic.