Преглед на файлове

feat: 更新应用图标

BaiLuoYan преди 1 седмица
родител
ревизия
ca5d2a6298
променени са 85 файла, в които са добавени 267 реда и са изтрити 215 реда
  1. 77 0
      android/app/src/main/kotlin/com/flashlink/vpn/MainActivity.kt
  2. BIN
      android/app/src/main/res/drawable-hdpi/android12splash.png
  3. BIN
      android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
  4. BIN
      android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png
  5. BIN
      android/app/src/main/res/drawable-hdpi/splash.png
  6. BIN
      android/app/src/main/res/drawable-mdpi/android12splash.png
  7. BIN
      android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
  8. BIN
      android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png
  9. BIN
      android/app/src/main/res/drawable-mdpi/splash.png
  10. BIN
      android/app/src/main/res/drawable-night-hdpi/android12splash.png
  11. BIN
      android/app/src/main/res/drawable-night-mdpi/android12splash.png
  12. BIN
      android/app/src/main/res/drawable-night-xhdpi/android12splash.png
  13. BIN
      android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
  14. BIN
      android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
  15. BIN
      android/app/src/main/res/drawable-xhdpi/android12splash.png
  16. BIN
      android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
  17. BIN
      android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png
  18. BIN
      android/app/src/main/res/drawable-xhdpi/splash.png
  19. BIN
      android/app/src/main/res/drawable-xxhdpi/android12splash.png
  20. BIN
      android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
  21. BIN
      android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png
  22. BIN
      android/app/src/main/res/drawable-xxhdpi/splash.png
  23. BIN
      android/app/src/main/res/drawable-xxxhdpi/android12splash.png
  24. BIN
      android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
  25. BIN
      android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png
  26. BIN
      android/app/src/main/res/drawable-xxxhdpi/splash.png
  27. BIN
      android/app/src/main/res/mipmap-hdpi/launcher_icon.png
  28. BIN
      android/app/src/main/res/mipmap-mdpi/launcher_icon.png
  29. BIN
      android/app/src/main/res/mipmap-xhdpi/launcher_icon.png
  30. BIN
      android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png
  31. BIN
      android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png
  32. 2 2
      android/app/src/main/res/values-v31/styles.xml
  33. BIN
      assets/icon.png
  34. BIN
      assets/icon_f.png
  35. BIN
      assets/icon_splash.png
  36. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
  37. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
  38. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
  39. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
  40. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
  41. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
  42. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
  43. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
  44. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
  45. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
  46. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
  47. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
  48. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
  49. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
  50. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
  51. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
  52. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
  53. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
  54. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
  55. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
  56. BIN
      ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
  57. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
  58. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
  59. BIN
      ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
  60. 65 65
      ios/Runner/Info.plist
  61. 1 1
      lib/app/api/core/api_core_paths.dart
  62. 1 1
      lib/app/constants/configs.dart
  63. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
  64. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
  65. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
  66. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
  67. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
  68. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
  69. BIN
      macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
  70. BIN
      web/favicon.png
  71. BIN
      web/icons/Icon-192.png
  72. BIN
      web/icons/Icon-512.png
  73. BIN
      web/icons/Icon-maskable-192.png
  74. BIN
      web/icons/Icon-maskable-512.png
  75. 88 113
      web/index.html
  76. 33 33
      web/manifest.json
  77. BIN
      web/splash/img/dark-1x.png
  78. BIN
      web/splash/img/dark-2x.png
  79. BIN
      web/splash/img/dark-3x.png
  80. BIN
      web/splash/img/dark-4x.png
  81. BIN
      web/splash/img/light-1x.png
  82. BIN
      web/splash/img/light-2x.png
  83. BIN
      web/splash/img/light-3x.png
  84. BIN
      web/splash/img/light-4x.png
  85. BIN
      windows/runner/resources/app_icon.ico

+ 77 - 0
android/app/src/main/kotlin/com/flashlink/vpn/MainActivity.kt

@@ -0,0 +1,77 @@
+package com.flashlink.vpn
+
+import android.app.ComponentCaller
+import android.content.Intent
+import android.graphics.Color
+import io.flutter.embedding.android.FlutterActivity
+import io.flutter.embedding.engine.FlutterEngine
+import android.util.Log
+import androidx.core.view.WindowCompat
+
+class MainActivity: FlutterActivity() {
+
+    private lateinit var coreApiImpl: CoreApiImpl
+    companion object {
+        private const val TAG = "MainActivity"
+    }
+
+    override fun onCreate(savedInstanceState: android.os.Bundle?) {
+        super.onCreate(savedInstanceState)
+        VLog.init(this, "client")
+        WindowCompat.setDecorFitsSystemWindows(window, false)
+
+        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+            window.isNavigationBarContrastEnforced = false
+            window.navigationBarColor = Color.TRANSPARENT
+            window.statusBarColor = Color.TRANSPARENT
+        } else if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
+            window.insetsController?.let { controller ->
+                controller.systemBarsBehavior =
+                    android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
+                controller.setSystemBarsAppearance(
+                    android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS,
+                    android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS
+                )
+            }
+            window.navigationBarColor = Color.TRANSPARENT
+            window.statusBarColor = Color.TRANSPARENT
+        } else {
+            window.decorView.systemUiVisibility = (
+                android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
+                android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
+                android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+            )
+            window.navigationBarColor = Color.TRANSPARENT
+            window.statusBarColor = Color.TRANSPARENT
+        }
+
+        Log.d(TAG, "MainActivity onCreate - 进程ID: ${android.os.Process.myPid()}")
+    }
+
+    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
+        super.configureFlutterEngine(flutterEngine)
+        val messenger = flutterEngine.dartExecutor.binaryMessenger
+
+        coreApiImpl = CoreApiImpl(this)
+        coreApiImpl.initXrayApi()
+        coreApiImpl.setVpnServiceEventListener()
+        CoreApi.setUp(messenger, coreApiImpl)
+        coreApiImpl.registerEventStreamHandler(messenger)
+
+        Log.d(TAG, "CoreApi 和事件流处理器已配置完成")
+    }
+
+    override fun onActivityResult(
+        requestCode: Int,
+        resultCode: Int,
+        data: Intent?
+    ) {
+        super.onActivityResult(requestCode, resultCode, data)
+        coreApiImpl.onActivityResult(requestCode, resultCode, data)
+    }
+
+    override fun onDestroy() {
+        coreApiImpl.unInitXrayApi()
+        super.onDestroy()
+    }
+}

BIN
android/app/src/main/res/drawable-hdpi/android12splash.png


BIN
android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png


BIN
android/app/src/main/res/drawable-hdpi/ic_launcher_monochrome.png


BIN
android/app/src/main/res/drawable-hdpi/splash.png


BIN
android/app/src/main/res/drawable-mdpi/android12splash.png


BIN
android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png


BIN
android/app/src/main/res/drawable-mdpi/ic_launcher_monochrome.png


BIN
android/app/src/main/res/drawable-mdpi/splash.png


BIN
android/app/src/main/res/drawable-night-hdpi/android12splash.png


BIN
android/app/src/main/res/drawable-night-mdpi/android12splash.png


BIN
android/app/src/main/res/drawable-night-xhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-night-xxhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-xhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png


BIN
android/app/src/main/res/drawable-xhdpi/ic_launcher_monochrome.png


BIN
android/app/src/main/res/drawable-xhdpi/splash.png


BIN
android/app/src/main/res/drawable-xxhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png


BIN
android/app/src/main/res/drawable-xxhdpi/ic_launcher_monochrome.png


BIN
android/app/src/main/res/drawable-xxhdpi/splash.png


BIN
android/app/src/main/res/drawable-xxxhdpi/android12splash.png


BIN
android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png


BIN
android/app/src/main/res/drawable-xxxhdpi/ic_launcher_monochrome.png


BIN
android/app/src/main/res/drawable-xxxhdpi/splash.png


BIN
android/app/src/main/res/mipmap-hdpi/launcher_icon.png


BIN
android/app/src/main/res/mipmap-mdpi/launcher_icon.png


BIN
android/app/src/main/res/mipmap-xhdpi/launcher_icon.png


BIN
android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png


BIN
android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png


+ 2 - 2
android/app/src/main/res/values-v31/styles.xml

@@ -6,9 +6,9 @@
         <item name="android:windowFullscreen">false</item>
         <item name="android:windowFullscreen">false</item>
         <item name="android:windowDrawsSystemBarBackgrounds">false</item>
         <item name="android:windowDrawsSystemBarBackgrounds">false</item>
         <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
         <item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
-        <item name="android:windowSplashScreenBackground">#FFFFFF</item>
+        <item name="android:windowSplashScreenBackground">#000000</item>
         <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
         <item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
-        <item name="android:windowSplashScreenIconBackgroundColor">#FFFFFF</item>
+        <item name="android:windowSplashScreenIconBackgroundColor">#000000</item>
     </style>
     </style>
     <!-- Theme applied to the Android Window as soon as the process has started.
     <!-- Theme applied to the Android Window as soon as the process has started.
          This theme determines the color of the Android Window while your
          This theme determines the color of the Android Window while your

BIN
assets/icon.png


BIN
assets/icon_f.png


BIN
assets/icon_splash.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png


BIN
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png


BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png


BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png


BIN
ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png


+ 65 - 65
ios/Runner/Info.plist

@@ -1,68 +1,68 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <plist version="1.0">
-  <dict>
-    <key>CFBundleDevelopmentRegion</key>
-    <string>$(DEVELOPMENT_LANGUAGE)</string>
-    <key>CFBundleDisplayName</key>
-    <string>FlashLink VPN</string>
-    <key>CFBundleExecutable</key>
-    <string>$(EXECUTABLE_NAME)</string>
-    <key>CFBundleIdentifier</key>
-    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
-    <key>CFBundleInfoDictionaryVersion</key>
-    <string>6.0</string>
-    <key>CFBundleName</key>
-    <string>FlashLink VPN</string>
-    <key>CFBundlePackageType</key>
-    <string>APPL</string>
-    <key>CFBundleShortVersionString</key>
-    <string>$(FLUTTER_BUILD_NAME)</string>
-    <key>CFBundleSignature</key>
-    <string>????</string>
-    <key>CFBundleVersion</key>
-    <string>$(FLUTTER_BUILD_NUMBER)</string>
-    <key>LSRequiresIPhoneOS</key>
-    <true/>
-    <key>UILaunchStoryboardName</key>
-    <string>LaunchScreen</string>
-    <key>UIMainStoryboardFile</key>
-    <string>Main</string>
-    <key>UISupportedInterfaceOrientations</key>
-    <array>
-      <string>UIInterfaceOrientationPortrait</string>
-      <string>UIInterfaceOrientationLandscapeLeft</string>
-      <string>UIInterfaceOrientationLandscapeRight</string>
-    </array>
-    <key>UISupportedInterfaceOrientations~ipad</key>
-    <array>
-      <string>UIInterfaceOrientationPortrait</string>
-      <string>UIInterfaceOrientationPortraitUpsideDown</string>
-      <string>UIInterfaceOrientationLandscapeLeft</string>
-      <string>UIInterfaceOrientationLandscapeRight</string>
-    </array>
-    <key>CADisableMinimumFrameDurationOnPhone</key>
-    <true/>
-    <key>UIApplicationSupportsIndirectInputEvents</key>
-    <true/>
-    <key>UIStatusBarHidden</key>
-    <false/>
-    <key>NSPhotoLibraryAddUsageDescription</key>
-    <string>We need access to save your Pre Code image to your photo library.</string>
-    <key>NSPhotoLibraryUsageDescription</key>
-    <string>We need access to save your Pre Code image to your photo library.</string>
-    <!-- WebView 相关配置 -->
-    <key>NSAppTransportSecurity</key>
-    <dict>
-      <key>NSAllowsArbitraryLoads</key>
-      <true/>
-      <key>NSAllowsLocalNetworking</key>
-      <true/>
-    </dict>
-    <!-- WebView 可能需要的相机和麦克风权限 -->
-    <key>NSCameraUsageDescription</key>
-    <string>This app needs camera access to use camera features in web pages.</string>
-    <key>NSMicrophoneUsageDescription</key>
-    <string>This app needs microphone access to use audio features in web pages.</string>
-  </dict>
-</plist>
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>$(DEVELOPMENT_LANGUAGE)</string>
+		<key>CFBundleDisplayName</key>
+		<string>FlashLink VPN</string>
+		<key>CFBundleExecutable</key>
+		<string>$(EXECUTABLE_NAME)</string>
+		<key>CFBundleIdentifier</key>
+		<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundleName</key>
+		<string>FlashLink VPN</string>
+		<key>CFBundlePackageType</key>
+		<string>APPL</string>
+		<key>CFBundleShortVersionString</key>
+		<string>$(FLUTTER_BUILD_NAME)</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleVersion</key>
+		<string>$(FLUTTER_BUILD_NUMBER)</string>
+		<key>LSRequiresIPhoneOS</key>
+		<true/>
+		<key>UILaunchStoryboardName</key>
+		<string>LaunchScreen</string>
+		<key>UIMainStoryboardFile</key>
+		<string>Main</string>
+		<key>UISupportedInterfaceOrientations</key>
+		<array>
+			<string>UIInterfaceOrientationPortrait</string>
+			<string>UIInterfaceOrientationLandscapeLeft</string>
+			<string>UIInterfaceOrientationLandscapeRight</string>
+		</array>
+		<key>UISupportedInterfaceOrientations~ipad</key>
+		<array>
+			<string>UIInterfaceOrientationPortrait</string>
+			<string>UIInterfaceOrientationPortraitUpsideDown</string>
+			<string>UIInterfaceOrientationLandscapeLeft</string>
+			<string>UIInterfaceOrientationLandscapeRight</string>
+		</array>
+		<key>CADisableMinimumFrameDurationOnPhone</key>
+		<true/>
+		<key>UIApplicationSupportsIndirectInputEvents</key>
+		<true/>
+		<key>UIStatusBarHidden</key>
+		<false/>
+		<key>NSPhotoLibraryAddUsageDescription</key>
+		<string>We need access to save your Pre Code image to your photo library.</string>
+		<key>NSPhotoLibraryUsageDescription</key>
+		<string>We need access to save your Pre Code image to your photo library.</string>
+		<!-- WebView 相关配置 -->
+		<key>NSAppTransportSecurity</key>
+		<dict>
+			<key>NSAllowsArbitraryLoads</key>
+			<true/>
+			<key>NSAllowsLocalNetworking</key>
+			<true/>
+		</dict>
+		<!-- WebView 可能需要的相机和麦克风权限 -->
+		<key>NSCameraUsageDescription</key>
+		<string>This app needs camera access to use camera features in web pages.</string>
+		<key>NSMicrophoneUsageDescription</key>
+		<string>This app needs microphone access to use audio features in web pages.</string>
+	</dict>
+</plist>

+ 1 - 1
lib/app/api/core/api_core_paths.dart

@@ -77,7 +77,7 @@ class ApiCorePaths {
   static const String uploadVideo = '$_ver/issue/uploadVideo';
   static const String uploadVideo = '$_ver/issue/uploadVideo';
 
 
   /// 获取调度信息
   /// 获取调度信息
-  static const String getDispatchInfo = '$_ver/router/getNodes';
+  static const String getDispatchInfo = '$_ver/router/nodes';
 
 
   /// 获取所有节点
   /// 获取所有节点
   static const String getLocations = '$_ver/app/getLocations';
   static const String getLocations = '$_ver/app/getLocations';

+ 1 - 1
lib/app/constants/configs.dart

@@ -6,7 +6,7 @@ class Configs {
   static const String officialWebsiteHttp = "https://flashlink.me";
   static const String officialWebsiteHttp = "https://flashlink.me";
 
 
   // 调试相关
   // 调试相关
-  static var debug = false;
+  static var debug = true;
 
 
   static var assetUrl = "https://res.flashlink.me";
   static var assetUrl = "https://res.flashlink.me";
 
 

BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png


BIN
macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png


BIN
web/favicon.png


BIN
web/icons/Icon-192.png


BIN
web/icons/Icon-512.png


BIN
web/icons/Icon-maskable-192.png


BIN
web/icons/Icon-maskable-512.png


+ 88 - 113
web/index.html

@@ -1,6 +1,4 @@
-<!doctype html>
-<html>
-  <head>
+<!DOCTYPE html><html><head>
     <!--
     <!--
     If you are serving your web app in a path other than the root, change the
     If you are serving your web app in a path other than the root, change the
     href value below to reflect the base path you are serving from.
     href value below to reflect the base path you are serving from.
@@ -14,126 +12,103 @@
     This is a placeholder for base href that will be replaced by the value of
     This is a placeholder for base href that will be replaced by the value of
     the `--base-href` argument provided to `flutter build`.
     the `--base-href` argument provided to `flutter build`.
   -->
   -->
-    <base href="$FLUTTER_BASE_HREF" />
+    <base href="$FLUTTER_BASE_HREF">
 
 
-    <meta charset="UTF-8" />
-    <meta content="IE=Edge" http-equiv="X-UA-Compatible" />
-    <meta name="description" content="A new Flutter project." />
+    <meta charset="UTF-8">
+    <meta content="IE=Edge" http-equiv="X-UA-Compatible">
+    <meta name="description" content="A new Flutter project.">
 
 
     <!-- iOS meta tags & icons -->
     <!-- iOS meta tags & icons -->
-    <meta name="mobile-web-app-capable" content="yes" />
-    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
-    <meta name="apple-mobile-web-app-title" content="FlashLink" />
-    <link rel="apple-touch-icon" href="icons/Icon-192.png" />
+    <meta name="mobile-web-app-capable" content="yes">
+    <meta name="apple-mobile-web-app-status-bar-style" content="black">
+    <meta name="apple-mobile-web-app-title" content="FlashLink">
+    <link rel="apple-touch-icon" href="icons/Icon-192.png">
 
 
     <!-- Favicon -->
     <!-- Favicon -->
-    <link rel="icon" type="image/png" href="favicon.png" />
+    <link rel="icon" type="image/png" href="favicon.png">
 
 
     <title>FlashLink</title>
     <title>FlashLink</title>
-    <link rel="manifest" href="manifest.json" />
+    <link rel="manifest" href="manifest.json">
 
 
-    <meta
-      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
-      name="viewport"
-    />
+    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
 
 
+    
+    
     <style id="splash-screen-style">
     <style id="splash-screen-style">
-      html {
-        height: 100%;
-      }
-
-      body {
-        margin: 0;
-        min-height: 100%;
-        background-color: #000000;
-        background-size: 100% 100%;
-      }
-
-      .center {
-        margin: 0;
-        position: absolute;
-        top: 50%;
-        left: 50%;
-        -ms-transform: translate(-50%, -50%);
-        transform: translate(-50%, -50%);
-      }
-
-      .contain {
-        display: block;
-        width: 100%;
-        height: 100%;
-        object-fit: contain;
-      }
-
-      .stretch {
-        display: block;
-        width: 100%;
-        height: 100%;
-      }
-
-      .cover {
-        display: block;
-        width: 100%;
-        height: 100%;
-        object-fit: cover;
-      }
-
-      .bottom {
-        position: absolute;
-        bottom: 0;
-        left: 50%;
-        -ms-transform: translate(-50%, 0);
-        transform: translate(-50%, 0);
-      }
-
-      .bottomLeft {
-        position: absolute;
-        bottom: 0;
-        left: 0;
-      }
-
-      .bottomRight {
-        position: absolute;
-        bottom: 0;
-        right: 0;
-      }
-    </style>
-    <script id="splash-screen-script">
-      function removeSplashFromWeb() {
-        document.getElementById("splash")?.remove();
-        document.getElementById("splash-branding")?.remove();
-        document.body.style.background = "transparent";
-      }
-    </script>
-  </head>
+    html {
+      height: 100%
+    }
+
+    body {
+      margin: 0;
+      min-height: 100%;
+      background-color: #000000;
+          background-size: 100% 100%;
+    }
+
+    .center {
+      margin: 0;
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      -ms-transform: translate(-50%, -50%);
+      transform: translate(-50%, -50%);
+    }
+
+    .contain {
+      display:block;
+      width:100%; height:100%;
+      object-fit: contain;
+    }
+
+    .stretch {
+      display:block;
+      width:100%; height:100%;
+    }
+
+    .cover {
+      display:block;
+      width:100%; height:100%;
+      object-fit: cover;
+    }
+
+    .bottom {
+      position: absolute;
+      bottom: 0;
+      left: 50%;
+      -ms-transform: translate(-50%, 0);
+      transform: translate(-50%, 0);
+    }
+
+    .bottomLeft {
+      position: absolute;
+      bottom: 0;
+      left: 0;
+    }
+
+    .bottomRight {
+      position: absolute;
+      bottom: 0;
+      right: 0;
+    }
+  </style>
+  <script id="splash-screen-script">
+    function removeSplashFromWeb() {
+      document.getElementById("splash")?.remove();
+      document.getElementById("splash-branding")?.remove();
+      document.body.style.background = "transparent";
+    }
+  </script>
+</head>
   <body>
   <body>
-    <picture id="splash">
-      <source
-        srcset="
-          splash/img/light-1x.png 1x,
-          splash/img/light-2x.png 2x,
-          splash/img/light-3x.png 3x,
-          splash/img/light-4x.png 4x
-        "
-        media="(prefers-color-scheme: light)"
-      />
-      <source
-        srcset="
-          splash/img/dark-1x.png 1x,
-          splash/img/dark-2x.png 2x,
-          splash/img/dark-3x.png 3x,
-          splash/img/dark-4x.png 4x
-        "
-        media="(prefers-color-scheme: dark)"
-      />
-      <img
-        class="center"
-        aria-hidden="true"
-        src="splash/img/light-1x.png"
-        alt=""
-      />
-    </picture>
+  <picture id="splash">
+      <source srcset="splash/img/light-1x.png 1x, splash/img/light-2x.png 2x, splash/img/light-3x.png 3x, splash/img/light-4x.png 4x" media="(prefers-color-scheme: light)">
+      <source srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x" media="(prefers-color-scheme: dark)">
+      <img class="center" aria-hidden="true" src="splash/img/light-1x.png" alt="">
+  </picture>
+    
 
 
     <script src="flutter_bootstrap.js" async=""></script>
     <script src="flutter_bootstrap.js" async=""></script>
-  </body>
-</html>
+  
+
+</body></html>

+ 33 - 33
web/manifest.json

@@ -1,35 +1,35 @@
 {
 {
-     "name": "FlashLink VPN",
-     "short_name": "FlashLink VPN",
-     "start_url": ".",
-     "display": "standalone",
-     "background_color": "#hexcode",
-     "theme_color": "#hexcode",
-     "description": "A new Flutter project.",
-     "orientation": "portrait-primary",
-     "prefer_related_applications": false,
-     "icons": [
-          {
-               "src": "icons/Icon-192.png",
-               "sizes": "192x192",
-               "type": "image/png"
-          },
-          {
-               "src": "icons/Icon-512.png",
-               "sizes": "512x512",
-               "type": "image/png"
-          },
-          {
-               "src": "icons/Icon-maskable-192.png",
-               "sizes": "192x192",
-               "type": "image/png",
-               "purpose": "maskable"
-          },
-          {
-               "src": "icons/Icon-maskable-512.png",
-               "sizes": "512x512",
-               "type": "image/png",
-               "purpose": "maskable"
-          }
-     ]
+    "name": "FlashLink VPN",
+    "short_name": "FlashLink VPN",
+    "start_url": ".",
+    "display": "standalone",
+    "background_color": "#hexcode",
+    "theme_color": "#hexcode",
+    "description": "A new Flutter project.",
+    "orientation": "portrait-primary",
+    "prefer_related_applications": false,
+    "icons": [
+        {
+            "src": "icons/Icon-192.png",
+            "sizes": "192x192",
+            "type": "image/png"
+        },
+        {
+            "src": "icons/Icon-512.png",
+            "sizes": "512x512",
+            "type": "image/png"
+        },
+        {
+            "src": "icons/Icon-maskable-192.png",
+            "sizes": "192x192",
+            "type": "image/png",
+            "purpose": "maskable"
+        },
+        {
+            "src": "icons/Icon-maskable-512.png",
+            "sizes": "512x512",
+            "type": "image/png",
+            "purpose": "maskable"
+        }
+    ]
 }
 }

BIN
web/splash/img/dark-1x.png


BIN
web/splash/img/dark-2x.png


BIN
web/splash/img/dark-3x.png


BIN
web/splash/img/dark-4x.png


BIN
web/splash/img/light-1x.png


BIN
web/splash/img/light-2x.png


BIN
web/splash/img/light-3x.png


BIN
web/splash/img/light-4x.png


BIN
windows/runner/resources/app_icon.ico