Users now need to re-accept the TOS if they only accepted an old version.

This commit is contained in:
Eauldane
2025-08-29 20:47:00 +01:00
parent ac231ef800
commit ed4630cd51
3 changed files with 8 additions and 5 deletions

View File

@@ -8,6 +8,6 @@ public static class ConfigurationExtensions
{
return configuration.AcceptedAgreement && configuration.InitialScanComplete
&& !string.IsNullOrEmpty(configuration.CacheFolder)
&& Directory.Exists(configuration.CacheFolder);
&& Directory.Exists(configuration.CacheFolder) && configuration.AcceptedTOSVersion == configuration.ExpectedTOSVersion;
}
}

View File

@@ -7,6 +7,8 @@ namespace MareSynchronos.MareConfiguration.Configurations;
[Serializable]
public class MareConfig : IMareConfiguration
{
public int ExpectedTOSVersion = 1;
public int AcceptedTOSVersion { get; set; } = 0;
public bool AcceptedAgreement { get; set; } = false;
public string CacheFolder { get; set; } = string.Empty;
public bool DisableOptionalPluginWarnings { get; set; } = false;

View File

@@ -106,7 +106,7 @@ public partial class IntroUi : WindowMediatorSubscriberBase
{
if (_uiShared.IsInGpose) return;
if (!_configService.Current.AcceptedAgreement && !_readFirstPage)
if ((!_configService.Current.AcceptedAgreement || _configService.Current.AcceptedTOSVersion != _configService.Current.ExpectedTOSVersion) && !_readFirstPage)
{
_uiShared.BigText("Welcome to Snowcloak");
ImGui.Separator();
@@ -125,7 +125,7 @@ public partial class IntroUi : WindowMediatorSubscriberBase
#if !DEBUG
_timeoutTask = Task.Run(async () =>
{
for (int i = 10; i > 0; i--)
for (int i = 45; i > 0; i--)
{
_timeoutLabel = $"'I agree' button will be available in {i}s";
await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);
@@ -136,7 +136,7 @@ public partial class IntroUi : WindowMediatorSubscriberBase
#endif
}
}
else if (!_configService.Current.AcceptedAgreement && _readFirstPage)
else if ((!_configService.Current.AcceptedAgreement || _configService.Current.AcceptedTOSVersion != _configService.Current.ExpectedTOSVersion) && _readFirstPage)
{
using (_uiShared.UidFont.Push())
{
@@ -189,6 +189,7 @@ public partial class IntroUi : WindowMediatorSubscriberBase
if (ImGui.Button("I agree##toSetup"))
{
_configService.Current.AcceptedAgreement = true;
_configService.Current.AcceptedTOSVersion = _configService.Current.ExpectedTOSVersion;
_configService.Save();
}
}
@@ -197,7 +198,7 @@ public partial class IntroUi : WindowMediatorSubscriberBase
UiSharedService.TextWrapped(_timeoutLabel);
}
}
else if (_configService.Current.AcceptedAgreement
else if ((!_configService.Current.AcceptedAgreement || _configService.Current.AcceptedTOSVersion != _configService.Current.ExpectedTOSVersion)
&& (string.IsNullOrEmpty(_configService.Current.CacheFolder)
|| !_configService.Current.InitialScanComplete
|| !Directory.Exists(_configService.Current.CacheFolder)))