diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index dc05f4e5e2..d7276df04b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,6 +4,7 @@ on: push: tags: - "v*" + workflow_dispatch: env: IS_STABLE: ${{ !contains(github.ref, '-') }} FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true @@ -92,14 +93,6 @@ jobs: echo "KEYCHAIN_PATH=$KEYCHAIN_PATH" >> $GITHUB_ENV echo "KEYCHAIN_PASSWORD=$KEYCHAIN_PASSWORD" >> $GITHUB_ENV - - name: Setup Android Signing - if: startsWith(matrix.platform,'android') - run: | - echo "${{ secrets.KEYSTORE }}" | base64 --decode > android/app/keystore.jks - echo "keyAlias=${{ secrets.KEY_ALIAS }}" >> android/local.properties - echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> android/local.properties - echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> android/local.properties - - name: Setup Firebase Config if: startsWith(matrix.platform,'android') env: diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 47078b443e..7742b0dc0b 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -45,7 +45,7 @@ android { } defaultConfig { - applicationId = "com.follow.clashx" + applicationId = "com.vnxmatrix.client" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 76e0417871..2991acd9c4 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -38,7 +38,7 @@ android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:allowBackup="false" - android:label="FlClashX" + android:label="vnxMATRIX" android:memtagMode="off" android:networkSecurityConfig="@xml/network_security_config"> @@ -81,6 +81,7 @@ + diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml index e6cf7e08e2..5dfd585c1d 100644 --- a/android/app/src/main/res/values-ru/strings.xml +++ b/android/app/src/main/res/values-ru/strings.xml @@ -1,11 +1,11 @@ - FlClashX режим и туннель + vnxMATRIX режим и туннель Правила Глобал Прямой Переключить туннель - FlClashX вкл/выкл туннель + vnxMATRIX вкл/выкл туннель Запустить Остановить diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index 7d41568084..f736b5ff16 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -1,12 +1,12 @@ - FlClashX - FlClashX Mode & Tunnel + vnxMATRIX + vnxMATRIX Mode & Tunnel Rule Global Direct Toggle tunnel - FlClashX Tunnel On/Off + vnxMATRIX Tunnel On/Off Start Stop diff --git a/assets/images/icon.ico b/assets/images/icon.ico index 492dec442c..3a780ef578 100644 Binary files a/assets/images/icon.ico and b/assets/images/icon.ico differ diff --git a/assets/images/icon.png b/assets/images/icon.png index 06266c3166..8fbf6469f7 100644 Binary files a/assets/images/icon.png and b/assets/images/icon.png differ diff --git a/assets/images/icons/icon.png b/assets/images/icons/icon.png new file mode 100644 index 0000000000..8fbf6469f7 Binary files /dev/null and b/assets/images/icons/icon.png differ diff --git a/lib/common/constant.dart b/lib/common/constant.dart index 1d898d4dc0..b16d58209f 100644 --- a/lib/common/constant.dart +++ b/lib/common/constant.dart @@ -8,12 +8,12 @@ import 'package:flclashx/enum/enum.dart'; import 'package:flclashx/models/models.dart'; import 'package:flutter/material.dart'; -const appName = "FlClashX"; +const appName = "vnxMATRIX"; const appHelperService = "FlClashHelperService"; const coreName = "clashx.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.clashx"; +const packageName = "com.vnxmatrix.client"; final unixSocketPath = "/tmp/FlClashXSocket_${pid}_${Random.secure().nextInt(1 << 30)}.sock"; const helperPort = 47890; const maxTextScale = 1.4; @@ -45,7 +45,7 @@ const localhost = "127.0.0.1"; const clashConfigKey = "clash_config"; const configKey = "config"; const double dialogCommonWidth = 300; -const repository = "pluralplay/FlClashX"; +const repository = "vnxAPPS/vnxmatrix-client"; const defaultExternalController = "127.0.0.1:9090"; const maxMobileWidth = 600; const maxLaptopWidth = 840; @@ -82,7 +82,7 @@ const viewModeColumnsMap = { // const toolsStoreKey = PageStorageKey('tools'); // const profilesStoreKey = PageStorageKey('profiles'); -const defaultPrimaryColor = 0xFF03A9F4; +const defaultPrimaryColor = 0xFF3BE08C; double getWidgetHeight(num lines) => max(lines * 84 + (lines - 1) * 16, 0).ap; diff --git a/lib/providers/state.dart b/lib/providers/state.dart index cf3085f71a..411f1eecbc 100644 --- a/lib/providers/state.dart +++ b/lib/providers/state.dart @@ -488,8 +488,11 @@ bool globalModeEnabled(Ref ref) { /// board on/off through the normal header pipeline rather than overriding here. @riverpod bool newDashboardEnabled(Ref ref) { - return ref.watch(appSettingProvider.select((state) => state.newDashboard)) ?? - false; + // vnxMATRIX поставляется только с новым видом: старая раскладка — наследие + // апстрима, у нас она недоступна. Возвращаем константу, а не хранимое + // значение, чтобы вид не откатился у тех, кто успел переключить тумблер до + // его удаления, и чтобы заголовок flclashx-newboard не мог его выключить. + return true; } @riverpod diff --git a/lib/views/theme.dart b/lib/views/theme.dart index 97a7205d1b..83b1a7f695 100644 --- a/lib/views/theme.dart +++ b/lib/views/theme.dart @@ -47,7 +47,6 @@ class ThemeView extends StatelessWidget { _ThemeModeItem(), _PrimaryColorItem(), _PrueBlackItem(), - _NewDashboardItem(), _TextScaleFactorItem(), SizedBox( height: 64, @@ -471,36 +470,6 @@ class _PrueBlackItem extends ConsumerWidget { } } -class _NewDashboardItem extends ConsumerWidget { - const _NewDashboardItem(); - - @override - Widget build(BuildContext context, WidgetRef ref) { - final enabled = ref.watch(newDashboardEnabledProvider); - return ListItem.switchItem( - leading: const Icon(Icons.dashboard_customize), - horizontalTitleGap: 12, - title: Text( - appLocalizations.newDashboard, - style: Theme.of(context).textTheme.titleSmall?.copyWith( - color: context.colorScheme.onSurfaceVariant, - ), - ), - delegate: SwitchDelegate( - value: enabled, - // Always user-controllable. A `flclashx-newboard: true` header only sets - // the default (via newDashboardEnabledProvider) until the user toggles; - // toggling writes an explicit value that then wins over the header. - onChanged: (value) { - ref.read(appSettingProvider.notifier).updateState( - (state) => state.copyWith(newDashboard: value), - ); - }, - ), - ); - } -} - class _TextScaleFactorItem extends ConsumerWidget { const _TextScaleFactorItem(); diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc index 7db0b48714..8a018de1c8 100644 --- a/windows/runner/Runner.rc +++ b/windows/runner/Runner.rc @@ -89,13 +89,13 @@ BEGIN BEGIN BLOCK "040904e4" BEGIN - VALUE "CompanyName", "com.follow" "\0" - VALUE "FileDescription", "FlClashX" "\0" + VALUE "CompanyName", "vnxAPPS" "\0" + VALUE "FileDescription", "vnxMATRIX" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "clashx" "\0" VALUE "LegalCopyright", "Copyright (C) 2023 com.follow. All rights reserved." "\0" VALUE "OriginalFilename", "FlClashX.exe" "\0" - VALUE "ProductName", "clashx" "\0" + VALUE "ProductName", "vnxMATRIX" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" END END