Support proxies search Support svg display Add some scenes auto close connections Update core Optimize more details
111 lines
3.5 KiB
Dart
111 lines
3.5 KiB
Dart
import 'dart:io';
|
|
import 'dart:math';
|
|
import 'dart:ui';
|
|
|
|
import 'package:collection/collection.dart';
|
|
import 'package:fl_clash/common/common.dart';
|
|
import 'package:fl_clash/enum/enum.dart';
|
|
import 'package:fl_clash/models/models.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
const appName = "FlClash";
|
|
const appHelperService = "FlClashHelperService";
|
|
const coreName = "clash.meta";
|
|
const browserUa =
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
|
|
const packageName = "com.follow.clash";
|
|
final unixSocketPath = "/tmp/FlClashSocket_${Random().nextInt(10000)}.sock";
|
|
const helperPort = 47890;
|
|
const maxTextScale = 1.4;
|
|
const minTextScale = 0.8;
|
|
final baseInfoEdgeInsets = EdgeInsets.symmetric(
|
|
vertical: 16.ap,
|
|
horizontal: 16.ap,
|
|
);
|
|
|
|
final defaultTextScaleFactor =
|
|
WidgetsBinding.instance.platformDispatcher.textScaleFactor;
|
|
const httpTimeoutDuration = Duration(milliseconds: 5000);
|
|
const moreDuration = Duration(milliseconds: 100);
|
|
const animateDuration = Duration(milliseconds: 100);
|
|
const midDuration = Duration(milliseconds: 200);
|
|
const commonDuration = Duration(milliseconds: 300);
|
|
const defaultUpdateDuration = Duration(days: 1);
|
|
const mmdbFileName = "geoip.metadb";
|
|
const asnFileName = "ASN.mmdb";
|
|
const geoIpFileName = "GeoIP.dat";
|
|
const geoSiteFileName = "GeoSite.dat";
|
|
final double kHeaderHeight = system.isDesktop
|
|
? !Platform.isMacOS
|
|
? 40
|
|
: 28
|
|
: 0;
|
|
const profilesDirectoryName = "profiles";
|
|
const localhost = "127.0.0.1";
|
|
const clashConfigKey = "clash_config";
|
|
const configKey = "config";
|
|
const double dialogCommonWidth = 300;
|
|
const repository = "chen08209/FlClash";
|
|
const defaultExternalController = "127.0.0.1:9090";
|
|
const maxMobileWidth = 600;
|
|
const maxLaptopWidth = 840;
|
|
const defaultTestUrl = "https://www.gstatic.com/generate_204";
|
|
final commonFilter = ImageFilter.blur(
|
|
sigmaX: 5,
|
|
sigmaY: 5,
|
|
tileMode: TileMode.mirror,
|
|
);
|
|
|
|
const navigationItemListEquality = ListEquality<NavigationItem>();
|
|
const connectionListEquality = ListEquality<Connection>();
|
|
const stringListEquality = ListEquality<String>();
|
|
const intListEquality = ListEquality<int>();
|
|
const logListEquality = ListEquality<Log>();
|
|
const groupListEquality = ListEquality<Group>();
|
|
const externalProviderListEquality = ListEquality<ExternalProvider>();
|
|
const packageListEquality = ListEquality<Package>();
|
|
const hotKeyActionListEquality = ListEquality<HotKeyAction>();
|
|
const stringAndStringMapEquality = MapEquality<String, String>();
|
|
const stringAndStringMapEntryIterableEquality =
|
|
IterableEquality<MapEntry<String, String>>();
|
|
const delayMapEquality = MapEquality<String, Map<String, int?>>();
|
|
const stringSetEquality = SetEquality<String>();
|
|
const keyboardModifierListEquality = SetEquality<KeyboardModifier>();
|
|
|
|
const viewModeColumnsMap = {
|
|
ViewMode.mobile: [2, 1],
|
|
ViewMode.laptop: [3, 2],
|
|
ViewMode.desktop: [4, 3],
|
|
};
|
|
|
|
// const proxiesStoreKey = PageStorageKey<String>('proxies');
|
|
// const toolsStoreKey = PageStorageKey<String>('tools');
|
|
// const profilesStoreKey = PageStorageKey<String>('profiles');
|
|
|
|
const defaultPrimaryColor = 0XFFD8C0C3;
|
|
|
|
double getWidgetHeight(num lines) {
|
|
return max(lines * 84 + (lines - 1) * 16, 0).ap;
|
|
}
|
|
|
|
const maxLength = 150;
|
|
|
|
final mainIsolate = "FlClashMainIsolate";
|
|
|
|
final serviceIsolate = "FlClashServiceIsolate";
|
|
|
|
const defaultPrimaryColors = [
|
|
0xFF795548,
|
|
0xFF03A9F4,
|
|
0xFFFFFF00,
|
|
0XFFBBC9CC,
|
|
0XFFABD397,
|
|
defaultPrimaryColor,
|
|
0XFF665390,
|
|
];
|
|
|
|
const scriptTemplate = """
|
|
const main = (config) => {
|
|
return config;
|
|
}""";
|