Files
MWClash/lib/models/app.dart
chen08209 ed7868282a Add android separates the core process
Support core status check and force restart

Optimize proxies page and access page

Update flutter and pub dependencies

Update go version

Optimize more details
2025-09-23 15:23:58 +08:00

50 lines
1.5 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/enum/enum.dart';
import 'package:fl_clash/models/selector.dart';
import 'package:flutter/services.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'common.dart';
import 'core.dart';
part 'generated/app.freezed.dart';
typedef DelayMap = Map<String, Map<String, int?>>;
@freezed
abstract class AppState with _$AppState {
const factory AppState({
@Default(false) bool isInit,
@Default(false) bool backBlock,
@Default(PageLabel.dashboard) PageLabel pageLabel,
@Default([]) List<Package> packages,
@Default(0) int sortNum,
required Size viewSize,
@Default(0) double sideWidth,
@Default({}) DelayMap delayMap,
@Default([]) List<Group> groups,
@Default(0) int checkIpNum,
required Brightness brightness,
int? runTime,
@Default([]) List<ExternalProvider> providers,
String? localIp,
required FixedList<TrackerInfo> requests,
required int version,
required FixedList<Log> logs,
required FixedList<Traffic> traffics,
required Traffic totalTraffic,
@Default(false) bool realTunEnable,
@Default(false) bool loading,
required SystemUiOverlayStyle systemUiOverlayStyle,
ProfileOverrideModel? profileOverrideModel,
@Default({}) Map<QueryTag, String> queryMap,
@Default(CoreStatus.connecting) CoreStatus coreStatus,
}) = _AppState;
}
extension AppStateExt on AppState {
ViewMode get viewMode => utils.getViewMode(viewSize.width);
bool get isStart => runTime != null;
}