refactors (#539)

This commit is contained in:
lollipopkit🏳️‍⚧️
2024-08-16 01:24:43 +08:00
committed by GitHub
parent 7e5bb54c98
commit 38366a2ef3
45 changed files with 527 additions and 640 deletions

View File

@@ -9,10 +9,10 @@ import 'package:server_box/core/extension/context/locale.dart';
import 'package:server_box/core/route.dart';
import 'package:server_box/data/model/app/tab.dart';
import 'package:server_box/data/provider/app.dart';
import 'package:server_box/data/provider/server.dart';
import 'package:server_box/data/res/build_data.dart';
import 'package:server_box/data/res/github_id.dart';
import 'package:server_box/data/res/misc.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart';
import 'package:server_box/data/res/url.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
@@ -65,7 +65,7 @@ class _HomePageState extends State<HomePage>
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
Pros.server.closeServer();
ServerProvider.closeServer();
_pageController.dispose();
WakelockPlus.disable();
}
@@ -78,8 +78,8 @@ class _HomePageState extends State<HomePage>
switch (state) {
case AppLifecycleState.resumed:
if (_shouldAuth) _goAuth();
if (!Pros.server.isAutoRefreshOn) {
Pros.server.startAutoRefresh();
if (!ServerProvider.isAutoRefreshOn) {
ServerProvider.startAutoRefresh();
}
HomeWidgetMC.update();
break;
@@ -93,7 +93,7 @@ class _HomePageState extends State<HomePage>
// }
} else {
//Pros.server.setDisconnected();
Pros.server.stopAutoRefresh();
ServerProvider.stopAutoRefresh();
}
break;
default:
@@ -120,7 +120,7 @@ class _HomePageState extends State<HomePage>
icon: const Icon(Icons.refresh),
tooltip: 'Refresh',
onPressed: () async {
await Pros.server.refresh();
await ServerProvider.refresh();
},
);
},
@@ -333,8 +333,7 @@ ${GithubIds.participants.map((e) => '[$e](${e.url})').join(' ')}
);
}
HomeWidgetMC.update();
await Pros.server.load();
await Pros.server.refresh();
await ServerProvider.refresh();
}
// Future<void> _reqNotiPerm() async {

View File

@@ -1,102 +0,0 @@
import 'dart:async';
import 'package:fl_lib/fl_lib.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:server_box/data/model/server/server.dart';
import 'package:server_box/data/provider/server.dart';
import 'package:server_box/data/res/build_data.dart';
import 'package:server_box/data/res/provider.dart';
import 'package:server_box/data/res/store.dart';
import 'package:server_box/data/res/url.dart';
final class WearHome extends StatefulWidget {
const WearHome({super.key});
@override
State<WearHome> createState() => _WearHomeState();
}
final class _WearHomeState extends State<WearHome> with AfterLayoutMixin {
late final _pageCtrl =
PageController(initialPage: Pros.server.servers.isNotEmpty ? 1 : 0);
@override
Widget build(BuildContext context) {
return _buildBody();
}
Widget _buildBody() {
return Consumer<ServerProvider>(builder: (_, pro, __) {
if (pro.servers.isEmpty) {
return const Center(child: Text('No server'));
}
return PageView.builder(
controller: _pageCtrl,
itemCount: pro.servers.length + 1,
itemBuilder: (_, index) {
if (index == 0) return _buildInit();
final id = pro.serverOrder[index];
final server = Pros.server.pick(id: id);
if (server == null) return UIs.placeholder;
return _buildEachSever(server);
},
);
});
}
Widget _buildInit() {
return Center(
child: Column(
children: [
IconButton(onPressed: () {}, icon: const Icon(Icons.add)),
UIs.height7,
Text(libL10n.restore)
],
),
);
}
Widget _buildEachSever(Server srv) {
final mem = () {
final total = srv.status.mem.total;
final used = srv.status.mem.total - srv.status.mem.avail;
return '${used.bytes2Str} / ${total.bytes2Str}';
}();
final disk = () {
final total = srv.status.diskUsage?.size.kb2Str;
final used = srv.status.diskUsage?.used.kb2Str;
return '$used / $total';
}();
final net = '${srv.status.netSpeed.cachedRealVals.speedIn}'
'${srv.status.netSpeed.cachedRealVals.speedOut}';
return Padding(
padding: const EdgeInsets.all(7),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(srv.spi.name, style: UIs.text15Bold),
UIs.height7,
KvRow(k: 'CPU', v: '${srv.status.cpu.usedPercent()}%'),
KvRow(k: 'Mem', v: mem),
KvRow(k: 'Disk', v: disk),
KvRow(k: 'Net', v: net)
],
),
);
}
@override
FutureOr<void> afterFirstLayout(BuildContext context) async {
if (Stores.setting.autoCheckAppUpdate.fetch()) {
AppUpdateIface.doUpdate(
build: BuildData.build,
url: Urls.updateCfg,
context: context,
);
}
await Pros.server.load();
await Pros.server.refresh();
}
}