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