Skip to content

Commit 45e5305

Browse files
committed
Support custom text scaling
Optimize the display of different text scale Optimize windows setup experience
1 parent 30ee688 commit 45e5305

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1852
-676
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ jobs:
201201
env:
202202
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
203203
TAG: ${{ github.ref_name }}
204+
RUN_ID: ${{ github.run_id }}
204205
run: |
205206
python -m pip install --upgrade pip
206207
pip install requests

android/app/src/main/kotlin/com/follow/clash/models/Package.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.follow.clash.models
33
data class Package(
44
val packageName: String,
55
val label: String,
6-
val isSystem: Boolean,
6+
val system: Boolean,
7+
val internet: Boolean,
78
val lastUpdateTime: Long,
89
)

android/app/src/main/kotlin/com/follow/clash/plugins/AppPlugin.kt

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -293,19 +293,17 @@ class AppPlugin : FlutterPlugin, MethodChannel.MethodCallHandler, ActivityAware
293293
if (packages.isNotEmpty()) return packages
294294
packageManager?.getInstalledPackages(PackageManager.GET_META_DATA or PackageManager.GET_PERMISSIONS)
295295
?.filter {
296-
it.packageName != FlClashApplication.getAppContext().packageName && (
297-
it.requestedPermissions?.contains(Manifest.permission.INTERNET) == true
298-
|| it.packageName == "android"
299-
)
296+
it.packageName != FlClashApplication.getAppContext().packageName || it.packageName == "android"
300297

301298
}?.map {
302-
Package(
303-
packageName = it.packageName,
304-
label = it.applicationInfo?.loadLabel(packageManager).toString(),
305-
isSystem = (it.applicationInfo?.flags?.and(ApplicationInfo.FLAG_SYSTEM)) == 1,
306-
lastUpdateTime = it.lastUpdateTime
307-
)
308-
}?.let { packages.addAll(it) }
299+
Package(
300+
packageName = it.packageName,
301+
label = it.applicationInfo?.loadLabel(packageManager).toString(),
302+
system = (it.applicationInfo?.flags?.and(ApplicationInfo.FLAG_SYSTEM)) == 1,
303+
lastUpdateTime = it.lastUpdateTime,
304+
internet = it.requestedPermissions?.contains(Manifest.permission.INTERNET) == true
305+
)
306+
}?.let { packages.addAll(it) }
309307
return packages
310308
}
311309

android/app/src/main/kotlin/com/follow/clash/services/BaseServiceInterface.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ fun Service.startForeground(notification: Notification) {
8484
}
8585
}
8686

87-
Log.d("[FlClash]","startForeground===>")
8887
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
8988
try {
9089
startForeground(

lib/l10n/arb/intl_en.arb renamed to arb/intl_en.arb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,5 +391,9 @@
391391
"messageTest": "Message test",
392392
"messageTestTip": "This is a message.",
393393
"crashTest": "Crash test",
394-
"clearData": "Clear Data"
394+
"clearData": "Clear Data",
395+
"textScale": "Text Scaling",
396+
"internet": "Internet",
397+
"systemApp": "System APP",
398+
"noNetworkApp": "No network App"
395399
}

lib/l10n/arb/intl_ja.arb renamed to arb/intl_ja.arb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,5 +391,10 @@
391391
"messageTest": "メッセージテスト",
392392
"messageTestTip": "これはメッセージです。",
393393
"crashTest": "クラッシュテスト",
394-
"clearData": "データを消去"
394+
"clearData": "データを消去",
395+
"zoom": "ズーム",
396+
"textScale": "テキストスケーリング",
397+
"internet": "インターネット",
398+
"systemApp": "システムアプリ",
399+
"noNetworkApp": "ネットワークなしアプリ"
395400
}

lib/l10n/arb/intl_ru.arb renamed to arb/intl_ru.arb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,5 +391,10 @@
391391
"messageTest": "Тестирование сообщения",
392392
"messageTestTip": "Это сообщение.",
393393
"crashTest": "Тест на сбои",
394-
"clearData": "Очистить данные"
394+
"clearData": "Очистить данные",
395+
"zoom": "Масштаб",
396+
"textScale": "Масштабирование текста",
397+
"internet": "Интернет",
398+
"systemApp": "Системное приложение",
399+
"noNetworkApp": "Приложение без сети"
395400
}

lib/l10n/arb/intl_zh_CN.arb renamed to arb/intl_zh_CN.arb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,5 +391,10 @@
391391
"messageTest": "消息测试",
392392
"messageTestTip": "这是一条消息。",
393393
"crashTest": "崩溃测试",
394-
"clearData": "清除数据"
394+
"clearData": "清除数据",
395+
"zoom": "缩放",
396+
"textScale": "文本缩放",
397+
"internet": "互联网",
398+
"systemApp": "系统应用",
399+
"noNetworkApp": "无网络应用"
395400
}

core/state/state.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ type AccessControl struct {
2424
Mode string `json:"mode"`
2525
AcceptList []string `json:"acceptList"`
2626
RejectList []string `json:"rejectList"`
27-
IsFilterSystemApp bool `json:"isFilterSystemApp"`
2827
}
2928

3029
type AndroidVpnRawOptions struct {

lib/common/constant.dart

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,12 @@ const packageName = "com.follow.clash";
1717
final unixSocketPath = "/tmp/FlClashSocket_${Random().nextInt(10000)}.sock";
1818
const helperPort = 47890;
1919
const helperTag = "2024125";
20-
const baseInfoEdgeInsets = EdgeInsets.symmetric(
21-
vertical: 16,
22-
horizontal: 16,
20+
final baseInfoEdgeInsets = EdgeInsets.symmetric(
21+
vertical: 16.ap,
22+
horizontal: 16.ap,
2323
);
2424

25-
double textScaleFactor = min(
26-
WidgetsBinding.instance.platformDispatcher.textScaleFactor,
27-
1.2,
28-
);
25+
final defaultTextScaleFactor = WidgetsBinding.instance.platformDispatcher.textScaleFactor;
2926
const httpTimeoutDuration = Duration(milliseconds: 5000);
3027
const moreDuration = Duration(milliseconds: 100);
3128
const animateDuration = Duration(milliseconds: 100);
@@ -44,7 +41,6 @@ const profilesDirectoryName = "profiles";
4441
const localhost = "127.0.0.1";
4542
const clashConfigKey = "clash_config";
4643
const configKey = "config";
47-
const listItemPadding = EdgeInsets.symmetric(horizontal: 16);
4844
const double dialogCommonWidth = 300;
4945
const repository = "chen08209/FlClash";
5046
const defaultExternalController = "127.0.0.1:9090";
@@ -60,6 +56,7 @@ final commonFilter = ImageFilter.blur(
6056
const navigationItemListEquality = ListEquality<NavigationItem>();
6157
const connectionListEquality = ListEquality<Connection>();
6258
const stringListEquality = ListEquality<String>();
59+
const intListEquality = ListEquality<int>();
6360
const logListEquality = ListEquality<Log>();
6461
const groupListEquality = ListEquality<Group>();
6562
const externalProviderListEquality = ListEquality<ExternalProvider>();
@@ -81,7 +78,7 @@ const viewModeColumnsMap = {
8178
const defaultPrimaryColor = 0xFF795548;
8279

8380
double getWidgetHeight(num lines) {
84-
return max(lines * 84 * textScaleFactor + (lines - 1) * 16, 0);
81+
return max(lines * 84 + (lines - 1) * 16, 0).ap;
8582
}
8683

8784
final mainIsolate = "FlClashMainIsolate";

0 commit comments

Comments
 (0)