From 0dd8f9ac09d473cd9deed0b5ab8a8c9987c5a7aa Mon Sep 17 00:00:00 2001 From: Alex Kao Date: Sat, 2 May 2026 09:54:43 +0800 Subject: [PATCH 1/2] feat: add toggle to disable brightness/volume gesture in player settings --- lib/i18n/strings.g.dart | 20 ++++++++++++++++++-- lib/i18n/strings.i18n.json | 6 ++++-- lib/i18n/strings_zh-CN.i18n.json | 6 ++++-- lib/i18n/strings_zh-HK.i18n.json | 6 ++++-- lib/i18n/strings_zh-TW.i18n.json | 6 ++++-- lib/pages/settings/player_settings_page.dart | 8 ++++++++ lib/pages/video/video_page.dart | 6 ++++++ lib/utils/storage.dart | 3 ++- 8 files changed, 50 insertions(+), 11 deletions(-) diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 7e2e7d9..b4c79d8 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,9 +4,9 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 4 -/// Strings: 384 (96 per locale) +/// Strings: 392 (98 per locale) /// -/// Built on 2025-12-01 at 13:41 UTC +/// Built on 2026-05-02 at 01:31 UTC // coverage:ignore-file // ignore_for_file: type=lint @@ -331,6 +331,8 @@ class _StringsMyPlayerSettingsEn { String get autoPlay => 'Auto Play'; String get autoJump => 'Auto Jump'; String get autoJumpSubtitle => 'Jump to the position where you stopped last time'; + String get brightnessVolumeGesture => 'Brightness & Volume Gesture'; + String get brightnessVolumeGestureSubtitle => 'Swipe up and down on the playing screen to adjust brightness and volume'; } // Path: my.danmakuSettings @@ -613,6 +615,8 @@ class _StringsMyPlayerSettingsZhCn implements _StringsMyPlayerSettingsEn { @override String get autoPlay => '自动播放'; @override String get autoJump => '自动跳转'; @override String get autoJumpSubtitle => '跳转到上次播放位置'; + @override String get brightnessVolumeGesture => '亮度音量手势'; + @override String get brightnessVolumeGestureSubtitle => '在播放界面上下滑动调节亮度和音量'; } // Path: my.danmakuSettings @@ -895,6 +899,8 @@ class _StringsMyPlayerSettingsZhHk implements _StringsMyPlayerSettingsEn { @override String get autoPlay => '自動播放'; @override String get autoJump => '自動跳轉'; @override String get autoJumpSubtitle => '跳轉到上次播放位置'; + @override String get brightnessVolumeGesture => '亮度音量手勢'; + @override String get brightnessVolumeGestureSubtitle => '在播放界面上下滑動調節亮度和音量'; } // Path: my.danmakuSettings @@ -1177,6 +1183,8 @@ class _StringsMyPlayerSettingsZhTw implements _StringsMyPlayerSettingsEn { @override String get autoPlay => '自動播放'; @override String get autoJump => '自動跳轉'; @override String get autoJumpSubtitle => '跳轉到上次播放位置'; + @override String get brightnessVolumeGesture => '亮度音量手勢'; + @override String get brightnessVolumeGestureSubtitle => '在播放界面上下滑動調節亮度和音量'; } // Path: my.danmakuSettings @@ -1317,6 +1325,8 @@ extension on Translations { case 'my.playerSettings.autoPlay': return 'Auto Play'; case 'my.playerSettings.autoJump': return 'Auto Jump'; case 'my.playerSettings.autoJumpSubtitle': return 'Jump to the position where you stopped last time'; + case 'my.playerSettings.brightnessVolumeGesture': return 'Brightness & Volume Gesture'; + case 'my.playerSettings.brightnessVolumeGestureSubtitle': return 'Swipe up and down on the playing screen to adjust brightness and volume'; case 'my.danmakuSettings.title': return 'Danmaku Settings'; case 'my.danmakuSettings.defaultEnable': return 'Default Enable'; case 'my.danmakuSettings.defaultEnableSubtitle': return 'Whether to enable danmaku by default'; @@ -1421,6 +1431,8 @@ extension on _StringsZhCn { case 'my.playerSettings.autoPlay': return '自动播放'; case 'my.playerSettings.autoJump': return '自动跳转'; case 'my.playerSettings.autoJumpSubtitle': return '跳转到上次播放位置'; + case 'my.playerSettings.brightnessVolumeGesture': return '亮度音量手势'; + case 'my.playerSettings.brightnessVolumeGestureSubtitle': return '在播放界面上下滑动调节亮度和音量'; case 'my.danmakuSettings.title': return '弹幕设置'; case 'my.danmakuSettings.defaultEnable': return '默认开启'; case 'my.danmakuSettings.defaultEnableSubtitle': return '默认是否随视频播放弹幕'; @@ -1525,6 +1537,8 @@ extension on _StringsZhHk { case 'my.playerSettings.autoPlay': return '自動播放'; case 'my.playerSettings.autoJump': return '自動跳轉'; case 'my.playerSettings.autoJumpSubtitle': return '跳轉到上次播放位置'; + case 'my.playerSettings.brightnessVolumeGesture': return '亮度音量手勢'; + case 'my.playerSettings.brightnessVolumeGestureSubtitle': return '在播放界面上下滑動調節亮度和音量'; case 'my.danmakuSettings.title': return '彈幕設置'; case 'my.danmakuSettings.defaultEnable': return '默認開啟'; case 'my.danmakuSettings.defaultEnableSubtitle': return '默認是否隨視頻播放彈幕'; @@ -1629,6 +1643,8 @@ extension on _StringsZhTw { case 'my.playerSettings.autoPlay': return '自動播放'; case 'my.playerSettings.autoJump': return '自動跳轉'; case 'my.playerSettings.autoJumpSubtitle': return '跳轉到上次播放位置'; + case 'my.playerSettings.brightnessVolumeGesture': return '亮度音量手勢'; + case 'my.playerSettings.brightnessVolumeGestureSubtitle': return '在播放界面上下滑動調節亮度和音量'; case 'my.danmakuSettings.title': return '彈幕設置'; case 'my.danmakuSettings.defaultEnable': return '默認開啟'; case 'my.danmakuSettings.defaultEnableSubtitle': return '默認是否隨視頻播放彈幕'; diff --git a/lib/i18n/strings.i18n.json b/lib/i18n/strings.i18n.json index 2d19afc..5bc2154 100644 --- a/lib/i18n/strings.i18n.json +++ b/lib/i18n/strings.i18n.json @@ -77,7 +77,9 @@ "hardwareAcceleration": "Hardware Acceleration", "autoPlay": "Auto Play", "autoJump": "Auto Jump", - "autoJumpSubtitle": "Jump to the position where you stopped last time" + "autoJumpSubtitle": "Jump to the position where you stopped last time", + "brightnessVolumeGesture": "Brightness & Volume Gesture", + "brightnessVolumeGestureSubtitle": "Swipe up and down on the playing screen to adjust brightness and volume" }, "danmakuSettings": { "title": "Danmaku Settings", @@ -127,4 +129,4 @@ "currentVersion": "Current Version" } } -} \ No newline at end of file +} diff --git a/lib/i18n/strings_zh-CN.i18n.json b/lib/i18n/strings_zh-CN.i18n.json index a7962f3..ddd9a87 100644 --- a/lib/i18n/strings_zh-CN.i18n.json +++ b/lib/i18n/strings_zh-CN.i18n.json @@ -77,7 +77,9 @@ "hardwareAcceleration": "硬件解码", "autoPlay": "自动播放", "autoJump": "自动跳转", - "autoJumpSubtitle": "跳转到上次播放位置" + "autoJumpSubtitle": "跳转到上次播放位置", + "brightnessVolumeGesture": "亮度音量手势", + "brightnessVolumeGestureSubtitle": "在播放界面上下滑动调节亮度和音量" }, "danmakuSettings": { "title": "弹幕设置", @@ -127,4 +129,4 @@ "currentVersion": "当前版本" } } -} \ No newline at end of file +} diff --git a/lib/i18n/strings_zh-HK.i18n.json b/lib/i18n/strings_zh-HK.i18n.json index ce454eb..342b842 100644 --- a/lib/i18n/strings_zh-HK.i18n.json +++ b/lib/i18n/strings_zh-HK.i18n.json @@ -77,7 +77,9 @@ "hardwareAcceleration": "硬件解碼", "autoPlay": "自動播放", "autoJump": "自動跳轉", - "autoJumpSubtitle": "跳轉到上次播放位置" + "autoJumpSubtitle": "跳轉到上次播放位置", + "brightnessVolumeGesture": "亮度音量手勢", + "brightnessVolumeGestureSubtitle": "在播放界面上下滑動調節亮度和音量" }, "danmakuSettings": { "title": "彈幕設置", @@ -127,4 +129,4 @@ "currentVersion": "當前版本" } } -} \ No newline at end of file +} diff --git a/lib/i18n/strings_zh-TW.i18n.json b/lib/i18n/strings_zh-TW.i18n.json index ce454eb..342b842 100644 --- a/lib/i18n/strings_zh-TW.i18n.json +++ b/lib/i18n/strings_zh-TW.i18n.json @@ -77,7 +77,9 @@ "hardwareAcceleration": "硬件解碼", "autoPlay": "自動播放", "autoJump": "自動跳轉", - "autoJumpSubtitle": "跳轉到上次播放位置" + "autoJumpSubtitle": "跳轉到上次播放位置", + "brightnessVolumeGesture": "亮度音量手勢", + "brightnessVolumeGestureSubtitle": "在播放界面上下滑動調節亮度和音量" }, "danmakuSettings": { "title": "彈幕設置", @@ -127,4 +129,4 @@ "currentVersion": "當前版本" } } -} \ No newline at end of file +} diff --git a/lib/pages/settings/player_settings_page.dart b/lib/pages/settings/player_settings_page.dart index e660ea7..2c7f2c8 100644 --- a/lib/pages/settings/player_settings_page.dart +++ b/lib/pages/settings/player_settings_page.dart @@ -55,6 +55,14 @@ class _PlayerSettingsPageState extends State { defaultVal: false, ), ), + InkWell( + child: SetSwitchItem( + title: i18n.my.playerSettings.brightnessVolumeGesture, + subTitle: i18n.my.playerSettings.brightnessVolumeGestureSubtitle, + setKey: SettingBoxKey.brightnessVolumeGesture, + defaultVal: true, + ), + ), ], ), ); diff --git a/lib/pages/video/video_page.dart b/lib/pages/video/video_page.dart index 0f9f025..fe416b3 100644 --- a/lib/pages/video/video_page.dart +++ b/lib/pages/video/video_page.dart @@ -725,6 +725,12 @@ class _VideoPageState extends State if (!videoController.androidFullscreen) { return; } + // 亮度/音量手势开关 + if (!setting.get( + SettingBoxKey.brightnessVolumeGesture, + defaultValue: true)) { + return; + } if (tapPosition < sectionWidth) { // 左边区域 setState(() { diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index 6480ea4..1c932b9 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -84,5 +84,6 @@ class SettingBoxKey { /// deprecated isWideScreen = 'isWideScreen', enableSystemProxy = 'enableSystemProxy', - useSystemFont = 'useSystemFont'; + useSystemFont = 'useSystemFont', + brightnessVolumeGesture = 'brightnessVolumeGesture'; } From a53b1d9a7fb7e11b9ec3a520e98edf7607369557 Mon Sep 17 00:00:00 2001 From: Alex Kao Date: Sat, 2 May 2026 09:55:50 +0800 Subject: [PATCH 2/2] chore: add a .prettierrc to set the json format style --- .prettierrc | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..4418927 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "trailingComma": "none", + "tabWidth": 4, + "semi": false, + "singleQuote": false +}