分离玩家信息插件,以及更新检测
This commit is contained in:
@@ -1,22 +1,80 @@
|
||||
using System.Diagnostics;
|
||||
using AnotherReplayReader.Utils;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Windows;
|
||||
using System.Windows.Documents;
|
||||
|
||||
namespace AnotherReplayReader
|
||||
{
|
||||
/// <summary>
|
||||
/// About.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class About : Window
|
||||
internal partial class About : Window
|
||||
{
|
||||
public About()
|
||||
private readonly Cache _cache;
|
||||
private readonly UpdateCheckerVersionData? _updateData;
|
||||
|
||||
public About(Cache cache)
|
||||
{
|
||||
_cache = cache;
|
||||
InitializeComponent();
|
||||
_idBox.Text = Auth.Id;
|
||||
}
|
||||
|
||||
public About(Cache cache, UpdateCheckerVersionData updateData)
|
||||
{
|
||||
_cache = cache;
|
||||
_updateData = updateData;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private async void OnAboutWindowLoaded(object sender, RoutedEventArgs e)
|
||||
{
|
||||
foreach (var hyperlink in this.FindVisualChildren<Hyperlink>())
|
||||
{
|
||||
hyperlink.RequestNavigate += OnHyperlinkRequestNavigate;
|
||||
}
|
||||
|
||||
await _cache.Initialization;
|
||||
_checkForUpdates.IsChecked = _cache.GetOrDefault(UpdateChecker.CheckForUpdatesKey, false);
|
||||
var data = _updateData
|
||||
?? _cache.GetOrDefault<UpdateCheckerVersionData?>(UpdateChecker.CachedDataKey, null);
|
||||
if (data is { } updateData && updateData.IsNewVersion())
|
||||
{
|
||||
_updatePanel.Visibility = Visibility.Visible;
|
||||
_updateInfo.Inlines.Add(updateData.Description);
|
||||
_updateInfo.Inlines.Add(new LineBreak());
|
||||
updateData.Urls.Select(u =>
|
||||
{
|
||||
var h = new Hyperlink();
|
||||
h.Inlines.Add(u);
|
||||
h.NavigateUri = new(u);
|
||||
h.RequestNavigate += OnHyperlinkRequestNavigate;
|
||||
return h;
|
||||
});
|
||||
}
|
||||
|
||||
_ = Auth.Id.ContinueWith(t => Dispatcher.Invoke(() =>
|
||||
{
|
||||
if (t.Result is { } id)
|
||||
{
|
||||
_idBox.Text = id;
|
||||
}
|
||||
else
|
||||
{
|
||||
_bottom.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private void OnHyperlinkRequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
|
||||
{
|
||||
Process.Start(e.Uri.ToString());
|
||||
}
|
||||
|
||||
private async void OnCheckForUpdatesCheckedChanged(object sender, RoutedEventArgs e)
|
||||
{
|
||||
_cache.Set(UpdateChecker.CheckForUpdatesKey, _checkForUpdates.IsChecked is true);
|
||||
await _cache.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user