mirror of https://github.com/2dust/v2rayN
Refactor code to decouple view and viewmodel
parent
9aa5c0d135
commit
372f3991e1
|
@ -12,6 +12,8 @@
|
||||||
ShowHideWindow,
|
ShowHideWindow,
|
||||||
ScanScreenTask,
|
ScanScreenTask,
|
||||||
Shutdown,
|
Shutdown,
|
||||||
|
BrowseServer,
|
||||||
|
ImportRulesFromFile,
|
||||||
SubEditWindow,
|
SubEditWindow,
|
||||||
RoutingRuleSettingWindow,
|
RoutingRuleSettingWindow,
|
||||||
RoutingRuleDetailsWindow,
|
RoutingRuleDetailsWindow,
|
||||||
|
|
|
@ -5,7 +5,6 @@ using System.IO;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Windows;
|
|
||||||
using v2rayN.Enums;
|
using v2rayN.Enums;
|
||||||
using v2rayN.Models;
|
using v2rayN.Models;
|
||||||
using v2rayN.Resx;
|
using v2rayN.Resx;
|
||||||
|
@ -535,22 +534,22 @@ namespace v2rayN.Handler
|
||||||
|
|
||||||
private async Task AskToDownload(DownloadHandle downloadHandle, string url, bool blAsk)
|
private async Task AskToDownload(DownloadHandle downloadHandle, string url, bool blAsk)
|
||||||
{
|
{
|
||||||
bool blDownload = false;
|
//bool blDownload = false;
|
||||||
if (blAsk)
|
//if (blAsk)
|
||||||
{
|
//{
|
||||||
if (UI.ShowYesNo(string.Format(ResUI.DownloadYesNo, url)) == MessageBoxResult.Yes)
|
// if (UI.ShowYesNo(string.Format(ResUI.DownloadYesNo, url)) == MessageBoxResult.Yes)
|
||||||
{
|
// {
|
||||||
blDownload = true;
|
// blDownload = true;
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
{
|
//{
|
||||||
blDownload = true;
|
// blDownload = true;
|
||||||
}
|
//}
|
||||||
if (blDownload)
|
//if (blDownload)
|
||||||
{
|
//{
|
||||||
await downloadHandle.DownloadFileAsync(url, true, 600);
|
await downloadHandle.DownloadFileAsync(url, true, 600);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UpdateGeoFile(string geoName, Config config, Action<bool, string> update)
|
private async Task UpdateGeoFile(string geoName, Config config, Action<bool, string> update)
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace v2rayN.ViewModels
|
||||||
|
|
||||||
BrowseServerCmd = ReactiveCommand.Create(() =>
|
BrowseServerCmd = ReactiveCommand.Create(() =>
|
||||||
{
|
{
|
||||||
BrowseServer();
|
_updateView?.Invoke(EViewAction.BrowseServer, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
EditServerCmd = ReactiveCommand.Create(() =>
|
EditServerCmd = ReactiveCommand.Create(() =>
|
||||||
|
@ -92,15 +92,8 @@ namespace v2rayN.ViewModels
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BrowseServer()
|
public void BrowseServer(string fileName)
|
||||||
{
|
{
|
||||||
//_noticeHandler?.Enqueue(ResUI.CustomServerTips);
|
|
||||||
|
|
||||||
if (UI.OpenFileDialog(out string fileName,
|
|
||||||
"Config|*.json|YAML|*.yaml;*.yml|All|*.*") != true)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Utils.IsNullOrEmpty(fileName))
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -69,7 +69,7 @@ namespace v2rayN.ViewModels
|
||||||
});
|
});
|
||||||
ImportRulesFromFileCmd = ReactiveCommand.Create(() =>
|
ImportRulesFromFileCmd = ReactiveCommand.Create(() =>
|
||||||
{
|
{
|
||||||
ImportRulesFromFile();
|
_updateView?.Invoke(EViewAction.ImportRulesFromFile, null);
|
||||||
});
|
});
|
||||||
ImportRulesFromClipboardCmd = ReactiveCommand.Create(() =>
|
ImportRulesFromClipboardCmd = ReactiveCommand.Create(() =>
|
||||||
{
|
{
|
||||||
|
@ -256,13 +256,8 @@ namespace v2rayN.ViewModels
|
||||||
|
|
||||||
#region Import rules
|
#region Import rules
|
||||||
|
|
||||||
private void ImportRulesFromFile()
|
public void ImportRulesFromFile(string fileName)
|
||||||
{
|
{
|
||||||
if (UI.OpenFileDialog(out string fileName,
|
|
||||||
"Rules|*.json|All|*.*") != true)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Utils.IsNullOrEmpty(fileName))
|
if (Utils.IsNullOrEmpty(fileName))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -47,6 +47,15 @@ namespace v2rayN.Views
|
||||||
{
|
{
|
||||||
this.DialogResult = true;
|
this.DialogResult = true;
|
||||||
}
|
}
|
||||||
|
else if (action == EViewAction.BrowseServer)
|
||||||
|
{
|
||||||
|
if (UI.OpenFileDialog(out string fileName, "Config|*.json|YAML|*.yaml;*.yml|All|*.*") != true)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ViewModel?.BrowseServer(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,14 @@ namespace v2rayN.Views
|
||||||
if (obj is null) return false;
|
if (obj is null) return false;
|
||||||
return (new RoutingRuleDetailsWindow((RulesItem)obj)).ShowDialog() ?? false;
|
return (new RoutingRuleDetailsWindow((RulesItem)obj)).ShowDialog() ?? false;
|
||||||
}
|
}
|
||||||
|
else if (action == EViewAction.ImportRulesFromFile)
|
||||||
|
{
|
||||||
|
if (UI.OpenFileDialog(out string fileName, "Rules|*.json|All|*.*") != true)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ViewModel?.ImportRulesFromFile(fileName);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue