From 558721fa79ebc7e8ddeadb7b33474c094575f9dc Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Fri, 17 Feb 2023 16:49:41 +0800 Subject: [PATCH] opt. opt: check `private key` size opt: expand key list in default --- lib/data/provider/debug.dart | 35 ++++++++------------------------ lib/data/res/misc.dart | 3 +++ lib/main.dart | 4 ++-- lib/view/page/home.dart | 3 +-- lib/view/page/server/detail.dart | 9 +------- lib/view/page/server/edit.dart | 1 + 6 files changed, 16 insertions(+), 39 deletions(-) diff --git a/lib/data/provider/debug.dart b/lib/data/provider/debug.dart index dd34e017..b0dd8c06 100644 --- a/lib/data/provider/debug.dart +++ b/lib/data/provider/debug.dart @@ -1,5 +1,7 @@ import 'package:flutter/material.dart'; +import '../../data/res/misc.dart'; + /// format: [NAME][LEVEL]: MESSAGE final _headReg = RegExp(r'(\[[A-Za-z]+\])(\[[A-Z]+\]): (.*)'); const _level2Color = { @@ -14,7 +16,7 @@ class DebugProvider extends ChangeNotifier { final match = _headReg.allMatches(text); if (match.isNotEmpty) { - addWidget(Text.rich(TextSpan( + _addWidget(Text.rich(TextSpan( children: [ TextSpan( text: match.first.group(1), @@ -30,31 +32,11 @@ class DebugProvider extends ChangeNotifier { ], ))); } else { - _addText(text); + _addWidget(Text(text)); } - - notifyListeners(); - } - - void _addText(String text) { - _addWidget(Text(text)); - } - - void addError(Object error) { - _addError(error); - notifyListeners(); - } - - void _addError(Object error) { - _addMultiline(error, Colors.red); } void addMultiline(Object data, [Color color = Colors.blue]) { - _addMultiline(data, color); - notifyListeners(); - } - - void _addMultiline(Object data, [Color color = Colors.blue]) { final widget = Text( '$data', style: TextStyle( @@ -67,14 +49,13 @@ class DebugProvider extends ChangeNotifier { )); } - void addWidget(Widget widget) { - _addWidget(widget); - notifyListeners(); - } - void _addWidget(Widget widget) { widgets.add(widget); widgets.add(const SizedBox(height: 13)); + if (widgets.length > maxDebugLogLines) { + widgets.removeRange(0, widgets.length - maxDebugLogLines); + } + notifyListeners(); } void clear() { diff --git a/lib/data/res/misc.dart b/lib/data/res/misc.dart index 3454ee80..e24b0212 100644 --- a/lib/data/res/misc.dart +++ b/lib/data/res/misc.dart @@ -2,3 +2,6 @@ final numReg = RegExp(r'\s{1,}'); /// Private Key max allowed size is 20kb const privateKeyMaxSize = 20 * 1024; + +/// Max debug log lines +const maxDebugLogLines = 100; diff --git a/lib/main.dart b/lib/main.dart index 602416f6..0af3c285 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -67,8 +67,8 @@ void runInZone(dynamic Function() body) { void onError(Object obj, StackTrace stack) { Analysis.recordException(obj); final debugProvider = locator(); - debugProvider.addError(obj); - debugProvider.addError(stack); + debugProvider.addMultiline(obj, Colors.red); + debugProvider.addMultiline(stack, Colors.white); } Future main() async { diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index e78a5c57..b5c80e6e 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -10,7 +10,6 @@ import '../../data/model/app/dynamic_color.dart'; import '../../data/model/app/navigation_item.dart'; import '../../data/provider/server.dart'; import '../../data/res/build_data.dart'; -import '../../data/res/color.dart'; import '../../data/res/font_style.dart'; import '../../data/res/icon.dart'; import '../../data/res/tab.dart'; @@ -284,7 +283,7 @@ class _MyHomePageState extends State ConstrainedBox( constraints: const BoxConstraints(maxHeight: 53, maxWidth: 53), child: Container( - color: primaryColor, + color: Colors.white, ), ), ConstrainedBox( diff --git a/lib/view/page/server/detail.dart b/lib/view/page/server/detail.dart index 522f3c89..0f94ad22 100644 --- a/lib/view/page/server/detail.dart +++ b/lib/view/page/server/detail.dart @@ -244,7 +244,6 @@ class _ServerDetailPageState extends State Widget _buildSwapView(ServerStatus ss) { if (ss.swap.total == 0) return const SizedBox(); final used = ss.swap.used / ss.swap.total * 100; - final free = ss.swap.free / ss.swap.total * 100; final cached = ss.swap.cached / ss.swap.total * 100; return RoundRectCard( Padding( @@ -264,13 +263,7 @@ class _ServerDetailPageState extends State style: textSize13Grey) ], ), - Row( - children: [ - _buildDetailPercent(free, 'free'), - width13, - _buildDetailPercent(cached, 'cached') - ], - ), + _buildDetailPercent(cached, 'cached'), ], ), height13, diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index 78eabec0..a173800a 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -205,6 +205,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { iconColor: primaryColor, tilePadding: EdgeInsets.zero, childrenPadding: EdgeInsets.zero, + initiallyExpanded: true, title: Text( _s.choosePrivateKey, style: const TextStyle(fontSize: 14),