From 058fde3f5ade399a5624998e11aee94dea6d91e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A7=92=E7=A0=82=E7=B3=96?= <90336521+lings03@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:00:04 +0800 Subject: [PATCH] Add a button to show system status bar (#417) --- assets/translation.json | 2 ++ lib/foundation/appdata.dart | 1 + lib/pages/reader/reader.dart | 4 +++- lib/pages/reader/scaffold.dart | 6 +++++- lib/pages/settings/reader.dart | 7 +++++++ 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/assets/translation.json b/assets/translation.json index 8f8ef7c..03bc33d 100644 --- a/assets/translation.json +++ b/assets/translation.json @@ -388,6 +388,7 @@ "Suggestions": "建议", "Do not report any issues related to sources to App repo.": "请不要向App仓库报告任何与源相关的问题", "Show single image on first page": "在首页显示单张图片", + "Show system status bar": "显示系统状态栏", "Click to select an image": "点击选择一张图片", "Repo URL": "仓库地址", "The URL should point to a 'index.json' file": "该URL应指向一个'index.json'文件", @@ -785,6 +786,7 @@ "Suggestions": "建議", "Do not report any issues related to sources to App repo.": "請不要向App倉庫報告任何與源相關的問題", "Show single image on first page": "在首頁顯示單張圖片", + "Show system status bar": "顯示系統狀態欄", "Click to select an image": "點擊選擇一張圖片", "Repo URL": "倉庫地址", "The URL should point to a 'index.json' file": "該URL應指向一個'index.json'文件", diff --git a/lib/foundation/appdata.dart b/lib/foundation/appdata.dart index fb9052a..f78c926 100644 --- a/lib/foundation/appdata.dart +++ b/lib/foundation/appdata.dart @@ -197,6 +197,7 @@ class Settings with ChangeNotifier { 'showPageNumberInReader': true, 'showSingleImageOnFirstPage': false, 'enableDoubleTapToZoom': true, + 'showSystemStatusBar': false, }; operator [](String key) { diff --git a/lib/pages/reader/reader.dart b/lib/pages/reader/reader.dart index 8a30c64..66c23ac 100644 --- a/lib/pages/reader/reader.dart +++ b/lib/pages/reader/reader.dart @@ -164,7 +164,9 @@ class _ReaderState extends State } mode = ReaderMode.fromKey(appdata.settings['readerMode']); history = widget.history; - SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive); + if (!appdata.settings['showSystemStatusBar']) { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive); + } if (appdata.settings['enableTurnPageByVolumeKey']) { handleVolumeEvent(); } diff --git a/lib/pages/reader/scaffold.dart b/lib/pages/reader/scaffold.dart index bfc1a86..aa23430 100644 --- a/lib/pages/reader/scaffold.dart +++ b/lib/pages/reader/scaffold.dart @@ -107,7 +107,11 @@ class _ReaderScaffoldState extends State<_ReaderScaffold> { if (!_isOpen) { SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); } else { - SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive); + if (!appdata.settings['showSystemStatusBar']) { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive); + } else { + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); + } } setState(() { _isOpen = !_isOpen; diff --git a/lib/pages/settings/reader.dart b/lib/pages/settings/reader.dart index 3b5744d..bcdd3db 100644 --- a/lib/pages/settings/reader.dart +++ b/lib/pages/settings/reader.dart @@ -163,6 +163,13 @@ class _ReaderSettingsState extends State { widget.onChanged?.call("enableClockAndBatteryInfoInReader"); }, ).toSliver(), + _SwitchSetting( + title: "Show system status bar".tl, + settingKey: "showSystemStatusBar", + onChanged: () { + widget.onChanged?.call("showSystemStatusBar"); + }, + ).toSliver(), SelectSetting( title: "Quick collect image".tl, settingKey: "quickCollectImage",