From 08a47e6c1dfb1bbd32411ee916091afd39402501 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Sat, 12 Apr 2025 16:42:35 +0800 Subject: [PATCH] mod: clear outdated logs Signed-off-by: bggRGjQaUbCoE --- lib/pages/about/index.dart | 1 + lib/pages/setting/pages/logs.dart | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/pages/about/index.dart b/lib/pages/about/index.dart index fff5dbe0..9ffba5e8 100644 --- a/lib/pages/about/index.dart +++ b/lib/pages/about/index.dart @@ -234,6 +234,7 @@ Commit Hash: ${BuildConfig.commitHash}''', onLongPress: clearLogs, leading: const Icon(Icons.bug_report_outlined), title: const Text('错误日志'), + subtitle: Text('长按清除日志', style: subTitleStyle), trailing: Icon(Icons.arrow_forward, size: 16, color: outline), ), ListTile( diff --git a/lib/pages/setting/pages/logs.dart b/lib/pages/setting/pages/logs.dart index faa02755..2ab7a0ea 100644 --- a/lib/pages/setting/pages/logs.dart +++ b/lib/pages/setting/pages/logs.dart @@ -15,6 +15,7 @@ class _LogsPageState extends State { late File logsPath; late String fileContent; List logsContent = []; + DateTime? latestLog; @override void initState() { @@ -22,6 +23,16 @@ class _LogsPageState extends State { super.initState(); } + @override + void dispose() { + if (latestLog != null) { + if (DateTime.now().difference(latestLog!) >= Duration(days: 14)) { + clearLogs(); + } + } + super.dispose(); + } + void getPath() async { logsPath = await getLogsPath(); fileContent = await logsPath.readAsString(); @@ -53,6 +64,7 @@ class _LogsPageState extends State { date = DateTime.parse( l.split("Crash occurred on")[1].trim(), //.split('.')[0], ); + latestLog ??= date; } catch (e) { debugPrint(e.toString()); date = l.toString();