Fix up Help menu
MODIFY
WalletWasabi.Gui/Shell/Commands/HelpCommands.cs
WalletWasabi.Gui/Shell/Commands/HelpCommands.cs
@@ -5,7 +5,9 @@ using AvalonStudio.Commands;
using AvalonStudio.Extensibility;
using AvalonStudio.Shell;
using ReactiveUI;
+using System;
using System.Composition;
+using System.IO;
using System.Linq;
using System.Reactive.Linq;
using WalletWasabi.Gui.Tabs;
@@ -30,7 +32,15 @@ namespace WalletWasabi.Gui.Shell.Commands
commandIconService.GetCompletionKindImage("CustomerSupport"),
ReactiveCommand.Create(() =>
{
- IoC.Get<IShell>().AddOrSelectDocument(() => new CustomerSupportViewModel());
+ try
+ {
+ IoHelpers.OpenBrowser("https://www.reddit.com/r/WasabiWallet/");
+ }
+ catch (Exception ex)
+ {
+ Logging.Logger.LogWarning<HelpCommands>(ex);
+ IoC.Get<IShell>().AddOrSelectDocument(() => new AboutViewModel());
+ }
}));
ReportBugCommand = new CommandDefinition(
@@ -38,7 +48,15 @@ namespace WalletWasabi.Gui.Shell.Commands
commandIconService.GetCompletionKindImage("ReportBug"),
ReactiveCommand.Create(() =>
{
- IoC.Get<IShell>().AddOrSelectDocument(() => new ReportBugViewModel());
+ try
+ {
+ IoHelpers.OpenBrowser("https://github.com/zkSNACKs/WalletWasabi/issues");
+ }
+ catch (Exception ex)
+ {
+ Logging.Logger.LogWarning<HelpCommands>(ex);
+ IoC.Get<IShell>().AddOrSelectDocument(() => new AboutViewModel());
+ }
}));
PrivacyPolicyCommand = new CommandDefinition(

MODIFY
WalletWasabi.Gui/Tabs/AboutView.xaml
WalletWasabi.Gui/Tabs/AboutView.xaml
<controls:ExtendedTextBox Text="{Binding VersionText}" Classes="selectableTextBlock" />
</StackPanel>
<StackPanel Orientation="Horizontal">
- <TextBlock Text="To get the latest version, please visit: " />
- <controls:ExtendedTextBox Text="https://github.com/zkSNACKs/WalletWasabi/releases/" Classes="selectableTextBlock hyperLink" />
+ <TextBlock Text="Clearnet Website: " />
+ <controls:ExtendedTextBox Text="https://wasabiwallet.io/" Classes="selectableTextBlock hyperLink" />
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="Tor Website: " />
+ <controls:ExtendedTextBox Text="http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion" Classes="selectableTextBlock hyperLink" />
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="Source Code: " />
+ <controls:ExtendedTextBox Text="https://github.com/zkSNACKs/WalletWasabi/" Classes="selectableTextBlock hyperLink" />
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="Customer Support: " />
+ <controls:ExtendedTextBox Text="https://www.reddit.com/r/WasabiWallet/" Classes="selectableTextBlock hyperLink" />
+ </StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <TextBlock Text="Bug Report: " />
+ <controls:ExtendedTextBox Text="https://github.com/zkSNACKs/WalletWasabi/issues/" Classes="selectableTextBlock hyperLink" />
</StackPanel>
- <TextBlock Text="Consider using Tor Browser to protect your privacy." />
</StackPanel>
</Grid>
</StackPanel>

MODIFY
WalletWasabi.Gui/ViewModels/StatusBarViewModel.cs
WalletWasabi.Gui/ViewModels/StatusBarViewModel.cs
@@ -4,6 +4,7 @@ using AvalonStudio.Shell;
using NBitcoin.Protocol;
using ReactiveUI;
using System;
+using System.IO;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Runtime.InteropServices;
@@ -128,7 +129,15 @@ namespace WalletWasabi.Gui.ViewModels
UpdateCommand = ReactiveCommand.Create(() =>
{
+ try
+ {
+ IoHelpers.OpenBrowser("https://wasabiwallet.io/#download");
+ }
+ catch (Exception ex)
+ {
+ Logging.Logger.LogWarning<StatusBarViewModel>(ex);
IoC.Get<IShell>().AddOrSelectDocument(() => new AboutViewModel());
+ }
}, this.WhenAnyValue(x => x.UpdateStatus).Select(x => x != UpdateStatus.Latest));
updateChecker.Start(TimeSpan.FromMinutes(7),

MODIFY
WalletWasabi/Helpers/IoHelpers.cs
WalletWasabi/Helpers/IoHelpers.cs
@@ -283,6 +283,26 @@ namespace System.IO
}
}
+ public static void OpenBrowser(string url)
+ {
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
+ {
+ // If no associated application/json MimeType is found xdg-open opens retrun error
+ // but it tries to open it anyway using the console editor (nano, vim, other..)
+ EnvironmentHelpers.ShellExec($"xdg-open {url}", waitForExit: false);
+ }
+ else
+ {
+ using (Process process = Process.Start(new ProcessStartInfo
+ {
+ FileName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? url : "open",
+ Arguments = RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? $"-e {url}" : "",
+ CreateNoWindow = true,
+ UseShellExecute = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
+ })) { }
+ }
+ }
+
public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target)
{
foreach (DirectoryInfo dir in source.GetDirectories())

Fix up Help menu