增加 armbian 头图

This commit is contained in:
Junyuan Feng
2022-11-05 21:58:05 +08:00
parent 7f1bd06422
commit c036b78708
12 changed files with 73 additions and 70 deletions

View File

@@ -5,7 +5,7 @@
<!-- Badges--> <!-- Badges-->
<p align="center"> <p align="center">
<a href="https://apps.apple.com/app/serverbox-status-tools/id1586449703"> <a href="https://apps.apple.com/app/id1586449703">
<img style="height: 37px" src="screenshots/appstore.svg"> <img style="height: 37px" src="screenshots/appstore.svg">
</a> </a>
<a href="https://github.com/LollipopKit/flutter_server_box/releases/latest"> <a href="https://github.com/LollipopKit/flutter_server_box/releases/latest">

BIN
assets/linux/armbian.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -354,7 +354,7 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@@ -362,7 +362,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -484,7 +484,7 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@@ -492,7 +492,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -508,7 +508,7 @@
buildSettings = { buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@@ -516,7 +516,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";

View File

@@ -11,14 +11,14 @@ import 'package:toolbox/data/service/app.dart';
import 'package:toolbox/generated/l10n.dart'; import 'package:toolbox/generated/l10n.dart';
import 'package:toolbox/locator.dart'; import 'package:toolbox/locator.dart';
final logger = Logger('UPDATE'); final _logger = Logger('UPDATE');
Future<bool> isFileAvailable(String url) async { Future<bool> isFileAvailable(String url) async {
try { try {
final resp = await Dio().head(url); final resp = await Dio().head(url);
return resp.statusCode == 200; return resp.statusCode == 200;
} catch (e) { } catch (e) {
logger.warning('update file not available: $e'); _logger.warning('update file not available: $e');
return false; return false;
} }
} }
@@ -40,11 +40,11 @@ Future<void> doUpdate(BuildContext context, {bool force = false}) async {
}(); }();
if (!force && newest <= BuildData.build) { if (!force && newest <= BuildData.build) {
logger.info('Update ignored due to current: ${BuildData.build}, ' _logger.info('Update ignored due to current: ${BuildData.build}, '
'update: $newest'); 'update: $newest');
return; return;
} }
logger.info('Update available: $newest'); _logger.info('Update available: $newest');
if (Platform.isAndroid && !await isFileAvailable(update.android)) { if (Platform.isAndroid && !await isFileAvailable(update.android)) {
return; return;

View File

@@ -9,8 +9,10 @@ const debianDistList = [
'ubuntu', 'ubuntu',
'linuxmint', 'linuxmint',
'elementary', 'elementary',
'raspbian' 'raspbian',
'armbian'
]; ];
const rehlDistList = [ const rehlDistList = [
'redhat', 'redhat',
'fedora', 'fedora',

View File

@@ -1,53 +1,53 @@
import 'package:toolbox/data/model/server/cpu_status.dart'; import 'package:toolbox/data/model/server/cpu_status.dart';
class Cpu2Status { class Cpu2Status {
List<CpuStatus> pre; List<CpuStatus> _pre;
List<CpuStatus> now; List<CpuStatus> _now;
String temp; String temp;
Cpu2Status(this.pre, this.now, this.temp); Cpu2Status(this._pre, this._now, this.temp);
double usedPercent({int coreIdx = 0}) { double usedPercent({int coreIdx = 0}) {
if (now.length != pre.length) return 0; if (_now.length != _pre.length) return 0;
final idleDelta = now[coreIdx].idle - pre[coreIdx].idle; final idleDelta = _now[coreIdx].idle - _pre[coreIdx].idle;
final totalDelta = now[coreIdx].total - pre[coreIdx].total; final totalDelta = _now[coreIdx].total - _pre[coreIdx].total;
final used = idleDelta / totalDelta; final used = idleDelta / totalDelta;
return used.isNaN ? 0 : 100 - used * 100; return used.isNaN ? 0 : 100 - used * 100;
} }
void update(List<CpuStatus> newStatus, String newTemp) { void update(List<CpuStatus> newStatus, String newTemp) {
pre = now; _pre = _now;
now = newStatus; _now = newStatus;
temp = newTemp; temp = newTemp;
} }
int get coresCount => now.length; int get coresCount => _now.length;
int get totalDelta => now[0].total - pre[0].total; int get totalDelta => _now[0].total - _pre[0].total;
double get user { double get user {
if (now.length != pre.length) return 0; if (_now.length != _pre.length) return 0;
final delta = now[0].user - pre[0].user; final delta = _now[0].user - _pre[0].user;
final used = delta / totalDelta; final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100; return used.isNaN ? 0 : used * 100;
} }
double get sys { double get sys {
if (now.length != pre.length) return 0; if (_now.length != _pre.length) return 0;
final delta = now[0].sys - pre[0].sys; final delta = _now[0].sys - _pre[0].sys;
final used = delta / totalDelta; final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100; return used.isNaN ? 0 : used * 100;
} }
double get nice { double get nice {
if (now.length != pre.length) return 0; if (_now.length != _pre.length) return 0;
final delta = now[0].nice - pre[0].nice; final delta = _now[0].nice - _pre[0].nice;
final used = delta / totalDelta; final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100; return used.isNaN ? 0 : used * 100;
} }
double get iowait { double get iowait {
if (now.length != pre.length) return 0; if (_now.length != _pre.length) return 0;
final delta = now[0].iowait - pre[0].iowait; final delta = _now[0].iowait - _pre[0].iowait;
final used = delta / totalDelta; final used = delta / totalDelta;
return used.isNaN ? 0 : used * 100; return used.isNaN ? 0 : used * 100;
} }

View File

@@ -1,14 +0,0 @@
class LinuxIcons {
List<String> db;
LinuxIcons(this.db);
String? search(String sysVer) {
for (var item in db) {
if (sysVer.toLowerCase().contains(item)) {
return 'assets/linux/$item.png';
}
}
return null;
}
}

View File

@@ -9,46 +9,46 @@ class NetSpeedPart {
} }
class NetSpeed { class NetSpeed {
List<NetSpeedPart> old; List<NetSpeedPart> _old;
List<NetSpeedPart> now; List<NetSpeedPart> _now;
NetSpeed(this.old, this.now); NetSpeed(this._old, this._now);
List<String> get devices { List<String> get devices {
final devices = <String>[]; final devices = <String>[];
for (var item in now) { for (var item in _now) {
devices.add(item.device); devices.add(item.device);
} }
return devices; return devices;
} }
void update(List<NetSpeedPart> newOne) { void update(List<NetSpeedPart> newOne) {
old = now; _old = _now;
now = newOne; _now = newOne;
} }
int get timeDiff => now[0].time - old[0].time; int get timeDiff => _now[0].time - _old[0].time;
String speedIn({String? device}) { String speedIn({String? device}) {
if (old[0].device == '' || now[0].device == '') return '0kb/s'; if (_old[0].device == '' || _now[0].device == '') return '0kb/s';
final idx = deviceIdx(device); final idx = deviceIdx(device);
final speedInBytesPerSecond = final speedInBytesPerSecond =
(now[idx].bytesIn - old[idx].bytesIn) / timeDiff; (_now[idx].bytesIn - _old[idx].bytesIn) / timeDiff;
return buildStandardOutput(speedInBytesPerSecond); return buildStandardOutput(speedInBytesPerSecond);
} }
String speedOut({String? device}) { String speedOut({String? device}) {
if (old[0].device == '' || now[0].device == '') return '0kb/s'; if (_old[0].device == '' || _now[0].device == '') return '0kb/s';
final idx = deviceIdx(device); final idx = deviceIdx(device);
final speedOutBytesPerSecond = final speedOutBytesPerSecond =
(now[idx].bytesOut - old[idx].bytesOut) / timeDiff; (_now[idx].bytesOut - _old[idx].bytesOut) / timeDiff;
return buildStandardOutput(speedOutBytesPerSecond); return buildStandardOutput(speedOutBytesPerSecond);
} }
int deviceIdx(String? device) { int deviceIdx(String? device) {
if (device != null) { if (device != null) {
for (var item in now) { for (var item in _now) {
if (item.device == device) { if (item.device == device) {
return now.indexOf(item); return _now.indexOf(item);
} }
} }
} }

View File

@@ -2,9 +2,9 @@
class BuildData { class BuildData {
static const String name = "ServerBox"; static const String name = "ServerBox";
static const int build = 154; static const int build = 155;
static const String engine = static const String engine =
"Flutter 3.3.4 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision eb6d86ee27 (2 weeks ago) • 2022-10-04 22:31:45 -0700\nEngine • revision c08d7d5efc\nTools • Dart 2.18.2 • DevTools 2.15.0\n"; "Flutter 3.3.4 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision eb6d86ee27 (4 weeks ago) • 2022-10-04 22:31:45 -0700\nEngine • revision c08d7d5efc\nTools • Dart 2.18.2 • DevTools 2.15.0\n";
static const String buildAt = "2022-10-21 17:29:42.809139"; static const String buildAt = "2022-11-05 21:49:47.105329";
static const int modifications = 9; static const int modifications = 0;
} }

View File

@@ -1,5 +1,3 @@
import 'package:toolbox/data/model/server/linux_icon.dart';
final linuxIcons = LinuxIcons([ final linuxIcons = LinuxIcons([
'ubuntu', 'ubuntu',
'arch', 'arch',
@@ -8,5 +6,21 @@ final linuxIcons = LinuxIcons([
'fedora', 'fedora',
'opensuse', 'opensuse',
'kali', 'kali',
'wrt' 'wrt',
'armbian'
]); ]);
class LinuxIcons {
List<String> db;
LinuxIcons(this.db);
String? search(String sysVer) {
for (var item in db) {
if (sysVer.toLowerCase().contains(item)) {
return 'assets/linux/$item.png';
}
}
return null;
}
}

View File

@@ -420,14 +420,14 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -550,14 +550,14 @@
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -574,14 +574,14 @@
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153; CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 1.0.153; MARKETING_VERSION = 1.0.155;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;

View File

@@ -94,6 +94,7 @@ flutter:
- assets/linux/fedora.png - assets/linux/fedora.png
- assets/linux/opensuse.png - assets/linux/opensuse.png
- assets/linux/wrt.png - assets/linux/wrt.png
- assets/linux/armbian.png
# - images/a_dot_burr.jpeg # - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg # - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see # An image asset can refer to one or more resolution-specific "variants", see