diff --git a/CRSim.Core/Models/Settings.cs b/CRSim.Core/Models/Settings.cs
index 62c45c6..24c055e 100644
--- a/CRSim.Core/Models/Settings.cs
+++ b/CRSim.Core/Models/Settings.cs
@@ -16,6 +16,10 @@ namespace CRSim.Core.Models
///
public TimeSpan StopDisplayUntilDepartureDuration { get; set; } = TimeSpan.FromMinutes(1);
+ ///
+ /// 直到终到后多久停止显示
+ ///
+ public TimeSpan StopDisplayFromArrivalDuration { get; set; } = TimeSpan.FromMinutes(10);
public TimeSpan StopCheckInAdvanceDuration { get; set; } = TimeSpan.FromMinutes(2);
public int MaxPages { get; set; } = 3;
diff --git a/CRSim.Core/Services/SettingsService.cs b/CRSim.Core/Services/SettingsService.cs
index 7d436a4..55285f3 100644
--- a/CRSim.Core/Services/SettingsService.cs
+++ b/CRSim.Core/Services/SettingsService.cs
@@ -19,6 +19,7 @@ namespace CRSim.Core.Services
_key.SetValue("MaxPages", _settings.MaxPages);
_key.SetValue("StopCheckInAdvanceDuration", (int)_settings.StopCheckInAdvanceDuration.TotalMinutes);
_key.SetValue("StopDisplayUntilDepartureDuration", (int)_settings.StopDisplayUntilDepartureDuration.TotalMinutes);
+ _key.SetValue("StopDisplayFromArrivalDuration", (int)_settings.StopDisplayFromArrivalDuration.TotalMinutes);
_key.SetValue("PassingCheckInAdvanceDuration", (int)_settings.PassingCheckInAdvanceDuration.TotalMinutes);
_key.SetValue("DepartureCheckInAdvanceDuration", (int)_settings.DepartureCheckInAdvanceDuration.TotalMinutes);
}
@@ -34,13 +35,14 @@ namespace CRSim.Core.Services
else
{
_settings = new Settings();
- _settings.TimeOffset = TimeSpan.FromMinutes((int)_key.GetValue("TimeOffset"));
- _settings.SwitchPageSeconds = (int)_key.GetValue("SwitchPageSeconds");
- _settings.MaxPages = (int)_key.GetValue("MaxPages");
- _settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopCheckInAdvanceDuration"));
- _settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayUntilDepartureDuration"));
- _settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("PassingCheckInAdvanceDuration"));
- _settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("DepartureCheckInAdvanceDuration"));
+ if (_key.GetValue("TimeOffset") != null) _settings.TimeOffset = TimeSpan.FromMinutes((int)_key.GetValue("TimeOffset"));
+ if (_key.GetValue("SwitchPageSeconds") != null) _settings.SwitchPageSeconds = (int)_key.GetValue("SwitchPageSeconds");
+ if (_key.GetValue("MaxPages") != null) _settings.MaxPages = (int)_key.GetValue("MaxPages");
+ if (_key.GetValue("StopCheckInAdvanceDuration") != null) _settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopCheckInAdvanceDuration"));
+ if (_key.GetValue("StopDisplayUntilDepartureDuration") != null) _settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayUntilDepartureDuration"));
+ if (_key.GetValue("StopDisplayFromArrivalDuration") != null) _settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes((int)_key.GetValue("StopDisplayFromArrivalDuration"));
+ if (_key.GetValue("PassingCheckInAdvanceDuration") != null) _settings.PassingCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("PassingCheckInAdvanceDuration"));
+ if (_key.GetValue("DepartureCheckInAdvanceDuration") != null) _settings.DepartureCheckInAdvanceDuration = TimeSpan.FromMinutes((int)_key.GetValue("DepartureCheckInAdvanceDuration"));
}
}
diff --git a/CRSim/ViewModels/Pages/SettingsPageViewModel.cs b/CRSim/ViewModels/Pages/SettingsPageViewModel.cs
index 70a16a8..a034f89 100644
--- a/CRSim/ViewModels/Pages/SettingsPageViewModel.cs
+++ b/CRSim/ViewModels/Pages/SettingsPageViewModel.cs
@@ -20,6 +20,8 @@
[ObservableProperty]
public string _stopDisplayUntilDepartureDuration;
[ObservableProperty]
+ public string _stopDisplayFromArrivalDuration;
+ [ObservableProperty]
public string _stopCheckInAdvanceDuration;
[ObservableProperty]
public string _maxPages;
@@ -44,6 +46,7 @@
DepartureCheckInAdvanceDuration = _settings.DepartureCheckInAdvanceDuration.TotalMinutes.ToString();
PassingCheckInAdvanceDuration = _settings.PassingCheckInAdvanceDuration.TotalMinutes.ToString();
StopDisplayUntilDepartureDuration = _settings.StopDisplayUntilDepartureDuration.TotalMinutes.ToString();
+ StopDisplayFromArrivalDuration = _settings.StopDisplayFromArrivalDuration.TotalMinutes.ToString();
StopCheckInAdvanceDuration = _settings.StopCheckInAdvanceDuration.TotalMinutes.ToString();
MaxPages = _settings.MaxPages.ToString();
SwitchPageSeconds = _settings.SwitchPageSeconds.ToString();
@@ -68,6 +71,10 @@
{
_settings.StopDisplayUntilDepartureDuration = TimeSpan.FromMinutes(l);
}
+ if (int.TryParse(StopDisplayFromArrivalDuration, out int p) && p >= 0)
+ {
+ _settings.StopDisplayFromArrivalDuration = TimeSpan.FromMinutes(p);
+ }
if (int.TryParse(StopCheckInAdvanceDuration, out int m) && m >= 0)
{
_settings.StopCheckInAdvanceDuration = TimeSpan.FromMinutes(m);
diff --git a/CRSim/Views/Pages/SettingsPage.xaml b/CRSim/Views/Pages/SettingsPage.xaml
index 5414e17..9f3b26c 100644
--- a/CRSim/Views/Pages/SettingsPage.xaml
+++ b/CRSim/Views/Pages/SettingsPage.xaml
@@ -242,7 +242,7 @@
Grid.Column="3"/>
-
+
@@ -259,6 +259,23 @@
Grid.Column="3"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+