opt: check `private key` size
opt: expand key list in default
This commit is contained in:
lollipopkit
2023-02-17 16:49:41 +08:00
parent 0c198c23fc
commit 558721fa79
6 changed files with 16 additions and 39 deletions

View File

@@ -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() {

View File

@@ -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;

View File

@@ -67,8 +67,8 @@ void runInZone(dynamic Function() body) {
void onError(Object obj, StackTrace stack) {
Analysis.recordException(obj);
final debugProvider = locator<DebugProvider>();
debugProvider.addError(obj);
debugProvider.addError(stack);
debugProvider.addMultiline(obj, Colors.red);
debugProvider.addMultiline(stack, Colors.white);
}
Future<void> main() async {

View File

@@ -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<MyHomePage>
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 53, maxWidth: 53),
child: Container(
color: primaryColor,
color: Colors.white,
),
),
ConstrainedBox(

View File

@@ -244,7 +244,6 @@ class _ServerDetailPageState extends State<ServerDetailPage>
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<ServerDetailPage>
style: textSize13Grey)
],
),
Row(
children: [
_buildDetailPercent(free, 'free'),
width13,
_buildDetailPercent(cached, 'cached')
],
),
_buildDetailPercent(cached, 'cached'),
],
),
height13,

View File

@@ -205,6 +205,7 @@ class _ServerEditPageState extends State<ServerEditPage> with AfterLayoutMixin {
iconColor: primaryColor,
tilePadding: EdgeInsets.zero,
childrenPadding: EdgeInsets.zero,
initiallyExpanded: true,
title: Text(
_s.choosePrivateKey,
style: const TextStyle(fontSize: 14),