mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-04-02 10:45:22 +08:00
123 lines
3.2 KiB
C#
123 lines
3.2 KiB
C#
using BetterGenshinImpact.Core.Config;
|
|
using BetterGenshinImpact.GameTask;
|
|
using BetterGenshinImpact.GameTask.Model.Enum;
|
|
using BetterGenshinImpact.Service.Interface;
|
|
using BetterGenshinImpact.View.Pages;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using CommunityToolkit.Mvvm.Messaging.Messages;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Threading.Tasks;
|
|
using BetterGenshinImpact.Service.Notification;
|
|
using BetterGenshinImpact.Service.Notifier;
|
|
using BetterGenshinImpact.View;
|
|
using Wpf.Ui;
|
|
using Wpf.Ui.Controls;
|
|
|
|
namespace BetterGenshinImpact.ViewModel.Pages;
|
|
|
|
public partial class CommonSettingsPageViewModel : ObservableObject, INavigationAware, IViewModel
|
|
{
|
|
public AllConfig Config { get; set; }
|
|
|
|
private readonly INavigationService _navigationService;
|
|
|
|
private readonly NotificationService _notificationService;
|
|
|
|
[ObservableProperty] private bool _isLoading;
|
|
|
|
[ObservableProperty] private string _webhookStatus = string.Empty;
|
|
|
|
|
|
public CommonSettingsPageViewModel(IConfigService configService, INavigationService navigationService, NotificationService notificationService)
|
|
{
|
|
Config = configService.Get();
|
|
_navigationService = navigationService;
|
|
_notificationService = notificationService;
|
|
}
|
|
|
|
public void OnNavigatedTo()
|
|
{
|
|
}
|
|
|
|
public void OnNavigatedFrom()
|
|
{
|
|
}
|
|
|
|
[RelayCommand]
|
|
public void OnRefreshMaskSettings()
|
|
{
|
|
WeakReferenceMessenger.Default.Send(new PropertyChangedMessage<object>(this, "RefreshSettings", new object(), "重新计算控件位置"));
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void OnSwitchMaskEnabled()
|
|
{
|
|
// if (Config.MaskWindowConfig.MaskEnabled)
|
|
// {
|
|
// MaskWindow.Instance().Show();
|
|
// }
|
|
// else
|
|
// {
|
|
// MaskWindow.Instance().Hide();
|
|
// }
|
|
}
|
|
|
|
[RelayCommand]
|
|
public void OnGoToHotKeyPage()
|
|
{
|
|
_navigationService.Navigate(typeof(HotKeyPage));
|
|
}
|
|
|
|
[RelayCommand]
|
|
public void OnSwitchTakenScreenshotEnabled()
|
|
{
|
|
if (Config.CommonConfig.ScreenshotEnabled)
|
|
{
|
|
if (TaskTriggerDispatcher.Instance().GetCacheCaptureMode() == DispatcherCaptureModeEnum.NormalTrigger)
|
|
{
|
|
TaskTriggerDispatcher.Instance().SetCacheCaptureMode(DispatcherCaptureModeEnum.CacheCaptureWithTrigger);
|
|
}
|
|
}
|
|
}
|
|
|
|
[RelayCommand]
|
|
public void OnGoToFolder()
|
|
{
|
|
var path = Global.Absolute(@"log\screenshot\");
|
|
if (!Directory.Exists(path))
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
|
|
Process.Start("explorer.exe", path);
|
|
}
|
|
|
|
[RelayCommand]
|
|
public void OnGoToLogFolder()
|
|
{
|
|
var path = Global.Absolute(@"log");
|
|
if (!Directory.Exists(path))
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
|
|
Process.Start("explorer.exe", path);
|
|
}
|
|
|
|
[RelayCommand]
|
|
private async Task OnTestWebhook()
|
|
{
|
|
IsLoading = true;
|
|
WebhookStatus = string.Empty;
|
|
|
|
var res = await _notificationService.TestNotifierAsync<WebhookNotifier>();
|
|
|
|
WebhookStatus = res.Message;
|
|
|
|
IsLoading = false;
|
|
}
|
|
}
|