Convert to not nullable

This commit is contained in:
LollipopKit
2021-10-28 09:33:39 +08:00
parent 5843219289
commit 2dbb1a1857
5 changed files with 37 additions and 31 deletions

View File

@@ -6,9 +6,10 @@ class Cpu2Status {
Cpu2Status(this.pre, this.now);
double usedPercent({int coreIdx = 0}) {
final used = (now[coreIdx].idle - pre[coreIdx].idle) /
(now[coreIdx].total - pre[coreIdx].total);
return used.isNaN ? 0 : used;
final idleDelta = now[coreIdx].idle - pre[coreIdx].idle;
final totalDelta = now[coreIdx].total - pre[coreIdx].total;
final used = idleDelta / totalDelta;
return used.isNaN ? 0 : 100 - used * 100;
}
Cpu2Status update(List<CpuStatus> newStatus) {

View File

@@ -28,18 +28,18 @@ class ServerStatus {
}
*/
Cpu2Status? cpu2Status;
List<int?>? memList;
String? sysVer;
String? uptime;
List<DiskInfo?>? disk;
TcpStatus? tcp;
late Cpu2Status cpu2Status;
late List<int?> memList;
late String sysVer;
late String uptime;
late List<DiskInfo?> disk;
late TcpStatus tcp;
ServerStatus(
{this.cpu2Status,
this.cpu2Status,
this.memList,
this.sysVer,
this.uptime,
this.disk,
this.tcp});
this.tcp);
}

View File

@@ -28,9 +28,11 @@ class ServerProvider extends BusyProvider {
Cpu2Status([emptyCpuStatus], [emptyCpuStatus]);
ServerStatus get emptyStatus => ServerStatus(
cpu2Status: emptyCpu2Status,
memList: [100, 0],
disk: [
emptyCpu2Status,
[100, 0],
'',
'',
[
DiskInfo(
mountLocation: '/',
mountPath: '/',
@@ -39,9 +41,7 @@ class ServerProvider extends BusyProvider {
avail: '0',
usedPercent: 0)
],
sysVer: '',
uptime: '',
tcp: TcpStatus(maxConn: 0, active: 0, passive: 0, fail: 0));
TcpStatus(maxConn: 0, active: 0, passive: 0, fail: 0));
Future<void> loadLocalData() async {
setBusyState(true);
@@ -145,12 +145,12 @@ class ServerProvider extends BusyProvider {
final tcp = await client.execute('cat /proc/net/snmp') ?? '';
return ServerStatus(
cpu2Status: _getCPU(cpu, _servers[idx].status.cpu2Status!),
memList: _getMem(mem),
sysVer: sysVer.trim(),
disk: _getDisk(disk),
uptime: _getUpTime(upTime),
tcp: _getTcp(tcp));
_getCPU(cpu, _servers[idx].status.cpu2Status),
_getMem(mem),
sysVer.trim(),
_getUpTime(upTime),
_getDisk(disk),
_getTcp(tcp));
}
Cpu2Status _getCPU(String raw, Cpu2Status old) {

View File

@@ -34,10 +34,15 @@ class _ServerDetailPageState extends State<ServerDetailPage> {
}
Widget _buildCPUView(ServerStatus ss) {
return Text(ss.cpu2Status!.toString());
return ListView.builder(
itemBuilder: (ctx, idx) {
return Text('$idx ${ss.cpu2Status.usedPercent(coreIdx: idx)}');
},
itemCount: ss.cpu2Status.now.length,
);
}
Widget _buildMemView(ServerStatus ss) {
return Text(ss.memList!.length.toString());
return Text(ss.memList.length.toString());
}
}

View File

@@ -110,7 +110,7 @@ class _ServerPageState extends State<ServerPage>
Widget _buildRealServerCard(
ServerStatus ss, String serverName, ServerConnectionState cs) {
final rootDisk =
ss.disk!.firstWhere((element) => element!.mountLocation == '/');
ss.disk.firstWhere((element) => element!.mountLocation == '/');
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -123,7 +123,7 @@ class _ServerPageState extends State<ServerPage>
style: const TextStyle(fontWeight: FontWeight.bold, fontSize: 12),
textScaleFactor: 1.0,
),
Text(getTopRightStr(cs, ss.uptime!),
Text(getTopRightStr(cs, ss.uptime),
textScaleFactor: 1.0,
style: TextStyle(
color: _theme.textTheme.bodyText1!.color!.withAlpha(100),
@@ -136,11 +136,11 @@ class _ServerPageState extends State<ServerPage>
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
_buildPercentCircle(ss.cpu2Status!.usedPercent(), 'CPU'),
_buildPercentCircle(ss.cpu2Status.usedPercent(), 'CPU'),
_buildPercentCircle(
ss.memList![1]! / ss.memList![0]! * 100 + 0.01, 'Mem'),
_buildIOData('Net', 'Conn:\n' + ss.tcp!.maxConn!.toString(),
'Fail:\n' + ss.tcp!.fail.toString()),
ss.memList[1]! / ss.memList[0]! * 100 + 0.01, 'Mem'),
_buildIOData('Net', 'Conn:\n' + ss.tcp.maxConn!.toString(),
'Fail:\n' + ss.tcp.fail.toString()),
_buildIOData('Disk', 'Total:\n' + rootDisk!.size!,
'Used:\n' + rootDisk.usedPercent.toString() + '%')
],