mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
opt.: file view (#249)
This commit is contained in:
@@ -1348,6 +1348,12 @@ abstract class S {
|
|||||||
/// **'Shutdown'**
|
/// **'Shutdown'**
|
||||||
String get shutdown;
|
String get shutdown;
|
||||||
|
|
||||||
|
/// No description provided for @size.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Size'**
|
||||||
|
String get size;
|
||||||
|
|
||||||
/// No description provided for @snippet.
|
/// No description provided for @snippet.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
@@ -1474,6 +1480,12 @@ abstract class S {
|
|||||||
/// **'Theme mode'**
|
/// **'Theme mode'**
|
||||||
String get themeMode;
|
String get themeMode;
|
||||||
|
|
||||||
|
/// No description provided for @time.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Time'**
|
||||||
|
String get time;
|
||||||
|
|
||||||
/// No description provided for @times.
|
/// No description provided for @times.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -654,6 +654,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => 'Abschaltung';
|
String get shutdown => 'Abschaltung';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => 'Größe';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => 'Snippet';
|
String get snippet => 'Snippet';
|
||||||
|
|
||||||
@@ -721,6 +724,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => 'Themen-Modus';
|
String get themeMode => 'Themen-Modus';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => 'Zeit';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => 'x';
|
String get times => 'x';
|
||||||
|
|
||||||
|
|||||||
@@ -654,6 +654,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => 'Shutdown';
|
String get shutdown => 'Shutdown';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => 'Size';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => 'Snippet';
|
String get snippet => 'Snippet';
|
||||||
|
|
||||||
@@ -721,6 +724,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => 'Theme mode';
|
String get themeMode => 'Theme mode';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => 'Time';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => 'Times';
|
String get times => 'Times';
|
||||||
|
|
||||||
|
|||||||
@@ -654,6 +654,9 @@ class SFr extends S {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => 'Éteindre';
|
String get shutdown => 'Éteindre';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => 'Taille';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => 'Extrait';
|
String get snippet => 'Extrait';
|
||||||
|
|
||||||
@@ -721,6 +724,9 @@ class SFr extends S {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => 'Mode du thème';
|
String get themeMode => 'Mode du thème';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => 'L\'heure';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => 'Fois';
|
String get times => 'Fois';
|
||||||
|
|
||||||
|
|||||||
@@ -654,6 +654,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => 'Matikan';
|
String get shutdown => 'Matikan';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => 'Ukuran';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => 'Snippet';
|
String get snippet => 'Snippet';
|
||||||
|
|
||||||
@@ -721,6 +724,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => 'Mode tema';
|
String get themeMode => 'Mode tema';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => 'Waktu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => 'Waktu';
|
String get times => 'Waktu';
|
||||||
|
|
||||||
|
|||||||
@@ -654,6 +654,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => '关机';
|
String get shutdown => '关机';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => '大小';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => '代码片段';
|
String get snippet => '代码片段';
|
||||||
|
|
||||||
@@ -721,6 +724,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => '主题模式';
|
String get themeMode => '主题模式';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => '时间';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => '次';
|
String get times => '次';
|
||||||
|
|
||||||
@@ -1476,6 +1482,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get shutdown => '关机';
|
String get shutdown => '关机';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get size => '大小';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get snippet => '程式片段';
|
String get snippet => '程式片段';
|
||||||
|
|
||||||
@@ -1543,6 +1552,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get themeMode => '主題模式';
|
String get themeMode => '主題模式';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get time => '時間';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get times => '次';
|
String get times => '次';
|
||||||
|
|
||||||
|
|||||||
@@ -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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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 = 703;
|
CURRENT_PROJECT_VERSION = 704;
|
||||||
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.703;
|
MARKETING_VERSION = 1.0.704;
|
||||||
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;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:dartssh2/dartssh2.dart';
|
import 'package:dartssh2/dartssh2.dart';
|
||||||
|
|
||||||
extension SftpFile on SftpFileMode {
|
extension SftpFileX on SftpFileMode {
|
||||||
String get str {
|
String get str {
|
||||||
final user = _getRoleMode(userRead, userWrite, userExecute);
|
final user = _getRoleMode(userRead, userWrite, userExecute);
|
||||||
final group = _getRoleMode(groupRead, groupWrite, groupExecute);
|
final group = _getRoleMode(groupRead, groupWrite, groupExecute);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
class BuildData {
|
class BuildData {
|
||||||
static const String name = "ServerBox";
|
static const String name = "ServerBox";
|
||||||
static const int build = 703;
|
static const int build = 704;
|
||||||
static const String engine = "3.16.7";
|
static const String engine = "3.16.7";
|
||||||
static const String buildAt = "2024-01-14 19:40:49";
|
static const String buildAt = "2024-01-15 18:40:44";
|
||||||
static const int modifications = 6;
|
static const int modifications = 3;
|
||||||
static const int script = 34;
|
static const int script = 34;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "SFTP Verbunden",
|
"sftpSSHConnected": "SFTP Verbunden",
|
||||||
"showDistLogo": "Distributionslogo anzeigen",
|
"showDistLogo": "Distributionslogo anzeigen",
|
||||||
"shutdown": "Abschaltung",
|
"shutdown": "Abschaltung",
|
||||||
|
"size": "Größe",
|
||||||
"snippet": "Snippet",
|
"snippet": "Snippet",
|
||||||
"speed": "Tempo",
|
"speed": "Tempo",
|
||||||
"spentTime": "Benötigte Zeit: {time}",
|
"spentTime": "Benötigte Zeit: {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100% (Originalgröße), funktioniert nur auf der Serverseite Teil der Schrift, nicht empfohlen zu ändern.",
|
"textScalerTip": "1.0 => 100% (Originalgröße), funktioniert nur auf der Serverseite Teil der Schrift, nicht empfohlen zu ändern.",
|
||||||
"theme": "Themen",
|
"theme": "Themen",
|
||||||
"themeMode": "Themen-Modus",
|
"themeMode": "Themen-Modus",
|
||||||
|
"time": "Zeit",
|
||||||
"times": "x",
|
"times": "x",
|
||||||
"traffic": "Durchflussmenge",
|
"traffic": "Durchflussmenge",
|
||||||
"ttl": "ttl",
|
"ttl": "ttl",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "SFTP Connected",
|
"sftpSSHConnected": "SFTP Connected",
|
||||||
"showDistLogo": "Show distribution logo",
|
"showDistLogo": "Show distribution logo",
|
||||||
"shutdown": "Shutdown",
|
"shutdown": "Shutdown",
|
||||||
|
"size": "Size",
|
||||||
"snippet": "Snippet",
|
"snippet": "Snippet",
|
||||||
"speed": "Speed",
|
"speed": "Speed",
|
||||||
"spentTime": "Spent time: {time}",
|
"spentTime": "Spent time: {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100% (original size), only works on server page part of the font, not recommended to change.",
|
"textScalerTip": "1.0 => 100% (original size), only works on server page part of the font, not recommended to change.",
|
||||||
"theme": "Theme",
|
"theme": "Theme",
|
||||||
"themeMode": "Theme mode",
|
"themeMode": "Theme mode",
|
||||||
|
"time": "Time",
|
||||||
"times": "Times",
|
"times": "Times",
|
||||||
"traffic": "Traffic",
|
"traffic": "Traffic",
|
||||||
"ttl": "ttl",
|
"ttl": "ttl",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "SFTP connecté",
|
"sftpSSHConnected": "SFTP connecté",
|
||||||
"showDistLogo": "Afficher le logo de la distribution",
|
"showDistLogo": "Afficher le logo de la distribution",
|
||||||
"shutdown": "Éteindre",
|
"shutdown": "Éteindre",
|
||||||
|
"size": "Taille",
|
||||||
"snippet": "Extrait",
|
"snippet": "Extrait",
|
||||||
"speed": "Vitesse",
|
"speed": "Vitesse",
|
||||||
"spentTime": "Temps écoulé : {time}",
|
"spentTime": "Temps écoulé : {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100% (taille d'origine), fonctionne uniquement sur la partie police de caractères de la page du serveur, il n'est pas recommandé de la modifier.",
|
"textScalerTip": "1.0 => 100% (taille d'origine), fonctionne uniquement sur la partie police de caractères de la page du serveur, il n'est pas recommandé de la modifier.",
|
||||||
"theme": "Thème",
|
"theme": "Thème",
|
||||||
"themeMode": "Mode du thème",
|
"themeMode": "Mode du thème",
|
||||||
|
"time": "L'heure",
|
||||||
"times": "Fois",
|
"times": "Fois",
|
||||||
"traffic": "Trafic",
|
"traffic": "Trafic",
|
||||||
"ttl": "ttl",
|
"ttl": "ttl",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "Sftp terhubung",
|
"sftpSSHConnected": "Sftp terhubung",
|
||||||
"showDistLogo": "Tampilkan logo distribusi",
|
"showDistLogo": "Tampilkan logo distribusi",
|
||||||
"shutdown": "Matikan",
|
"shutdown": "Matikan",
|
||||||
|
"size": "Ukuran",
|
||||||
"snippet": "Snippet",
|
"snippet": "Snippet",
|
||||||
"speed": "Kecepatan",
|
"speed": "Kecepatan",
|
||||||
"spentTime": "Menghabiskan waktu: {time}",
|
"spentTime": "Menghabiskan waktu: {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100% (ukuran asli), hanya berfungsi pada bagian halaman server font, tidak disarankan untuk diubah.",
|
"textScalerTip": "1.0 => 100% (ukuran asli), hanya berfungsi pada bagian halaman server font, tidak disarankan untuk diubah.",
|
||||||
"theme": " Tema",
|
"theme": " Tema",
|
||||||
"themeMode": "Mode tema",
|
"themeMode": "Mode tema",
|
||||||
|
"time": "Waktu",
|
||||||
"times": "Waktu",
|
"times": "Waktu",
|
||||||
"traffic": "Lalu lintas",
|
"traffic": "Lalu lintas",
|
||||||
"ttl": "ttl",
|
"ttl": "ttl",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "SFTP 已连接...",
|
"sftpSSHConnected": "SFTP 已连接...",
|
||||||
"showDistLogo": "显示发行版 Logo",
|
"showDistLogo": "显示发行版 Logo",
|
||||||
"shutdown": "关机",
|
"shutdown": "关机",
|
||||||
|
"size": "大小",
|
||||||
"snippet": "代码片段",
|
"snippet": "代码片段",
|
||||||
"speed": "速度",
|
"speed": "速度",
|
||||||
"spentTime": "耗时: {time}",
|
"spentTime": "耗时: {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100%(原大小),仅作用于服务器页面部分字体,不建议修改。",
|
"textScalerTip": "1.0 => 100%(原大小),仅作用于服务器页面部分字体,不建议修改。",
|
||||||
"theme": "主题",
|
"theme": "主题",
|
||||||
"themeMode": "主题模式",
|
"themeMode": "主题模式",
|
||||||
|
"time": "时间",
|
||||||
"times": "次",
|
"times": "次",
|
||||||
"traffic": "流量",
|
"traffic": "流量",
|
||||||
"ttl": "缓存时间",
|
"ttl": "缓存时间",
|
||||||
|
|||||||
@@ -208,6 +208,7 @@
|
|||||||
"sftpSSHConnected": "SFTP 已連接...",
|
"sftpSSHConnected": "SFTP 已連接...",
|
||||||
"showDistLogo": "顯示發行版 Logo",
|
"showDistLogo": "顯示發行版 Logo",
|
||||||
"shutdown": "关机",
|
"shutdown": "关机",
|
||||||
|
"size": "大小",
|
||||||
"snippet": "程式片段",
|
"snippet": "程式片段",
|
||||||
"speed": "速度",
|
"speed": "速度",
|
||||||
"spentTime": "耗時: {time}",
|
"spentTime": "耗時: {time}",
|
||||||
@@ -229,6 +230,7 @@
|
|||||||
"textScalerTip": "1.0 => 100%(原大小),僅作用於伺服器頁面部分字體,不建議修改。",
|
"textScalerTip": "1.0 => 100%(原大小),僅作用於伺服器頁面部分字體,不建議修改。",
|
||||||
"theme": "主題",
|
"theme": "主題",
|
||||||
"themeMode": "主題模式",
|
"themeMode": "主題模式",
|
||||||
|
"time": "時間",
|
||||||
"times": "次",
|
"times": "次",
|
||||||
"traffic": "流量",
|
"traffic": "流量",
|
||||||
"ttl": "緩存時間",
|
"ttl": "緩存時間",
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ class _ServerEditPageState extends State<ServerEditPage> {
|
|||||||
() => delScripts = !delScripts,
|
() => delScripts = !delScripts,
|
||||||
),
|
),
|
||||||
controlAffinity: ListTileControlAffinity.leading,
|
controlAffinity: ListTileControlAffinity.leading,
|
||||||
subtitle: Text(l10n.deleteScripts),
|
title: Text(l10n.deleteScripts),
|
||||||
tileColor: Colors.transparent,
|
tileColor: Colors.transparent,
|
||||||
contentPadding: EdgeInsets.zero,
|
contentPadding: EdgeInsets.zero,
|
||||||
)
|
)
|
||||||
@@ -142,13 +142,15 @@ class _ServerEditPageState extends State<ServerEditPage> {
|
|||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
context.pop();
|
||||||
if (delScripts) {
|
if (delScripts) {
|
||||||
|
context.showLoadingDialog();
|
||||||
const cmd =
|
const cmd =
|
||||||
'rm ${ShellFunc.srvBoxDir}/mobile_v*.sh';
|
'rm ${ShellFunc.srvBoxDir}/mobile_v*.sh';
|
||||||
await widget.spi?.server?.client?.run(cmd);
|
await widget.spi?.server?.client?.run(cmd);
|
||||||
|
context.pop();
|
||||||
}
|
}
|
||||||
Pros.server.delServer(widget.spi!.id);
|
Pros.server.delServer(widget.spi!.id);
|
||||||
context.pop();
|
|
||||||
context.pop(true);
|
context.pop(true);
|
||||||
},
|
},
|
||||||
child: Text(l10n.ok, style: UIs.textRed),
|
child: Text(l10n.ok, style: UIs.textRed),
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ class LocalStoragePage extends StatefulWidget {
|
|||||||
class _LocalStoragePageState extends State<LocalStoragePage> {
|
class _LocalStoragePageState extends State<LocalStoragePage> {
|
||||||
LocalPath? _path;
|
LocalPath? _path;
|
||||||
|
|
||||||
|
final _sortType = ValueNotifier(_SortType.name);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
@@ -73,12 +75,44 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
|
|||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.downloading),
|
icon: const Icon(Icons.downloading),
|
||||||
onPressed: () => AppRoute.sftpMission().go(context),
|
onPressed: () => AppRoute.sftpMission().go(context),
|
||||||
)
|
),
|
||||||
|
ValueListenableBuilder<_SortType>(
|
||||||
|
valueListenable: _sortType,
|
||||||
|
builder: (context, value, child) {
|
||||||
|
return PopupMenuButton<_SortType>(
|
||||||
|
icon: const Icon(Icons.sort),
|
||||||
|
itemBuilder: (context) {
|
||||||
|
return [
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.name,
|
||||||
|
child: Text(l10n.name),
|
||||||
|
),
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.size,
|
||||||
|
child: Text(l10n.size),
|
||||||
|
),
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.time,
|
||||||
|
child: Text(l10n.time),
|
||||||
|
),
|
||||||
|
];
|
||||||
|
},
|
||||||
|
onSelected: (value) {
|
||||||
|
_sortType.value = value;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: FadeIn(
|
body: FadeIn(
|
||||||
key: UniqueKey(),
|
key: UniqueKey(),
|
||||||
child: _buildBody(),
|
child: ValueListenableBuilder(
|
||||||
|
valueListenable: _sortType,
|
||||||
|
builder: (_, val, __) {
|
||||||
|
return _buildBody();
|
||||||
|
},
|
||||||
|
),
|
||||||
),
|
),
|
||||||
bottomNavigationBar: SafeArea(child: _buildPath()),
|
bottomNavigationBar: SafeArea(child: _buildPath()),
|
||||||
);
|
);
|
||||||
@@ -129,7 +163,8 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
final dir = Directory(_path!.path);
|
final dir = Directory(_path!.path);
|
||||||
final files = dir.listSync();
|
final tempFiles = dir.listSync();
|
||||||
|
final files = _sortType.value.sort(tempFiles);
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
itemCount: files.length,
|
itemCount: files.length,
|
||||||
padding: const EdgeInsets.symmetric(vertical: 3, horizontal: 7),
|
padding: const EdgeInsets.symmetric(vertical: 3, horizontal: 7),
|
||||||
@@ -142,7 +177,7 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
|
|||||||
return CardX(
|
return CardX(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
leading: isDir
|
leading: isDir
|
||||||
? const Icon(Icons.folder)
|
? const Icon(Icons.folder_open)
|
||||||
: const Icon(Icons.insert_drive_file),
|
: const Icon(Icons.insert_drive_file),
|
||||||
title: Text(fileName),
|
title: Text(fileName),
|
||||||
subtitle: isDir
|
subtitle: isDir
|
||||||
@@ -350,3 +385,26 @@ class _LocalStoragePageState extends State<LocalStoragePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum _SortType {
|
||||||
|
name,
|
||||||
|
size,
|
||||||
|
time,
|
||||||
|
;
|
||||||
|
|
||||||
|
List<FileSystemEntity> sort(List<FileSystemEntity> files) {
|
||||||
|
switch (this) {
|
||||||
|
case _SortType.name:
|
||||||
|
files.sort((a, b) => a.path.compareTo(b.path));
|
||||||
|
break;
|
||||||
|
case _SortType.size:
|
||||||
|
files.sort((a, b) => a.statSync().size.compareTo(b.statSync().size));
|
||||||
|
break;
|
||||||
|
case _SortType.time:
|
||||||
|
files.sort(
|
||||||
|
(a, b) => a.statSync().modified.compareTo(b.statSync().modified));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
final _status = SftpBrowserStatus();
|
final _status = SftpBrowserStatus();
|
||||||
late final _client = widget.spi.server?.client;
|
late final _client = widget.spi.server?.client;
|
||||||
|
|
||||||
|
final _sortType = ValueNotifier(_SortType.name);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -67,6 +69,33 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
icon: const Icon(Icons.downloading),
|
icon: const Icon(Icons.downloading),
|
||||||
onPressed: () => AppRoute.sftpMission().go(context),
|
onPressed: () => AppRoute.sftpMission().go(context),
|
||||||
),
|
),
|
||||||
|
ValueListenableBuilder<_SortType>(
|
||||||
|
valueListenable: _sortType,
|
||||||
|
builder: (context, value, child) {
|
||||||
|
return PopupMenuButton<_SortType>(
|
||||||
|
icon: const Icon(Icons.sort),
|
||||||
|
itemBuilder: (context) {
|
||||||
|
return [
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.name,
|
||||||
|
child: Text(l10n.name),
|
||||||
|
),
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.size,
|
||||||
|
child: Text(l10n.size),
|
||||||
|
),
|
||||||
|
PopupMenuItem(
|
||||||
|
value: _SortType.time,
|
||||||
|
child: Text(l10n.time),
|
||||||
|
),
|
||||||
|
];
|
||||||
|
},
|
||||||
|
onSelected: (value) {
|
||||||
|
_sortType.value = value;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
body: _buildFileView(),
|
body: _buildFileView(),
|
||||||
@@ -244,10 +273,16 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
return RefreshIndicator(
|
return RefreshIndicator(
|
||||||
child: FadeIn(
|
child: FadeIn(
|
||||||
key: Key(widget.spi.name + _status.path!.path),
|
key: Key(widget.spi.name + _status.path!.path),
|
||||||
child: ListView.builder(
|
child: ValueListenableBuilder(
|
||||||
itemCount: _status.files!.length,
|
valueListenable: _sortType,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 3),
|
builder: (_, sortType, __) {
|
||||||
itemBuilder: (_, index) => _buildItem(_status.files![index]),
|
final files = sortType.sort(_status.files!);
|
||||||
|
return ListView.builder(
|
||||||
|
itemCount: files.length,
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 3),
|
||||||
|
itemBuilder: (_, index) => _buildItem(files[index]),
|
||||||
|
);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onRefresh: () => _listDir(),
|
onRefresh: () => _listDir(),
|
||||||
@@ -263,7 +298,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
|
|||||||
);
|
);
|
||||||
return CardX(
|
return CardX(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
leading: Icon(isDir ? Icons.folder : Icons.insert_drive_file),
|
leading: Icon(isDir ? Icons.folder_outlined : Icons.insert_drive_file),
|
||||||
title: Text(file.filename),
|
title: Text(file.filename),
|
||||||
trailing: trailing,
|
trailing: trailing,
|
||||||
subtitle: isDir
|
subtitle: isDir
|
||||||
@@ -755,3 +790,27 @@ String _getTime(int? unixMill) {
|
|||||||
.toString()
|
.toString()
|
||||||
.replaceFirst('.000', '');
|
.replaceFirst('.000', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum _SortType {
|
||||||
|
name,
|
||||||
|
time,
|
||||||
|
size,
|
||||||
|
;
|
||||||
|
|
||||||
|
List<SftpName> sort(List<SftpName> files) {
|
||||||
|
switch (this) {
|
||||||
|
case _SortType.name:
|
||||||
|
files.sort((a, b) => a.filename.compareTo(b.filename));
|
||||||
|
break;
|
||||||
|
case _SortType.time:
|
||||||
|
files.sort(
|
||||||
|
(a, b) => (a.attr.modifyTime ?? 0).compareTo(b.attr.modifyTime ?? 0),
|
||||||
|
);
|
||||||
|
break;
|
||||||
|
case _SortType.size:
|
||||||
|
files.sort((a, b) => (a.attr.size ?? 0).compareTo(b.attr.size ?? 0));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user