Skip to content

Commit e30694b

Browse files
Default beta testers to modern UI (#4728)
* Launch modern UI by default for beta testers When EnableUniGetUIBeta is set, IsClassicModeEnabled() now returns false, causing the modern Avalonia UI to launch automatically. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Disable classic mode toggle when beta tester setting is enabled The 'Use classic mode' checkbox is now grayed out (IsEnabled=false) when EnableUniGetUIBeta is set, since the modern UI is forced for beta testers. A tooltip explains why the control is disabled. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 18ac9b4 commit e30694b

4 files changed

Lines changed: 21 additions & 1 deletion

File tree

src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/Interface_PViewModel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using UniGetUI.Avalonia.ViewModels;
66
using UniGetUI.Core.Data;
77
using UniGetUI.Core.Logging;
8+
using UniGetUI.Core.SettingsEngine;
89
using UniGetUI.Core.Tools;
910

1011
namespace UniGetUI.Avalonia.ViewModels.Pages.SettingsPages;
@@ -13,6 +14,12 @@ public partial class Interface_PViewModel : ViewModelBase
1314
{
1415
public bool IsWindows { get; } = OperatingSystem.IsWindows();
1516

17+
/// <summary>
18+
/// True when the user is enrolled in the beta program. In that case the modern UI is forced
19+
/// and the classic-mode toggle should be disabled.
20+
/// </summary>
21+
public bool IsBetaTester { get; } = Settings.Get(Settings.K.EnableUniGetUIBeta);
22+
1623
[ObservableProperty] private string _iconCacheSizeText = "";
1724

1825
public event EventHandler? RestartRequired;

src/UniGetUI.Avalonia/Views/Pages/SettingsPages/Interface_P.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
Text="{t:Translate Use classic mode}"
3232
WarningText="{t:Translate Restart UniGetUI to apply this change}"
3333
StateChangedCommand="{Binding ShowRestartRequiredCommand}"
34+
IsEnabled="{Binding !IsBetaTester}"
35+
ToolTip.Tip="{t:Translate The classic UI is disabled for beta testers}"
3436
CornerRadius="8"/>
3537

3638
<StackPanel x:Name="SystemTraySection" Orientation="Vertical">

src/UniGetUI.Tests/ModernAppLauncherTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ public void ClassicModeDefaultsToEnabled()
3737
Assert.False(ModernAppLauncher.IsClassicModeEnabled());
3838
}
3939

40+
[Fact]
41+
public void BetaTestersDefaultToModernUI()
42+
{
43+
Assert.True(ModernAppLauncher.IsClassicModeEnabled());
44+
45+
Settings.Set(Settings.K.EnableUniGetUIBeta, true);
46+
47+
Assert.False(ModernAppLauncher.IsClassicModeEnabled());
48+
}
49+
4050
[Fact]
4151
public void ResolveModernExecutablePath_PrefersRootExecutable()
4252
{

src/UniGetUI/ModernAppLauncher.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ internal static class ModernAppLauncher
99
internal const string ModernAppDirectoryName = "Avalonia";
1010
internal const string ModernAppExecutableName = "UniGetUI.Avalonia.exe";
1111

12-
public static bool IsClassicModeEnabled() => !Settings.Get(Settings.K.DisableClassicMode);
12+
public static bool IsClassicModeEnabled() =>
13+
!Settings.Get(Settings.K.DisableClassicMode) && !Settings.Get(Settings.K.EnableUniGetUIBeta);
1314

1415
public static void Launch(string[] args)
1516
{

0 commit comments

Comments
 (0)