Remake dashboard

Optimize theme

Optimize more details

Update flutter version
This commit is contained in:
chen08209
2024-12-09 01:40:39 +08:00
parent 9cb75f4814
commit ef97ef40a1
101 changed files with 4951 additions and 1841 deletions

View File

@@ -1,9 +1,39 @@
// ignore_for_file: constant_identifier_names
import 'dart:io';
import 'package:fl_clash/fragments/dashboard/widgets/widgets.dart';
import 'package:fl_clash/widgets/widgets.dart';
import 'package:flutter/services.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hotkey_manager/hotkey_manager.dart';
enum SupportPlatform {
Windows,
MacOS,
Linux,
Android;
static SupportPlatform get currentPlatform {
if (Platform.isWindows) {
return SupportPlatform.Windows;
} else if (Platform.isMacOS) {
return SupportPlatform.MacOS;
} else if (Platform.isLinux) {
return SupportPlatform.Linux;
} else if (Platform.isAndroid) {
return SupportPlatform.Android;
}
throw "invalid platform";
}
}
const desktopPlatforms = [
SupportPlatform.Linux,
SupportPlatform.MacOS,
SupportPlatform.Windows,
];
enum GroupType { Selector, URLTest, Fallback, LoadBalance, Relay }
enum GroupName { GLOBAL, Proxy, Auto, Fallback }
@@ -91,6 +121,10 @@ enum RecoveryOption {
enum ChipType { action, delete }
enum CommonCardType { plain, filled }
//
// extension CommonCardTypeExt on CommonCardType {
// CommonCardType get variant => CommonCardType.plain;
// }
enum ProxiesType { tab, list }
@@ -205,6 +239,8 @@ enum ActionMethod {
stopLog,
startListener,
stopListener,
getCountryCode,
getMemory,
}
enum AuthorizeCode { none, success, error }
@@ -214,3 +250,86 @@ enum WindowsHelperServiceStatus {
presence,
running,
}
enum DebounceTag {
updateClashConfig,
updateGroups,
addCheckIpNum,
applyProfile,
savePreferences,
changeProxy,
checkIp,
handleWill,
updateDelay,
vpnTip,
autoLaunch
}
enum DashboardWidget {
networkSpeed(
GridItem(
crossAxisCellCount: 8,
child: NetworkSpeed(),
),
),
outboundMode(
GridItem(
crossAxisCellCount: 4,
child: OutboundMode(),
),
),
trafficUsage(
GridItem(
crossAxisCellCount: 4,
child: TrafficUsage(),
),
),
networkDetection(
GridItem(
crossAxisCellCount: 4,
child: NetworkDetection(),
),
),
tunButton(
GridItem(
crossAxisCellCount: 4,
child: TUNButton(),
),
platforms: desktopPlatforms,
),
systemProxyButton(
GridItem(
crossAxisCellCount: 4,
child: SystemProxyButton(),
),
platforms: desktopPlatforms,
),
intranetIp(
GridItem(
crossAxisCellCount: 4,
child: IntranetIP(),
),
),
memoryInfo(
GridItem(
crossAxisCellCount: 4,
child: MemoryInfo(),
),
);
final GridItem widget;
final List<SupportPlatform> platforms;
const DashboardWidget(
this.widget, {
this.platforms = SupportPlatform.values,
});
static DashboardWidget getDashboardWidget(GridItem gridItem) {
final dashboardWidgets = DashboardWidget.values;
final index = dashboardWidgets.indexWhere(
(item) => item.widget == gridItem,
);
return dashboardWidgets[index];
}
}