Skip to content

Commit 479bb86

Browse files
committed
hide button
1 parent 17ad83e commit 479bb86

4 files changed

Lines changed: 29 additions & 10 deletions

File tree

‎Torch.API/ITorchConfig.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public interface ITorchConfig
4848
// Analytics — no PII
4949
bool EnableAnalytics { get; set; }
5050
string AnalyticsToken { get; set; }
51+
bool AnalyticsBannerHidden { get; set; }
5152

5253
void Save(string path = null);
5354
}

‎Torch.Server/TorchConfig.cs‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public class TorchConfig : CommandLine, ITorchConfig, INotifyPropertyChanged
5252
private bool bypassIsReloadableFlag;
5353
private bool _enableAnalytics = true;
5454
private string _analyticsToken = "";
55+
private bool _analyticsBannerHidden = false;
5556

5657

5758
/// <inheritdoc />
@@ -142,6 +143,12 @@ public string InstancePath
142143
ReadOnly = true)]
143144
public string AnalyticsToken { get => _analyticsToken; set => Set(value, ref _analyticsToken); }
144145

146+
/// <inheritdoc />
147+
[Display(Name = "Hide Analytics Banner",
148+
Description = "Hides the analytics notice banner at the top of the Torch window.",
149+
GroupName = "Analytics")]
150+
public bool AnalyticsBannerHidden { get => _analyticsBannerHidden; set => Set(value, ref _analyticsBannerHidden); }
151+
145152
/// <inheritdoc />
146153
[Display(Name = "Watchdog Timeout", Description = "Watchdog timeout (in seconds).", GroupName = "Server")]
147154
public int TickTimeout { get => _tickTimeout; set => Set(value, ref _tickTimeout); }

‎Torch.Server/Views/TorchUI.xaml‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<RowDefinition Height="Auto"/>
3030
<RowDefinition/>
3131
</Grid.RowDefinitions>
32-
<!-- Analytics notice banner — only visible when EnableAnalytics=true -->
32+
<!-- Analytics notice banner — only visible when EnableAnalytics=true and banner not hidden -->
3333
<Border x:Name="AnalyticsBanner" Grid.Row="0"
3434
Background="#1a3a1a" BorderBrush="#2e6b2e" BorderThickness="0,0,0,1"
3535
Padding="8,5,8,5" Visibility="Collapsed">
@@ -40,15 +40,18 @@
4040
<Run Text="Privacy Policy" Foreground="#88cc88"/>
4141
</Hyperlink>
4242
<Run Text=" · " Foreground="#557755"/>
43+
<Hyperlink x:Name="AnalyticsHideLink" RequestNavigate="AnalyticsHideLink_RequestNavigate"
44+
NavigateUri="hide">
45+
<Run Text="Hide" Foreground="#88cc88"/>
46+
</Hyperlink>
47+
<Run Text=" · " Foreground="#557755"/>
4348
<Hyperlink x:Name="AnalyticsDisableLink" RequestNavigate="AnalyticsDisableLink_RequestNavigate"
4449
NavigateUri="disable">
4550
<Run Text="Disable" Foreground="#88cc88"/>
4651
</Hyperlink>
4752
</TextBlock>
48-
<TextBlock VerticalAlignment="Center" Foreground="#aaddaa" FontSize="11">
49-
<Run Text="📊 Anonymous usage analytics are enabled." FontWeight="SemiBold"/>
50-
<Run Text=" Torch reports player count, uptime, sim speed, version numbers and active plugin GUIDs to torchapi.com every 5 min." Foreground="#88aa88"/>
51-
</TextBlock>
53+
<TextBlock VerticalAlignment="Center" Foreground="#aaddaa" FontSize="11"
54+
Text="📊 Anonymous usage analytics are enabled." FontWeight="SemiBold"/>
5255
</DockPanel>
5356
</Border>
5457
<StackPanel Grid.Row="2" Margin="5,5,5,5" Orientation="Horizontal">

‎Torch.Server/Views/TorchUI.xaml.cs‎

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,17 @@ private void TorchUI_Loaded(object sender, RoutedEventArgs e)
9090
_scrollTimer.Interval = 120;
9191
_scrollTimer.Start();
9292

93-
// Show analytics banner if enabled
94-
if (_config.EnableAnalytics)
93+
// Show analytics banner if enabled and not hidden
94+
if (_config.EnableAnalytics && !_config.AnalyticsBannerHidden)
9595
AnalyticsBanner.Visibility = Visibility.Visible;
9696

97-
// Keep banner in sync if the config value changes at runtime
97+
// Keep banner in sync if config values change at runtime
9898
_config.PropertyChanged += (s, args) =>
9999
{
100-
if (args.PropertyName == nameof(TorchConfig.EnableAnalytics))
100+
if (args.PropertyName == nameof(TorchConfig.EnableAnalytics) ||
101+
args.PropertyName == nameof(TorchConfig.AnalyticsBannerHidden))
101102
Dispatcher.Invoke(() =>
102-
AnalyticsBanner.Visibility = _config.EnableAnalytics
103+
AnalyticsBanner.Visibility = _config.EnableAnalytics && !_config.AnalyticsBannerHidden
103104
? Visibility.Visible
104105
: Visibility.Collapsed);
105106
};
@@ -258,6 +259,13 @@ private void AnalyticsPrivacyLink_RequestNavigate(object sender, RequestNavigate
258259
e.Handled = true;
259260
}
260261

262+
private void AnalyticsHideLink_RequestNavigate(object sender, RequestNavigateEventArgs e)
263+
{
264+
_config.AnalyticsBannerHidden = true;
265+
_config.Save();
266+
e.Handled = true;
267+
}
268+
261269
private void AnalyticsDisableLink_RequestNavigate(object sender, RequestNavigateEventArgs e)
262270
{
263271
_config.EnableAnalytics = false;

0 commit comments

Comments
 (0)