diff --git a/src/UniGetUI/MainWindow.xaml b/src/UniGetUI/MainWindow.xaml
index 29713d3b5..43066c760 100644
--- a/src/UniGetUI/MainWindow.xaml
+++ b/src/UniGetUI/MainWindow.xaml
@@ -44,9 +44,20 @@
-
-
-
+
+
+
+
+
diff --git a/src/UniGetUI/Pages/DialogPages/DialogHelper_Generic.cs b/src/UniGetUI/Pages/DialogPages/DialogHelper_Generic.cs
index e788db88e..868e68d1e 100644
--- a/src/UniGetUI/Pages/DialogPages/DialogHelper_Generic.cs
+++ b/src/UniGetUI/Pages/DialogPages/DialogHelper_Generic.cs
@@ -1,6 +1,8 @@
using System.Diagnostics;
+using Microsoft.UI.Text;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
+using Microsoft.UI.Xaml.Documents;
using Microsoft.UI.Xaml.Media;
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.AppNotifications.Builder;
@@ -425,7 +427,8 @@ public static async void HandleBrokenWinGet()
PrimaryButtonText = CoreTools.Translate("Close"),
SecondaryButtonText = CoreTools.Translate("Restart"),
DefaultButton = ContentDialogButton.Secondary,
- XamlRoot = Window.XamlRoot
+ XamlRoot = Window.XamlRoot,
+ Style = Application.Current.Resources["DefaultContentDialogStyle"] as Style,
};
// Restart UniGetUI or reload packages depending on the user's choice
@@ -463,5 +466,102 @@ public static async void HandleBrokenWinGet()
}
}
+
+ public static async void ShowTelemetryDialog()
+ {
+ var dialog = new ContentDialog()
+ {
+ Title = CoreTools.Translate("Share anonymous usage data"),
+ XamlRoot = Window.XamlRoot,
+ Style = Application.Current.Resources["DefaultContentDialogStyle"] as Style,
+ };
+
+ Grid MainGrid = new()
+ {
+ RowSpacing = 16,
+ HorizontalAlignment = HorizontalAlignment.Stretch,
+ VerticalAlignment = VerticalAlignment.Stretch,
+ };
+
+ MainGrid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) });
+ MainGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto });
+
+ var MessageBlock = new RichTextBlock();
+ MainGrid.Children.Add(MessageBlock);
+
+ var p = new Paragraph();
+ MessageBlock.Blocks.Add(p);
+
+ p.Inlines.Add(new Run()
+ {
+ Text = CoreTools.Translate("UniGetUI collects anonymous usage data with the sole purpose of understanding and improving the user experience.")
+ });
+ p.Inlines.Add(new LineBreak());
+ p.Inlines.Add(new Run()
+ {
+ Text = CoreTools.Translate("No personal information is collected nor sent, and the collected data is anonimized, so it can't be back-tracked to you.")
+ });
+ p.Inlines.Add(new LineBreak());
+ p.Inlines.Add(new LineBreak());
+ var link = new Hyperlink() { NavigateUri = new Uri("https://www.marticliment.com/unigetui/privacy/"), };
+ link.Inlines.Add(new Run()
+ {
+ Text = CoreTools.Translate("More details about the shared data and how it will be processed"),
+ });
+
+ p.Inlines.Add(link);
+ p.Inlines.Add(new LineBreak());
+ p.Inlines.Add(new LineBreak());
+ p.Inlines.Add(new Run()
+ {
+ Text = CoreTools.Translate("Do you accept that UniGetUI collects and sends anonymous usage statistics, with the sole purpose of understanding and improving the user experience?"),
+ FontWeight = FontWeights.SemiBold
+ });
+
+ var AcceptButton = new Button()
+ {
+ Content = CoreTools.Translate("Accept"),
+ HorizontalAlignment = HorizontalAlignment.Stretch,
+ Height = 32,
+ Style = (Style)Application.Current.Resources["AccentButtonStyle"],
+ };
+ AcceptButton.Click += (_, _) =>
+ {
+ dialog.Hide();
+ Settings.Set("DisableTelemetry", false);
+ };
+
+ var DeclineButton = new HyperlinkButton()
+ {
+ Content = CoreTools.Translate("Decline"),
+ HorizontalAlignment = HorizontalAlignment.Stretch,
+ Height = 32,
+ };
+ DeclineButton.Click += (_, _) =>
+ {
+ dialog.Hide();
+ Settings.Set("DisableTelemetry", true);
+ };
+
+ Grid sp = new()
+ {
+ Margin = new Thickness(-25, 0, -25, -25),
+ ColumnSpacing = 8,
+ Padding = new Thickness(30),
+ HorizontalAlignment = HorizontalAlignment.Stretch,
+ Background = (Brush)Application.Current.Resources["ApplicationPageBackgroundThemeBrush"]
+ };
+ sp.ColumnDefinitions.Add(new ColumnDefinition(){Width = new(1, GridUnitType.Star)});
+ sp.ColumnDefinitions.Add(new ColumnDefinition(){Width = new(1, GridUnitType.Star)});
+ sp.Children.Add(DeclineButton);
+ Grid.SetColumn(AcceptButton, 1);
+ sp.Children.Add(AcceptButton);
+ Grid.SetRow(sp, 1);
+ Grid.SetColumn(sp, 0);
+ MainGrid.Children.Add(sp);
+ dialog.Content = MainGrid;
+
+ await Window.ShowDialogAsync(dialog);
+ }
}
diff --git a/src/UniGetUI/Pages/SettingsPage.xaml b/src/UniGetUI/Pages/SettingsPage.xaml
index 4319e87d4..b8538b8ae 100644
--- a/src/UniGetUI/Pages/SettingsPage.xaml
+++ b/src/UniGetUI/Pages/SettingsPage.xaml
@@ -85,6 +85,11 @@
Text="Install prerelease versions of UniGetUI"
SettingName="EnableUniGetUIBeta"
/>
+