opt.: migrate fl_lib

This commit is contained in:
lollipopkit
2024-05-14 22:29:37 +08:00
parent 248430e5b0
commit 04dfede535
136 changed files with 686 additions and 3896 deletions

View File

@@ -109,7 +109,7 @@ Widget _buildLineChart(
isCurved: curve,
barWidth: 2,
isStrokeCapRound: true,
color: primaryColor,
color: UIs.primaryColor,
dotData: const FlDotData(show: false),
belowBarData: BarAreaData(show: false),
))

View File

@@ -1,14 +1,11 @@
import 'package:extended_image/extended_image.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:icons_plus/icons_plus.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/listx.dart';
import 'package:toolbox/core/extension/stringx.dart';
import 'package:toolbox/data/model/app/server_detail_card.dart';
import 'package:toolbox/data/model/app/shell_func.dart';
import 'package:toolbox/data/model/server/battery.dart';
@@ -21,20 +18,11 @@ import 'package:toolbox/data/model/server/sensors.dart';
import 'package:toolbox/data/model/server/server_private_info.dart';
import 'package:toolbox/data/model/server/system.dart';
import 'package:toolbox/data/res/store.dart';
import 'package:toolbox/view/widget/expand_tile.dart';
import 'package:toolbox/view/widget/kv_row.dart';
import 'package:toolbox/view/widget/markdown.dart';
import 'package:toolbox/view/widget/server_func_btns.dart';
import 'package:toolbox/view/widget/val_builder.dart';
import '../../../../core/extension/numx.dart';
import '../../../../core/route.dart';
import '../../../../data/model/server/server.dart';
import '../../../../data/provider/server.dart';
import '../../../../data/res/color.dart';
import '../../../../data/res/ui.dart';
import '../../../widget/appbar.dart';
import '../../../widget/cardx.dart';
part 'misc.dart';
@@ -139,7 +127,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
IconButton(
icon: const Icon(Icons.edit),
onPressed: () async {
final delete = await AppRoute.serverEdit(spi: si.spi).go(context);
final delete = await AppRoutes.serverEdit(spi: si.spi).go(context);
if (delete == true) {
context.pop();
}
@@ -322,8 +310,8 @@ class _ServerDetailPageState extends State<ServerDetailPage>
return LinearProgressIndicator(
value: percentWithinOne,
minHeight: 7,
backgroundColor: DynamicColors.progress.resolve(context),
color: primaryColor,
backgroundColor: UIs.halfAlpha,
color: UIs.primaryColor,
);
}
@@ -452,7 +440,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
return processes.length * 47.0;
}();
context.showRoundDialog(
title: Text(item.name),
title: item.name,
child: SizedBox(
width: double.maxFinite,
height: height,
@@ -494,10 +482,8 @@ class _ServerDetailPageState extends State<ServerDetailPage>
trailing: InkWell(
onTap: () {
context.showRoundDialog(
title: SizedBox(
width: 377,
child: Text('${process.pid}', maxLines: 1),
),
title: '${process.pid}',
titleMaxLines: 1,
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
@@ -573,8 +559,8 @@ class _ServerDetailPageState extends State<ServerDetailPage>
CircularProgressIndicator(
value: disk.usedPercent / 100,
strokeWidth: 5,
backgroundColor: DynamicColors.progress.resolve(context),
color: primaryColor,
backgroundColor: UIs.halfAlpha,
color: UIs.primaryColor,
),
Text('${disk.usedPercent}%', style: UIs.text12Grey)
],
@@ -770,7 +756,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
return InkWell(
onTap: () {
context.showRoundDialog(
title: Text(si.device),
title: si.device,
child: SingleChildScrollView(
child: SimpleMarkdown(
data: si.toMarkdown,
@@ -819,7 +805,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
subtitle: Text(addr, style: UIs.textGrey),
leading: const Icon(FontAwesome.server_solid, size: 17),
trailing: const Icon(Icons.chevron_right),
onTap: () => AppRoute.pve(spi: widget.spi).go(context),
onTap: () => AppRoutes.pve(spi: widget.spi).go(context),
),
);
}
@@ -847,7 +833,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
return GestureDetector(
onTap: () {
context.showRoundDialog(
title: Text(cmd.key),
title: cmd.key,
child: SingleChildScrollView(
child: Text(cmd.value, style: UIs.text13Grey),
),

View File

@@ -1,29 +1,19 @@
import 'dart:convert';
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:icons_plus/icons_plus.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/context/snackbar.dart';
import 'package:toolbox/core/extension/stringx.dart';
import 'package:toolbox/core/extension/widget.dart';
import 'package:toolbox/core/utils/ui.dart';
import 'package:toolbox/data/model/app/shell_func.dart';
import 'package:toolbox/data/model/server/custom.dart';
import 'package:toolbox/data/model/server/wol_cfg.dart';
import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/view/widget/expand_tile.dart';
import '../../../core/route.dart';
import '../../../data/model/server/server_private_info.dart';
import '../../../data/provider/private_key.dart';
import '../../../data/res/ui.dart';
import '../../widget/appbar.dart';
import '../../widget/input_field.dart';
import '../../widget/cardx.dart';
import '../../widget/tag.dart';
class ServerEditPage extends StatefulWidget {
const ServerEditPage({super.key, this.spi});
@@ -163,7 +153,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
onPressed: () {
var delScripts = false;
context.showRoundDialog(
title: Text(l10n.attention),
title: l10n.attention,
child: StatefulBuilder(builder: (ctx, setState) {
return Column(
mainAxisSize: MainAxisSize.min,
@@ -224,7 +214,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
icon: BoxIcons.bx_rename,
obscureText: false,
autoCorrect: true,
suggestiion: true,
suggestion: true,
),
Input(
controller: _ipController,
@@ -266,6 +256,9 @@ class _ServerEditPageState extends State<ServerEditPage> {
onChanged: (p0) => _tags = p0,
allTags: [...Pros.server.tags.value],
onRenameTag: Pros.server.renameTag,
renameL10n: l10n.rename,
tagL10n: l10n.tag,
addL10n: l10n.add,
),
ListTile(
title: Text(l10n.autoConnect),
@@ -367,7 +360,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
padding: EdgeInsets.only(right: 13),
child: Icon(Icons.add),
),
onTap: () => AppRoute.keyEdit().go(context),
onTap: () => AppRoutes.keyEdit().go(context),
),
);
return CardX(
@@ -440,7 +433,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
},
),
),
).card,
).cardx,
];
}
@@ -464,7 +457,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
title: Text(l10n.doc),
trailing: const Icon(Icons.open_in_new, size: 17),
onTap: () => openUrl(l10n.customCmdDocUrl),
).card,
).cardx,
];
}
@@ -479,7 +472,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
),
title: Text(l10n.about),
subtitle: Text(l10n.wolTip, style: UIs.text12Grey),
).card,
).cardx,
Input(
controller: _wolMacCtrl,
type: TextInputType.text,
@@ -564,7 +557,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
}
if (_keyIdx.value == null && _passwordController.text.isEmpty) {
final cancel = await context.showRoundDialog<bool>(
title: Text(l10n.attention),
title: l10n.attention,
child: Text(l10n.askContinue(l10n.useNoPwd)),
actions: [
TextButton(

View File

@@ -2,26 +2,16 @@ import 'dart:async';
import 'dart:math' as math;
import 'package:after_layout/after_layout.dart';
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';
import 'package:icons_plus/icons_plus.dart';
import 'package:provider/provider.dart';
import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/extension/listx.dart';
import 'package:toolbox/core/extension/media_queryx.dart';
import 'package:toolbox/core/extension/numx.dart';
import 'package:toolbox/core/extension/ssh_client.dart';
import 'package:toolbox/core/utils/share.dart';
import 'package:toolbox/data/model/app/shell_func.dart';
import 'package:toolbox/data/model/server/try_limiter.dart';
import 'package:toolbox/data/res/color.dart';
import 'package:toolbox/data/res/provider.dart';
import 'package:toolbox/data/res/store.dart';
import 'package:toolbox/view/widget/auto_hide.dart';
import 'package:toolbox/view/widget/icon_text_btn.dart';
import 'package:toolbox/view/widget/markdown.dart';
import 'package:toolbox/view/widget/percent_circle.dart';
import '../../../core/route.dart';
@@ -29,10 +19,7 @@ import '../../../data/model/app/net_view.dart';
import '../../../data/model/server/server.dart';
import '../../../data/model/server/server_private_info.dart';
import '../../../data/provider/server.dart';
import '../../../data/res/ui.dart';
import '../../widget/cardx.dart';
import '../../widget/server_func_btns.dart';
import '../../widget/tag.dart';
class ServerPage extends StatefulWidget {
const ServerPage({super.key});
@@ -79,7 +66,7 @@ class _ServerPageState extends State<ServerPage>
_media = MediaQuery.of(context);
_updateOffset();
_updateTextScaler();
_useDoubleColumn = _media.useDoubleColumn &&
_useDoubleColumn = _media.size.width > 639 &&
Stores.setting.doubleColumnServersPage.fetch();
}
@@ -115,7 +102,7 @@ class _ServerPageState extends State<ServerPage>
controller: _scrollController,
child: FloatingActionButton(
heroTag: 'addServer',
onPressed: () => AppRoute.serverEdit().go(context),
onPressed: () => AppRoutes.serverEdit().go(context),
tooltip: l10n.addAServer,
child: const Icon(Icons.add),
),
@@ -137,7 +124,7 @@ class _ServerPageState extends State<ServerPage>
top: 0,
left: 0,
child: IconButton(
onPressed: () => AppRoute.settings().go(context),
onPressed: () => AppRoutes.settings().go(context),
icon: const Icon(Icons.settings, color: Colors.grey),
),
),
@@ -227,6 +214,7 @@ class _ServerPageState extends State<ServerPage>
_tag = p0;
}),
initTag: _tag,
allL10n: l10n.all,
);
}
@@ -285,9 +273,9 @@ class _ServerPageState extends State<ServerPage>
child: InkWell(
onTap: () {
if (srv.canViewDetails) {
AppRoute.serverDetail(spi: srv.spi).go(context);
AppRoutes.serverDetail(spi: srv.spi).go(context);
} else {
AppRoute.serverEdit(spi: srv.spi).go(context);
AppRoutes.serverEdit(spi: srv.spi).go(context);
}
},
onLongPress: () {
@@ -298,7 +286,7 @@ class _ServerPageState extends State<ServerPage>
flip: !cardStatus.value.flip,
);
} else {
AppRoute.serverEdit(spi: srv.spi).go(context);
AppRoutes.serverEdit(spi: srv.spi).go(context);
}
},
child: Padding(
@@ -343,7 +331,7 @@ class _ServerPageState extends State<ServerPage>
height: _calcCardHeight(srv.conn, cardStatus.value.flip),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment: CrossAxisAlignment.center,
children: children,
),
@@ -363,7 +351,7 @@ class _ServerPageState extends State<ServerPage>
func: () async {
if (Stores.setting.showSuspendTip.fetch()) {
await context.showRoundDialog(
title: Text(l10n.attention),
title: l10n.attention,
child: Text(l10n.suspendTip),
);
Stores.setting.showSuspendTip.put(false);
@@ -407,7 +395,7 @@ class _ServerPageState extends State<ServerPage>
text: l10n.reboot,
),
IconTextBtn(
onPressed: () => AppRoute.serverEdit(spi: srv.spi).go(context),
onPressed: () => AppRoutes.serverEdit(spi: srv.spi).go(context),
icon: Icons.edit,
text: l10n.edit,
)
@@ -482,7 +470,7 @@ class _ServerPageState extends State<ServerPage>
height: 19,
child: CircularProgressIndicator(
strokeWidth: 3,
valueColor: AlwaysStoppedAnimation(primaryColor),
valueColor: AlwaysStoppedAnimation(UIs.primaryColor),
),
),
),
@@ -549,11 +537,11 @@ ${ss.err?.solution ?? l10n.unknown}
${ss.err?.message ?? l10n.unknownError}
''';
context.showRoundDialog(
title: Text(l10n.error),
title: l10n.error,
child: SingleChildScrollView(child: SimpleMarkdown(data: md)),
actions: [
TextButton(
onPressed: () => Shares.copy(md),
onPressed: () => Pfs.copy(md),
child: Text(l10n.copy),
)
],
@@ -649,7 +637,6 @@ ${ss.err?.message ?? l10n.unknownError}
@override
Future<void> afterFirstLayout(BuildContext context) async {
await GetIt.I.allReady();
await Pros.server.load();
Pros.server.startAutoRefresh();
}
@@ -682,7 +669,7 @@ ${ss.err?.message ?? l10n.unknownError}
required String name,
}) {
context.showRoundDialog(
title: Text(l10n.attention),
title: l10n.attention,
child: Text(l10n.askContinue('$typ ${l10n.server}($name)')),
actions: [
TextButton(