Allow opting out of analytics

This commit is contained in:
pizzaboxer 2024-10-01 14:16:23 +01:00
parent 40b03a97b9
commit 82869a14e4
No known key found for this signature in database
GPG Key ID: 59D4A1DBAD0F2BA8
9 changed files with 76 additions and 10 deletions

View File

@ -1009,7 +1009,8 @@ namespace Bloxstrap
if (ex.GetType() == typeof(ChecksumFailedException))
{
_ = App.HttpClient.GetAsync($"https://bloxstraplabs.com/metrics/post?key=packageDownloadState&value=httpFail");
if (App.Settings.Prop.EnableAnalytics)
_ = App.HttpClient.GetAsync($"https://bloxstraplabs.com/metrics/post?key=packageDownloadState&value=httpFail");
Frontend.ShowConnectivityDialog(
Strings.Dialog_Connectivity_UnableToDownload,
@ -1041,7 +1042,7 @@ namespace Bloxstrap
}
}
if (statIsRetrying)
if (statIsRetrying && App.Settings.Prop.EnableAnalytics)
{
string stat = statIsHttp ? "httpSuccess" : "retrySuccess";
_ = App.HttpClient.GetAsync($"https://bloxstraplabs.com/metrics/post?key=packageDownloadState&value={stat}");

View File

@ -16,6 +16,7 @@ namespace Bloxstrap.Models.Persistable
public bool ForceRobloxLanguage { get; set; } = false;
public bool UseFastFlagManager { get; set; } = true;
public bool WPFSoftwareRender { get; set; } = false;
public bool EnableAnalytics { get; set; } = true;
// integration configuration
public bool EnableActivityTracking { get; set; } = true;

View File

@ -357,6 +357,15 @@ namespace Bloxstrap.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Analytics.
/// </summary>
public static string Common_Analytics {
get {
return ResourceManager.GetString("Common.Analytics", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Automatic.
/// </summary>
@ -1481,9 +1490,9 @@ namespace Bloxstrap.Resources {
///
///Roblox has not yet been installed, that will happen when you launch it with Bloxstrap for the first time. However, before you do that, you may want to configure Bloxstrap&apos;s settings first.
///
///Also, to keep Bloxstrap registered as the website launch handler, avoid using the &quot;Roblox Player&quot; shortcut to launch Roblox. If you don&apos;t see Bloxstrap show when launching from the website, simply launch Roblox with Bloxstrap once from the desktop to fix it.
///Also, avoid using the &quot;Roblox Player&quot; shortcut to launch Roblox, as Bloxstrap won&apos;t launch with Roblox. If you don&apos;t see Bloxstrap show when launching from the website, simply launch Roblox with Bloxstrap once from the desktop to fix it.
///
///What would y [rest of string was truncated]&quot;;.
///What would you like to do?.
/// </summary>
public static string Installer_Completion_Text {
get {
@ -2109,6 +2118,24 @@ namespace Bloxstrap.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to All data sent is completely anonymous. To understand what data we use and how, see our [privacy policy]({0})..
/// </summary>
public static string Menu_Bloxstrap_Analytics_Description {
get {
return ResourceManager.GetString("Menu.Bloxstrap.Analytics.Description", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Enable sending of analytics.
/// </summary>
public static string Menu_Bloxstrap_Analytics_Title {
get {
return ResourceManager.GetString("Menu.Bloxstrap.Analytics.Title", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Configure options related to Bloxstrap&apos;s behaviour itself..
/// </summary>

View File

@ -1009,7 +1009,7 @@ This installation process will be quick and simple, and you will be able to conf
Roblox has not yet been installed, that will happen when you launch it with Bloxstrap for the first time. However, before you do that, you may want to configure Bloxstrap's settings first.
Also, to keep Bloxstrap registered as the website launch handler, avoid using the "Roblox Player" shortcut to launch Roblox. If you don't see Bloxstrap show when launching from the website, simply launch Roblox with Bloxstrap once from the desktop to fix it.
Also, avoid using the "Roblox Player" shortcut to launch Roblox, as Bloxstrap won't launch with Roblox. If you don't see Bloxstrap show when launching from the website, simply launch Roblox with Bloxstrap once from the desktop to fix it.
What would you like to do?</value>
</data>
@ -1222,4 +1222,13 @@ Please manually delete Bloxstrap.exe from the install location or try restarting
<data name="Menu.Bloxstrap.Description" xml:space="preserve">
<value>Configure options related to Bloxstrap's behaviour itself.</value>
</data>
<data name="Menu.Bloxstrap.Analytics.Title" xml:space="preserve">
<value>Enable sending of analytics</value>
</data>
<data name="Menu.Bloxstrap.Analytics.Description" xml:space="preserve">
<value>All data sent is completely anonymous. To understand what data we use and how, see our [privacy policy]({0}).</value>
</data>
<data name="Common.Analytics" xml:space="preserve">
<value>Analytics</value>
</data>
</root>

View File

@ -59,5 +59,13 @@
Header="{x:Static resources:Strings.Common_Shortcuts_StartMenu}">
<ui:ToggleSwitch IsChecked="{Binding CreateStartMenuShortcuts, Mode=TwoWay}" />
</controls:OptionControl>
<TextBlock FontSize="20" FontWeight="SemiBold" Text="{x:Static resources:Strings.Common_Analytics}" TextWrapping="Wrap" Margin="0,16,0,0" />
<controls:MarkdownTextBlock FontSize="14" MarkdownText="{Binding Source={x:Static resources:Strings.Menu_Bloxstrap_Analytics_Description}, Converter={StaticResource StringFormatConverter}, ConverterParameter='https://github.com/pizzaboxer/bloxstrap/wiki/Privacy-Policy#analytical-functionality'}" TextWrapping="Wrap" />
<controls:OptionControl
Header="{x:Static resources:Strings.Menu_Bloxstrap_Analytics_Title}">
<ui:ToggleSwitch IsChecked="{Binding AnalyticsEnabled, Mode=TwoWay}" />
</controls:OptionControl>
</StackPanel>
</ui:UiPage>

View File

@ -40,16 +40,18 @@
<ui:Button Grid.Column="2" Icon="ArrowDownload16" Content="Download" Command="models:GlobalViewModel.OpenWebpageCommand" CommandParameter="https://github.com/pizzaboxer/bloxstrap/releases/latest" />
</Grid>
<TextBlock Margin="0,24,0,0" FontSize="14" Text="{x:Static resources:Strings.Installer_Welcome_NextToContinue}" TextWrapping="Wrap">
<TextBlock.Style>
<Style TargetType="TextBlock">
<StackPanel>
<StackPanel.Style>
<Style TargetType="StackPanel">
<Style.Triggers>
<DataTrigger Binding="{Binding CanContinue, Mode=OneWay}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel.Style>
<TextBlock Margin="0,24,0,0" FontSize="14" Text="{x:Static resources:Strings.Installer_Welcome_NextToContinue}" TextWrapping="Wrap" />
</StackPanel>
</StackPanel>
</ui:UiPage>

View File

@ -22,5 +22,11 @@
Description="{x:Static resources:Strings.Menu_Behaviour_AutoUpdate_Description}">
<ui:ToggleSwitch IsChecked="{Binding UpdateCheckingEnabled, Mode=TwoWay}" />
</controls:OptionControl>
<controls:OptionControl
Header="{x:Static resources:Strings.Menu_Bloxstrap_Analytics_Title}"
Description="{Binding Source={x:Static resources:Strings.Menu_Bloxstrap_Analytics_Description}, Converter={StaticResource StringFormatConverter}, ConverterParameter='https://github.com/pizzaboxer/bloxstrap/wiki/Privacy-Policy#analytical-functionality'}">
<ui:ToggleSwitch IsChecked="{Binding AnalyticsEnabled, Mode=TwoWay}" />
</controls:OptionControl>
</StackPanel>
</ui:UiPage>

View File

@ -46,6 +46,12 @@ namespace Bloxstrap.UI.ViewModels.Installer
set => installer.CreateStartMenuShortcuts = value;
}
public bool AnalyticsEnabled
{
get => App.Settings.Prop.EnableAnalytics;
set => App.Settings.Prop.EnableAnalytics = value;
}
public ICommand BrowseInstallLocationCommand => new RelayCommand(BrowseInstallLocation);
public ICommand ResetInstallLocationCommand => new RelayCommand(ResetInstallLocation);

View File

@ -7,5 +7,11 @@
get => App.Settings.Prop.CheckForUpdates;
set => App.Settings.Prop.CheckForUpdates = value;
}
public bool AnalyticsEnabled
{
get => App.Settings.Prop.EnableAnalytics;
set => App.Settings.Prop.EnableAnalytics = value;
}
}
}