From 7c3818bc5186bf9ec80255113e5d7faf4e27ebc2 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Wed, 22 May 2024 20:45:11 +0800 Subject: [PATCH] opt. - hideTitleBar tip - android home widget err handle - sftp loading dialog --- .../tech/lolli/toolbox/widget/HomeWidget.kt | 60 ++++++++------ ios/Runner.xcodeproj/project.pbxproj | 36 ++++----- lib/data/res/build_data.dart | 8 +- lib/l10n/app_de.arb | 1 + lib/l10n/app_en.arb | 1 + lib/l10n/app_es.arb | 1 + lib/l10n/app_fr.arb | 1 + lib/l10n/app_id.arb | 1 + lib/l10n/app_ja.arb | 1 + lib/l10n/app_nl.arb | 1 + lib/l10n/app_pt.arb | 1 + lib/l10n/app_ru.arb | 1 + lib/l10n/app_zh.arb | 1 + lib/l10n/app_zh_tw.arb | 1 + lib/view/page/setting/entry.dart | 1 + lib/view/page/storage/sftp.dart | 81 +++++++++++++------ macos/Runner.xcodeproj/project.pbxproj | 12 +-- 17 files changed, 131 insertions(+), 78 deletions(-) diff --git a/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt b/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt index c88fb530..415003fc 100644 --- a/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt +++ b/android/app/src/main/kotlin/tech/lolli/toolbox/widget/HomeWidget.kt @@ -66,32 +66,44 @@ class HomeWidget : AppWidgetProvider() { } GlobalScope.launch(Dispatchers.IO) { - val jsonStr = URL(url).readText() - val jsonObject = JSONObject(jsonStr) - val data = jsonObject.getJSONObject("data") - val server = data.getString("name") - val cpu = data.getString("cpu") - val mem = data.getString("mem") - val disk = data.getString("disk") - val net = data.getString("net") + try { + val jsonStr = URL(url).readText() + val jsonObject = JSONObject(jsonStr) + val data = jsonObject.getJSONObject("data") + val server = data.getString("name") + val cpu = data.getString("cpu") + val mem = data.getString("mem") + val disk = data.getString("disk") + val net = data.getString("net") - GlobalScope.launch(Dispatchers.Main) main@ { - // mem or disk is empty -> get status failed - // (cpu | net) isEmpty -> data is not ready - if (mem.isEmpty() || disk.isEmpty()) { - return@main + GlobalScope.launch(Dispatchers.Main) main@ { + // mem or disk is empty -> get status failed + // (cpu | net) isEmpty -> data is not ready + if (mem.isEmpty() || disk.isEmpty()) { + return@main + } + views.setTextViewText(R.id.widget_name, server) + + views.setTextViewText(R.id.widget_cpu, cpu) + views.setTextViewText(R.id.widget_mem, mem) + views.setTextViewText(R.id.widget_disk, disk) + views.setTextViewText(R.id.widget_net, net) + + val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString() + views.setTextViewText(R.id.widget_time, timeStr) + + appWidgetManager.updateAppWidget(appWidgetId, views) + } + } catch (e: Exception) { + GlobalScope.launch(Dispatchers.Main) main@ { + views.setViewVisibility(R.id.widget_cpu_label, View.INVISIBLE) + views.setViewVisibility(R.id.widget_mem_label, View.INVISIBLE) + views.setViewVisibility(R.id.widget_disk_label, View.INVISIBLE) + views.setViewVisibility(R.id.widget_net_label, View.INVISIBLE) + views.setTextViewText(R.id.widget_name, "ID: $appWidgetId") + views.setTextViewText(R.id.widget_mem, e.localizedMessage) + appWidgetManager.updateAppWidget(appWidgetId, views) } - views.setTextViewText(R.id.widget_name, server) - - views.setTextViewText(R.id.widget_cpu, cpu) - views.setTextViewText(R.id.widget_mem, mem) - views.setTextViewText(R.id.widget_disk, disk) - views.setTextViewText(R.id.widget_net, net) - - val timeStr = android.text.format.DateFormat.format("HH:mm", java.util.Date()).toString() - views.setTextViewText(R.id.widget_time, timeStr) - - appWidgetManager.updateAppWidget(appWidgetId, views) } } } diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2b157a53..e18167be 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -690,7 +690,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -700,7 +700,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -826,7 +826,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -836,7 +836,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -854,7 +854,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -864,7 +864,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -885,7 +885,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -898,7 +898,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -924,7 +924,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -937,7 +937,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -960,7 +960,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -973,7 +973,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -996,7 +996,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1008,7 +1008,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -1037,7 +1037,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1049,7 +1049,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -1075,7 +1075,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1087,7 +1087,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index d3a7e003..4e7293f9 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 904; + static const int build = 907; static const String engine = "3.22.0"; - static const String buildAt = "2024-05-20 16:10:12"; - static const int modifications = 11; - static const int script = 47; + static const String buildAt = "2024-05-22 19:34:37"; + static const int modifications = 14; + static const int script = 48; } diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 890b9f7d..61b47d97 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -121,6 +121,7 @@ "goBackQ": "Zurückkommen?", "goto": "Pfad öffnen", "hideTitleBar": "Titelleiste ausblenden", + "hideTitleBarTip": "Nach dem Einschalten halten Sie bitte die drei Tasten in der oberen rechten Ecke gedrückt, um sie zu ziehen.", "highlight": "Code highlight", "homeWidgetUrlConfig": "Home-Widget-Link konfigurieren", "host": "Host", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 356a2349..106fde16 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -121,6 +121,7 @@ "goBackQ": "Go back?", "goto": "Go to", "hideTitleBar": "Hide title bar", + "hideTitleBarTip": "After turning it on, please hold down the three buttons in the top right corner to drag.", "highlight": "Code highlight", "homeWidgetUrlConfig": "Config home widget url", "host": "Host", diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 535f082f..46e4ded9 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -121,6 +121,7 @@ "goBackQ": "¿Regresar?", "goto": "Ir a", "hideTitleBar": "Ocultar barra de título", + "hideTitleBarTip": "Después de encenderlo, mantenga presionados los tres botones en la esquina superior derecha para arrastrar.", "highlight": "Resaltar código", "homeWidgetUrlConfig": "Configuración de URL del widget de inicio", "host": "Anfitrión", diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index b408f392..2809093a 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -121,6 +121,7 @@ "goBackQ": "Revenir en arrière ?", "goto": "Aller à", "hideTitleBar": "Masquer la barre de titre", + "hideTitleBarTip": "Après l'avoir allumé, veuillez maintenir les trois boutons dans le coin supérieur droit pour les faire glisser.", "highlight": "Mise en surbrillance du code", "homeWidgetUrlConfig": "Configurer l'URL du widget d'accueil", "host": "Hôte", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 6f5ae764..b54304f4 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -121,6 +121,7 @@ "goBackQ": "Datang kembali?", "goto": "Pergi ke", "hideTitleBar": "Sembunyikan bilah judul", + "hideTitleBarTip": "Setelah dinyalakan, tekan dan tahan tiga tombol di sudut kanan atas untuk menyeret.", "highlight": "Sorotan kode", "homeWidgetUrlConfig": "Konfigurasi URL Widget Rumah", "host": "Host", diff --git a/lib/l10n/app_ja.arb b/lib/l10n/app_ja.arb index 49568faf..bc348a83 100644 --- a/lib/l10n/app_ja.arb +++ b/lib/l10n/app_ja.arb @@ -121,6 +121,7 @@ "goBackQ": "戻りますか?", "goto": "移動", "hideTitleBar": "タイトルバーを非表示にする", + "hideTitleBarTip": "電源を入れた後、右上隅の3つのボタンを押し続けてドラッグしてください。", "highlight": "コードハイライト", "homeWidgetUrlConfig": "ホームウィジェットURL設定", "host": "ホスト", diff --git a/lib/l10n/app_nl.arb b/lib/l10n/app_nl.arb index 75213c9b..3a05cd58 100644 --- a/lib/l10n/app_nl.arb +++ b/lib/l10n/app_nl.arb @@ -121,6 +121,7 @@ "goBackQ": "Terug gaan?", "goto": "Ga naar", "hideTitleBar": "Titelbalk verbergen", + "hideTitleBarTip": "Houd na het inschakelen de drie knoppen in de rechterbovenhoek ingedrukt om te slepen.", "highlight": "Code-highlight", "homeWidgetUrlConfig": "Home-widget-url configureren", "host": "Host", diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb index 8c32c65d..5975d3b1 100644 --- a/lib/l10n/app_pt.arb +++ b/lib/l10n/app_pt.arb @@ -121,6 +121,7 @@ "goBackQ": "Voltar?", "goto": "Ir para", "hideTitleBar": "Ocultar barra de título", + "hideTitleBarTip": "Após ligar, segure os três botões no canto superior direito para arrastar.", "highlight": "Destaque de código", "homeWidgetUrlConfig": "Configuração de URL do widget da tela inicial", "host": "Host", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 8593f015..a822817d 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -121,6 +121,7 @@ "goBackQ": "Вернуться?", "goto": "перейти к", "hideTitleBar": "Скрыть заголовок", + "hideTitleBarTip": "После включения удерживайте три кнопки в правом верхнем углу, чтобы перетаскивать.", "highlight": "подсветка кода", "homeWidgetUrlConfig": "конфигурация URL виджета домашнего экрана", "host": "хост", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index ded46658..5561b0e5 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -121,6 +121,7 @@ "goBackQ": "返回?", "goto": "前往", "hideTitleBar": "隐藏标题栏", + "hideTitleBarTip": "开启后请按住右上角三个按钮来拖动", "highlight": "代码高亮", "homeWidgetUrlConfig": "桌面部件链接配置", "host": "主机", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index c87eedcd..d25d94dc 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -121,6 +121,7 @@ "goBackQ": "返回?", "goto": "前往", "hideTitleBar": "隱藏標題欄", + "hideTitleBarTip": "開啟後請按住右上角三個按鈕來拖動", "highlight": "代碼高亮", "homeWidgetUrlConfig": "桌面部件鏈接配置", "host": "主機", diff --git a/lib/view/page/setting/entry.dart b/lib/view/page/setting/entry.dart index 595a2c07..1aed3aa7 100644 --- a/lib/view/page/setting/entry.dart +++ b/lib/view/page/setting/entry.dart @@ -1088,6 +1088,7 @@ class _SettingPageState extends State { Widget _buildHideTitleBar() { return ListTile( title: Text(l10n.hideTitleBar), + subtitle: Text(l10n.hideTitleBarTip, style: UIs.textGrey), trailing: StoreSwitch(prop: _setting.hideTitleBar), ); } diff --git a/lib/view/page/storage/sftp.dart b/lib/view/page/storage/sftp.dart index 25298cf6..3c1da2f7 100644 --- a/lib/view/page/storage/sftp.dart +++ b/lib/view/page/storage/sftp.dart @@ -428,8 +428,12 @@ class _SftpPageState extends State with AfterLayoutMixin { final result = await AppRoutes.editor(path: localPath).go(context); if (result != null && result) { - Pros.sftp - .add(SftpReq(req.spi, remotePath, localPath, SftpReqType.upload)); + Pros.sftp.add(SftpReq( + req.spi, + remotePath, + localPath, + SftpReqType.upload, + )); context.showSnackBar(l10n.added2List); } } @@ -471,8 +475,10 @@ class _SftpPageState extends State with AfterLayoutMixin { final useRmr = Stores.setting.sftpRmrDir.fetch(); final text = () { if (isDir && !useRmr) { - return l10n - .askContinue('${l10n.dirEmpty}\n${l10n.delete} ${file.filename}'); + return l10n.askContinue( + '${l10n.dirEmpty}\n${l10n.delete} ' + '${file.filename}', + ); } return l10n.askContinue('${l10n.delete} ${file.filename}'); }(); @@ -498,20 +504,10 @@ class _SftpPageState extends State with AfterLayoutMixin { await _status.client!.remove(remotePath); } }); - } catch (e) { - context.showRoundDialog( - title: l10n.error, - child: Text(e.toString()), - actions: [ - TextButton( - onPressed: () => context.pop(), - child: Text(l10n.ok), - ) - ], - ); - return; + _listDir(); + } catch (e, s) { + _showErrDialog(context, e, 'Delete', s); } - _listDir(); }, child: Text(l10n.delete, style: UIs.textRed), ), @@ -549,10 +545,16 @@ class _SftpPageState extends State with AfterLayoutMixin { ); return; } - final dir = '${_status.path!.path}/${textController.text}'; - await _status.client!.mkdir(dir); context.pop(); - _listDir(); + try { + await context.showLoadingDialog(fn: () async { + final dir = '${_status.path!.path}/${textController.text}'; + await _status.client!.mkdir(dir); + }); + _listDir(); + } catch (e, s) { + _showErrDialog(context, e, 'Create folder', s); + } }, child: Text(l10n.ok, style: UIs.textRed), ), @@ -588,10 +590,15 @@ class _SftpPageState extends State with AfterLayoutMixin { return; } context.pop(); - final path = '${_status.path!.path}/${textController.text}'; - await context.showLoadingDialog( - fn: () => _client!.run('touch "$path"')); - _listDir(); + try { + await context.showLoadingDialog(fn: () async { + final path = '${_status.path!.path}/${textController.text}'; + await _client!.run('touch "$path"'); + }); + _listDir(); + } catch (e, s) { + _showErrDialog(context, e, 'Create file', s); + } }, child: Text(l10n.ok, style: UIs.textRed), ), @@ -627,9 +634,16 @@ class _SftpPageState extends State with AfterLayoutMixin { ); return; } - await _status.client?.rename(file.filename, textController.text); context.pop(); - _listDir(); + try { + await context.showLoadingDialog(fn: () async { + final newName = textController.text; + await _status.client?.rename(file.filename, newName); + }); + _listDir(); + } catch (e, s) { + _showErrDialog(context, e, 'Rename', s); + } }, child: Text(l10n.rename, style: UIs.textRed), ), @@ -658,6 +672,21 @@ class _SftpPageState extends State with AfterLayoutMixin { _listDir(); } + Future _showErrDialog( + BuildContext ctx, Object e, String op, StackTrace s) async { + Loggers.app.warning('$op failed', e, s); + return ctx.showRoundDialog( + title: l10n.error, + child: Text(e.toString()), + actions: [ + TextButton( + onPressed: () => ctx.pop(), + child: Text(l10n.ok), + ), + ], + ); + } + String _getRemotePath(SftpName name) { final prePath = _status.path!.path; // Only support Linux as remote now, so the seperator is '/' diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 79ab89a8..755e41e0 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -481,7 +481,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -608,7 +608,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -618,7 +618,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -638,7 +638,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 904; + CURRENT_PROJECT_VERSION = 907; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; @@ -649,7 +649,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.904; + MARKETING_VERSION = 1.0.907; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = "";