Skip to content

Commit

Permalink
Bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
2dust committed Sep 23, 2024
1 parent 9734767 commit 054f0f2
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 36 deletions.
21 changes: 15 additions & 6 deletions v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public class MainWindowViewModel : MyReactiveObject
#region private prop

private CoreHandler _coreHandler;
private bool _isAdministrator { get; set; }

#endregion private prop

Expand Down Expand Up @@ -139,17 +140,16 @@ public class MainWindowViewModel : MyReactiveObject
[Reactive]
public int TabMainSelectedIndex { get; set; }

public bool IsAdministrator { get; set; }

#endregion UI

#region Init

public MainWindowViewModel(Func<EViewAction, object?, Task<bool>>? updateView)
public MainWindowViewModel(bool isAdministrator, Func<EViewAction, object?, Task<bool>>? updateView)
{
_config = LazyConfig.Instance.Config;
_noticeHandler = Locator.Current.GetService<NoticeHandler>();
_updateView = updateView;
_isAdministrator = isAdministrator;

MessageBus.Current.Listen<string>(Global.CommandRefreshProfiles).Subscribe(async x => await _updateView?.Invoke(EViewAction.DispatcherRefreshServersBiz, null));

Expand All @@ -158,6 +158,16 @@ public MainWindowViewModel(Func<EViewAction, object?, Task<bool>>? updateView)

Init();

_config.uiItem.showInTaskbar = true;
if (_config.tunModeItem.enableTun && _isAdministrator)
{
EnableTun = true;
}
else
{
_config.tunModeItem.enableTun = EnableTun = false;
}

#region WhenAnyValue && ReactiveCommand

this.WhenAnyValue(
Expand Down Expand Up @@ -319,8 +329,6 @@ public MainWindowViewModel(Func<EViewAction, object?, Task<bool>>? updateView)
#endregion WhenAnyValue && ReactiveCommand

AutoHideStartup();

_config.uiItem.showInTaskbar = true;
}

private void Init()
Expand Down Expand Up @@ -853,12 +861,13 @@ private void DoEnableTun(bool c)
{
_config.tunModeItem.enableTun = EnableTun;
// When running as a non-administrator, reboot to administrator mode
if (EnableTun && !IsAdministrator)
if (EnableTun && !_isAdministrator)
{
_config.tunModeItem.enableTun = false;
RebootAsAdmin();
return;
}
ConfigHandler.SaveConfig(_config);
Reload();
}
}
Expand Down
17 changes: 2 additions & 15 deletions v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ public MainWindow()
menuPromotion.Click += menuPromotion_Click;
menuClose.Click += menuClose_Click;

var IsAdministrator = true;//WindowsUtils.IsAdministrator();
MessageBus.Current.Listen<string>(Global.CommandSendSnackMsg).Subscribe(x => DelegateSnackMsg(x));
ViewModel = new MainWindowViewModel(UpdateViewHandler);
ViewModel = new MainWindowViewModel(IsAdministrator, UpdateViewHandler);
Locator.CurrentMutable.RegisterLazySingleton(() => ViewModel, typeof(MainWindowViewModel));

//WindowsHandler.Instance.RegisterGlobalHotkey(_config, OnHotkeyHandler, null);
Expand Down Expand Up @@ -114,24 +115,10 @@ public MainWindow()

if (Utils.IsWindows())
{
var IsAdministrator = false;//WindowsUtils.IsAdministrator();
ViewModel.IsAdministrator = IsAdministrator;
this.Title = $"{Utils.GetVersion()} - {(IsAdministrator ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
if (_config.tunModeItem.enableTun)
{
if (IsAdministrator)
{
ViewModel.EnableTun = true;
}
else
{
_config.tunModeItem.enableTun = ViewModel.EnableTun = false;
}
}
}
else
{
ViewModel.IsAdministrator = true;
this.Title = $"{Utils.GetVersion()}";
menuRebootAsAdmin.IsVisible = false;
menuSettingsSetUWP.IsVisible = false;
Expand Down
18 changes: 3 additions & 15 deletions v2rayN/v2rayN/Views/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ public MainWindow()
menuCheckUpdate.Click += MenuCheckUpdate_Click;
menuBackupAndRestore.Click += MenuBackupAndRestore_Click;

var IsAdministrator = WindowsUtils.IsAdministrator();
MessageBus.Current.Listen<string>(Global.CommandSendSnackMsg).Subscribe(x => DelegateSnackMsg(x));
ViewModel = new MainWindowViewModel(UpdateViewHandler);
ViewModel = new MainWindowViewModel(IsAdministrator, UpdateViewHandler);
Locator.CurrentMutable.RegisterLazySingleton(() => ViewModel, typeof(MainWindowViewModel));

WindowsHandler.Instance.RegisterGlobalHotkey(_config, OnHotkeyHandler, null);
Expand Down Expand Up @@ -143,21 +144,8 @@ public MainWindow()
}
});

var IsAdministrator = WindowsUtils.IsAdministrator();
ViewModel.IsAdministrator = IsAdministrator;
this.Title = $"{Utils.GetVersion()} - {(IsAdministrator ? ResUI.RunAsAdmin : ResUI.NotRunAsAdmin)}";
if (_config.tunModeItem.enableTun)
{
if (IsAdministrator)
{
ViewModel.EnableTun = true;
}
else
{
_config.tunModeItem.enableTun = ViewModel.EnableTun = false;
}
}


if (!_config.guiItem.enableHWA)
{
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
Expand Down

0 comments on commit 054f0f2

Please sign in to comment.