mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: battery (#235)
This commit is contained in:
@@ -230,6 +230,12 @@ abstract class S {
|
|||||||
/// **'Backup version is not match.'**
|
/// **'Backup version is not match.'**
|
||||||
String get backupVersionNotMatch;
|
String get backupVersionNotMatch;
|
||||||
|
|
||||||
|
/// No description provided for @battery.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Battery'**
|
||||||
|
String get battery;
|
||||||
|
|
||||||
/// No description provided for @bgRun.
|
/// No description provided for @bgRun.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1514,6 +1520,12 @@ abstract class S {
|
|||||||
/// **'Upside Down'**
|
/// **'Upside Down'**
|
||||||
String get upsideDown;
|
String get upsideDown;
|
||||||
|
|
||||||
|
/// No description provided for @uptime.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Uptime'**
|
||||||
|
String get uptime;
|
||||||
|
|
||||||
/// No description provided for @urlOrJson.
|
/// No description provided for @urlOrJson.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get backupVersionNotMatch => 'Die Backup-Version stimmt nicht überein.';
|
String get backupVersionNotMatch => 'Die Backup-Version stimmt nicht überein.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get battery => 'Batterie';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bgRun => 'Hintergrundaktualisierung';
|
String get bgRun => 'Hintergrundaktualisierung';
|
||||||
|
|
||||||
@@ -746,6 +749,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get upsideDown => 'Upside Down';
|
String get upsideDown => 'Upside Down';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get uptime => 'Uptime';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL oder JSON';
|
String get urlOrJson => 'URL oder JSON';
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get backupVersionNotMatch => 'Backup version is not match.';
|
String get backupVersionNotMatch => 'Backup version is not match.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get battery => 'Battery';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bgRun => 'Run in backgroud';
|
String get bgRun => 'Run in backgroud';
|
||||||
|
|
||||||
@@ -746,6 +749,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get upsideDown => 'Upside Down';
|
String get upsideDown => 'Upside Down';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get uptime => 'Uptime';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL or JSON';
|
String get urlOrJson => 'URL or JSON';
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get backupVersionNotMatch => 'Versi cadangan tidak cocok.';
|
String get backupVersionNotMatch => 'Versi cadangan tidak cocok.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get battery => 'Baterai';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bgRun => 'Jalankan di Backgroud';
|
String get bgRun => 'Jalankan di Backgroud';
|
||||||
|
|
||||||
@@ -746,6 +749,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get upsideDown => 'Terbalik';
|
String get upsideDown => 'Terbalik';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get uptime => 'Uptime';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get urlOrJson => 'URL atau JSON';
|
String get urlOrJson => 'URL atau JSON';
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get backupVersionNotMatch => '备份版本不匹配,无法恢复';
|
String get backupVersionNotMatch => '备份版本不匹配,无法恢复';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get battery => '电池';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bgRun => '后台运行';
|
String get bgRun => '后台运行';
|
||||||
|
|
||||||
@@ -746,6 +749,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get upsideDown => '上下交换';
|
String get upsideDown => '上下交换';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get uptime => '启动时长';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get urlOrJson => '链接或JSON';
|
String get urlOrJson => '链接或JSON';
|
||||||
|
|
||||||
@@ -870,6 +876,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get backupVersionNotMatch => '備份版本不匹配,無法還原';
|
String get backupVersionNotMatch => '備份版本不匹配,無法還原';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get battery => '電池';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get bgRun => '背景運行';
|
String get bgRun => '背景運行';
|
||||||
|
|
||||||
@@ -1544,6 +1553,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get upsideDown => '上下交換';
|
String get upsideDown => '上下交換';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get uptime => '啟動時長';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get urlOrJson => '鏈接或JSON';
|
String get urlOrJson => '鏈接或JSON';
|
||||||
|
|
||||||
|
|||||||
@@ -586,7 +586,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -596,7 +596,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
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";
|
||||||
@@ -720,7 +720,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -730,7 +730,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
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";
|
||||||
@@ -748,7 +748,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
|
||||||
@@ -758,7 +758,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
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";
|
||||||
@@ -779,7 +779,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -792,7 +792,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
@@ -818,7 +818,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -831,7 +831,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -854,7 +854,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@@ -867,7 +867,7 @@
|
|||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -890,7 +890,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -902,7 +902,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
@@ -931,7 +931,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -943,7 +943,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
@@ -969,7 +969,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 674;
|
CURRENT_PROJECT_VERSION = 678;
|
||||||
DEVELOPMENT_ASSET_PATHS = "";
|
DEVELOPMENT_ASSET_PATHS = "";
|
||||||
DEVELOPMENT_TEAM = BA88US33G6;
|
DEVELOPMENT_TEAM = BA88US33G6;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -981,7 +981,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.674;
|
MARKETING_VERSION = 1.0.678;
|
||||||
MTL_FAST_MATH = YES;
|
MTL_FAST_MATH = YES;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
|
||||||
PRODUCT_NAME = ServerBox;
|
PRODUCT_NAME = ServerBox;
|
||||||
|
|||||||
12
lib/core/extension/status_cmd_type.dart
Normal file
12
lib/core/extension/status_cmd_type.dart
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import 'package:toolbox/core/extension/context/locale.dart';
|
||||||
|
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||||
|
|
||||||
|
extension StatusCmdTypeX on StatusCmdType {
|
||||||
|
String get i18n => switch (this) {
|
||||||
|
StatusCmdType.sys => l10n.system,
|
||||||
|
StatusCmdType.host => l10n.host,
|
||||||
|
StatusCmdType.uptime => l10n.uptime,
|
||||||
|
StatusCmdType.battery => l10n.battery,
|
||||||
|
final val => val.name,
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -200,7 +200,8 @@ enum StatusCmdType {
|
|||||||
tempVal,
|
tempVal,
|
||||||
host,
|
host,
|
||||||
diskio,
|
diskio,
|
||||||
nvdia,
|
battery,
|
||||||
|
nvidia,
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,6 +220,7 @@ const _statusCmds = [
|
|||||||
'cat /sys/class/thermal/thermal_zone*/temp',
|
'cat /sys/class/thermal/thermal_zone*/temp',
|
||||||
'hostname',
|
'hostname',
|
||||||
'cat /proc/diskstats',
|
'cat /proc/diskstats',
|
||||||
|
'cat /sys/class/power_supply/*/capacity',
|
||||||
'nvidia-smi -q -x',
|
'nvidia-smi -q -x',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:dartssh2/dartssh2.dart';
|
import 'package:dartssh2/dartssh2.dart';
|
||||||
|
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||||
import 'package:toolbox/data/model/server/conn.dart';
|
import 'package:toolbox/data/model/server/conn.dart';
|
||||||
import 'package:toolbox/data/model/server/cpu.dart';
|
import 'package:toolbox/data/model/server/cpu.dart';
|
||||||
import 'package:toolbox/data/model/server/disk.dart';
|
import 'package:toolbox/data/model/server/disk.dart';
|
||||||
@@ -47,8 +48,6 @@ class ServerStatus {
|
|||||||
Cpus cpu;
|
Cpus cpu;
|
||||||
Memory mem;
|
Memory mem;
|
||||||
Swap swap;
|
Swap swap;
|
||||||
String sysVer;
|
|
||||||
String uptime;
|
|
||||||
List<Disk> disk;
|
List<Disk> disk;
|
||||||
Conn tcp;
|
Conn tcp;
|
||||||
NetSpeed netSpeed;
|
NetSpeed netSpeed;
|
||||||
@@ -57,6 +56,7 @@ class ServerStatus {
|
|||||||
String? err;
|
String? err;
|
||||||
DiskIO diskIO;
|
DiskIO diskIO;
|
||||||
List<NvidiaSmiItem>? nvidia;
|
List<NvidiaSmiItem>? nvidia;
|
||||||
|
final Map<StatusCmdType, String> more = {};
|
||||||
|
|
||||||
/// Whether is connectting, parsing and etc.
|
/// Whether is connectting, parsing and etc.
|
||||||
bool _isBusy = false;
|
bool _isBusy = false;
|
||||||
@@ -64,8 +64,6 @@ class ServerStatus {
|
|||||||
ServerStatus({
|
ServerStatus({
|
||||||
required this.cpu,
|
required this.cpu,
|
||||||
required this.mem,
|
required this.mem,
|
||||||
required this.sysVer,
|
|
||||||
required this.uptime,
|
|
||||||
required this.disk,
|
required this.disk,
|
||||||
required this.tcp,
|
required this.tcp,
|
||||||
required this.netSpeed,
|
required this.netSpeed,
|
||||||
|
|||||||
@@ -49,10 +49,18 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
|||||||
try {
|
try {
|
||||||
final sys = _parseSysVer(
|
final sys = _parseSysVer(
|
||||||
StatusCmdType.sys.find(segments),
|
StatusCmdType.sys.find(segments),
|
||||||
StatusCmdType.host.find(segments),
|
|
||||||
);
|
);
|
||||||
if (sys != null) {
|
if (sys != null) {
|
||||||
req.ss.sysVer = sys;
|
req.ss.more[StatusCmdType.sys] = sys;
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Loggers.parse.warning(e, s);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
final host = StatusCmdType.host.find(segments);
|
||||||
|
if (host.isNotEmpty) {
|
||||||
|
req.ss.more[StatusCmdType.host] = host;
|
||||||
}
|
}
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
@@ -93,7 +101,7 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
|||||||
try {
|
try {
|
||||||
final uptime = _parseUpTime(StatusCmdType.uptime.find(segments));
|
final uptime = _parseUpTime(StatusCmdType.uptime.find(segments));
|
||||||
if (uptime != null) {
|
if (uptime != null) {
|
||||||
req.ss.uptime = uptime;
|
req.ss.more[StatusCmdType.uptime] = uptime;
|
||||||
}
|
}
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
@@ -118,6 +126,16 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
|||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
final battery = StatusCmdType.battery.find(segments);
|
||||||
|
if (battery.isNotEmpty && !battery.contains('No such')) {
|
||||||
|
req.ss.more[StatusCmdType.battery] = battery;
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
Loggers.parse.warning(e, s);
|
||||||
|
}
|
||||||
|
|
||||||
return req.ss;
|
return req.ss;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,7 +152,7 @@ Future<ServerStatus> _getBsdStatus(ServerStatusUpdateReq req) async {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
req.ss.sysVer = BSDStatusCmdType.sys.find(segments);
|
req.ss.more[StatusCmdType.sys] = BSDStatusCmdType.sys.find(segments);
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
}
|
}
|
||||||
@@ -154,7 +172,7 @@ Future<ServerStatus> _getBsdStatus(ServerStatusUpdateReq req) async {
|
|||||||
try {
|
try {
|
||||||
final uptime = _parseUpTime(BSDStatusCmdType.uptime.find(segments));
|
final uptime = _parseUpTime(BSDStatusCmdType.uptime.find(segments));
|
||||||
if (uptime != null) {
|
if (uptime != null) {
|
||||||
req.ss.uptime = uptime;
|
req.ss.more[StatusCmdType.uptime] = uptime;
|
||||||
}
|
}
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Loggers.parse.warning(e, s);
|
Loggers.parse.warning(e, s);
|
||||||
@@ -181,10 +199,10 @@ String? _parseUpTime(String raw) {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String? _parseSysVer(String raw, String hostname) {
|
String? _parseSysVer(String raw) {
|
||||||
final s = raw.split('=');
|
final s = raw.split('=');
|
||||||
if (s.length == 2) {
|
if (s.length == 2) {
|
||||||
return s[1].replaceAll('"', '').replaceFirst('\n', '');
|
return s[1].replaceAll('"', '').replaceFirst('\n', '');
|
||||||
}
|
}
|
||||||
return hostname.isEmpty ? null : hostname;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 674;
|
static const int build = 678;
|
||||||
static const String engine = "3.16.3";
|
static const String engine = "3.16.3";
|
||||||
static const String buildAt = "2023-12-12 18:14:36";
|
static const String buildAt = "2023-12-17 18:43:29";
|
||||||
static const int modifications = 29;
|
static const int modifications = 8;
|
||||||
static const int script = 31;
|
static const int script = 31;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ abstract final class InitStatus {
|
|||||||
free: 1,
|
free: 1,
|
||||||
avail: 1,
|
avail: 1,
|
||||||
),
|
),
|
||||||
sysVer: 'Loading...',
|
|
||||||
uptime: '',
|
|
||||||
disk: [
|
disk: [
|
||||||
const Disk(
|
const Disk(
|
||||||
dev: '/',
|
dev: '/',
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"backupAndRestore": "Backup und Wiederherstellung",
|
"backupAndRestore": "Backup und Wiederherstellung",
|
||||||
"backupTip": "Das Backup wird nur einfach verschlüsselt.\nBitte bewahre die Datei sicher auf.",
|
"backupTip": "Das Backup wird nur einfach verschlüsselt.\nBitte bewahre die Datei sicher auf.",
|
||||||
"backupVersionNotMatch": "Die Backup-Version stimmt nicht überein.",
|
"backupVersionNotMatch": "Die Backup-Version stimmt nicht überein.",
|
||||||
|
"battery": "Batterie",
|
||||||
"bgRun": "Hintergrundaktualisierung",
|
"bgRun": "Hintergrundaktualisierung",
|
||||||
"bioAuth": "Biozertifizierung",
|
"bioAuth": "Biozertifizierung",
|
||||||
"canPullRefresh": "Danach: herunterziehen zum Aktualisieren",
|
"canPullRefresh": "Danach: herunterziehen zum Aktualisieren",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"backupAndRestore": "Backup and Restore",
|
"backupAndRestore": "Backup and Restore",
|
||||||
"backupTip": "The exported data is simply encrypted. \nPlease keep it safe.",
|
"backupTip": "The exported data is simply encrypted. \nPlease keep it safe.",
|
||||||
"backupVersionNotMatch": "Backup version is not match.",
|
"backupVersionNotMatch": "Backup version is not match.",
|
||||||
|
"battery": "Battery",
|
||||||
"bgRun": "Run in backgroud",
|
"bgRun": "Run in backgroud",
|
||||||
"bioAuth": "Biometric auth",
|
"bioAuth": "Biometric auth",
|
||||||
"canPullRefresh": "You can pull to refresh.",
|
"canPullRefresh": "You can pull to refresh.",
|
||||||
@@ -236,6 +237,7 @@
|
|||||||
"updateTipTooLow": "Current version is too low, please update to v1.0.{newest}",
|
"updateTipTooLow": "Current version is too low, please update to v1.0.{newest}",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"upsideDown": "Upside Down",
|
"upsideDown": "Upside Down",
|
||||||
|
"uptime": "Uptime",
|
||||||
"urlOrJson": "URL or JSON",
|
"urlOrJson": "URL or JSON",
|
||||||
"useNoPwd": "No password will be used.",
|
"useNoPwd": "No password will be used.",
|
||||||
"user": "User",
|
"user": "User",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"backupAndRestore": "Cadangan dan Pulihkan",
|
"backupAndRestore": "Cadangan dan Pulihkan",
|
||||||
"backupTip": "Data yang diekspor hanya dienkripsi.\nTolong jaga keamanannya.",
|
"backupTip": "Data yang diekspor hanya dienkripsi.\nTolong jaga keamanannya.",
|
||||||
"backupVersionNotMatch": "Versi cadangan tidak cocok.",
|
"backupVersionNotMatch": "Versi cadangan tidak cocok.",
|
||||||
|
"battery": "Baterai",
|
||||||
"bgRun": "Jalankan di Backgroud",
|
"bgRun": "Jalankan di Backgroud",
|
||||||
"bioAuth": "Biosertifikasi",
|
"bioAuth": "Biosertifikasi",
|
||||||
"canPullRefresh": "Anda dapat menarik untuk menyegarkan.",
|
"canPullRefresh": "Anda dapat menarik untuk menyegarkan.",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"backupAndRestore": "备份和恢复",
|
"backupAndRestore": "备份和恢复",
|
||||||
"backupTip": "导出的数据仅进行了简单加密,请妥善保管。",
|
"backupTip": "导出的数据仅进行了简单加密,请妥善保管。",
|
||||||
"backupVersionNotMatch": "备份版本不匹配,无法恢复",
|
"backupVersionNotMatch": "备份版本不匹配,无法恢复",
|
||||||
|
"battery": "电池",
|
||||||
"bgRun": "后台运行",
|
"bgRun": "后台运行",
|
||||||
"bioAuth": "生物认证",
|
"bioAuth": "生物认证",
|
||||||
"canPullRefresh": "可以下拉刷新",
|
"canPullRefresh": "可以下拉刷新",
|
||||||
@@ -236,6 +237,7 @@
|
|||||||
"updateTipTooLow": "当前版本过低,请升级至 v1.0.{newest}",
|
"updateTipTooLow": "当前版本过低,请升级至 v1.0.{newest}",
|
||||||
"upload": "上传",
|
"upload": "上传",
|
||||||
"upsideDown": "上下交换",
|
"upsideDown": "上下交换",
|
||||||
|
"uptime": "启动时长",
|
||||||
"urlOrJson": "链接或JSON",
|
"urlOrJson": "链接或JSON",
|
||||||
"useNoPwd": "将会使用无密码。",
|
"useNoPwd": "将会使用无密码。",
|
||||||
"user": "用户",
|
"user": "用户",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"backupAndRestore": "備份和還原",
|
"backupAndRestore": "備份和還原",
|
||||||
"backupTip": "導出的數據僅進行了簡單加密,請妥善保管。",
|
"backupTip": "導出的數據僅進行了簡單加密,請妥善保管。",
|
||||||
"backupVersionNotMatch": "備份版本不匹配,無法還原",
|
"backupVersionNotMatch": "備份版本不匹配,無法還原",
|
||||||
|
"battery": "電池",
|
||||||
"bgRun": "背景運行",
|
"bgRun": "背景運行",
|
||||||
"bioAuth": "生物認證",
|
"bioAuth": "生物認證",
|
||||||
"canPullRefresh": "可以下拉更新",
|
"canPullRefresh": "可以下拉更新",
|
||||||
@@ -236,6 +237,7 @@
|
|||||||
"updateTipTooLow": "當前版本過低,請升級至 v1.0.{newest}",
|
"updateTipTooLow": "當前版本過低,請升級至 v1.0.{newest}",
|
||||||
"upload": "上傳",
|
"upload": "上傳",
|
||||||
"upsideDown": "上下交換",
|
"upsideDown": "上下交換",
|
||||||
|
"uptime": "啟動時長",
|
||||||
"urlOrJson": "鏈接或JSON",
|
"urlOrJson": "鏈接或JSON",
|
||||||
"useNoPwd": "将使用無密碼。",
|
"useNoPwd": "将使用無密碼。",
|
||||||
"user": "用戶",
|
"user": "用戶",
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import 'package:get_it/get_it.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:toolbox/core/extension/context/locale.dart';
|
import 'package:toolbox/core/extension/context/locale.dart';
|
||||||
import 'package:toolbox/core/route.dart';
|
import 'package:toolbox/core/route.dart';
|
||||||
|
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||||
import 'package:toolbox/data/model/server/disk.dart';
|
import 'package:toolbox/data/model/server/disk.dart';
|
||||||
import 'package:toolbox/data/provider/server.dart';
|
import 'package:toolbox/data/provider/server.dart';
|
||||||
import 'package:toolbox/data/res/provider.dart';
|
import 'package:toolbox/data/res/provider.dart';
|
||||||
@@ -239,7 +240,7 @@ class _FullScreenPageState extends State<FullScreenPage> with AfterLayoutMixin {
|
|||||||
final topRightStr = _getTopRightStr(
|
final topRightStr = _getTopRightStr(
|
||||||
cs,
|
cs,
|
||||||
ss.temps.first,
|
ss.temps.first,
|
||||||
ss.uptime,
|
ss.more[StatusCmdType.uptime] ?? '',
|
||||||
ss.err,
|
ss.err,
|
||||||
);
|
);
|
||||||
return Text(
|
return Text(
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:toolbox/core/extension/context/common.dart';
|
|||||||
import 'package:toolbox/core/extension/context/dialog.dart';
|
import 'package:toolbox/core/extension/context/dialog.dart';
|
||||||
import 'package:toolbox/core/extension/context/locale.dart';
|
import 'package:toolbox/core/extension/context/locale.dart';
|
||||||
import 'package:toolbox/core/extension/order.dart';
|
import 'package:toolbox/core/extension/order.dart';
|
||||||
|
import 'package:toolbox/core/extension/status_cmd_type.dart';
|
||||||
import 'package:toolbox/core/extension/widget.dart';
|
import 'package:toolbox/core/extension/widget.dart';
|
||||||
import 'package:toolbox/data/model/server/cpu.dart';
|
import 'package:toolbox/data/model/server/cpu.dart';
|
||||||
import 'package:toolbox/data/model/server/disk.dart';
|
import 'package:toolbox/data/model/server/disk.dart';
|
||||||
@@ -203,23 +204,25 @@ class _ServerDetailPageState extends State<ServerDetailPage>
|
|||||||
|
|
||||||
Widget _buildUpTimeAndSys(ServerStatus ss) {
|
Widget _buildUpTimeAndSys(ServerStatus ss) {
|
||||||
return CardX(
|
return CardX(
|
||||||
child: Padding(
|
child: ExpandTile(
|
||||||
padding: UIs.roundRectCardPadding,
|
leading: const Icon(Icons.computer),
|
||||||
child: Row(
|
initiallyExpanded: ss.more.entries.length < 7,
|
||||||
|
title: Text(l10n.about),
|
||||||
|
childrenPadding: const EdgeInsets.symmetric(
|
||||||
|
horizontal: 17,
|
||||||
|
vertical: 7,
|
||||||
|
),
|
||||||
|
children: ss.more.entries
|
||||||
|
.map(
|
||||||
|
(e) => Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(e.key.i18n, style: UIs.textSize13),
|
||||||
ss.sysVer,
|
Text(e.value, style: UIs.textSize11Grey)
|
||||||
style: UIs.textSize11,
|
|
||||||
textScaler: _textFactor,
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
ss.uptime,
|
|
||||||
style: UIs.textSize11,
|
|
||||||
textScaler: _textFactor,
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
),
|
).padding(const EdgeInsets.symmetric(vertical: 1)),
|
||||||
|
)
|
||||||
|
.toList(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -370,7 +370,7 @@ class _ServerPageState extends State<ServerPage>
|
|||||||
final topRightStr = _getTopRightStr(
|
final topRightStr = _getTopRightStr(
|
||||||
cs,
|
cs,
|
||||||
ss.temps.first,
|
ss.temps.first,
|
||||||
ss.uptime,
|
ss.more[StatusCmdType.uptime] ?? '',
|
||||||
ss.err,
|
ss.err,
|
||||||
);
|
);
|
||||||
if (cs == ServerState.failed && ss.err != null) {
|
if (cs == ServerState.failed && ss.err != null) {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import 'package:toolbox/core/extension/ssh_client.dart';
|
|||||||
import 'package:toolbox/core/extension/uint8list.dart';
|
import 'package:toolbox/core/extension/uint8list.dart';
|
||||||
import 'package:toolbox/core/utils/platform/base.dart';
|
import 'package:toolbox/core/utils/platform/base.dart';
|
||||||
import 'package:toolbox/core/utils/platform/path.dart';
|
import 'package:toolbox/core/utils/platform/path.dart';
|
||||||
|
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||||
import 'package:toolbox/data/model/pkg/manager.dart';
|
import 'package:toolbox/data/model/pkg/manager.dart';
|
||||||
import 'package:toolbox/data/model/server/dist.dart';
|
import 'package:toolbox/data/model/server/dist.dart';
|
||||||
import 'package:toolbox/data/res/path.dart';
|
import 'package:toolbox/data/res/path.dart';
|
||||||
@@ -238,7 +239,11 @@ Future<void> _onPkg(BuildContext context, ServerPrivateInfo spi) async {
|
|||||||
context.showSnackBar(l10n.noClient);
|
context.showSnackBar(l10n.noClient);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final sys = server.status.sysVer;
|
final sys = server.status.more[StatusCmdType.sys];
|
||||||
|
if (sys == null) {
|
||||||
|
context.showSnackBar(l10n.noResult);
|
||||||
|
return;
|
||||||
|
}
|
||||||
final pkg = PkgManager.fromDist(sys.dist);
|
final pkg = PkgManager.fromDist(sys.dist);
|
||||||
|
|
||||||
// Update pkg list
|
// Update pkg list
|
||||||
|
|||||||
Reference in New Issue
Block a user