migrate: fl_lib

This commit is contained in:
lollipopkit🏳️‍⚧️
2024-08-01 13:44:32 +08:00
parent 969643d3df
commit 73248011a1
11 changed files with 119 additions and 123 deletions

View File

@@ -690,7 +690,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -700,7 +700,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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";
@@ -826,7 +826,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -836,7 +836,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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";
@@ -854,7 +854,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -864,7 +864,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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";
@@ -885,7 +885,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -898,7 +898,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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;
@@ -924,7 +924,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -937,7 +937,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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)";
@@ -960,7 +960,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11; GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
@@ -973,7 +973,7 @@
"@executable_path/Frameworks", "@executable_path/Frameworks",
"@executable_path/../../Frameworks", "@executable_path/../../Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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)";
@@ -996,7 +996,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1008,7 +1008,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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;
@@ -1037,7 +1037,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1049,7 +1049,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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;
@@ -1075,7 +1075,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 = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
@@ -1087,7 +1087,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
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;

View File

@@ -2,6 +2,6 @@
class BuildData { class BuildData {
static const String name = "ServerBox"; static const String name = "ServerBox";
static const int build = 1038; static const int build = 1041;
static const int script = 55; static const int script = 55;
} }

View File

@@ -222,10 +222,10 @@ class BackupPage extends StatelessWidget {
if (text == null) return; if (text == null) return;
try { try {
final backup = await context.showLoadingDialog( final (backup, err) = await context.showLoadingDialog(
fn: () => Computer.shared.start(Backup.fromJsonString, text.trim()), fn: () => Computer.shared.start(Backup.fromJsonString, text.trim()),
); );
if (backup == null) return; if (err != null || backup == null) return;
if (backupFormatVersion != backup.version) { if (backupFormatVersion != backup.version) {
context.showSnackBar(l10n.backupVersionNotMatch); context.showSnackBar(l10n.backupVersionNotMatch);
return; return;
@@ -364,11 +364,11 @@ class BackupPage extends StatelessWidget {
} }
try { try {
final backup = await context.showLoadingDialog( final (backup, err) = await context.showLoadingDialog(
fn: () => Computer.shared.start(Backup.fromJsonString, text.trim()), fn: () => Computer.shared.start(Backup.fromJsonString, text.trim()),
); );
if (err != null || backup == null) return;
if (backup == null) return;
if (backupFormatVersion != backup.version) { if (backupFormatVersion != backup.version) {
context.showSnackBar(l10n.backupVersionNotMatch); context.showSnackBar(l10n.backupVersionNotMatch);
return; return;
@@ -404,13 +404,13 @@ class BackupPage extends StatelessWidget {
if (text == null) return; if (text == null) return;
try { try {
final spis = await context.showLoadingDialog( final (spis, err) = await context.showLoadingDialog(
fn: () => Computer.shared.start((val) { fn: () => Computer.shared.start((val) {
final list = json.decode(val) as List; final list = json.decode(val) as List;
return list.map((e) => ServerPrivateInfo.fromJson(e)).toList(); return list.map((e) => ServerPrivateInfo.fromJson(e)).toList();
}, text.trim()), }, text.trim()),
); );
if (spis == null) return; if (err != null || spis == null) return;
final sure = await context.showRoundDialog<bool>( final sure = await context.showRoundDialog<bool>(
title: l10n.import, title: l10n.import,
child: Text(l10n.askContinue('${spis.length} ${l10n.server}')), child: Text(l10n.askContinue('${spis.length} ${l10n.server}')),
@@ -422,7 +422,7 @@ class BackupPage extends StatelessWidget {
], ],
); );
if (sure == true) { if (sure == true) {
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
for (var spi in spis) { for (var spi in spis) {
Stores.server.put(spi); Stores.server.put(spi);
@@ -430,7 +430,7 @@ class BackupPage extends StatelessWidget {
return true; return true;
}, },
); );
if (suc != true) return; if (err != null || suc != true) return;
context.showSnackBar(l10n.success); context.showSnackBar(l10n.success);
} }
} catch (e, s) { } catch (e, s) {

View File

@@ -391,11 +391,15 @@ class _ContainerPageState extends State<ContainerPage> {
onPressed: () async { onPressed: () async {
context.pop(); context.pop();
final result = await context.showLoadingDialog( final (result, err) = await context.showLoadingDialog(
fn: () => _container.run(cmd), fn: () => _container.run(cmd),
); );
if (result != null) { if (err != null || result != null) {
context.showSnackBar(result.message ?? l10n.unknownError); final e = result?.message ?? err?.toString();
context.showRoundDialog(
title: l10n.error,
child: Text(e ?? l10n.unknownError),
);
} }
}, },
child: Text(l10n.run), child: Text(l10n.run),
@@ -506,13 +510,14 @@ class _ContainerPageState extends State<ContainerPage> {
onPressed: () async { onPressed: () async {
context.pop(); context.pop();
final result = await context.showLoadingDialog( final (result, err) = await context.showLoadingDialog(
fn: () => _container.delete(id, force), fn: () => _container.delete(id, force),
); );
if (result != null) { if (err != null || result != null) {
final e = result?.message ?? err?.toString();
context.showRoundDialog( context.showRoundDialog(
title: l10n.error, title: l10n.error,
child: Text(result.message ?? l10n.unknownError), child: Text(e ?? l10n.unknownError),
); );
} }
}, },
@@ -522,35 +527,38 @@ class _ContainerPageState extends State<ContainerPage> {
); );
break; break;
case ContainerMenu.start: case ContainerMenu.start:
final result = await context.showLoadingDialog( final (result, err) = await context.showLoadingDialog(
fn: () => _container.start(id), fn: () => _container.start(id),
); );
if (result != null) { if (err != null || result != null) {
final e = result?.message ?? err?.toString();
context.showRoundDialog( context.showRoundDialog(
title: l10n.error, title: l10n.error,
child: Text(result.message ?? l10n.unknownError), child: Text(e ?? l10n.unknownError),
); );
} }
break; break;
case ContainerMenu.stop: case ContainerMenu.stop:
final result = await context.showLoadingDialog( final (result, err) = await context.showLoadingDialog(
fn: () => _container.stop(id), fn: () => _container.stop(id),
); );
if (result != null) { if (err != null || result != null) {
final e = result?.message ?? err?.toString();
context.showRoundDialog( context.showRoundDialog(
title: l10n.error, title: l10n.error,
child: Text(result.message ?? l10n.unknownError), child: Text(e ?? l10n.unknownError),
); );
} }
break; break;
case ContainerMenu.restart: case ContainerMenu.restart:
final result = await context.showLoadingDialog( final (result, err) = await context.showLoadingDialog(
fn: () => _container.restart(id), fn: () => _container.restart(id),
); );
if (result != null) { if (err != null || result != null) {
final e = result?.message ?? err?.toString();
context.showRoundDialog( context.showRoundDialog(
title: l10n.error, title: l10n.error,
child: Text(result.message ?? l10n.unknownError), child: Text(e ?? l10n.unknownError),
); );
} }
break; break;

View File

@@ -145,10 +145,13 @@ class _EditorPageState extends State<EditorPage> {
// If path is not null, then it's a file editor // If path is not null, then it's a file editor
// save the text and return true to pop the page // save the text and return true to pop the page
if (widget.path != null) { if (widget.path != null) {
final res = await context.showLoadingDialog( final (res, _) = await context.showLoadingDialog(
fn: () => File(widget.path!).writeAsString(_controller.text), fn: () => File(widget.path!).writeAsString(_controller.text),
); );
if (res == null) return; if (res == null) {
context.showSnackBar(l10n.failed);
return;
}
context.pop(true); context.pop(true);
return; return;
} }

View File

@@ -430,12 +430,13 @@ final class _PvePageState extends State<PvePage> {
); );
if (sure != true) return; if (sure != true) return;
final suc = final (suc, err) = await context.showLoadingDialog(
await context.showLoadingDialog(fn: () => func(item.node, item.id)); fn: () => func(item.node, item.id),
);
if (suc == true) { if (suc == true) {
context.showSnackBar(l10n.success); context.showSnackBar(l10n.success);
} else { } else {
context.showSnackBar(l10n.failed); context.showSnackBar(err?.toString() ?? l10n.failed);
} }
} }

View File

@@ -114,12 +114,12 @@ class _IOSSettingsPageState extends State<IOSSettingsPage> {
final result = await AppRoutes.kvEditor(data: urls).go(context); final result = await AppRoutes.kvEditor(data: urls).go(context);
if (result == null || result is! Map<String, String>) return; if (result == null || result is! Map<String, String>) return;
final suc = await context.showLoadingDialog(fn: () async { final (suc, err) = await context.showLoadingDialog(fn: () async {
await wc.updateApplicationContext({'urls': result}); await wc.updateApplicationContext({'urls': result});
return true; return true;
}); });
if (suc == true) { if (suc == true) {
context.showSnackBar(l10n.success); context.showSnackBar(err?.toString() ?? l10n.success);
} }
} }
} }

View File

@@ -471,8 +471,10 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
SftpReqType.download, SftpReqType.download,
); );
Pros.sftp.add(req, completer: completer); Pros.sftp.add(req, completer: completer);
final suc = await context.showLoadingDialog(fn: () => completer.future); final (suc, err) = await context.showLoadingDialog(
if (suc == null) return; fn: () => completer.future,
);
if (suc == null || err != null) return;
final result = await AppRoutes.editor(path: localPath).go<bool>(context); final result = await AppRoutes.editor(path: localPath).go<bool>(context);
if (result != null && result) { if (result != null && result) {
@@ -564,7 +566,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
onPressed: () async { onPressed: () async {
context.pop(); context.pop();
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
final remotePath = _getRemotePath(file); final remotePath = _getRemotePath(file);
if (useRmr) { if (useRmr) {
@@ -577,7 +579,7 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
return true; return true;
}, },
); );
if (suc == null) return; if (suc == null || err != null) return;
_listDir(); _listDir();
}, },
@@ -606,14 +608,14 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
} }
context.pop(); context.pop();
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
final dir = '${_status.path!.path}/${textController.text}'; final dir = '${_status.path!.path}/${textController.text}';
await _status.client!.mkdir(dir); await _status.client!.mkdir(dir);
return true; return true;
}, },
); );
if (suc == null) return; if (suc == null || err != null) return;
_listDir(); _listDir();
} }
@@ -661,14 +663,14 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
} }
context.pop(); context.pop();
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
final path = '${_status.path!.path}/${textController.text}'; final path = '${_status.path!.path}/${textController.text}';
await _client!.run('touch "$path"'); await _client!.run('touch "$path"');
return true; return true;
}, },
); );
if (suc == null) return; if (suc == null || err != null) return;
_listDir(); _listDir();
} }
@@ -712,14 +714,14 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
} }
context.pop(); context.pop();
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
final newName = textController.text; final newName = textController.text;
await _status.client?.rename(file.filename, newName); await _status.client?.rename(file.filename, newName);
return true; return true;
}, },
); );
if (suc == null) return; if (suc == null || err != null) return;
_listDir(); _listDir();
} }
@@ -767,10 +769,10 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
); );
if (confirm != true) return; if (confirm != true) return;
final suc = await context.showLoadingDialog( final (suc, err) = await context.showLoadingDialog(
fn: () => _client?.run(cmd) ?? Future.value(false), fn: () => _client?.run(cmd) ?? Future.value(false),
); );
if (suc == null) return; if (suc == null || err != null) return;
_listDir(); _listDir();
} }
@@ -786,10 +788,9 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
/// Only return true if the path is changed /// Only return true if the path is changed
Future<bool?> _listDir() async { Future<bool?> _listDir() async {
return context.showLoadingDialog( final (ret, err) = await context.showLoadingDialog(
fn: () async { fn: () async {
_status.client ??= await _client?.sftp(); _status.client ??= await _client?.sftp();
try {
final listPath = _status.path?.path ?? '/'; final listPath = _status.path?.path ?? '/';
final fs = await _status.client?.listdir(listPath); final fs = await _status.client?.listdir(listPath);
if (fs == null) { if (fs == null) {
@@ -824,27 +825,10 @@ class _SftpPageState extends State<SftpPage> with AfterLayoutMixin {
return true; return true;
} }
return false; return false;
} catch (e, trace) {
Loggers.app.warning('List dir failed', e, trace);
await _backward();
Future.delayed(
const Duration(milliseconds: 177),
() => context.showRoundDialog(
title: l10n.error,
child: Text(e.toString()),
actions: [
TextButton(
onPressed: () => context.pop(),
child: Text(l10n.ok),
)
],
),
);
return false;
}
}, },
barrierDismiss: true, barrierDismiss: true,
); );
return ret ?? err == null;
} }
Future<void> _backward() async { Future<void> _backward() async {

View File

@@ -471,7 +471,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -481,7 +481,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -608,7 +608,7 @@
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = BA88US33G6; DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -618,7 +618,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@@ -638,7 +638,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES; COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1038; CURRENT_PROJECT_VERSION = 1041;
DEVELOPMENT_TEAM = ""; DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_FILE = Runner/Info.plist;
@@ -649,7 +649,7 @@
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MACOSX_DEPLOYMENT_TARGET = 10.15; MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.1038; MARKETING_VERSION = 1.0.1041;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box"; PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

View File

@@ -385,8 +385,8 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
path: "." path: "."
ref: "v1.0.99" ref: "v1.0.103"
resolved-ref: d2b9bb5093528cc014e8ddc0bcb70bf7fec16e99 resolved-ref: "29498d4fc22e628dcd46943601c15f12a59b7c4e"
url: "https://github.com/lppcg/fl_lib" url: "https://github.com/lppcg/fl_lib"
source: git source: git
version: "0.0.1" version: "0.0.1"

View File

@@ -1,7 +1,7 @@
name: server_box name: server_box
description: server status & toolbox app. description: server status & toolbox app.
publish_to: 'none' publish_to: 'none'
version: 1.0.1038+1038 version: 1.0.1041+1041
environment: environment:
sdk: ">=3.0.0" sdk: ">=3.0.0"
@@ -62,7 +62,7 @@ dependencies:
fl_lib: fl_lib:
git: git:
url: https://github.com/lppcg/fl_lib url: https://github.com/lppcg/fl_lib
ref: v1.0.99 ref: v1.0.103
dependency_overrides: dependency_overrides:
# dartssh2: # dartssh2: