diff --git a/src/Files.App/Actions/Global/OpenHelpAction.cs b/src/Files.App/Actions/Global/OpenHelpAction.cs
index 03d091efc2fd..e76b5a892820 100644
--- a/src/Files.App/Actions/Global/OpenHelpAction.cs
+++ b/src/Files.App/Actions/Global/OpenHelpAction.cs
@@ -18,7 +18,7 @@ public HotKey HotKey
public Task ExecuteAsync()
{
- var url = new Uri(Constants.GitHub.DocumentationUrl);
+ var url = new Uri(Constants.ExternalUrl.DocumentationUrl);
return Launcher.LaunchUriAsync(url).AsTask();
}
}
diff --git a/src/Files.App/Constants.cs b/src/Files.App/Constants.cs
index 65eb1e53bc87..8c01c0f48350 100644
--- a/src/Files.App/Constants.cs
+++ b/src/Files.App/Constants.cs
@@ -188,14 +188,16 @@ public static class Filesystem
public const string CachedEmptyItemName = "fileicon_cache";
}
- public static class GitHub
+ public static class ExternalUrl
{
public const string GitHubRepoUrl = @"https://github.com/files-community/Files";
public const string DocumentationUrl = @"https://files.community/docs";
+ public const string DiscordUrl = @"https://discord.gg/files";
public const string FeatureRequestUrl = @"https://github.com/files-community/Files/issues/new?labels=feature+request&template=feature_request.yml";
public const string BugReportUrl = @"https://github.com/files-community/Files/issues/new?labels=bug&template=bug_report.yml";
public const string PrivacyPolicyUrl = @"https://github.com/files-community/Files/blob/main/.github/PRIVACY.md";
public const string SupportUsUrl = @"https://github.com/sponsors/yaira2";
+ public const string CrowdinUrl = @"https://crowdin.com/project/files-app";
}
public static class DocsPath
diff --git a/src/Files.App/Helpers/Application/AppLifecycleHelper.cs b/src/Files.App/Helpers/Application/AppLifecycleHelper.cs
index 8cf160a3e8c2..5f3c11307bb7 100644
--- a/src/Files.App/Helpers/Application/AppLifecycleHelper.cs
+++ b/src/Files.App/Helpers/Application/AppLifecycleHelper.cs
@@ -317,7 +317,7 @@ public static void HandleAppUnhandledException(Exception? ex, bool showToastNoti
{
Buttons =
{
- new ToastButton("ExceptionNotificationReportButton".GetLocalizedResource(), Constants.GitHub.BugReportUrl)
+ new ToastButton("ExceptionNotificationReportButton".GetLocalizedResource(), Constants.ExternalUrl.BugReportUrl)
{
ActivationType = ToastActivationType.Protocol
}
diff --git a/src/Files.App/Strings/en-US/Resources.resw b/src/Files.App/Strings/en-US/Resources.resw
index 8d6a799d07ae..d4a0fb7b8c9d 100644
--- a/src/Files.App/Strings/en-US/Resources.resw
+++ b/src/Files.App/Strings/en-US/Resources.resw
@@ -3667,4 +3667,7 @@
Where did Files go?
+
+ Questions & discussions
+
\ No newline at end of file
diff --git a/src/Files.App/Utils/Taskbar/SystemTrayIcon.cs b/src/Files.App/Utils/Taskbar/SystemTrayIcon.cs
index af10341f2d91..0f5895027598 100644
--- a/src/Files.App/Utils/Taskbar/SystemTrayIcon.cs
+++ b/src/Files.App/Utils/Taskbar/SystemTrayIcon.cs
@@ -272,7 +272,7 @@ private void OnLeftClicked()
private void OnDocumentationClicked()
{
- Launcher.LaunchUriAsync(new Uri(Constants.GitHub.DocumentationUrl)).AsTask();
+ Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.DocumentationUrl)).AsTask();
}
private void OnRestartClicked()
diff --git a/src/Files.App/ViewModels/Settings/AboutViewModel.cs b/src/Files.App/ViewModels/Settings/AboutViewModel.cs
index 7d1dec183226..9c7c1f8ffdb2 100644
--- a/src/Files.App/ViewModels/Settings/AboutViewModel.cs
+++ b/src/Files.App/ViewModels/Settings/AboutViewModel.cs
@@ -19,6 +19,7 @@ public class AboutViewModel : ObservableObject
public ICommand SupportUsCommand { get; }
public ICommand OpenLogLocationCommand { get; }
public ICommand OpenDocumentationCommand { get; }
+ public ICommand OpenDiscordCommand { get; }
public ICommand SubmitFeatureRequestCommand { get; }
public ICommand SubmitBugReportCommand { get; }
public ICommand OpenGitHubRepoCommand { get; }
@@ -38,6 +39,7 @@ public AboutViewModel()
CopyWindowsVersionCommand = new RelayCommand(CopyWindowsVersion);
SupportUsCommand = new AsyncRelayCommand(SupportUs);
OpenDocumentationCommand = new AsyncRelayCommand(DoOpenDocumentation);
+ OpenDiscordCommand = new AsyncRelayCommand(DoOpenDiscord);
SubmitFeatureRequestCommand = new AsyncRelayCommand(DoSubmitFeatureRequest);
SubmitBugReportCommand = new AsyncRelayCommand(DoSubmitBugReport);
OpenGitHubRepoCommand = new AsyncRelayCommand(DoOpenGitHubRepo);
@@ -53,33 +55,38 @@ private Task OpenLogLocation()
public Task DoOpenDocumentation()
{
- return Launcher.LaunchUriAsync(new Uri(Constants.GitHub.DocumentationUrl)).AsTask();
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.DocumentationUrl)).AsTask();
+ }
+
+ public Task DoOpenDiscord()
+ {
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.DiscordUrl)).AsTask();
}
public Task DoSubmitFeatureRequest()
{
- return Launcher.LaunchUriAsync(new Uri($"{Constants.GitHub.FeatureRequestUrl}&{GetVersionsQueryString()}")).AsTask();
+ return Launcher.LaunchUriAsync(new Uri($"{Constants.ExternalUrl.FeatureRequestUrl}&{GetVersionsQueryString()}")).AsTask();
}
public Task DoSubmitBugReport()
{
- return Launcher.LaunchUriAsync(new Uri($"{Constants.GitHub.BugReportUrl}&{GetVersionsQueryString()}")).AsTask();
+ return Launcher.LaunchUriAsync(new Uri($"{Constants.ExternalUrl.BugReportUrl}&{GetVersionsQueryString()}")).AsTask();
}
public Task DoOpenGitHubRepo()
{
- return Launcher.LaunchUriAsync(new Uri(Constants.GitHub.GitHubRepoUrl)).AsTask();
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.GitHubRepoUrl)).AsTask();
}
public Task DoOpenPrivacyPolicy()
{
- return Launcher.LaunchUriAsync(new Uri(Constants.GitHub.PrivacyPolicyUrl)).AsTask();
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.PrivacyPolicyUrl)).AsTask();
}
public Task DoOpenCrowdin()
{
- return Launcher.LaunchUriAsync(new Uri("https://crowdin.com/project/files-app")).AsTask();
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.CrowdinUrl)).AsTask();
}
public void CopyAppVersion()
@@ -106,7 +113,7 @@ public void CopyWindowsVersion()
public Task SupportUs()
{
- return Launcher.LaunchUriAsync(new Uri(Constants.GitHub.SupportUsUrl)).AsTask();
+ return Launcher.LaunchUriAsync(new Uri(Constants.ExternalUrl.SupportUsUrl)).AsTask();
}
public async Task LoadThirdPartyNoticesAsync()
diff --git a/src/Files.App/Views/Settings/AboutPage.xaml b/src/Files.App/Views/Settings/AboutPage.xaml
index 8cfba9e7a5e7..20e8c7a3e6a4 100644
--- a/src/Files.App/Views/Settings/AboutPage.xaml
+++ b/src/Files.App/Views/Settings/AboutPage.xaml
@@ -90,6 +90,22 @@
Glyph="" />
+
+
+
+
+
+
+
+
+