2024-04-30 23:38:49 +08:00
|
|
|
import 'package:fl_clash/enum/enum.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
|
|
|
import 'config.dart';
|
|
|
|
|
import 'navigation.dart';
|
|
|
|
|
import 'profile.dart';
|
2024-05-03 14:31:10 +08:00
|
|
|
import 'proxy.dart';
|
2024-04-30 23:38:49 +08:00
|
|
|
|
|
|
|
|
part 'generated/selector.freezed.dart';
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class StartButtonSelectorState with _$StartButtonSelectorState {
|
|
|
|
|
const factory StartButtonSelectorState({
|
|
|
|
|
required bool isInit,
|
|
|
|
|
required bool hasProfile,
|
|
|
|
|
}) = _StartButtonSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class UpdateCurrentDelaySelectorState with _$UpdateCurrentDelaySelectorState {
|
|
|
|
|
const factory UpdateCurrentDelaySelectorState({
|
|
|
|
|
required String? currentProxyName,
|
|
|
|
|
required bool isCurrent,
|
|
|
|
|
required int? delay,
|
|
|
|
|
required bool isInit,
|
|
|
|
|
}) = _UpdateCurrentDelaySelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class NetworkDetectionSelectorState with _$NetworkDetectionSelectorState {
|
|
|
|
|
const factory NetworkDetectionSelectorState({
|
|
|
|
|
required String? currentProxyName,
|
|
|
|
|
required int? delay,
|
|
|
|
|
}) = _NetworkDetectionSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class ProfilesSelectorState with _$ProfilesSelectorState {
|
|
|
|
|
const factory ProfilesSelectorState({
|
|
|
|
|
required List<Profile> profiles,
|
|
|
|
|
required String? currentProfileId,
|
2024-05-20 15:15:09 +08:00
|
|
|
required ViewMode viewMode,
|
2024-04-30 23:38:49 +08:00
|
|
|
}) = _ProfilesSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class ApplicationSelectorState with _$ApplicationSelectorState {
|
|
|
|
|
const factory ApplicationSelectorState({
|
|
|
|
|
String? locale,
|
|
|
|
|
ThemeMode? themeMode,
|
|
|
|
|
int? primaryColor,
|
|
|
|
|
}) = _ApplicationSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class TrayContainerSelectorState with _$TrayContainerSelectorState{
|
|
|
|
|
const factory TrayContainerSelectorState({
|
|
|
|
|
required Mode mode,
|
|
|
|
|
required bool autoLaunch,
|
|
|
|
|
required bool isRun,
|
|
|
|
|
required String? locale,
|
|
|
|
|
})=_TrayContainerSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class UpdateNavigationsSelector with _$UpdateNavigationsSelector{
|
|
|
|
|
const factory UpdateNavigationsSelector({
|
|
|
|
|
required bool openLogs,
|
|
|
|
|
required bool hasProxies,
|
|
|
|
|
}) = _UpdateNavigationsSelector;
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-20 15:15:09 +08:00
|
|
|
|
2024-04-30 23:38:49 +08:00
|
|
|
@freezed
|
2024-05-20 15:15:09 +08:00
|
|
|
class HomeSelectorState with _$HomeSelectorState {
|
|
|
|
|
const factory HomeSelectorState({
|
2024-04-30 23:38:49 +08:00
|
|
|
required String currentLabel,
|
2024-05-20 15:15:09 +08:00
|
|
|
required List<NavigationItem> navigationItems,
|
|
|
|
|
required ViewMode viewMode,
|
2024-04-30 23:38:49 +08:00
|
|
|
required String? locale,
|
2024-05-20 15:15:09 +08:00
|
|
|
}) = _HomeSelectorState;
|
2024-04-30 23:38:49 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
2024-05-20 15:15:09 +08:00
|
|
|
class HomeBodySelectorState with _$HomeBodySelectorState {
|
|
|
|
|
const factory HomeBodySelectorState({
|
|
|
|
|
required List<NavigationItem> navigationItems,
|
|
|
|
|
}) = _HomeBodySelectorState;
|
2024-04-30 23:38:49 +08:00
|
|
|
}
|
2024-05-03 14:31:10 +08:00
|
|
|
|
2024-05-04 00:14:07 +08:00
|
|
|
@freezed
|
|
|
|
|
class ProxiesCardSelectorState with _$ProxiesCardSelectorState{
|
|
|
|
|
const factory ProxiesCardSelectorState({
|
2024-05-06 14:03:45 +08:00
|
|
|
required bool isSelected,
|
2024-05-04 00:14:07 +08:00
|
|
|
}) = _ProxiesCardSelectorState;
|
|
|
|
|
}
|
2024-05-06 10:32:39 +08:00
|
|
|
|
|
|
|
|
@freezed
|
2024-05-07 13:50:00 +08:00
|
|
|
class ProxiesSelectorState with _$ProxiesSelectorState{
|
|
|
|
|
const factory ProxiesSelectorState({
|
2024-05-10 10:11:27 +08:00
|
|
|
required List<String> groupNames,
|
|
|
|
|
}) = _ProxiesSelectorState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class ProxiesTabViewSelectorState with _$ProxiesTabViewSelectorState{
|
|
|
|
|
const factory ProxiesTabViewSelectorState({
|
2024-05-06 10:32:39 +08:00
|
|
|
required ProxiesSortType proxiesSortType,
|
|
|
|
|
required num sortNum,
|
2024-05-10 10:11:27 +08:00
|
|
|
required Group group,
|
2024-05-20 15:15:09 +08:00
|
|
|
required ViewMode viewMode,
|
2024-05-10 10:11:27 +08:00
|
|
|
}) = _ProxiesTabViewSelectorState;
|
2024-05-06 10:32:39 +08:00
|
|
|
}
|
2024-05-20 15:15:09 +08:00
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class MoreToolsSelectorState with _$MoreToolsSelectorState {
|
|
|
|
|
const factory MoreToolsSelectorState({
|
|
|
|
|
required List<NavigationItem> navigationItems,
|
|
|
|
|
}) = _MoreToolsSelectorState;
|
2024-06-03 11:24:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@freezed
|
|
|
|
|
class PackageListSelectorState with _$PackageListSelectorState {
|
|
|
|
|
const factory PackageListSelectorState({
|
|
|
|
|
required AccessControl accessControl,
|
|
|
|
|
required bool isAccessControl,
|
|
|
|
|
}) = _PackageListSelectorState;
|
2024-05-20 15:15:09 +08:00
|
|
|
}
|