diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 8cb6f725..118c7681 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -97,23 +97,23 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/watch_connectivity/ios" SPEC CHECKSUMS: - app_links: e7a6750a915a9e161c58d91bc610e8cd1d4d0ad0 - camera_avfoundation: dd002b0330f4981e1bbcb46ae9b62829237459a4 - file_picker: c79185e70b9b45728cde2a8d8da454e0cb43f287 + app_links: 76b66b60cc809390ca1ad69bfd66b998d2387ac7 + camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf + file_picker: fb04e739ae6239a76ce1f571863a196a922c87d4 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_native_splash: e8a1e01082d97a8099d973f919f57904c925008a - icloud_storage: d9ac7a33ced81df08ba7ea1bf3099cc0ee58f60a - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_native_splash: c32d145d68aeda5502d5f543ee38c192065986cf + icloud_storage: e55639f0c0d7cb2b0ba9c0b3d5968ccca9cd9aa2 + local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - plain_notification_token: b36467dc91939a7b6754267c701bbaca14996ee1 - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 - watch_connectivity: 715eb484685e05846eab74795348a44bb2809b82 + package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + plain_notification_token: 047876b9d80a5b93565ddcc13a487a7e7b906f7d + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49 + watch_connectivity: 88e5bea25b473e66ef8d3f960954d154ed0356d6 PODFILE CHECKSUM: ec6ef69056f066e8b21a3391082f23b5ad2d37f8 diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 5e31d3d3..c53e2b31 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -48,6 +48,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/lib/view/page/editor.dart b/lib/view/page/editor.dart index b96d193c..bf6eebda 100644 --- a/lib/view/page/editor.dart +++ b/lib/view/page/editor.dart @@ -117,7 +117,7 @@ class _EditorPageState extends State { } PreferredSizeWidget _buildAppBar() { - return AppBar( + return CustomAppBar( centerTitle: true, title: TwoLineText( up: widget.args?.title ?? diff --git a/lib/view/page/home/appbar.dart b/lib/view/page/home/appbar.dart index ce6fc3fc..d57084b1 100644 --- a/lib/view/page/home/appbar.dart +++ b/lib/view/page/home/appbar.dart @@ -9,26 +9,6 @@ final class _AppBar extends StatelessWidget implements PreferredSizeWidget { Widget build(BuildContext context) { return SizedBox( height: preferredSize.height, - child: isIOS ? Center(child: _buildLogo()) : null, - ); - } - - Widget _buildLogo() { - final text = Text( - BuildData.name, - style: TextStyle( - fontSize: 10, - fontWeight: FontWeight.bold, - color: UIs.primaryColor.isBrightColor ? Colors.black : Colors.white, - ), - ); - return Container( - decoration: BoxDecoration( - color: UIs.primaryColor, - borderRadius: BorderRadius.circular(11), - ), - padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 1), - child: text, ); } diff --git a/lib/view/page/iperf.dart b/lib/view/page/iperf.dart index 08c5f0ef..d4b7e100 100644 --- a/lib/view/page/iperf.dart +++ b/lib/view/page/iperf.dart @@ -38,7 +38,7 @@ class _IPerfPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: const Text('iperf'), ), body: _buildBody(), diff --git a/lib/view/page/private_key/edit.dart b/lib/view/page/private_key/edit.dart index a37319d2..321a25aa 100644 --- a/lib/view/page/private_key/edit.dart +++ b/lib/view/page/private_key/edit.dart @@ -78,7 +78,7 @@ class _PrivateKeyEditPageState extends State { ); } - AppBar _buildAppBar() { + CustomAppBar _buildAppBar() { final actions = [ IconButton( tooltip: libL10n.delete, @@ -101,7 +101,7 @@ class _PrivateKeyEditPageState extends State { icon: const Icon(Icons.delete), ) ]; - return AppBar( + return CustomAppBar( title: Text(libL10n.edit), actions: widget.pki == null ? null : actions, ); diff --git a/lib/view/page/process.dart b/lib/view/page/process.dart index cfe29bde..16a9e9ea 100644 --- a/lib/view/page/process.dart +++ b/lib/view/page/process.dart @@ -123,7 +123,7 @@ class _ProcessPageState extends State { ); } return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( centerTitle: true, title: TwoLineText(up: widget.spi.name, down: l10n.process), actions: actions, diff --git a/lib/view/page/pve.dart b/lib/view/page/pve.dart index 13c98b9d..44505a8b 100644 --- a/lib/view/page/pve.dart +++ b/lib/view/page/pve.dart @@ -60,7 +60,7 @@ final class _PvePageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: TwoLineText(up: 'PVE', down: widget.args.spi.name), actions: [ ValBuilder( diff --git a/lib/view/page/server/detail/view.dart b/lib/view/page/server/detail/view.dart index 49239321..358fbbd3 100644 --- a/lib/view/page/server/detail/view.dart +++ b/lib/view/page/server/detail/view.dart @@ -86,7 +86,7 @@ class _ServerDetailPageState extends State final s = widget.spi.server; if (s == null) { return Scaffold( - appBar: AppBar(), + appBar: CustomAppBar(), body: Center(child: Text(libL10n.empty)), ); } @@ -119,8 +119,8 @@ class _ServerDetailPageState extends State ); } - AppBar _buildAppBar(Server si) { - return AppBar( + CustomAppBar _buildAppBar(Server si) { + return CustomAppBar( title: Hero( tag: 'home_card_title_${si.spi.id}', transitionOnUserGestures: true, diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index 4230c436..ac000c2b 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -110,7 +110,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { return GestureDetector( onTap: () => _focusScope.unfocus(), child: Scaffold( - appBar: AppBar(title: Text(libL10n.edit), actions: actions), + appBar: CustomAppBar(title: Text(libL10n.edit), actions: actions), body: _buildForm(), floatingActionButton: _buildFAB(), ), diff --git a/lib/view/page/setting/platform/android.dart b/lib/view/page/setting/platform/android.dart index 4959e8bd..b77e3a04 100644 --- a/lib/view/page/setting/platform/android.dart +++ b/lib/view/page/setting/platform/android.dart @@ -17,7 +17,7 @@ class _AndroidSettingsPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: const Text('Android')), + appBar: CustomAppBar(title: const Text('Android')), body: ListView( padding: const EdgeInsets.symmetric(horizontal: 17), children: [ diff --git a/lib/view/page/setting/platform/ios.dart b/lib/view/page/setting/platform/ios.dart index 88b862d0..4f0eb165 100644 --- a/lib/view/page/setting/platform/ios.dart +++ b/lib/view/page/setting/platform/ios.dart @@ -27,7 +27,7 @@ class _IOSSettingsPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: const Text('iOS')), + appBar: CustomAppBar(title: const Text('iOS')), body: ListView( padding: const EdgeInsets.symmetric(horizontal: 17), children: [ diff --git a/lib/view/page/setting/platform/platform_pub.dart b/lib/view/page/setting/platform/platform_pub.dart index b45757c0..bb0b6c20 100644 --- a/lib/view/page/setting/platform/platform_pub.dart +++ b/lib/view/page/setting/platform/platform_pub.dart @@ -19,8 +19,8 @@ abstract final class PlatformPublicSettings { title: Text(libL10n.bioAuth), subtitle: can == true ? null - : const Text( - 'Not available', + : Text( + libL10n.notExistFmt(libL10n.bioAuth), style: UIs.textGrey, ), trailing: can == true diff --git a/lib/view/page/setting/seq/srv_detail_seq.dart b/lib/view/page/setting/seq/srv_detail_seq.dart index ed919529..ccf6df8e 100644 --- a/lib/view/page/setting/seq/srv_detail_seq.dart +++ b/lib/view/page/setting/seq/srv_detail_seq.dart @@ -17,7 +17,7 @@ class _ServerDetailOrderPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text(l10n.serverDetailOrder)), + appBar: CustomAppBar(title: Text(l10n.serverDetailOrder)), body: _buildBody(), ); } diff --git a/lib/view/page/setting/seq/srv_func_seq.dart b/lib/view/page/setting/seq/srv_func_seq.dart index 2f23c394..afabf2ca 100644 --- a/lib/view/page/setting/seq/srv_func_seq.dart +++ b/lib/view/page/setting/seq/srv_func_seq.dart @@ -19,7 +19,7 @@ class _ServerDetailOrderPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text(l10n.sequence)), + appBar: CustomAppBar(title: Text(l10n.sequence)), body: _buildBody(), ); } diff --git a/lib/view/page/setting/seq/srv_seq.dart b/lib/view/page/setting/seq/srv_seq.dart index b5b20108..d74970ba 100644 --- a/lib/view/page/setting/seq/srv_seq.dart +++ b/lib/view/page/setting/seq/srv_seq.dart @@ -16,7 +16,7 @@ class _ServerOrderPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text(l10n.serverOrder)), + appBar: CustomAppBar(title: Text(l10n.serverOrder)), body: _buildBody(), ); } diff --git a/lib/view/page/setting/seq/virt_key.dart b/lib/view/page/setting/seq/virt_key.dart index d2d0f6ad..30d2a1d9 100644 --- a/lib/view/page/setting/seq/virt_key.dart +++ b/lib/view/page/setting/seq/virt_key.dart @@ -17,7 +17,7 @@ class _SSHVirtKeySettingPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text(l10n.editVirtKeys)), + appBar: CustomAppBar(title: Text(l10n.editVirtKeys)), body: Column( children: [ Padding( diff --git a/lib/view/page/snippet/edit.dart b/lib/view/page/snippet/edit.dart index 2491d8a8..c48ca410 100644 --- a/lib/view/page/snippet/edit.dart +++ b/lib/view/page/snippet/edit.dart @@ -38,7 +38,7 @@ class _SnippetEditPageState extends State @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: Text(libL10n.edit), actions: _buildAppBarActions(), ), diff --git a/lib/view/page/snippet/result.dart b/lib/view/page/snippet/result.dart index f38ac6e9..bc8f606c 100644 --- a/lib/view/page/snippet/result.dart +++ b/lib/view/page/snippet/result.dart @@ -11,7 +11,7 @@ class SnippetResultPage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: Text(l10n.result)), + appBar: CustomAppBar(title: Text(l10n.result)), body: _buildBody(), ); } diff --git a/lib/view/page/storage/local.dart b/lib/view/page/storage/local.dart index 0cdbdfa1..6410a8fa 100644 --- a/lib/view/page/storage/local.dart +++ b/lib/view/page/storage/local.dart @@ -53,7 +53,7 @@ class _LocalFilePageState extends State super.build(context); final title = _path.path.fileNameGetter ?? libL10n.file; return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: AnimatedSwitcher( duration: Durations.short3, child: Text(title, key: ValueKey(title)), diff --git a/lib/view/page/storage/sftp.dart b/lib/view/page/storage/sftp.dart index 8c11cd97..b570196b 100644 --- a/lib/view/page/storage/sftp.dart +++ b/lib/view/page/storage/sftp.dart @@ -62,7 +62,7 @@ class _SftpPageState extends State with AfterLayoutMixin { if (isDesktop) children.add(_buildRefreshBtn()); return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: TwoLineText(up: 'SFTP', down: widget.spi.name), actions: children, ), diff --git a/lib/view/page/storage/sftp_mission.dart b/lib/view/page/storage/sftp_mission.dart index 6d64658b..67490fd2 100644 --- a/lib/view/page/storage/sftp_mission.dart +++ b/lib/view/page/storage/sftp_mission.dart @@ -16,7 +16,7 @@ class _SftpMissionPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: Text(l10n.mission, style: UIs.text18), ), body: _buildBody(), diff --git a/lib/view/page/systemd.dart b/lib/view/page/systemd.dart index 446e01c4..f4963651 100644 --- a/lib/view/page/systemd.dart +++ b/lib/view/page/systemd.dart @@ -42,7 +42,7 @@ final class _SystemdPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( + appBar: CustomAppBar( title: const Text('Systemd'), actions: isDesktop ? [Btn.icon(icon: const Icon(Icons.refresh), onTap: _pro.getUnits)] diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index fbbe3dd9..8a570223 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -653,7 +653,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = serverbox; + "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = serverbox_lkmm; SWIFT_VERSION = 5.0; }; name = Release; diff --git a/pubspec.lock b/pubspec.lock index 18ad1178..adc89cc6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -66,10 +66,10 @@ packages: dependency: transitive description: name: archive - sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742" + sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12" url: "https://pub.dev" source: hosted - version: "4.0.4" + version: "4.0.5" args: dependency: transitive description: @@ -82,10 +82,10 @@ packages: dependency: transitive description: name: asn1lib - sha256: "068190d6c99c436287936ba5855af2e1fa78d8083ae65b4db6a281780da727ae" + sha256: e02d018628c870ef2d7f03e33f9ad179d89ff6ec52ca6c56bcb80bcef979867f url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "1.6.2" async: dependency: transitive description: @@ -186,10 +186,10 @@ packages: dependency: transitive description: name: camera_avfoundation - sha256: "3057ada0b30402e3a9b6dffec365c9736a36edbf04abaecc67c4309eadc86b49" + sha256: ba48b65a3a97004276ede882e6b838d9667642ff462c95a8bb57ca8a82b6bd25 url: "https://pub.dev" source: hosted - version: "0.9.18+9" + version: "0.9.18+11" camera_platform_interface: dependency: transitive description: @@ -340,11 +340,11 @@ packages: dependency: "direct main" description: path: "." - ref: no-etm - resolved-ref: "88852f3a6304c8f6876b17aaed757111bf8128ae" + ref: master + resolved-ref: "262f41491ec6e558f4799935924b3c222869e698" url: "https://github.com/lollipopkit/dartssh2" source: git - version: "2.9.1-pre" + version: "2.12.0" dbus: dependency: transitive description: @@ -406,17 +406,21 @@ packages: description: name: extended_image sha256: fcefcf3cba32696c639e9e305a790039709d05a7139320b91bb9d300993452e2 + sha256: fcefcf3cba32696c639e9e305a790039709d05a7139320b91bb9d300993452e2 url: "https://pub.dev" source: hosted version: "10.0.0" + version: "10.0.0" extended_image_library: dependency: transitive description: name: extended_image_library sha256: ae468c31c375064964de11cbb31310a58c4462df6e3bae1a0bc0066f586795d5 + sha256: ae468c31c375064964de11cbb31310a58c4462df6e3bae1a0bc0066f586795d5 url: "https://pub.dev" source: hosted version: "5.0.0" + version: "5.0.0" fake_async: dependency: transitive description: @@ -446,9 +450,11 @@ packages: description: name: file_picker sha256: "8d938fd5c11dc81bf1acd4f7f0486c683fe9e79a0b13419e27730f9ce4d8a25b" + sha256: "8d938fd5c11dc81bf1acd4f7f0486c683fe9e79a0b13419e27730f9ce4d8a25b" url: "https://pub.dev" source: hosted version: "9.2.1" + version: "9.2.1" fixnum: dependency: transitive description: @@ -633,10 +639,10 @@ packages: dependency: "direct main" description: name: flutter_reorderable_grid_view - sha256: a7e0f9d5ba12fd232eb07fbb7f570ae35491045a6bba1858f6eb50c675526dfe + sha256: f5db90ae62f8307daef9a884e09ed2d883838592e92185017a4431fe8e78899e url: "https://pub.dev" source: hosted - version: "5.4.1" + version: "5.5.0" flutter_riverpod: dependency: transitive description: @@ -795,10 +801,10 @@ packages: dependency: transitive description: name: image - sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "4.5.4" intl: dependency: "direct main" description: @@ -1477,14 +1483,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.2" - unorm_dart: - dependency: transitive - description: - name: unorm_dart - sha256: "23d8bf65605401a6a32cff99435fed66ef3dab3ddcad3454059165df46496a3b" - url: "https://pub.dev" - source: hosted - version: "0.3.0" url_launcher: dependency: transitive description: @@ -1738,3 +1736,4 @@ packages: sdks: dart: ">=3.7.0 <4.0.0" flutter: ">=3.29.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml index 25eb991c..d7c7c7dd 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,7 +34,7 @@ dependencies: dartssh2: git: url: https://github.com/lollipopkit/dartssh2 - ref: no-etm + ref: master circle_chart: git: url: https://github.com/lollipopkit/circle_chart