From 0ab07e853603bb4ca9775d0b65415ee32b6eac08 Mon Sep 17 00:00:00 2001
From: denglihong2007 <2639367181@qq.com>
Date: Thu, 13 Mar 2025 23:16:51 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=BB=88=E5=88=B0?=
=?UTF-8?q?=E8=BD=A6=E6=98=BE=E7=A4=BA=E6=97=B6=E9=95=BF=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
CRSim.Core/Models/Settings.cs | 4 ++++
CRSim.Core/Services/SettingsService.cs | 16 +++++++++-------
.../ViewModels/Pages/SettingsPageViewModel.cs | 7 +++++++
CRSim/Views/Pages/SettingsPage.xaml | 19 ++++++++++++++++++-
4 files changed, 38 insertions(+), 8 deletions(-)
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"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+