mirror of https://github.com/2dust/v2rayN
Code clean
parent
56c3e9c46d
commit
2826444ffc
|
@ -1,7 +1,6 @@
|
|||
using System.Reactive;
|
||||
using ReactiveUI;
|
||||
using ReactiveUI.Fody.Helpers;
|
||||
using Splat;
|
||||
|
||||
namespace ServiceLib.ViewModels;
|
||||
|
||||
|
|
|
@ -1,27 +1,22 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reactive;
|
||||
using System.Reactive.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using DynamicData;
|
||||
using DynamicData.Binding;
|
||||
using ReactiveUI;
|
||||
using ReactiveUI.Fody.Helpers;
|
||||
using Splat;
|
||||
|
||||
namespace ServiceLib.ViewModels;
|
||||
|
||||
public class ProfilesSelectViewModel : MyReactiveObject
|
||||
{
|
||||
#region private prop
|
||||
|
||||
private List<ProfileItem> _lstProfile;
|
||||
private string _serverFilter = string.Empty;
|
||||
private Dictionary<string, bool> _dicHeaderSort = new();
|
||||
private string _subIndexId = string.Empty;
|
||||
|
||||
// ConfigType filter state: default include-mode with all types selected
|
||||
private List<EConfigType> _filterConfigTypes = new();
|
||||
|
||||
private bool _filterExclude = false;
|
||||
|
||||
#endregion private prop
|
||||
|
@ -66,6 +61,7 @@ public class ProfilesSelectViewModel : MyReactiveObject
|
|||
_config = AppManager.Instance.Config;
|
||||
_updateView = updateView;
|
||||
_subIndexId = _config.SubIndexId ?? string.Empty;
|
||||
|
||||
#region WhenAnyValue && ReactiveCommand
|
||||
|
||||
this.WhenAnyValue(
|
||||
|
@ -130,6 +126,7 @@ public class ProfilesSelectViewModel : MyReactiveObject
|
|||
_updateView?.Invoke(EViewAction.CloseWindow, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
#endregion Actions
|
||||
|
||||
#region Servers && Groups
|
||||
|
@ -168,7 +165,6 @@ public class ProfilesSelectViewModel : MyReactiveObject
|
|||
private async Task RefreshServersBiz()
|
||||
{
|
||||
var lstModel = await GetProfileItemsEx(_subIndexId, _serverFilter);
|
||||
_lstProfile = JsonUtils.Deserialize<List<ProfileItem>>(JsonUtils.Serialize(lstModel)) ?? [];
|
||||
|
||||
ProfileItems.Clear();
|
||||
ProfileItems.AddRange(lstModel);
|
||||
|
@ -211,9 +207,6 @@ public class ProfilesSelectViewModel : MyReactiveObject
|
|||
private async Task<List<ProfileItemModel>?> GetProfileItemsEx(string subid, string filter)
|
||||
{
|
||||
var lstModel = await AppManager.Instance.ProfileItems(_subIndexId, filter);
|
||||
|
||||
//await ConfigHandler.SetDefaultServer(_config, lstModel);
|
||||
|
||||
lstModel = (from t in lstModel
|
||||
select new ProfileItemModel
|
||||
{
|
||||
|
|
|
@ -13,6 +13,7 @@ public class RoutingRuleSettingViewModel : MyReactiveObject
|
|||
|
||||
[Reactive]
|
||||
public RoutingItem SelectedRouting { get; set; }
|
||||
|
||||
public IObservableCollection<RulesItemModel> RulesItems { get; } = new ObservableCollectionExtended<RulesItemModel>();
|
||||
|
||||
[Reactive]
|
||||
|
|
|
@ -1,17 +1,12 @@
|
|||
using System.Linq;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Input;
|
||||
using Avalonia.Interactivity;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using Avalonia.VisualTree;
|
||||
using Avalonia.ReactiveUI;
|
||||
using Avalonia.VisualTree;
|
||||
using ReactiveUI;
|
||||
using ServiceLib.Manager;
|
||||
using v2rayN.Desktop.Common;
|
||||
|
||||
namespace v2rayN.Desktop.Views;
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ using Avalonia.Controls;
|
|||
using Avalonia.Interactivity;
|
||||
using ReactiveUI;
|
||||
using v2rayN.Desktop.Base;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace v2rayN.Desktop.Views;
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ using Avalonia;
|
|||
using Avalonia.Interactivity;
|
||||
using ReactiveUI;
|
||||
using v2rayN.Desktop.Base;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace v2rayN.Desktop.Views;
|
||||
|
||||
|
|
|
@ -3,10 +3,8 @@ using System.Windows;
|
|||
using System.Windows.Controls;
|
||||
using System.Windows.Controls.Primitives;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Threading;
|
||||
using ReactiveUI;
|
||||
using ServiceLib.Manager;
|
||||
using Splat;
|
||||
using v2rayN.Base;
|
||||
|
||||
namespace v2rayN.Views;
|
||||
|
@ -34,7 +32,6 @@ public partial class ProfilesSelectWindow
|
|||
|
||||
ViewModel = new ProfilesSelectViewModel(UpdateViewHandler);
|
||||
|
||||
|
||||
this.WhenActivated(disposables =>
|
||||
{
|
||||
this.OneWayBind(ViewModel, vm => vm.ProfileItems, v => v.lstProfiles.ItemsSource).DisposeWith(disposables);
|
||||
|
@ -44,6 +41,8 @@ public partial class ProfilesSelectWindow
|
|||
this.Bind(ViewModel, vm => vm.SelectedSub, v => v.lstGroup.SelectedItem).DisposeWith(disposables);
|
||||
this.Bind(ViewModel, vm => vm.ServerFilter, v => v.txtServerFilter.Text).DisposeWith(disposables);
|
||||
});
|
||||
|
||||
WindowsUtils.SetDarkBorder(this, AppManager.Instance.Config.UiItem.CurrentTheme);
|
||||
}
|
||||
|
||||
public void AllowMultiSelect(bool allow)
|
||||
|
@ -190,5 +189,6 @@ public partial class ProfilesSelectWindow
|
|||
// Trigger selection finalize when Confirm is clicked
|
||||
ViewModel?.SelectFinish();
|
||||
}
|
||||
|
||||
#endregion Event
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using System.Reactive.Disposables;
|
||||
using System.Windows;
|
||||
using System.Windows.Threading;
|
||||
using ReactiveUI;
|
||||
using ServiceLib.Manager;
|
||||
|
||||
|
|
Loading…
Reference in New Issue