mirror of
https://github.com/2dust/v2rayN.git
synced 2025-08-23 11:26:54 +00:00
Rename Manager
This commit is contained in:
parent
876381a7fb
commit
e104f9f9b2
12 changed files with 43 additions and 41 deletions
|
@ -4,12 +4,12 @@ using Avalonia.ReactiveUI;
|
||||||
using Avalonia.Win32.Input;
|
using Avalonia.Win32.Input;
|
||||||
using GlobalHotKeys;
|
using GlobalHotKeys;
|
||||||
|
|
||||||
namespace v2rayN.Desktop.Handler;
|
namespace v2rayN.Desktop.Manager;
|
||||||
|
|
||||||
public sealed class HotkeyHandler
|
public sealed class HotkeyManager
|
||||||
{
|
{
|
||||||
private static readonly Lazy<HotkeyHandler> _instance = new(() => new());
|
private static readonly Lazy<HotkeyManager> _instance = new(() => new());
|
||||||
public static HotkeyHandler Instance = _instance.Value;
|
public static HotkeyManager Instance = _instance.Value;
|
||||||
private readonly Dictionary<int, EGlobalHotkey> _hotkeyTriggerDic = new();
|
private readonly Dictionary<int, EGlobalHotkey> _hotkeyTriggerDic = new();
|
||||||
private HotKeyManager? _hotKeyManager;
|
private HotKeyManager? _hotKeyManager;
|
||||||
|
|
|
@ -5,7 +5,7 @@ using Avalonia.Input;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using v2rayN.Desktop.Base;
|
using v2rayN.Desktop.Base;
|
||||||
using v2rayN.Desktop.Handler;
|
using v2rayN.Desktop.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Desktop.Views;
|
namespace v2rayN.Desktop.Views;
|
||||||
|
|
||||||
|
@ -21,8 +21,8 @@ public partial class GlobalHotkeySettingWindow : WindowBase<GlobalHotkeySettingV
|
||||||
|
|
||||||
btnReset.Click += btnReset_Click;
|
btnReset.Click += btnReset_Click;
|
||||||
|
|
||||||
HotkeyHandler.Instance.IsPause = true;
|
HotkeyManager.Instance.IsPause = true;
|
||||||
this.Closing += (s, e) => HotkeyHandler.Instance.IsPause = false;
|
this.Closing += (s, e) => HotkeyManager.Instance.IsPause = false;
|
||||||
btnCancel.Click += (s, e) => this.Close();
|
btnCancel.Click += (s, e) => this.Close();
|
||||||
|
|
||||||
this.WhenActivated(disposables =>
|
this.WhenActivated(disposables =>
|
||||||
|
|
|
@ -13,7 +13,7 @@ using ServiceLib.Manager;
|
||||||
using Splat;
|
using Splat;
|
||||||
using v2rayN.Desktop.Base;
|
using v2rayN.Desktop.Base;
|
||||||
using v2rayN.Desktop.Common;
|
using v2rayN.Desktop.Common;
|
||||||
using v2rayN.Desktop.Handler;
|
using v2rayN.Desktop.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Desktop.Views;
|
namespace v2rayN.Desktop.Views;
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
|
||||||
this.Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
|
this.Title = $"{Utils.GetVersion()} - {(Utils.IsAdministrator() ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
|
||||||
|
|
||||||
ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false);
|
ThreadPool.RegisterWaitForSingleObject(Program.ProgramStarted, OnProgramStarted, null, -1, false);
|
||||||
HotkeyHandler.Instance.Init(_config, OnHotkeyHandler);
|
HotkeyManager.Instance.Init(_config, OnHotkeyHandler);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -235,7 +235,7 @@ public partial class MainWindow : WindowBase<MainWindowViewModel>
|
||||||
StorageUI();
|
StorageUI();
|
||||||
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||||
{
|
{
|
||||||
HotkeyHandler.Instance.Dispose();
|
HotkeyManager.Instance.Dispose();
|
||||||
desktop.Shutdown();
|
desktop.Shutdown();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -7,7 +7,7 @@ using System.Windows.Media.Imaging;
|
||||||
|
|
||||||
namespace v2rayN;
|
namespace v2rayN;
|
||||||
|
|
||||||
public class QRCodeHelper
|
public class QRCodeUtils
|
||||||
{
|
{
|
||||||
public static ImageSource? GetQRCode(string? strContent)
|
public static ImageSource? GetQRCode(string? strContent)
|
||||||
{
|
{
|
||||||
|
@ -17,7 +17,7 @@ public class QRCodeHelper
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var qrCodeImage = QRCodeUtils.GenQRCode(strContent);
|
var qrCodeImage = ServiceLib.Common.QRCodeUtils.GenQRCode(strContent);
|
||||||
return qrCodeImage is null ? null : ByteToImage(qrCodeImage);
|
return qrCodeImage is null ? null : ByteToImage(qrCodeImage);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
|
@ -6,12 +6,12 @@ using System.Windows.Input;
|
||||||
using System.Windows.Interop;
|
using System.Windows.Interop;
|
||||||
using ServiceLib.Manager;
|
using ServiceLib.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Handler;
|
namespace v2rayN.Manager;
|
||||||
|
|
||||||
public sealed class HotkeyHandler
|
public sealed class HotkeyManager
|
||||||
{
|
{
|
||||||
private static readonly Lazy<HotkeyHandler> _instance = new(() => new());
|
private static readonly Lazy<HotkeyManager> _instance = new(() => new());
|
||||||
public static HotkeyHandler Instance = _instance.Value;
|
public static HotkeyManager Instance = _instance.Value;
|
||||||
private const int WmHotkey = 0x0312;
|
private const int WmHotkey = 0x0312;
|
||||||
private readonly Dictionary<int, List<EGlobalHotkey>> _hotkeyTriggerDic = new();
|
private readonly Dictionary<int, List<EGlobalHotkey>> _hotkeyTriggerDic = new();
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ public sealed class HotkeyHandler
|
||||||
|
|
||||||
public event Action<EGlobalHotkey>? HotkeyTriggerEvent;
|
public event Action<EGlobalHotkey>? HotkeyTriggerEvent;
|
||||||
|
|
||||||
public HotkeyHandler()
|
public HotkeyManager()
|
||||||
{
|
{
|
||||||
ComponentDispatcher.ThreadPreprocessMessage += OnThreadPreProcessMessage;
|
ComponentDispatcher.ThreadPreprocessMessage += OnThreadPreProcessMessage;
|
||||||
Init();
|
Init();
|
||||||
|
@ -51,7 +51,7 @@ public sealed class HotkeyHandler
|
||||||
modifiers |= KeyModifiers.Alt;
|
modifiers |= KeyModifiers.Alt;
|
||||||
}
|
}
|
||||||
|
|
||||||
key = (key << 16) | (int)modifiers;
|
key = key << 16 | (int)modifiers;
|
||||||
if (!_hotkeyTriggerDic.ContainsKey(key))
|
if (!_hotkeyTriggerDic.ContainsKey(key))
|
||||||
{
|
{
|
||||||
_hotkeyTriggerDic.Add(key, new() { item.EGlobalHotkey });
|
_hotkeyTriggerDic.Add(key, new() { item.EGlobalHotkey });
|
||||||
|
@ -77,7 +77,7 @@ public sealed class HotkeyHandler
|
||||||
|
|
||||||
Application.Current?.Dispatcher.Invoke(() =>
|
Application.Current?.Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
isSuccess = RegisterHotKey(IntPtr.Zero, _hotkeyCode, hotkeyInfo.fsModifiers, hotkeyInfo.vKey);
|
isSuccess = RegisterHotKey(nint.Zero, _hotkeyCode, hotkeyInfo.fsModifiers, hotkeyInfo.vKey);
|
||||||
});
|
});
|
||||||
foreach (var name in hotkeyInfo.Names)
|
foreach (var name in hotkeyInfo.Names)
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ public sealed class HotkeyHandler
|
||||||
{
|
{
|
||||||
Application.Current?.Dispatcher.Invoke(() =>
|
Application.Current?.Dispatcher.Invoke(() =>
|
||||||
{
|
{
|
||||||
UnregisterHotKey(IntPtr.Zero, hotkey);
|
UnregisterHotKey(nint.Zero, hotkey);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Init();
|
Init();
|
||||||
|
@ -111,7 +111,7 @@ public sealed class HotkeyHandler
|
||||||
private (int fsModifiers, int vKey, string hotkeyStr, List<string> Names) GetHotkeyInfo(int hotkeyCode)
|
private (int fsModifiers, int vKey, string hotkeyStr, List<string> Names) GetHotkeyInfo(int hotkeyCode)
|
||||||
{
|
{
|
||||||
var fsModifiers = hotkeyCode & 0xffff;
|
var fsModifiers = hotkeyCode & 0xffff;
|
||||||
var vKey = (hotkeyCode >> 16) & 0xffff;
|
var vKey = hotkeyCode >> 16 & 0xffff;
|
||||||
var hotkeyStr = new StringBuilder();
|
var hotkeyStr = new StringBuilder();
|
||||||
var names = new List<string>();
|
var names = new List<string>();
|
||||||
|
|
||||||
|
@ -174,10 +174,10 @@ public sealed class HotkeyHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
|
private static extern bool RegisterHotKey(nint hWnd, int id, int fsModifiers, int vlc);
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
|
private static extern bool UnregisterHotKey(nint hWnd, int id);
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
private enum KeyModifiers
|
private enum KeyModifiers
|
|
@ -1,13 +1,14 @@
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
|
using v2rayN.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Handler;
|
namespace v2rayN.Manager;
|
||||||
|
|
||||||
public sealed class WindowsHandler
|
public sealed class WindowsManager
|
||||||
{
|
{
|
||||||
private static readonly Lazy<WindowsHandler> instance = new(() => new());
|
private static readonly Lazy<WindowsManager> instance = new(() => new());
|
||||||
public static WindowsHandler Instance => instance.Value;
|
public static WindowsManager Instance => instance.Value;
|
||||||
private static readonly string _tag = "WindowsHandler";
|
private static readonly string _tag = "WindowsHandler";
|
||||||
|
|
||||||
public async Task<Icon> GetNotifyIcon(Config config)
|
public async Task<Icon> GetNotifyIcon(Config config)
|
||||||
|
@ -97,8 +98,8 @@ public sealed class WindowsHandler
|
||||||
|
|
||||||
public void RegisterGlobalHotkey(Config config, Action<EGlobalHotkey> handler, Action<bool, string>? update)
|
public void RegisterGlobalHotkey(Config config, Action<EGlobalHotkey> handler, Action<bool, string>? update)
|
||||||
{
|
{
|
||||||
HotkeyHandler.Instance.UpdateViewEvent += update;
|
HotkeyManager.Instance.UpdateViewEvent += update;
|
||||||
HotkeyHandler.Instance.HotkeyTriggerEvent += handler;
|
HotkeyManager.Instance.HotkeyTriggerEvent += handler;
|
||||||
HotkeyHandler.Instance.Load();
|
HotkeyManager.Instance.Load();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -5,7 +5,7 @@ using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using ServiceLib.Manager;
|
using ServiceLib.Manager;
|
||||||
using v2rayN.Handler;
|
using v2rayN.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Views;
|
namespace v2rayN.Views;
|
||||||
|
|
||||||
|
@ -23,8 +23,8 @@ public partial class GlobalHotkeySettingWindow
|
||||||
|
|
||||||
btnReset.Click += btnReset_Click;
|
btnReset.Click += btnReset_Click;
|
||||||
|
|
||||||
HotkeyHandler.Instance.IsPause = true;
|
HotkeyManager.Instance.IsPause = true;
|
||||||
this.Closing += (s, e) => HotkeyHandler.Instance.IsPause = false;
|
this.Closing += (s, e) => HotkeyManager.Instance.IsPause = false;
|
||||||
|
|
||||||
this.WhenActivated(disposables =>
|
this.WhenActivated(disposables =>
|
||||||
{
|
{
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
Height="700"
|
Height="700"
|
||||||
MinWidth="900"
|
MinWidth="900"
|
||||||
x:TypeArguments="vms:MainWindowViewModel"
|
x:TypeArguments="vms:MainWindowViewModel"
|
||||||
|
Icon="/Resources/v2rayN.ico"
|
||||||
ResizeMode="CanResizeWithGrip"
|
ResizeMode="CanResizeWithGrip"
|
||||||
ShowInTaskbar="True"
|
ShowInTaskbar="True"
|
||||||
Style="{StaticResource WindowGlobal}"
|
Style="{StaticResource WindowGlobal}"
|
||||||
|
|
|
@ -10,7 +10,7 @@ using MaterialDesignThemes.Wpf;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using ServiceLib.Manager;
|
using ServiceLib.Manager;
|
||||||
using Splat;
|
using Splat;
|
||||||
using v2rayN.Handler;
|
using v2rayN.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Views;
|
namespace v2rayN.Views;
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ public partial class MainWindow
|
||||||
}
|
}
|
||||||
|
|
||||||
AddHelpMenuItem();
|
AddHelpMenuItem();
|
||||||
WindowsHandler.Instance.RegisterGlobalHotkey(_config, OnHotkeyHandler, null);
|
WindowsManager.Instance.RegisterGlobalHotkey(_config, OnHotkeyHandler, null);
|
||||||
MessageBus.Current.Listen<string>(EMsgCommand.AppExit.ToString()).Subscribe(StorageUI);
|
MessageBus.Current.Listen<string>(EMsgCommand.AppExit.ToString()).Subscribe(StorageUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ public partial class MainWindow
|
||||||
|
|
||||||
if (Application.Current?.MainWindow is Window window)
|
if (Application.Current?.MainWindow is Window window)
|
||||||
{
|
{
|
||||||
var bytes = QRCodeHelper.CaptureScreen(window);
|
var bytes = QRCodeUtils.CaptureScreen(window);
|
||||||
await ViewModel?.ScanScreenResult(bytes);
|
await ViewModel?.ScanScreenResult(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,7 @@ public partial class ProfilesView
|
||||||
|
|
||||||
public async void ShareServer(string url)
|
public async void ShareServer(string url)
|
||||||
{
|
{
|
||||||
var img = QRCodeHelper.GetQRCode(url);
|
var img = QRCodeUtils.GetQRCode(url);
|
||||||
var dialog = new QrcodeView()
|
var dialog = new QrcodeView()
|
||||||
{
|
{
|
||||||
imgQrcode = { Source = img },
|
imgQrcode = { Source = img },
|
||||||
|
|
|
@ -5,7 +5,7 @@ using System.Windows.Threading;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using ServiceLib.Manager;
|
using ServiceLib.Manager;
|
||||||
using Splat;
|
using Splat;
|
||||||
using v2rayN.Handler;
|
using v2rayN.Manager;
|
||||||
|
|
||||||
namespace v2rayN.Views;
|
namespace v2rayN.Views;
|
||||||
|
|
||||||
|
@ -96,8 +96,8 @@ public partial class StatusBarView
|
||||||
case EViewAction.DispatcherRefreshIcon:
|
case EViewAction.DispatcherRefreshIcon:
|
||||||
Application.Current?.Dispatcher.Invoke((async () =>
|
Application.Current?.Dispatcher.Invoke((async () =>
|
||||||
{
|
{
|
||||||
tbNotify.Icon = await WindowsHandler.Instance.GetNotifyIcon(_config);
|
tbNotify.Icon = await WindowsManager.Instance.GetNotifyIcon(_config);
|
||||||
Application.Current.MainWindow.Icon = WindowsHandler.Instance.GetAppIcon(_config);
|
Application.Current.MainWindow.Icon = WindowsManager.Instance.GetAppIcon(_config);
|
||||||
}), DispatcherPriority.Normal);
|
}), DispatcherPriority.Normal);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ public partial class SubSettingWindow
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var img = QRCodeHelper.GetQRCode(url);
|
var img = QRCodeUtils.GetQRCode(url);
|
||||||
var dialog = new QrcodeView()
|
var dialog = new QrcodeView()
|
||||||
{
|
{
|
||||||
imgQrcode = { Source = img },
|
imgQrcode = { Source = img },
|
||||||
|
|
Loading…
Reference in a new issue