From 5b3a51150c22f30f492336a434aae520ed7e6406 Mon Sep 17 00:00:00 2001 From: PopSlime Date: Tue, 18 Feb 2025 12:04:38 +0800 Subject: [PATCH] feat: Add config --- Assets/Cryville.EEW.Unity/App.cs | 3 +- Assets/Cryville.EEW.Unity/Config.cs | 57 +++++++++++++ Assets/Cryville.EEW.Unity/Config.cs.meta | 11 +++ Assets/Cryville.EEW.Unity/PlatformConfig.cs | 9 +- Assets/Cryville.EEW.Unity/SharedSettings.cs | 80 ++++++++++++++++-- Assets/Cryville.EEW.Unity/UI/EventBaseView.cs | 13 ++- .../UI/EventOngoingListView.cs | 2 + Assets/Cryville.EEW.Unity/UI/TimeView.cs | 8 +- Assets/Cryville.EEW.Unity/Worker.cs | 75 +++++++++++----- Assets/Plugins/Analyzers.meta | 8 ++ .../System.Text.Json.SourceGeneration.dll | Bin 0 -> 199464 bytes ...System.Text.Json.SourceGeneration.dll.meta | 78 +++++++++++++++++ 12 files changed, 305 insertions(+), 39 deletions(-) create mode 100644 Assets/Cryville.EEW.Unity/Config.cs create mode 100644 Assets/Cryville.EEW.Unity/Config.cs.meta create mode 100644 Assets/Plugins/Analyzers.meta create mode 100644 Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll create mode 100644 Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll.meta diff --git a/Assets/Cryville.EEW.Unity/App.cs b/Assets/Cryville.EEW.Unity/App.cs index 93b2b2a..dc1095f 100644 --- a/Assets/Cryville.EEW.Unity/App.cs +++ b/Assets/Cryville.EEW.Unity/App.cs @@ -1,11 +1,10 @@ using Cryville.Common.Font; using Cryville.Common.Unity.UI; -using Cryville.Crtr; using Cryville.Culture; using System.IO; using System.Text; -using System.Xml.Linq; using System.Xml; +using System.Xml.Linq; using UnityEngine; namespace Cryville.EEW.Unity { diff --git a/Assets/Cryville.EEW.Unity/Config.cs b/Assets/Cryville.EEW.Unity/Config.cs new file mode 100644 index 0000000..cc0a372 --- /dev/null +++ b/Assets/Cryville.EEW.Unity/Config.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using System.Text.Json.Serialization; + +namespace Cryville.EEW.Unity { + record Config( + string SeverityScheme, + string SeverityColorMapping, + float SeverityColorMappingLuminanceMultiplier, + bool UseContinuousColor, + string ColorScheme, + + string OverrideTimeZone, + bool DoDisplayTimeZone, + bool DoSwitchBackToHistory, + + IReadOnlyCollection EventSources + ) { + public static Config Default => new( + "Default", + "Default", + 1f, + false, + "Default", + + null, + true, + true, + + new List { + new JMAAtomEventSourceConfig(), + new UpdateCheckerEventSourceConfig(), + new WolfxEventSourceConfig(), + } + ); + } + + [JsonPolymorphic(TypeDiscriminatorPropertyName = "Type", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FallBackToBaseType)] + [JsonDerivedType(typeof(CWAOpenDataEventSourceConfig), "CWAOpenData")] + [JsonDerivedType(typeof(GlobalQuakeServerEventSourceConfig), "GlobalQuakeServer")] + [JsonDerivedType(typeof(GlobalQuakeServer15EventSourceConfig), "GlobalQuakeServer15")] + [JsonDerivedType(typeof(JMAAtomEventSourceConfig), "JMAAtom")] + [JsonDerivedType(typeof(NOAAEventSourceConfig), "NOAA")] + [JsonDerivedType(typeof(UpdateCheckerEventSourceConfig), "UpdateChecker")] + [JsonDerivedType(typeof(WolfxEventSourceConfig), "Wolfx")] + abstract record EventSourceConfig(); + record CWAOpenDataEventSourceConfig([property: JsonRequired] string Subtype, [property: JsonRequired] string Token) : EventSourceConfig; + record GlobalQuakeServerEventSourceConfig([property: JsonRequired] string Host, int Port = 38000) : EventSourceConfig; + record GlobalQuakeServer15EventSourceConfig(string Host, int Port = 38000) : GlobalQuakeServerEventSourceConfig(Host, Port); + record JMAAtomEventSourceConfig(IReadOnlyCollection Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig; + record NOAAEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig; + record UpdateCheckerEventSourceConfig : EventSourceConfig; + record WolfxEventSourceConfig(IReadOnlyCollection Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig; + + [JsonSerializable(typeof(Config))] + [JsonSourceGenerationOptions(WriteIndented = true)] + sealed partial class ConfigSerializationContext : JsonSerializerContext { } +} diff --git a/Assets/Cryville.EEW.Unity/Config.cs.meta b/Assets/Cryville.EEW.Unity/Config.cs.meta new file mode 100644 index 0000000..21ad644 --- /dev/null +++ b/Assets/Cryville.EEW.Unity/Config.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b478a322f8c49a247b6761de7b5c0e0a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cryville.EEW.Unity/PlatformConfig.cs b/Assets/Cryville.EEW.Unity/PlatformConfig.cs index 75fc3f9..d82b83a 100644 --- a/Assets/Cryville.EEW.Unity/PlatformConfig.cs +++ b/Assets/Cryville.EEW.Unity/PlatformConfig.cs @@ -1,7 +1,8 @@ using Cryville.Common.Font; using System.Collections.Generic; +using UnityEngine; -namespace Cryville.Crtr { +namespace Cryville.EEW.Unity { internal static class PlatformConfig { #if UNITY_STANDALONE_WIN public static readonly string Name = "windows"; @@ -11,11 +12,17 @@ namespace Cryville.Crtr { #error Unknown platform. #endif #if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN +#if UNITY_EDITOR_WIN + public static readonly string ConfigPath = Application.persistentDataPath; +#else + public static readonly string ConfigPath = Application.dataPath; +#endif public static readonly string FileProtocolPrefix = "file:///"; public static readonly FontManager FontManager = new FontManagerWindows(); public static Dictionary> ScriptFontMap => FallbackListFontMatcher.GetDefaultWindowsFallbackMap(); public static readonly string TextShader = "TextMesh Pro/Shaders/TMP_SDF SSD"; #elif UNITY_ANDROID + public static readonly string ConfigPath = Application.persistentDataPath; public static readonly string FileProtocolPrefix = "file://"; public static readonly FontManager FontManager = new FontManagerAndroid(); public static Dictionary> ScriptFontMap => FallbackListFontMatcher.GetDefaultAndroidFallbackMap(); diff --git a/Assets/Cryville.EEW.Unity/SharedSettings.cs b/Assets/Cryville.EEW.Unity/SharedSettings.cs index 957dc70..e0b8348 100644 --- a/Assets/Cryville.EEW.Unity/SharedSettings.cs +++ b/Assets/Cryville.EEW.Unity/SharedSettings.cs @@ -5,9 +5,12 @@ using Cryville.EEW.Map; using Cryville.EEW.Report; using Cryville.EEW.TTS; using System; +using System.Collections.Generic; using System.Globalization; +using System.IO; using System.Runtime.InteropServices; using System.Security.Cryptography; +using System.Text.Json; using UnityEngine; using Color = System.Drawing.Color; @@ -16,18 +19,25 @@ namespace Cryville.EEW.Unity { static SharedSettings s_instance; public static SharedSettings Instance => s_instance ??= new(); - public ISeverityScheme SeverityScheme => DefaultSeverityScheme.Instance; - public ISeverityColorMapping SeverityColorMapping => DefaultSeverityColorMapping.Instance; - public bool UseContinuousColor => true; - public IColorScheme ColorScheme => new SeverityBasedColorScheme(SeverityScheme, DefaultSeverityColorMapping.Instance); - public ISubColorScheme BorderColorScheme => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, DefaultSeverityColorMapping.SecondaryInstance)); - public ISubColorScheme TextColorScheme => new DefaultTextColorScheme(Color.White, Color.Black); - public ILocationConverter LocationConverter => new FERegionLongConverter(); - public TimeSpan NowcastWarningDelayTolerance => TimeSpan.MaxValue; + public ISeverityScheme SeverityScheme { get; private set; } = DefaultSeverityScheme.Instance; + public ISeverityColorMapping SeverityColorMapping { get; private set; } = DefaultSeverityColorMapping.Instance; + public bool UseContinuousColor { get; private set; } = true; + public IColorScheme ColorScheme { get; private set; } = new SeverityBasedColorScheme(DefaultSeverityScheme.Instance, DefaultSeverityColorMapping.Instance); + public ISubColorScheme BorderColorScheme { get; private set; } = new WrappedColorScheme(new SeverityBasedColorScheme(DefaultSeverityScheme.Instance, DefaultSeverityColorMapping.SecondaryInstance)); + public ISubColorScheme TextColorScheme { get; private set; } = new DefaultTextColorScheme(Color.White, Color.Black); + public ILocationConverter LocationConverter => new FERegionLongConverter(); // TODO TTS + public TimeSpan NowcastWarningDelayTolerance => TimeSpan.FromMinutes(60); // TODO TTS + + public TimeZoneInfo OverrideTimeZone { get; private set; } + public bool DoDisplayTimeZone { get; private set; } = true; + public bool DoSwitchBackToHistory { get; private set; } = true; + + public IReadOnlyCollection EventSources { get; private set; } public string Id { get; private set; } public byte[] IdBytes { get; } = new byte[32]; public string UnityUserAgent { get; private set; } + public void Init() { Id = SystemInfo.deviceUniqueIdentifier; using var hash = SHA256.Create(); @@ -44,6 +54,60 @@ namespace Cryville.EEW.Unity { #else #error No Unity User Agent #endif + + var file = new FileInfo(Path.Combine(PlatformConfig.ConfigPath, "config.json")); + if (!file.Exists) { + using var stream1 = file.OpenWrite(); + using var writer = new StreamWriter(stream1, EEW.SharedSettings.Encoding); + writer.Write(JsonSerializer.Serialize(Config.Default, ConfigSerializationContext.Default.Config)); + } + using var stream = file.OpenRead(); + var config = JsonSerializer.Deserialize(stream, ConfigSerializationContext.Default.Config) ?? throw new InvalidOperationException("Null config."); + + SeverityScheme = config.SeverityScheme switch { + "Default" => new DefaultSeverityScheme(), + "Legacy" => new LegacySeverityScheme(), + _ => throw new InvalidOperationException("Unknown severity scheme."), + }; + SeverityColorMapping = config.SeverityColorMapping switch { + "Default" => new DefaultSeverityColorMapping(config.SeverityColorMappingLuminanceMultiplier), + "SREV" => new SREVSeverityColorMapping(config.SeverityColorMappingLuminanceMultiplier), + "SREVBorder" => new SREVBorderSeverityColorMapping(config.SeverityColorMappingLuminanceMultiplier), + _ => throw new InvalidOperationException("Unknown severity color mapping."), + }; + UseContinuousColor = config.UseContinuousColor; + ColorScheme = config.ColorScheme switch { + "Default" => new SeverityBasedColorScheme(SeverityScheme, DefaultSeverityColorMapping.Instance), + "SREV" => new SREVColorScheme(), + "DichromaticYB" => new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.20f, 90)), + "DichromaticRC" => new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.25f, 30)), + "DichromaticPG" => new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.30f, -30)), + "Monochromatic" => new SeverityBasedColorScheme(SeverityScheme, new MonochromaticSeverityColorMapping()), + _ => throw new InvalidOperationException("Unknown color scheme."), + }; + BorderColorScheme = config.ColorScheme switch { + "Default" => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, DefaultSeverityColorMapping.SecondaryInstance)), + "SREV" => new WrappedColorScheme(new SREVBorderColorScheme()), + "DichromaticYB" => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.20f, 90, 0.75f))), + "DichromaticRC" => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.25f, 30, 0.75f))), + "DichromaticPG" => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, new DichromaticSeverityColorMapping(0.62f, 0.30f, -30, 0.75f))), + "Monochromatic" => new WrappedColorScheme(new SeverityBasedColorScheme(SeverityScheme, new MonochromaticSeverityColorMapping(0.75f))), + _ => throw new InvalidOperationException("Unknown color scheme."), + }; + TextColorScheme = config.ColorScheme switch { + "SREV" => new DefaultTextColorScheme(Color.White, Color.FromArgb(28, 28, 28), 0.555f), + _ => new DefaultTextColorScheme(Color.White, Color.Black), + }; + OverrideTimeZone = ParseTimeZone(config.OverrideTimeZone); + DoDisplayTimeZone = config.DoDisplayTimeZone; + DoSwitchBackToHistory = config.DoSwitchBackToHistory; + EventSources = config.EventSources; + } + + TimeZoneInfo ParseTimeZone(string timeZone) { + if (timeZone == null) return null; + if (timeZone == "") return TimeZoneInfo.Local; + return TimeZoneInfo.CreateCustomTimeZone("Custom", TimeSpan.Parse(timeZone, CultureInfo.InvariantCulture), null, null); } } } diff --git a/Assets/Cryville.EEW.Unity/UI/EventBaseView.cs b/Assets/Cryville.EEW.Unity/UI/EventBaseView.cs index e41b063..c135c43 100644 --- a/Assets/Cryville.EEW.Unity/UI/EventBaseView.cs +++ b/Assets/Cryville.EEW.Unity/UI/EventBaseView.cs @@ -39,18 +39,15 @@ namespace Cryville.EEW.Unity.UI { SetText(m_locationView, location.Value, location.Culture); SetText(m_predicateView, predicate.Value, predicate.Culture); if (time.Value is DateTime ttime) { - // TODO - //if (SharedSettings.Instance.OverrideTimeZone is TimeZoneInfo tTimeZone) - // ttime = TimeZoneInfo.ConvertTime(ttime, timeZone, tTimeZone); - //else - // tTimeZone = timeZone; - TimeZoneInfo tTimeZone = timeZone; + if (SharedSettings.Instance.OverrideTimeZone is TimeZoneInfo tTimeZone) + ttime = TimeZoneInfo.ConvertTime(ttime, timeZone, tTimeZone); + else + tTimeZone = timeZone; if (UseShortTimeFormat) { SetText(m_timeView, ttime.ToString("G", time.Culture), time.Culture); } else { - // TODO SetText(m_timeView, SharedSettings.Instance.DoDisplayTimeZone ? string.Format(time.Culture, "{0:G} ({1})", ttime, tTimeZone.ToTimeZoneString()) : ttime.ToString(time.Culture), time.Culture); - SetText(m_timeView, string.Format(time.Culture, "{0:G} ({1})", ttime, tTimeZone.ToTimeZoneString()), time.Culture); + SetText(m_timeView, SharedSettings.Instance.DoDisplayTimeZone ? string.Format(time.Culture, "{0:G} ({1})", ttime, tTimeZone.ToTimeZoneString()) : ttime.ToString(time.Culture), time.Culture); } } else { diff --git a/Assets/Cryville.EEW.Unity/UI/EventOngoingListView.cs b/Assets/Cryville.EEW.Unity/UI/EventOngoingListView.cs index 86e7d70..5e037cf 100644 --- a/Assets/Cryville.EEW.Unity/UI/EventOngoingListView.cs +++ b/Assets/Cryville.EEW.Unity/UI/EventOngoingListView.cs @@ -16,6 +16,8 @@ namespace Cryville.EEW.Unity.UI { readonly List _displayingReports = new(); readonly List _displayingViews = new(); + public int Count => _displayingReports.Count; + public void Add(ReportViewModel e) { _displayingReports.Add(e); diff --git a/Assets/Cryville.EEW.Unity/UI/TimeView.cs b/Assets/Cryville.EEW.Unity/UI/TimeView.cs index b02ce4f..104473b 100644 --- a/Assets/Cryville.EEW.Unity/UI/TimeView.cs +++ b/Assets/Cryville.EEW.Unity/UI/TimeView.cs @@ -13,7 +13,13 @@ namespace Cryville.EEW.Unity.UI { } void Update() { - _textView.text = string.Format(CultureInfo.CurrentCulture, "{0:G} ({1})", DateTime.Now, TimeZoneInfo.Local.ToTimeZoneString()); + var time = DateTime.Now; + var timeZone = TimeZoneInfo.Local; + if (SharedSettings.Instance.OverrideTimeZone is TimeZoneInfo tTimeZone) + time = TimeZoneInfo.ConvertTime(time, timeZone, tTimeZone); + else + tTimeZone = timeZone; + _textView.text = SharedSettings.Instance.DoDisplayTimeZone ? string.Format(CultureInfo.CurrentCulture, "{0:G} ({1})", time, tTimeZone.ToTimeZoneString()) : time.ToString(CultureInfo.CurrentCulture); } } } diff --git a/Assets/Cryville.EEW.Unity/Worker.cs b/Assets/Cryville.EEW.Unity/Worker.cs index 8937ae9..04d0eaa 100644 --- a/Assets/Cryville.EEW.Unity/Worker.cs +++ b/Assets/Cryville.EEW.Unity/Worker.cs @@ -15,8 +15,8 @@ using Cryville.EEW.Wolfx; using Cryville.EEW.Wolfx.TTS; using System; using System.Collections.Concurrent; -using System.Net.Http; using System.Net; +using System.Net.Http; using System.Threading; using System.Threading.Tasks; using UnityEngine; @@ -105,37 +105,71 @@ namespace Cryville.EEW.Unity { } bool _verified; - WolfxWorker _wolfxWorker; - JMAAtomWorker _jmaWorker; - CWAReportWorker _cwa14Worker; - CWAReportWorker _cwa15Worker; - CWAReportWorker _cwa16Worker; - GlobalQuakeWorker _gqWorker; - NOAAAtomWorker _ntwcWorker; - NOAAAtomWorker _ptwcWorker; - UpdateCheckerWorker _updateChecker; void BuildWorkers() { #if UNITY_EDITOR - _worker.AddWorker(_wolfxWorker = new WolfxWorker(new Uri("ws://localhost:9995/wolfx"))); - _worker.AddWorker(_jmaWorker = new JMAAtomWorker(new Uri("http://localhost:9095/eqvol.xml"))); - _worker.AddWorker(_cwa14Worker = new CWAReportWorker(new Uri("http://localhost:9095/E-A0014-001.json"), "1")); - _worker.AddWorker(_cwa15Worker = new CWAReportWorker(new Uri("http://localhost:9095/E-A0015-001.json"), "1")); - _worker.AddWorker(_cwa16Worker = new CWAReportWorker(new Uri("http://localhost:9095/E-A0016-001.json"), "1")); - _worker.AddWorker(_ntwcWorker = new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml"))); - // _worker.AddWorker(_gqWorker = new GlobalQuakeWorker("localhost", 38000)); + _worker.AddWorker(new WolfxWorker(new Uri("ws://localhost:9995/wolfx"))); + _worker.AddWorker(new JMAAtomWorker(new Uri("http://localhost:9095/eqvol.xml"))); + _worker.AddWorker(new CWAReportWorker(new Uri("http://localhost:9095/E-A0014-001.json"), "1")); + _worker.AddWorker(new CWAReportWorker(new Uri("http://localhost:9095/E-A0015-001.json"), "1")); + _worker.AddWorker(new CWAReportWorker(new Uri("http://localhost:9095/E-A0016-001.json"), "1")); + _worker.AddWorker(new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml"))); + _worker.AddWorker(new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity")); #else - // TODO + foreach (var source in SharedSettings.Instance.EventSources) { + _worker.AddWorker(source switch { + CWAOpenDataEventSourceConfig cwaOpenData => cwaOpenData.Subtype switch { + "E-A0014-001" => new CWAReportWorker(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0014-001"), cwaOpenData.Token, 1440, 17280), + "E-A0015-001" => new CWAReportWorker(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0015-001"), cwaOpenData.Token), + "E-A0016-001" => new CWAReportWorker(new Uri("https://opendata.cwa.gov.tw/api/v1/rest/datastore/E-A0016-001"), cwaOpenData.Token), + _ => throw new InvalidOperationException("Unknown CWA open data sub-type."), + }, + GlobalQuakeServer15EventSourceConfig gq => new GlobalQuakeWorker15(gq.Host, gq.Port), + GlobalQuakeServerEventSourceConfig gq => new GlobalQuakeWorker(gq.Host, gq.Port), + JMAAtomEventSourceConfig jmaAtom => BuildJMAAtomWorkerFilter(new JMAAtomWorker(new("https://www.data.jma.go.jp/developer/xml/feed/eqvol.xml")), jmaAtom), + NOAAEventSourceConfig noaaAtom => noaaAtom.Subtype switch { + "PAAQ" => new NOAAAtomWorker(new("https://www.tsunami.gov/events/xml/PAAQAtom.xml"), new("https://www.tsunami.gov/"), new("/php/esri.php?e=t", UriKind.Relative), "PAAQ"), + "PHEB" => new NOAAAtomWorker(new("https://www.tsunami.gov/events/xml/PHEBAtom.xml"), new("https://www.tsunami.gov/"), new("/php/esri.php?e=t", UriKind.Relative), "PHEB"), + _ => throw new InvalidOperationException("Unknown NOAA sub-type."), + }, + UpdateCheckerEventSourceConfig => new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity"), + WolfxEventSourceConfig wolfx => BuildWolfxWorkerFilter(new WolfxWorker(new Uri("wss://ws-api.wolfx.jp/all_eew")), wolfx), + _ => throw new InvalidOperationException("Unknown event source type."), + }); + } #endif - if (_updateChecker == null) _worker.AddWorker(_updateChecker = new(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity")); } +#if !UNITY_EDITOR + JMAAtomWorker BuildJMAAtomWorkerFilter(JMAAtomWorker worker, JMAAtomEventSourceConfig config) { + if (config.Filter != null) worker.SetFilter(config.Filter); + worker.IsFilterWhitelist = config.IsFilterWhitelist; + return worker; + } + WolfxWorker BuildWolfxWorkerFilter(WolfxWorker worker, WolfxEventSourceConfig config) { + if (config.Filter != null) worker.SetFilter(config.Filter.Select(i => i switch { + "cenc_eew" => typeof(CENCEEW), + "cenc_eqlist" => typeof(WolfxEarthquakeList), + "cwa_eew" => typeof(CWAEEW), + "fj_eew" => typeof(FujianEEW), + "jma_eew" => typeof(JMAEEW), + "sc_eew" => typeof(SichuanEEW), + _ => throw new InvalidOperationException("Unknown Wolfx event type."), + })); + worker.IsFilterWhitelist = config.IsFilterWhitelist; + return worker; + } +#endif readonly OngoingReportManager _ongoingReportManager = new(); readonly ConcurrentQueue _uiActionQueue = new(); + ReportViewModel _latestHistoryReport; void OnReported(object sender, ReportViewModel e) { Debug.Log(e); _ongoingReportManager.Report(e); _uiActionQueue.Enqueue(() => { m_mapElementManager.SetSelected(e); + if (e.InvalidatedTime == null && (!(e.RevisionKey?.IsCancellation ?? false))) { + _latestHistoryReport = e; + } m_cameraController.OnMapElementUpdated(); }); } @@ -151,6 +185,9 @@ namespace Cryville.EEW.Unity { _uiActionQueue.Enqueue(() => { m_mapElementManager.RemoveOngoing(item); m_ongoingEventList.Remove(item); + if (m_ongoingEventList.Count == 0 && SharedSettings.Instance.DoSwitchBackToHistory && _latestHistoryReport is not null) { + m_mapElementManager.SetSelected(_latestHistoryReport); + } m_cameraController.OnMapElementUpdated(); }); } diff --git a/Assets/Plugins/Analyzers.meta b/Assets/Plugins/Analyzers.meta new file mode 100644 index 0000000..4d2f819 --- /dev/null +++ b/Assets/Plugins/Analyzers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6430b56ba6977f04291fbf3b0a464655 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll b/Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll new file mode 100644 index 0000000000000000000000000000000000000000..d6df0f8a10d8a56be18a102209489f85f8a2b435 GIT binary patch literal 199464 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 W-^XgcI#qyfNHm&z|I`Uy#{LfmaUU%J literal 0 HcmV?d00001 diff --git a/Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll.meta b/Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll.meta new file mode 100644 index 0000000..db1b9df --- /dev/null +++ b/Assets/Plugins/Analyzers/System.Text.Json.SourceGeneration.dll.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 15569127b9ff7604198a55092602f59a +labels: +- RoslynAnalyzer +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + : Any + second: + enabled: 0 + settings: + Exclude Android: 1 + Exclude Editor: 1 + Exclude Linux64: 1 + Exclude OSXUniversal: 1 + Exclude Win: 1 + Exclude Win64: 1 + - first: + Android: Android + second: + enabled: 0 + settings: + CPU: ARMv7 + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + CPU: AnyCPU + DefaultValueInitialized: true + OS: AnyOS + - first: + Standalone: Linux64 + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: OSXUniversal + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win + second: + enabled: 0 + settings: + CPU: None + - first: + Standalone: Win64 + second: + enabled: 0 + settings: + CPU: None + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: