// ignore_for_file: constant_identifier_names 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 listHeaderPadding = EdgeInsets.only( left: 16.ap, right: 8.ap, top: 24.ap, bottom: 8.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 MMDB = 'GEOIP.metadb'; const ASN = 'ASN.mmdb'; const GEOIP = 'GEOIP.dat'; const GEOSITE = 'GEOSITE.dat'; final double kHeaderHeight = system.isDesktop ? !system.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(); const trackerInfoListEquality = ListEquality(); const stringListEquality = ListEquality(); const intListEquality = ListEquality(); const logListEquality = ListEquality(); const groupListEquality = ListEquality(); const ruleListEquality = ListEquality(); const scriptEquality = ListEquality