Update popup menu

Add file editor

Fix android service issues

Optimize desktop background performance

Optimize android main process performance

Optimize delay test

Optimize vpn protect
This commit is contained in:
chen08209
2025-01-13 19:08:17 +08:00
parent 6a39b7ef5a
commit b340feeb49
92 changed files with 4000 additions and 3081 deletions

View File

@@ -1998,6 +1998,7 @@ mixin _$Group {
List<Proxy> get all => throw _privateConstructorUsedError;
String? get now => throw _privateConstructorUsedError;
bool? get hidden => throw _privateConstructorUsedError;
String? get testUrl => throw _privateConstructorUsedError;
String get icon => throw _privateConstructorUsedError;
String get name => throw _privateConstructorUsedError;
@@ -2020,6 +2021,7 @@ abstract class $GroupCopyWith<$Res> {
List<Proxy> all,
String? now,
bool? hidden,
String? testUrl,
String icon,
String name});
}
@@ -2043,6 +2045,7 @@ class _$GroupCopyWithImpl<$Res, $Val extends Group>
Object? all = null,
Object? now = freezed,
Object? hidden = freezed,
Object? testUrl = freezed,
Object? icon = null,
Object? name = null,
}) {
@@ -2063,6 +2066,10 @@ class _$GroupCopyWithImpl<$Res, $Val extends Group>
? _value.hidden
: hidden // ignore: cast_nullable_to_non_nullable
as bool?,
testUrl: freezed == testUrl
? _value.testUrl
: testUrl // ignore: cast_nullable_to_non_nullable
as String?,
icon: null == icon
? _value.icon
: icon // ignore: cast_nullable_to_non_nullable
@@ -2087,6 +2094,7 @@ abstract class _$$GroupImplCopyWith<$Res> implements $GroupCopyWith<$Res> {
List<Proxy> all,
String? now,
bool? hidden,
String? testUrl,
String icon,
String name});
}
@@ -2108,6 +2116,7 @@ class __$$GroupImplCopyWithImpl<$Res>
Object? all = null,
Object? now = freezed,
Object? hidden = freezed,
Object? testUrl = freezed,
Object? icon = null,
Object? name = null,
}) {
@@ -2128,6 +2137,10 @@ class __$$GroupImplCopyWithImpl<$Res>
? _value.hidden
: hidden // ignore: cast_nullable_to_non_nullable
as bool?,
testUrl: freezed == testUrl
? _value.testUrl
: testUrl // ignore: cast_nullable_to_non_nullable
as String?,
icon: null == icon
? _value.icon
: icon // ignore: cast_nullable_to_non_nullable
@@ -2148,6 +2161,7 @@ class _$GroupImpl implements _Group {
final List<Proxy> all = const [],
this.now,
this.hidden,
this.testUrl,
this.icon = "",
required this.name})
: _all = all;
@@ -2171,6 +2185,8 @@ class _$GroupImpl implements _Group {
@override
final bool? hidden;
@override
final String? testUrl;
@override
@JsonKey()
final String icon;
@override
@@ -2178,7 +2194,7 @@ class _$GroupImpl implements _Group {
@override
String toString() {
return 'Group(type: $type, all: $all, now: $now, hidden: $hidden, icon: $icon, name: $name)';
return 'Group(type: $type, all: $all, now: $now, hidden: $hidden, testUrl: $testUrl, icon: $icon, name: $name)';
}
@override
@@ -2190,14 +2206,22 @@ class _$GroupImpl implements _Group {
const DeepCollectionEquality().equals(other._all, _all) &&
(identical(other.now, now) || other.now == now) &&
(identical(other.hidden, hidden) || other.hidden == hidden) &&
(identical(other.testUrl, testUrl) || other.testUrl == testUrl) &&
(identical(other.icon, icon) || other.icon == icon) &&
(identical(other.name, name) || other.name == name));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType, type,
const DeepCollectionEquality().hash(_all), now, hidden, icon, name);
int get hashCode => Object.hash(
runtimeType,
type,
const DeepCollectionEquality().hash(_all),
now,
hidden,
testUrl,
icon,
name);
/// Create a copy of Group
/// with the given fields replaced by the non-null parameter values.
@@ -2221,6 +2245,7 @@ abstract class _Group implements Group {
final List<Proxy> all,
final String? now,
final bool? hidden,
final String? testUrl,
final String icon,
required final String name}) = _$GroupImpl;
@@ -2235,6 +2260,8 @@ abstract class _Group implements Group {
@override
bool? get hidden;
@override
String? get testUrl;
@override
String get icon;
@override
String get name;

View File

@@ -161,6 +161,7 @@ _$GroupImpl _$$GroupImplFromJson(Map<String, dynamic> json) => _$GroupImpl(
const [],
now: json['now'] as String?,
hidden: json['hidden'] as bool?,
testUrl: json['testUrl'] as String?,
icon: json['icon'] as String? ?? "",
name: json['name'] as String,
);
@@ -171,6 +172,7 @@ Map<String, dynamic> _$$GroupImplToJson(_$GroupImpl instance) =>
'all': instance.all,
'now': instance.now,
'hidden': instance.hidden,
'testUrl': instance.testUrl,
'icon': instance.icon,
'name': instance.name,
};

View File

@@ -24,7 +24,7 @@ mixin _$AppSetting {
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
List<DashboardWidget> get dashboardWidgets =>
throw _privateConstructorUsedError;
bool get onlyProxy => throw _privateConstructorUsedError;
bool get onlyStatisticsProxy => throw _privateConstructorUsedError;
bool get autoLaunch => throw _privateConstructorUsedError;
bool get silentLaunch => throw _privateConstructorUsedError;
bool get autoRun => throw _privateConstructorUsedError;
@@ -58,7 +58,7 @@ abstract class $AppSettingCopyWith<$Res> {
{String? locale,
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
List<DashboardWidget> dashboardWidgets,
bool onlyProxy,
bool onlyStatisticsProxy,
bool autoLaunch,
bool silentLaunch,
bool autoRun,
@@ -90,7 +90,7 @@ class _$AppSettingCopyWithImpl<$Res, $Val extends AppSetting>
$Res call({
Object? locale = freezed,
Object? dashboardWidgets = null,
Object? onlyProxy = null,
Object? onlyStatisticsProxy = null,
Object? autoLaunch = null,
Object? silentLaunch = null,
Object? autoRun = null,
@@ -113,9 +113,9 @@ class _$AppSettingCopyWithImpl<$Res, $Val extends AppSetting>
? _value.dashboardWidgets
: dashboardWidgets // ignore: cast_nullable_to_non_nullable
as List<DashboardWidget>,
onlyProxy: null == onlyProxy
? _value.onlyProxy
: onlyProxy // ignore: cast_nullable_to_non_nullable
onlyStatisticsProxy: null == onlyStatisticsProxy
? _value.onlyStatisticsProxy
: onlyStatisticsProxy // ignore: cast_nullable_to_non_nullable
as bool,
autoLaunch: null == autoLaunch
? _value.autoLaunch
@@ -181,7 +181,7 @@ abstract class _$$AppSettingImplCopyWith<$Res>
{String? locale,
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
List<DashboardWidget> dashboardWidgets,
bool onlyProxy,
bool onlyStatisticsProxy,
bool autoLaunch,
bool silentLaunch,
bool autoRun,
@@ -211,7 +211,7 @@ class __$$AppSettingImplCopyWithImpl<$Res>
$Res call({
Object? locale = freezed,
Object? dashboardWidgets = null,
Object? onlyProxy = null,
Object? onlyStatisticsProxy = null,
Object? autoLaunch = null,
Object? silentLaunch = null,
Object? autoRun = null,
@@ -234,9 +234,9 @@ class __$$AppSettingImplCopyWithImpl<$Res>
? _value._dashboardWidgets
: dashboardWidgets // ignore: cast_nullable_to_non_nullable
as List<DashboardWidget>,
onlyProxy: null == onlyProxy
? _value.onlyProxy
: onlyProxy // ignore: cast_nullable_to_non_nullable
onlyStatisticsProxy: null == onlyStatisticsProxy
? _value.onlyStatisticsProxy
: onlyStatisticsProxy // ignore: cast_nullable_to_non_nullable
as bool,
autoLaunch: null == autoLaunch
? _value.autoLaunch
@@ -297,7 +297,7 @@ class _$AppSettingImpl implements _AppSetting {
{this.locale,
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
final List<DashboardWidget> dashboardWidgets = defaultDashboardWidgets,
this.onlyProxy = false,
this.onlyStatisticsProxy = false,
this.autoLaunch = false,
this.silentLaunch = false,
this.autoRun = false,
@@ -329,7 +329,7 @@ class _$AppSettingImpl implements _AppSetting {
@override
@JsonKey()
final bool onlyProxy;
final bool onlyStatisticsProxy;
@override
@JsonKey()
final bool autoLaunch;
@@ -369,7 +369,7 @@ class _$AppSettingImpl implements _AppSetting {
@override
String toString() {
return 'AppSetting(locale: $locale, dashboardWidgets: $dashboardWidgets, onlyProxy: $onlyProxy, autoLaunch: $autoLaunch, silentLaunch: $silentLaunch, autoRun: $autoRun, openLogs: $openLogs, closeConnections: $closeConnections, testUrl: $testUrl, isAnimateToPage: $isAnimateToPage, autoCheckUpdate: $autoCheckUpdate, showLabel: $showLabel, disclaimerAccepted: $disclaimerAccepted, minimizeOnExit: $minimizeOnExit, hidden: $hidden)';
return 'AppSetting(locale: $locale, dashboardWidgets: $dashboardWidgets, onlyStatisticsProxy: $onlyStatisticsProxy, autoLaunch: $autoLaunch, silentLaunch: $silentLaunch, autoRun: $autoRun, openLogs: $openLogs, closeConnections: $closeConnections, testUrl: $testUrl, isAnimateToPage: $isAnimateToPage, autoCheckUpdate: $autoCheckUpdate, showLabel: $showLabel, disclaimerAccepted: $disclaimerAccepted, minimizeOnExit: $minimizeOnExit, hidden: $hidden)';
}
@override
@@ -380,8 +380,8 @@ class _$AppSettingImpl implements _AppSetting {
(identical(other.locale, locale) || other.locale == locale) &&
const DeepCollectionEquality()
.equals(other._dashboardWidgets, _dashboardWidgets) &&
(identical(other.onlyProxy, onlyProxy) ||
other.onlyProxy == onlyProxy) &&
(identical(other.onlyStatisticsProxy, onlyStatisticsProxy) ||
other.onlyStatisticsProxy == onlyStatisticsProxy) &&
(identical(other.autoLaunch, autoLaunch) ||
other.autoLaunch == autoLaunch) &&
(identical(other.silentLaunch, silentLaunch) ||
@@ -411,7 +411,7 @@ class _$AppSettingImpl implements _AppSetting {
runtimeType,
locale,
const DeepCollectionEquality().hash(_dashboardWidgets),
onlyProxy,
onlyStatisticsProxy,
autoLaunch,
silentLaunch,
autoRun,
@@ -446,7 +446,7 @@ abstract class _AppSetting implements AppSetting {
{final String? locale,
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
final List<DashboardWidget> dashboardWidgets,
final bool onlyProxy,
final bool onlyStatisticsProxy,
final bool autoLaunch,
final bool silentLaunch,
final bool autoRun,
@@ -469,7 +469,7 @@ abstract class _AppSetting implements AppSetting {
@JsonKey(fromJson: dashboardWidgetsRealFormJson)
List<DashboardWidget> get dashboardWidgets;
@override
bool get onlyProxy;
bool get onlyStatisticsProxy;
@override
bool get autoLaunch;
@override

View File

@@ -57,7 +57,7 @@ _$AppSettingImpl _$$AppSettingImplFromJson(Map<String, dynamic> json) =>
dashboardWidgets: json['dashboardWidgets'] == null
? defaultDashboardWidgets
: dashboardWidgetsRealFormJson(json['dashboardWidgets'] as List?),
onlyProxy: json['onlyProxy'] as bool? ?? false,
onlyStatisticsProxy: json['onlyStatisticsProxy'] as bool? ?? false,
autoLaunch: json['autoLaunch'] as bool? ?? false,
silentLaunch: json['silentLaunch'] as bool? ?? false,
autoRun: json['autoRun'] as bool? ?? false,
@@ -78,7 +78,7 @@ Map<String, dynamic> _$$AppSettingImplToJson(_$AppSettingImpl instance) =>
'dashboardWidgets': instance.dashboardWidgets
.map((e) => _$DashboardWidgetEnumMap[e]!)
.toList(),
'onlyProxy': instance.onlyProxy,
'onlyStatisticsProxy': instance.onlyStatisticsProxy,
'autoLaunch': instance.autoLaunch,
'silentLaunch': instance.silentLaunch,
'autoRun': instance.autoRun,

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,6 @@ _$CoreStateImpl _$$CoreStateImplFromJson(Map<String, dynamic> json) =>
.map((e) => e as String)
.toList(),
ipv6: json['ipv6'] as bool,
onlyProxy: json['onlyProxy'] as bool,
);
Map<String, dynamic> _$$CoreStateImplToJson(_$CoreStateImpl instance) =>
@@ -36,7 +35,6 @@ Map<String, dynamic> _$$CoreStateImplToJson(_$CoreStateImpl instance) =>
'bypassDomain': instance.bypassDomain,
'routeAddress': instance.routeAddress,
'ipv6': instance.ipv6,
'onlyProxy': instance.onlyProxy,
};
_$AndroidVpnOptionsImpl _$$AndroidVpnOptionsImplFromJson(
@@ -84,6 +82,7 @@ _$ConfigExtendedParamsImpl _$$ConfigExtendedParamsImplFromJson(
selectedMap: Map<String, String>.from(json['selected-map'] as Map),
overrideDns: json['override-dns'] as bool,
testUrl: json['test-url'] as String,
onlyStatisticsProxy: json['only-statistics-proxy'] as bool,
);
Map<String, dynamic> _$$ConfigExtendedParamsImplToJson(
@@ -94,6 +93,7 @@ Map<String, dynamic> _$$ConfigExtendedParamsImplToJson(
'selected-map': instance.selectedMap,
'override-dns': instance.overrideDns,
'test-url': instance.testUrl,
'only-statistics-proxy': instance.onlyStatisticsProxy,
};
_$UpdateConfigParamsImpl _$$UpdateConfigParamsImplFromJson(
@@ -127,6 +127,20 @@ Map<String, dynamic> _$$ChangeProxyParamsImplToJson(
'proxy-name': instance.proxyName,
};
_$UpdateGeoDataParamsImpl _$$UpdateGeoDataParamsImplFromJson(
Map<String, dynamic> json) =>
_$UpdateGeoDataParamsImpl(
geoType: json['geo-type'] as String,
geoName: json['geo-name'] as String,
);
Map<String, dynamic> _$$UpdateGeoDataParamsImplToJson(
_$UpdateGeoDataParamsImpl instance) =>
<String, dynamic>{
'geo-type': instance.geoType,
'geo-name': instance.geoName,
};
_$AppMessageImpl _$$AppMessageImplFromJson(Map<String, dynamic> json) =>
_$AppMessageImpl(
type: $enumDecode(_$AppMessageTypeEnumMap, json['type']),
@@ -143,38 +157,36 @@ const _$AppMessageTypeEnumMap = {
AppMessageType.log: 'log',
AppMessageType.delay: 'delay',
AppMessageType.request: 'request',
AppMessageType.started: 'started',
AppMessageType.loaded: 'loaded',
};
_$ServiceMessageImpl _$$ServiceMessageImplFromJson(Map<String, dynamic> json) =>
_$ServiceMessageImpl(
type: $enumDecode(_$ServiceMessageTypeEnumMap, json['type']),
_$InvokeMessageImpl _$$InvokeMessageImplFromJson(Map<String, dynamic> json) =>
_$InvokeMessageImpl(
type: $enumDecode(_$InvokeMessageTypeEnumMap, json['type']),
data: json['data'],
);
Map<String, dynamic> _$$ServiceMessageImplToJson(
_$ServiceMessageImpl instance) =>
Map<String, dynamic> _$$InvokeMessageImplToJson(_$InvokeMessageImpl instance) =>
<String, dynamic>{
'type': _$ServiceMessageTypeEnumMap[instance.type]!,
'type': _$InvokeMessageTypeEnumMap[instance.type]!,
'data': instance.data,
};
const _$ServiceMessageTypeEnumMap = {
ServiceMessageType.protect: 'protect',
ServiceMessageType.process: 'process',
ServiceMessageType.started: 'started',
ServiceMessageType.loaded: 'loaded',
const _$InvokeMessageTypeEnumMap = {
InvokeMessageType.protect: 'protect',
InvokeMessageType.process: 'process',
};
_$DelayImpl _$$DelayImplFromJson(Map<String, dynamic> json) => _$DelayImpl(
name: json['name'] as String,
url: json['url'] as String,
value: (json['value'] as num?)?.toInt(),
);
Map<String, dynamic> _$$DelayImplToJson(_$DelayImpl instance) =>
<String, dynamic>{
'name': instance.name,
'url': instance.url,
'value': instance.value,
};
@@ -190,7 +202,7 @@ Map<String, dynamic> _$$NowImplToJson(_$NowImpl instance) => <String, dynamic>{
_$ProcessDataImpl _$$ProcessDataImplFromJson(Map<String, dynamic> json) =>
_$ProcessDataImpl(
id: (json['id'] as num).toInt(),
id: json['id'] as String,
metadata: Metadata.fromJson(json['metadata'] as Map<String, dynamic>),
);
@@ -201,7 +213,7 @@ Map<String, dynamic> _$$ProcessDataImplToJson(_$ProcessDataImpl instance) =>
};
_$FdImpl _$$FdImplFromJson(Map<String, dynamic> json) => _$FdImpl(
id: (json['id'] as num).toInt(),
id: json['id'] as String,
value: (json['value'] as num).toInt(),
);
@@ -212,7 +224,7 @@ Map<String, dynamic> _$$FdImplToJson(_$FdImpl instance) => <String, dynamic>{
_$ProcessMapItemImpl _$$ProcessMapItemImplFromJson(Map<String, dynamic> json) =>
_$ProcessMapItemImpl(
id: (json['id'] as num).toInt(),
id: json['id'] as String,
value: json['value'] as String,
);
@@ -293,6 +305,7 @@ Map<String, dynamic> _$$TunPropsImplToJson(_$TunPropsImpl instance) =>
_$ActionImpl _$$ActionImplFromJson(Map<String, dynamic> json) => _$ActionImpl(
method: $enumDecode(_$ActionMethodEnumMap, json['method']),
data: json['data'],
defaultValue: json['default-value'],
id: json['id'] as String,
);
@@ -300,6 +313,7 @@ Map<String, dynamic> _$$ActionImplToJson(_$ActionImpl instance) =>
<String, dynamic>{
'method': _$ActionMethodEnumMap[instance.method]!,
'data': instance.data,
'default-value': instance.defaultValue,
'id': instance.id,
};
@@ -331,4 +345,27 @@ const _$ActionMethodEnumMap = {
ActionMethod.stopListener: 'stopListener',
ActionMethod.getCountryCode: 'getCountryCode',
ActionMethod.getMemory: 'getMemory',
ActionMethod.setFdMap: 'setFdMap',
ActionMethod.setProcessMap: 'setProcessMap',
ActionMethod.setState: 'setState',
ActionMethod.startTun: 'startTun',
ActionMethod.stopTun: 'stopTun',
ActionMethod.getRunTime: 'getRunTime',
ActionMethod.updateDns: 'updateDns',
ActionMethod.getAndroidVpnOptions: 'getAndroidVpnOptions',
ActionMethod.getCurrentProfileName: 'getCurrentProfileName',
};
_$ActionResultImpl _$$ActionResultImplFromJson(Map<String, dynamic> json) =>
_$ActionResultImpl(
method: $enumDecode(_$ActionMethodEnumMap, json['method']),
data: json['data'],
id: json['id'] as String?,
);
Map<String, dynamic> _$$ActionResultImplToJson(_$ActionResultImpl instance) =>
<String, dynamic>{
'method': _$ActionMethodEnumMap[instance.method]!,
'data': instance.data,
'id': instance.id,
};

View File

@@ -2298,6 +2298,7 @@ abstract class _ProxiesListSelectorState implements ProxiesListSelectorState {
/// @nodoc
mixin _$ProxyGroupSelectorState {
String? get testUrl => throw _privateConstructorUsedError;
ProxiesSortType get proxiesSortType => throw _privateConstructorUsedError;
ProxyCardType get proxyCardType => throw _privateConstructorUsedError;
num get sortNum => throw _privateConstructorUsedError;
@@ -2319,7 +2320,8 @@ abstract class $ProxyGroupSelectorStateCopyWith<$Res> {
_$ProxyGroupSelectorStateCopyWithImpl<$Res, ProxyGroupSelectorState>;
@useResult
$Res call(
{ProxiesSortType proxiesSortType,
{String? testUrl,
ProxiesSortType proxiesSortType,
ProxyCardType proxyCardType,
num sortNum,
GroupType groupType,
@@ -2343,6 +2345,7 @@ class _$ProxyGroupSelectorStateCopyWithImpl<$Res,
@pragma('vm:prefer-inline')
@override
$Res call({
Object? testUrl = freezed,
Object? proxiesSortType = null,
Object? proxyCardType = null,
Object? sortNum = null,
@@ -2351,6 +2354,10 @@ class _$ProxyGroupSelectorStateCopyWithImpl<$Res,
Object? columns = null,
}) {
return _then(_value.copyWith(
testUrl: freezed == testUrl
? _value.testUrl
: testUrl // ignore: cast_nullable_to_non_nullable
as String?,
proxiesSortType: null == proxiesSortType
? _value.proxiesSortType
: proxiesSortType // ignore: cast_nullable_to_non_nullable
@@ -2389,7 +2396,8 @@ abstract class _$$ProxyGroupSelectorStateImplCopyWith<$Res>
@override
@useResult
$Res call(
{ProxiesSortType proxiesSortType,
{String? testUrl,
ProxiesSortType proxiesSortType,
ProxyCardType proxyCardType,
num sortNum,
GroupType groupType,
@@ -2412,6 +2420,7 @@ class __$$ProxyGroupSelectorStateImplCopyWithImpl<$Res>
@pragma('vm:prefer-inline')
@override
$Res call({
Object? testUrl = freezed,
Object? proxiesSortType = null,
Object? proxyCardType = null,
Object? sortNum = null,
@@ -2420,6 +2429,10 @@ class __$$ProxyGroupSelectorStateImplCopyWithImpl<$Res>
Object? columns = null,
}) {
return _then(_$ProxyGroupSelectorStateImpl(
testUrl: freezed == testUrl
? _value.testUrl
: testUrl // ignore: cast_nullable_to_non_nullable
as String?,
proxiesSortType: null == proxiesSortType
? _value.proxiesSortType
: proxiesSortType // ignore: cast_nullable_to_non_nullable
@@ -2452,7 +2465,8 @@ class __$$ProxyGroupSelectorStateImplCopyWithImpl<$Res>
class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
const _$ProxyGroupSelectorStateImpl(
{required this.proxiesSortType,
{required this.testUrl,
required this.proxiesSortType,
required this.proxyCardType,
required this.sortNum,
required this.groupType,
@@ -2460,6 +2474,8 @@ class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
required this.columns})
: _proxies = proxies;
@override
final String? testUrl;
@override
final ProxiesSortType proxiesSortType;
@override
@@ -2481,7 +2497,7 @@ class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
@override
String toString() {
return 'ProxyGroupSelectorState(proxiesSortType: $proxiesSortType, proxyCardType: $proxyCardType, sortNum: $sortNum, groupType: $groupType, proxies: $proxies, columns: $columns)';
return 'ProxyGroupSelectorState(testUrl: $testUrl, proxiesSortType: $proxiesSortType, proxyCardType: $proxyCardType, sortNum: $sortNum, groupType: $groupType, proxies: $proxies, columns: $columns)';
}
@override
@@ -2489,6 +2505,7 @@ class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$ProxyGroupSelectorStateImpl &&
(identical(other.testUrl, testUrl) || other.testUrl == testUrl) &&
(identical(other.proxiesSortType, proxiesSortType) ||
other.proxiesSortType == proxiesSortType) &&
(identical(other.proxyCardType, proxyCardType) ||
@@ -2503,6 +2520,7 @@ class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
@override
int get hashCode => Object.hash(
runtimeType,
testUrl,
proxiesSortType,
proxyCardType,
sortNum,
@@ -2522,13 +2540,16 @@ class _$ProxyGroupSelectorStateImpl implements _ProxyGroupSelectorState {
abstract class _ProxyGroupSelectorState implements ProxyGroupSelectorState {
const factory _ProxyGroupSelectorState(
{required final ProxiesSortType proxiesSortType,
{required final String? testUrl,
required final ProxiesSortType proxiesSortType,
required final ProxyCardType proxyCardType,
required final num sortNum,
required final GroupType groupType,
required final List<Proxy> proxies,
required final int columns}) = _$ProxyGroupSelectorStateImpl;
@override
String? get testUrl;
@override
ProxiesSortType get proxiesSortType;
@override