diff --git a/.metadata b/.metadata index a2217950..6343afd1 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled. version: - revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + revision: 9944297138845a94256f1cf37beb88ff9a8e811a channel: stable project_type: app @@ -13,11 +13,11 @@ project_type: app migration: platforms: - platform: root - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a + base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a - platform: macos - create_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf - base_revision: b06b8b2710955028a6b562f5aa6fe62941d6febf + create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a + base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a # User provided section diff --git a/ios/Podfile.lock b/ios/Podfile.lock index f101de8c..fb5aed99 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -49,10 +49,10 @@ SPEC CHECKSUMS: file_picker: 1d63c4949e05e386da864365f8c13e1e64787675 Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 r_upgrade: 44d715c61914cce3d01ea225abffe894fd51c114 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 - url_launcher_ios: ae1517e5e344f5544fb090b079e11f399dfbe4d2 + url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 PODFILE CHECKSUM: 7fb15c416f8685fca4966867a8da218ec592ec2e diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index ea6a2f7c..8fa9228c 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -356,7 +356,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 225; + CURRENT_PROJECT_VERSION = 227; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -364,7 +364,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.225; + MARKETING_VERSION = 1.0.227; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -486,7 +486,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 225; + CURRENT_PROJECT_VERSION = 227; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -494,7 +494,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.225; + MARKETING_VERSION = 1.0.227; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -510,7 +510,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 225; + CURRENT_PROJECT_VERSION = 227; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -518,7 +518,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.225; + MARKETING_VERSION = 1.0.227; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/l10n.yaml b/l10n.yaml new file mode 100644 index 00000000..1bde77d5 --- /dev/null +++ b/l10n.yaml @@ -0,0 +1,4 @@ +arb-dir: lib/l10n +template-arb-file: app_en.arb +output-localization-file: l10n.dart +output-class: S \ No newline at end of file diff --git a/lib/app.dart b/lib/app.dart index 7500f379..8a4a0df3 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -1,85 +1,92 @@ import 'package:flutter/material.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '/core/extension/colorx.dart'; import 'core/utils/ui.dart'; import 'data/res/build_data.dart'; import 'data/res/color.dart'; import 'data/store/setting.dart'; -import 'generated/l10n.dart'; import 'locator.dart'; import 'view/page/home.dart'; class MyApp extends StatelessWidget { - const MyApp({Key? key}) : super(key: key); + MyApp({Key? key}) : super(key: key); + + final _setting = locator(); @override Widget build(BuildContext context) { setTransparentNavigationBar(context); return ValueListenableBuilder( - valueListenable: locator().primaryColor.listenable(), + valueListenable: _setting.primaryColor.listenable(), builder: (_, colorValue, __) { primaryColor = Color(colorValue); - - final textStyle = TextStyle(color: primaryColor); - final materialColor = primaryColor.materialStateColor; - final materialColorAlpha = - primaryColor.withOpacity(0.7).materialStateColor; - final fabTheme = - FloatingActionButtonThemeData(backgroundColor: primaryColor); - final switchTheme = SwitchThemeData( - thumbColor: materialColor, - trackColor: materialColorAlpha, - ); - final appBarTheme = AppBarTheme(backgroundColor: primaryColor); - final iconTheme = IconThemeData(color: primaryColor); - final inputDecorationTheme = InputDecorationTheme( - labelStyle: textStyle, - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide(color: primaryColor), - ), - ); - final radioTheme = RadioThemeData( - fillColor: materialColor, - ); - - return MaterialApp( - debugShowCheckedModeBanner: false, - localizationsDelegates: const [ - S.delegate, - ...GlobalMaterialLocalizations.delegates, - ], - supportedLocales: S.delegate.supportedLocales, - title: BuildData.name, - theme: ThemeData( - useMaterial3: false, - primaryColor: primaryColor, - primarySwatch: primaryColor.materialColor, - appBarTheme: appBarTheme, - floatingActionButtonTheme: fabTheme, - iconTheme: iconTheme, - primaryIconTheme: iconTheme, - switchTheme: switchTheme, - inputDecorationTheme: inputDecorationTheme, - radioTheme: radioTheme, - ), - darkTheme: ThemeData.dark().copyWith( - useMaterial3: false, - floatingActionButtonTheme: fabTheme, - iconTheme: iconTheme, - primaryIconTheme: iconTheme, - switchTheme: switchTheme, - inputDecorationTheme: inputDecorationTheme, - radioTheme: radioTheme, - colorScheme: ColorScheme.fromSwatch( - primarySwatch: primaryColor.materialColor, - brightness: Brightness.dark, - accentColor: primaryColor, - ), - ), - home: const MyHomePage(), + return ValueListenableBuilder( + valueListenable: _setting.nightMode.listenable(), + builder: (_, mode, __) => _buildApp(mode), ); }, ); } + + Widget _buildApp(int nightMode) { + final textStyle = TextStyle(color: primaryColor); + final materialColor = primaryColor.materialStateColor; + final materialColorAlpha = primaryColor.withOpacity(0.7).materialStateColor; + final fabTheme = + FloatingActionButtonThemeData(backgroundColor: primaryColor); + final switchTheme = SwitchThemeData( + thumbColor: materialColor, + trackColor: materialColorAlpha, + ); + final appBarTheme = AppBarTheme(backgroundColor: primaryColor); + final iconTheme = IconThemeData(color: primaryColor); + final inputDecorationTheme = InputDecorationTheme( + labelStyle: textStyle, + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: primaryColor), + ), + ); + final radioTheme = RadioThemeData( + fillColor: materialColor, + ); + final ok = nightMode >= 0 && nightMode <= ThemeMode.values.length - 1; + final themeMode = ok ? ThemeMode.values[nightMode] : ThemeMode.system; + + return MaterialApp( + debugShowCheckedModeBanner: false, + localizationsDelegates: S.localizationsDelegates, + supportedLocales: S.supportedLocales, + title: BuildData.name, + themeMode: themeMode, + theme: ThemeData( + useMaterial3: false, + primaryColor: primaryColor, + primarySwatch: primaryColor.materialColor, + appBarTheme: appBarTheme, + floatingActionButtonTheme: fabTheme, + iconTheme: iconTheme, + primaryIconTheme: iconTheme, + switchTheme: switchTheme, + inputDecorationTheme: inputDecorationTheme, + radioTheme: radioTheme, + ), + darkTheme: ThemeData.dark().copyWith( + useMaterial3: false, + floatingActionButtonTheme: fabTheme, + iconTheme: iconTheme, + primaryIconTheme: iconTheme, + switchTheme: switchTheme, + inputDecorationTheme: inputDecorationTheme, + radioTheme: radioTheme, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: primaryColor.materialColor, + brightness: Brightness.dark, + accentColor: primaryColor, + ), + ), + themeAnimationDuration: const Duration(milliseconds: 237), + home: const MyHomePage(), + ); + } } diff --git a/lib/core/update.dart b/lib/core/update.dart index f255d29a..7d08e36e 100644 --- a/lib/core/update.dart +++ b/lib/core/update.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:logging/logging.dart'; import 'package:r_upgrade/r_upgrade.dart'; @@ -9,7 +10,6 @@ import '../data/model/app/update.dart'; import '../data/provider/app.dart'; import '../data/res/build_data.dart'; import '../data/service/app.dart'; -import '../generated/l10n.dart'; import '../locator.dart'; import 'utils/ui.dart'; @@ -53,7 +53,7 @@ Future doUpdate(BuildContext context, {bool force = false}) async { return; } - final s = S.of(context); + final s = S.of(context)!; if (update.min > BuildData.build) { showRoundDialog( diff --git a/lib/core/utils/misc.dart b/lib/core/utils/misc.dart index b09e8c6a..f7c17133 100644 --- a/lib/core/utils/misc.dart +++ b/lib/core/utils/misc.dart @@ -3,10 +3,9 @@ import 'dart:io'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:share_plus/share_plus.dart'; -import '../../generated/l10n.dart'; - Future shareFiles(BuildContext context, List filePaths) async { for (final filePath in filePaths) { if (!await File(filePath).exists()) { @@ -17,7 +16,7 @@ Future shareFiles(BuildContext context, List filePaths) async { if (filePaths.length == 1) { text = filePaths.first.split('/').last; } else { - text = '${filePaths.length} ${S.of(context).files}'; + text = '${filePaths.length} ${S.of(context)!.files}'; } final xfiles = filePaths.map((e) => XFile(e)).toList(); await Share.shareXFiles(xfiles, text: 'ServerBox -> $text'); diff --git a/lib/core/utils/server.dart b/lib/core/utils/server.dart index 8ba5578b..55668894 100644 --- a/lib/core/utils/server.dart +++ b/lib/core/utils/server.dart @@ -8,9 +8,9 @@ import '../../data/store/private_key.dart'; import '../../locator.dart'; /// Must put this func out of any Class. -/// +/// /// Because of this function is called by [compute] in [ServerProvider.genClient]. -/// +/// /// https://stackoverflow.com/questions/51998995/invalid-arguments-illegal-argument-in-isolate-message-object-is-a-closure List loadIndentity(String key) { return SSHKeyPair.fromPem(key); diff --git a/lib/core/utils/ui.dart b/lib/core/utils/ui.dart index 7a099794..c2d9e8f9 100644 --- a/lib/core/utils/ui.dart +++ b/lib/core/utils/ui.dart @@ -2,10 +2,10 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:toolbox/core/extension/stringx.dart'; import 'package:url_launcher/url_launcher.dart'; -import '../../generated/l10n.dart'; import '../../view/widget/card_dialog.dart'; import '../persistant_store.dart'; @@ -89,7 +89,7 @@ Widget buildPopuopMenu( } String tabTitleName(BuildContext context, int i) { - final s = S.of(context); + final s = S.of(context)!; switch (i) { case 0: return s.server; diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 014f212e..d196b954 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,8 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 225; - static const String engine = "Flutter 3.7.3 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 9944297138 (9 days ago) • 2023-02-08 15:46:04 -0800\nEngine • revision 248290d6d5\nTools • Dart 2.19.2 • DevTools 2.20.1\n"; - static const String buildAt = "2023-02-18 13:22:17.786805"; - static const int modifications = 3; + static const int build = 227; + static const String engine = + "Flutter 3.7.3 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 9944297138 (2 weeks ago) • 2023-02-08 15:46:04 -0800\nEngine • revision 248290d6d5\nTools • Dart 2.19.2 • DevTools 2.20.1\n"; + static const String buildAt = "2023-02-25 18:23:00.718232"; + static const int modifications = 13; } diff --git a/lib/data/res/menu.dart b/lib/data/res/menu.dart index 525c4656..ed3537a1 100644 --- a/lib/data/res/menu.dart +++ b/lib/data/res/menu.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; -import '../../generated/l10n.dart'; import '../../view/widget/dropdown_menu.dart'; class ServerTabMenuItems { diff --git a/lib/data/store/setting.dart b/lib/data/store/setting.dart index f18bb678..b2522252 100644 --- a/lib/data/store/setting.dart +++ b/lib/data/store/setting.dart @@ -29,4 +29,8 @@ class SettingStore extends PersistentStore { /// Max retry count when connect to server StoreProperty get maxRetryCount => property('maxRetryCount', defaultValue: 7); + + /// Night mode: 0 -> auto, 1 -> light, 2 -> dark + StoreProperty get nightMode => + property('nightMode', defaultValue: ThemeMode.system.index); } diff --git a/lib/generated/intl/messages_all.dart b/lib/generated/intl/messages_all.dart deleted file mode 100644 index 32161b6f..00000000 --- a/lib/generated/intl/messages_all.dart +++ /dev/null @@ -1,67 +0,0 @@ -// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart -// This is a library that looks up messages for specific locales by -// delegating to the appropriate library. - -// Ignore issues from commonly used lints in this file. -// ignore_for_file:implementation_imports, file_names, unnecessary_new -// ignore_for_file:unnecessary_brace_in_string_interps, directives_ordering -// ignore_for_file:argument_type_not_assignable, invalid_assignment -// ignore_for_file:prefer_single_quotes, prefer_generic_function_type_aliases -// ignore_for_file:comment_references - -import 'dart:async'; - -import 'package:flutter/foundation.dart'; -import 'package:intl/intl.dart'; -import 'package:intl/message_lookup_by_library.dart'; -import 'package:intl/src/intl_helpers.dart'; - -import 'messages_en.dart' as messages_en; -import 'messages_zh.dart' as messages_zh; - -typedef Future LibraryLoader(); -Map _deferredLibraries = { - 'en': () => new SynchronousFuture(null), - 'zh': () => new SynchronousFuture(null), -}; - -MessageLookupByLibrary? _findExact(String localeName) { - switch (localeName) { - case 'en': - return messages_en.messages; - case 'zh': - return messages_zh.messages; - default: - return null; - } -} - -/// User programs should call this before using [localeName] for messages. -Future initializeMessages(String localeName) { - var availableLocale = Intl.verifiedLocale( - localeName, (locale) => _deferredLibraries[locale] != null, - onFailure: (_) => null); - if (availableLocale == null) { - return new SynchronousFuture(false); - } - var lib = _deferredLibraries[availableLocale]; - lib == null ? new SynchronousFuture(false) : lib(); - initializeInternalMessageLookup(() => new CompositeMessageLookup()); - messageLookup.addLocale(availableLocale, _findGeneratedMessagesFor); - return new SynchronousFuture(true); -} - -bool _messagesExistFor(String locale) { - try { - return _findExact(locale) != null; - } catch (e) { - return false; - } -} - -MessageLookupByLibrary? _findGeneratedMessagesFor(String locale) { - var actualLocale = - Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null); - if (actualLocale == null) return null; - return _findExact(actualLocale); -} diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart deleted file mode 100644 index d8583bdb..00000000 --- a/lib/generated/intl/messages_en.dart +++ /dev/null @@ -1,284 +0,0 @@ -// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart -// This is a library that provides messages for a en locale. All the -// messages from the main program should be duplicated here with the same -// function name. - -// Ignore issues from commonly used lints in this file. -// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new -// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering -// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases -// ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes -// ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes - -import 'package:intl/intl.dart'; -import 'package:intl/message_lookup_by_library.dart'; - -final messages = new MessageLookup(); - -typedef String MessageIfAbsent(String messageStr, List args); - -class MessageLookup extends MessageLookupByLibrary { - String get localeName => 'en'; - - static String m0(fileName) => "Download [${fileName}] to local?"; - - static String m1(count) => "${count} images"; - - static String m2(runningCount, stoppedCount) => - "${runningCount} running, ${stoppedCount} container stopped."; - - static String m3(count) => "${count} container running."; - - static String m4(percent, size) => "${percent}% of ${size}"; - - static String m5(file) => "${file} not exist"; - - static String m6(file, size, sizeMax) => - "File \'${file}\' too large ${size}, max ${sizeMax}"; - - static String m7(count) => "Found ${count} update"; - - static String m8(code) => "request failed, status code: ${code}"; - - static String m9(url) => - "Please make sure that docker is installed correctly, or that you are using a non-self-compiled version. If you don\'t have the above issues, please submit an issue on ${url}."; - - static String m10(myGithub) => "\nMade with ❤️ by ${myGithub}"; - - static String m11(url) => "Please report bugs on ${url}"; - - static String m12(date) => "Are you sure to restore from ${date} ?"; - - static String m13(time) => "Spent time: ${time}"; - - static String m14(url) => - "This function is now in the experimental stage.\n\nPlease report bugs on ${url} or join our development."; - - static String m15(name) => "Are you sure to delete [${name}]?"; - - static String m16(server) => "Are you sure to delete server [${server}]?"; - - static String m17(newest) => "Update: v1.0.${newest}"; - - static String m18(newest) => - "Current version is too low, please update to v1.0.${newest}"; - - static String m19(build) => "Found: v1.0.${build}, click to update"; - - static String m20(build) => "Current: v1.0.${build}"; - - static String m21(build) => "Current: v1.0.${build}, is up to date"; - - final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("About"), - "aboutThanks": MessageLookupByLibrary.simpleMessage( - "\n\nThanks to the following people who participated in the test."), - "addAServer": MessageLookupByLibrary.simpleMessage("add a server"), - "addOne": MessageLookupByLibrary.simpleMessage("Add one"), - "addPrivateKey": - MessageLookupByLibrary.simpleMessage("Add private key"), - "alreadyLastDir": - MessageLookupByLibrary.simpleMessage("Already in last directory."), - "appPrimaryColor": - MessageLookupByLibrary.simpleMessage("App primary color"), - "attention": MessageLookupByLibrary.simpleMessage("Attention"), - "backDir": MessageLookupByLibrary.simpleMessage("Back"), - "backup": MessageLookupByLibrary.simpleMessage("Backup"), - "backupTip": MessageLookupByLibrary.simpleMessage( - "The exported data is simply encrypted. \nPlease keep it safe.\nRestoring will not overwrite existing data (except setting)."), - "backupVersionNotMatch": MessageLookupByLibrary.simpleMessage( - "Backup version is not match."), - "cancel": MessageLookupByLibrary.simpleMessage("Cancel"), - "choose": MessageLookupByLibrary.simpleMessage("Choose"), - "chooseDestination": - MessageLookupByLibrary.simpleMessage("Choose destination"), - "choosePrivateKey": - MessageLookupByLibrary.simpleMessage("Choose private key"), - "clear": MessageLookupByLibrary.simpleMessage("Clear"), - "clickSee": MessageLookupByLibrary.simpleMessage("Click here"), - "close": MessageLookupByLibrary.simpleMessage("Close"), - "cmd": MessageLookupByLibrary.simpleMessage("Command"), - "containerStatus": - MessageLookupByLibrary.simpleMessage("Container status"), - "convert": MessageLookupByLibrary.simpleMessage("Convert"), - "copy": MessageLookupByLibrary.simpleMessage("Copy"), - "copyPath": MessageLookupByLibrary.simpleMessage("Copy path"), - "createFile": MessageLookupByLibrary.simpleMessage("Create file"), - "createFolder": MessageLookupByLibrary.simpleMessage("Create folder"), - "currentMode": MessageLookupByLibrary.simpleMessage("Current Mode"), - "debug": MessageLookupByLibrary.simpleMessage("Debug"), - "decode": MessageLookupByLibrary.simpleMessage("Decode"), - "delete": MessageLookupByLibrary.simpleMessage("Delete"), - "disconnected": MessageLookupByLibrary.simpleMessage("Disconnected"), - "dl2Local": m0, - "dockerContainerName": - MessageLookupByLibrary.simpleMessage("Container name"), - "dockerEditHost": - MessageLookupByLibrary.simpleMessage("Edit DOCKER_HOST"), - "dockerEmptyRunningItems": MessageLookupByLibrary.simpleMessage( - "No running container. \nIt may be that the env DOCKER_HOST is not read correctly. You can found it by running `echo \$DOCKER_HOST` in terminal."), - "dockerImage": MessageLookupByLibrary.simpleMessage("Image"), - "dockerImagesFmt": m1, - "dockerNotInstalled": - MessageLookupByLibrary.simpleMessage("Docker not installed"), - "dockerStatusRunningAndStoppedFmt": m2, - "dockerStatusRunningFmt": m3, - "download": MessageLookupByLibrary.simpleMessage("Download"), - "downloadFinished": - MessageLookupByLibrary.simpleMessage("Download finished"), - "downloadStatus": m4, - "edit": MessageLookupByLibrary.simpleMessage("Edit"), - "encode": MessageLookupByLibrary.simpleMessage("Encode"), - "error": MessageLookupByLibrary.simpleMessage("Error"), - "exampleName": MessageLookupByLibrary.simpleMessage("Example name"), - "experimentalFeature": - MessageLookupByLibrary.simpleMessage("Experimental feature"), - "export": MessageLookupByLibrary.simpleMessage("Export"), - "extraArgs": MessageLookupByLibrary.simpleMessage("Extra args"), - "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), - "feedbackOnGithub": MessageLookupByLibrary.simpleMessage( - "If you have any questions, please feedback on Github."), - "fieldMustNotEmpty": MessageLookupByLibrary.simpleMessage( - "These fields must not be empty."), - "fileNotExist": m5, - "fileTooLarge": m6, - "files": MessageLookupByLibrary.simpleMessage("Files"), - "foundNUpdate": m7, - "go": MessageLookupByLibrary.simpleMessage("Go"), - "goto": MessageLookupByLibrary.simpleMessage("Go to"), - "host": MessageLookupByLibrary.simpleMessage("Host"), - "httpFailedWithCode": m8, - "imagesList": MessageLookupByLibrary.simpleMessage("Images list"), - "import": MessageLookupByLibrary.simpleMessage("Import"), - "importAndExport": - MessageLookupByLibrary.simpleMessage("Import and Export"), - "inputDomainHere": - MessageLookupByLibrary.simpleMessage("Input Domain here"), - "install": MessageLookupByLibrary.simpleMessage("install"), - "installDockerWithUrl": MessageLookupByLibrary.simpleMessage( - "Please https://docs.docker.com/engine/install docker first."), - "invalidJson": MessageLookupByLibrary.simpleMessage("Invalid JSON"), - "invalidVersion": - MessageLookupByLibrary.simpleMessage("Invalid version"), - "invalidVersionHelp": m9, - "isBusy": MessageLookupByLibrary.simpleMessage("Is busy now"), - "keepForeground": - MessageLookupByLibrary.simpleMessage("Keep app foreground!"), - "keyAuth": MessageLookupByLibrary.simpleMessage("Key Auth"), - "lastTry": MessageLookupByLibrary.simpleMessage("Last try!"), - "launchPage": MessageLookupByLibrary.simpleMessage("Launch page"), - "license": MessageLookupByLibrary.simpleMessage("License"), - "loadingFiles": - MessageLookupByLibrary.simpleMessage("Loading files..."), - "loss": MessageLookupByLibrary.simpleMessage("loss"), - "madeWithLove": m10, - "max": MessageLookupByLibrary.simpleMessage("max"), - "maxRetryCount": MessageLookupByLibrary.simpleMessage( - "Number of server reconnection"), - "maxRetryCountEqual0": - MessageLookupByLibrary.simpleMessage("Will retry again and again."), - "min": MessageLookupByLibrary.simpleMessage("min"), - "ms": MessageLookupByLibrary.simpleMessage("ms"), - "name": MessageLookupByLibrary.simpleMessage("Name"), - "newContainer": MessageLookupByLibrary.simpleMessage("New container"), - "noClient": MessageLookupByLibrary.simpleMessage("No client"), - "noInterface": MessageLookupByLibrary.simpleMessage("No interface"), - "noResult": MessageLookupByLibrary.simpleMessage("No result"), - "noSavedPrivateKey": - MessageLookupByLibrary.simpleMessage("No saved private keys."), - "noSavedSnippet": - MessageLookupByLibrary.simpleMessage("No saved snippets."), - "noServerAvailable": - MessageLookupByLibrary.simpleMessage("No server available."), - "noUpdateAvailable": - MessageLookupByLibrary.simpleMessage("No update available"), - "ok": MessageLookupByLibrary.simpleMessage("OK"), - "onServerDetailPage": - MessageLookupByLibrary.simpleMessage("On server detail page"), - "open": MessageLookupByLibrary.simpleMessage("Open"), - "path": MessageLookupByLibrary.simpleMessage("Path"), - "pickFile": MessageLookupByLibrary.simpleMessage("Pick file"), - "ping": MessageLookupByLibrary.simpleMessage("Ping"), - "pingAvg": MessageLookupByLibrary.simpleMessage("Avg:"), - "pingInputIP": MessageLookupByLibrary.simpleMessage( - "Please input a target IP/domain."), - "pingNoServer": MessageLookupByLibrary.simpleMessage( - "No server to ping.\nPlease add a server in server tab."), - "pkg": MessageLookupByLibrary.simpleMessage("Pkg"), - "platformNotSupportUpdate": MessageLookupByLibrary.simpleMessage( - "Current platform does not support in app update.\nPlease build from source and install it."), - "plzEnterHost": - MessageLookupByLibrary.simpleMessage("Please enter host."), - "plzSelectKey": - MessageLookupByLibrary.simpleMessage("Please select a key."), - "port": MessageLookupByLibrary.simpleMessage("Port"), - "preview": MessageLookupByLibrary.simpleMessage("Preview"), - "privateKey": MessageLookupByLibrary.simpleMessage("Private Key"), - "pwd": MessageLookupByLibrary.simpleMessage("Password"), - "rename": MessageLookupByLibrary.simpleMessage("Rename"), - "reportBugsOnGithubIssue": m11, - "restore": MessageLookupByLibrary.simpleMessage("Restore"), - "restoreSuccess": MessageLookupByLibrary.simpleMessage( - "Restore success. Restart app to apply."), - "restoreSureWithDate": m12, - "result": MessageLookupByLibrary.simpleMessage("Result"), - "run": MessageLookupByLibrary.simpleMessage("Run"), - "save": MessageLookupByLibrary.simpleMessage("Save"), - "second": MessageLookupByLibrary.simpleMessage("s"), - "server": MessageLookupByLibrary.simpleMessage("Server"), - "serverTabConnecting": - MessageLookupByLibrary.simpleMessage("Connecting..."), - "serverTabEmpty": MessageLookupByLibrary.simpleMessage( - "There is no server.\nClick the fab to add one."), - "serverTabFailed": MessageLookupByLibrary.simpleMessage("Failed"), - "serverTabLoading": MessageLookupByLibrary.simpleMessage("Loading..."), - "serverTabPlzSave": MessageLookupByLibrary.simpleMessage( - "Please \'save\' this private key again."), - "serverTabUnkown": - MessageLookupByLibrary.simpleMessage("Unknown state"), - "setting": MessageLookupByLibrary.simpleMessage("Setting"), - "sftpDlPrepare": - MessageLookupByLibrary.simpleMessage("Preparing to connect..."), - "sftpNoDownloadTask": - MessageLookupByLibrary.simpleMessage("No download task."), - "sftpSSHConnected": - MessageLookupByLibrary.simpleMessage("SFTP Connected"), - "showDistLogo": - MessageLookupByLibrary.simpleMessage("Show distribution logo"), - "snippet": MessageLookupByLibrary.simpleMessage("Snippet"), - "spentTime": m13, - "sshTip": m14, - "start": MessageLookupByLibrary.simpleMessage("Start"), - "stop": MessageLookupByLibrary.simpleMessage("Stop"), - "sureDelete": m15, - "sureNoPwd": MessageLookupByLibrary.simpleMessage( - "Are you sure to use no password?"), - "sureToDeleteServer": m16, - "termTheme": MessageLookupByLibrary.simpleMessage("Terminal theme"), - "times": MessageLookupByLibrary.simpleMessage("Times"), - "ttl": MessageLookupByLibrary.simpleMessage("ttl"), - "unknown": MessageLookupByLibrary.simpleMessage("unknown"), - "unknownError": MessageLookupByLibrary.simpleMessage("Unknown error"), - "unkownConvertMode": - MessageLookupByLibrary.simpleMessage("Unknown convert mode"), - "update": MessageLookupByLibrary.simpleMessage("Update"), - "updateAll": MessageLookupByLibrary.simpleMessage("Update all"), - "updateIntervalEqual0": MessageLookupByLibrary.simpleMessage( - "You set to 0, will not update automatically.\nCan\'t calculate CPU status."), - "updateServerStatusInterval": MessageLookupByLibrary.simpleMessage( - "Server status update interval"), - "updateTip": m17, - "updateTipTooLow": m18, - "upsideDown": MessageLookupByLibrary.simpleMessage("Upside Down"), - "urlOrJson": MessageLookupByLibrary.simpleMessage("URL or JSON"), - "user": MessageLookupByLibrary.simpleMessage("User"), - "versionHaveUpdate": m19, - "versionUnknownUpdate": m20, - "versionUpdated": m21, - "waitConnection": MessageLookupByLibrary.simpleMessage( - "Please wait for the connection to be established."), - "willTakEeffectImmediately": - MessageLookupByLibrary.simpleMessage("Will take effect immediately") - }; -} diff --git a/lib/generated/intl/messages_zh.dart b/lib/generated/intl/messages_zh.dart deleted file mode 100644 index c067efda..00000000 --- a/lib/generated/intl/messages_zh.dart +++ /dev/null @@ -1,247 +0,0 @@ -// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart -// This is a library that provides messages for a zh locale. All the -// messages from the main program should be duplicated here with the same -// function name. - -// Ignore issues from commonly used lints in this file. -// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new -// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering -// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases -// ignore_for_file:unused_import, file_names, avoid_escaping_inner_quotes -// ignore_for_file:unnecessary_string_interpolations, unnecessary_string_escapes - -import 'package:intl/intl.dart'; -import 'package:intl/message_lookup_by_library.dart'; - -final messages = new MessageLookup(); - -typedef String MessageIfAbsent(String messageStr, List args); - -class MessageLookup extends MessageLookupByLibrary { - String get localeName => 'zh'; - - static String m0(fileName) => "下载 [${fileName}] 到本地?"; - - static String m1(count) => "共 ${count} 个镜像"; - - static String m2(runningCount, stoppedCount) => - "${runningCount}个正在运行, ${stoppedCount}个已停止"; - - static String m3(count) => "${count}个容器正在运行"; - - static String m4(percent, size) => "${size} 的 ${percent}%"; - - static String m5(file) => "${file} 不存在"; - - static String m6(file, size, sizeMax) => - "文件 \'${file}\' 过大 \'${size}\',超过了 ${sizeMax}"; - - static String m7(count) => "找到 ${count} 个更新"; - - static String m8(code) => "请求失败, 状态码: ${code}"; - - static String m9(url) => - "请确保正确安装了docker,或者使用的非自编译版本。如果没有以上问题,请在 ${url} 提交问题。"; - - static String m10(myGithub) => "\n用❤️制作 by ${myGithub}"; - - static String m11(url) => "请到 ${url} 提交问题"; - - static String m12(date) => "确定恢复 ${date} 的备份吗?"; - - static String m13(time) => "耗时: ${time}"; - - static String m14(url) => "该功能目前处于测试阶段。\n\n请在 ${url} 反馈问题,或者加入我们开发。"; - - static String m15(name) => "确定删除[${name}]?"; - - static String m16(server) => "你确定要删除服务器 [${server}] 吗?"; - - static String m17(newest) => "新版本: v1.0.${newest}"; - - static String m18(newest) => "当前版本过低,请升级至 v1.0.${newest}"; - - static String m19(build) => "找到新版本:v1.0.${build}, 点击更新"; - - static String m20(build) => "当前:v1.0.${build}"; - - static String m21(build) => "当前:v1.0.${build}, 已是最新版本"; - - final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "about": MessageLookupByLibrary.simpleMessage("关于"), - "aboutThanks": - MessageLookupByLibrary.simpleMessage("\n\n感谢以下参与软件测试的各位。"), - "addAServer": MessageLookupByLibrary.simpleMessage("添加服务器"), - "addOne": MessageLookupByLibrary.simpleMessage("前去新增"), - "addPrivateKey": MessageLookupByLibrary.simpleMessage("添加一个私钥"), - "alreadyLastDir": MessageLookupByLibrary.simpleMessage("已经是最上层目录了"), - "appPrimaryColor": MessageLookupByLibrary.simpleMessage("App主要色"), - "attention": MessageLookupByLibrary.simpleMessage("注意"), - "backDir": MessageLookupByLibrary.simpleMessage("返回上一级"), - "backup": MessageLookupByLibrary.simpleMessage("备份"), - "backupTip": MessageLookupByLibrary.simpleMessage( - "导出的数据仅进行了简单加密,请妥善保管。\n除了设置项,恢复的数据不会覆盖现有数据。"), - "backupVersionNotMatch": - MessageLookupByLibrary.simpleMessage("备份版本不匹配,无法恢复"), - "cancel": MessageLookupByLibrary.simpleMessage("取消"), - "choose": MessageLookupByLibrary.simpleMessage("选择"), - "chooseDestination": MessageLookupByLibrary.simpleMessage("选择目标"), - "choosePrivateKey": MessageLookupByLibrary.simpleMessage("选择私钥"), - "clear": MessageLookupByLibrary.simpleMessage("清除"), - "clickSee": MessageLookupByLibrary.simpleMessage("点击查看"), - "close": MessageLookupByLibrary.simpleMessage("关闭"), - "cmd": MessageLookupByLibrary.simpleMessage("命令"), - "containerStatus": MessageLookupByLibrary.simpleMessage("容器状态"), - "convert": MessageLookupByLibrary.simpleMessage("转换"), - "copy": MessageLookupByLibrary.simpleMessage("复制"), - "copyPath": MessageLookupByLibrary.simpleMessage("复制路径"), - "createFile": MessageLookupByLibrary.simpleMessage("创建文件"), - "createFolder": MessageLookupByLibrary.simpleMessage("创建文件夹"), - "currentMode": MessageLookupByLibrary.simpleMessage("当前模式"), - "debug": MessageLookupByLibrary.simpleMessage("调试"), - "decode": MessageLookupByLibrary.simpleMessage("解码"), - "delete": MessageLookupByLibrary.simpleMessage("删除"), - "disconnected": MessageLookupByLibrary.simpleMessage("连接断开"), - "dl2Local": m0, - "dockerContainerName": MessageLookupByLibrary.simpleMessage("容器名"), - "dockerEditHost": - MessageLookupByLibrary.simpleMessage("编辑 DOCKER_HOST"), - "dockerEmptyRunningItems": MessageLookupByLibrary.simpleMessage( - "没有正在运行的容器。\n这可能是因为环境变量 DOCKER_HOST 没有被正确读取。你可以通过在终端内运行 `echo \$DOCKER_HOST` 来获取。"), - "dockerImage": MessageLookupByLibrary.simpleMessage("镜像"), - "dockerImagesFmt": m1, - "dockerNotInstalled": MessageLookupByLibrary.simpleMessage("Docker未安装"), - "dockerStatusRunningAndStoppedFmt": m2, - "dockerStatusRunningFmt": m3, - "download": MessageLookupByLibrary.simpleMessage("下载"), - "downloadFinished": MessageLookupByLibrary.simpleMessage("下载完成!"), - "downloadStatus": m4, - "edit": MessageLookupByLibrary.simpleMessage("编辑"), - "encode": MessageLookupByLibrary.simpleMessage("编码"), - "error": MessageLookupByLibrary.simpleMessage("出错了"), - "exampleName": MessageLookupByLibrary.simpleMessage("名称示例"), - "experimentalFeature": MessageLookupByLibrary.simpleMessage("实验性功能"), - "export": MessageLookupByLibrary.simpleMessage("导出"), - "extraArgs": MessageLookupByLibrary.simpleMessage("额外参数"), - "feedback": MessageLookupByLibrary.simpleMessage("反馈"), - "feedbackOnGithub": - MessageLookupByLibrary.simpleMessage("如果你有任何问题,请在GitHub反馈"), - "fieldMustNotEmpty": MessageLookupByLibrary.simpleMessage("这些输入框不能为空。"), - "fileNotExist": m5, - "fileTooLarge": m6, - "files": MessageLookupByLibrary.simpleMessage("文件"), - "foundNUpdate": m7, - "go": MessageLookupByLibrary.simpleMessage("开始"), - "goto": MessageLookupByLibrary.simpleMessage("前往"), - "host": MessageLookupByLibrary.simpleMessage("主机"), - "httpFailedWithCode": m8, - "imagesList": MessageLookupByLibrary.simpleMessage("镜像列表"), - "import": MessageLookupByLibrary.simpleMessage("导入"), - "importAndExport": MessageLookupByLibrary.simpleMessage("导入或导出"), - "inputDomainHere": MessageLookupByLibrary.simpleMessage("在这里输入域名"), - "install": MessageLookupByLibrary.simpleMessage("安装"), - "installDockerWithUrl": MessageLookupByLibrary.simpleMessage( - "请先 https://docs.docker.com/engine/install docker"), - "invalidJson": MessageLookupByLibrary.simpleMessage("无效的json,存在格式问题"), - "invalidVersion": MessageLookupByLibrary.simpleMessage("不支持的版本"), - "invalidVersionHelp": m9, - "isBusy": MessageLookupByLibrary.simpleMessage("当前正忙"), - "keepForeground": MessageLookupByLibrary.simpleMessage("请保持应用处于前台!"), - "keyAuth": MessageLookupByLibrary.simpleMessage("公钥认证"), - "lastTry": MessageLookupByLibrary.simpleMessage("最后尝试"), - "launchPage": MessageLookupByLibrary.simpleMessage("启动页"), - "license": MessageLookupByLibrary.simpleMessage("开源证书"), - "loadingFiles": MessageLookupByLibrary.simpleMessage("正在加载目录。。。"), - "loss": MessageLookupByLibrary.simpleMessage("丢包率"), - "madeWithLove": m10, - "max": MessageLookupByLibrary.simpleMessage("最大"), - "maxRetryCount": MessageLookupByLibrary.simpleMessage("服务器尝试重连次数"), - "maxRetryCountEqual0": MessageLookupByLibrary.simpleMessage("会无限重试"), - "min": MessageLookupByLibrary.simpleMessage("最小"), - "ms": MessageLookupByLibrary.simpleMessage("毫秒"), - "name": MessageLookupByLibrary.simpleMessage("名称"), - "newContainer": MessageLookupByLibrary.simpleMessage("新建容器"), - "noClient": MessageLookupByLibrary.simpleMessage("没有SSH连接"), - "noInterface": MessageLookupByLibrary.simpleMessage("没有可用的接口"), - "noResult": MessageLookupByLibrary.simpleMessage("无结果"), - "noSavedPrivateKey": MessageLookupByLibrary.simpleMessage("没有已保存的私钥。"), - "noSavedSnippet": MessageLookupByLibrary.simpleMessage("没有已保存的代码片段。"), - "noServerAvailable": MessageLookupByLibrary.simpleMessage("没有可用的服务器。"), - "noUpdateAvailable": MessageLookupByLibrary.simpleMessage("没有可用更新"), - "ok": MessageLookupByLibrary.simpleMessage("好"), - "onServerDetailPage": MessageLookupByLibrary.simpleMessage("在服务器详情页"), - "open": MessageLookupByLibrary.simpleMessage("打开"), - "path": MessageLookupByLibrary.simpleMessage("路径"), - "pickFile": MessageLookupByLibrary.simpleMessage("选择文件"), - "ping": MessageLookupByLibrary.simpleMessage("Ping"), - "pingAvg": MessageLookupByLibrary.simpleMessage("平均:"), - "pingInputIP": MessageLookupByLibrary.simpleMessage("请输入目标IP或域名"), - "pingNoServer": MessageLookupByLibrary.simpleMessage( - "没有服务器可用于Ping\n请在服务器tab添加服务器后再试"), - "pkg": MessageLookupByLibrary.simpleMessage("包管理"), - "platformNotSupportUpdate": - MessageLookupByLibrary.simpleMessage("当前平台不支持更新,请编译最新源码后手动安装"), - "plzEnterHost": MessageLookupByLibrary.simpleMessage("请输入主机"), - "plzSelectKey": MessageLookupByLibrary.simpleMessage("请选择私钥"), - "port": MessageLookupByLibrary.simpleMessage("端口"), - "preview": MessageLookupByLibrary.simpleMessage("预览"), - "privateKey": MessageLookupByLibrary.simpleMessage("私钥"), - "pwd": MessageLookupByLibrary.simpleMessage("密码"), - "rename": MessageLookupByLibrary.simpleMessage("重命名"), - "reportBugsOnGithubIssue": m11, - "restore": MessageLookupByLibrary.simpleMessage("恢复"), - "restoreSuccess": - MessageLookupByLibrary.simpleMessage("恢复成功,需要重启App来应用更改"), - "restoreSureWithDate": m12, - "result": MessageLookupByLibrary.simpleMessage("结果"), - "run": MessageLookupByLibrary.simpleMessage("运行"), - "save": MessageLookupByLibrary.simpleMessage("保存"), - "second": MessageLookupByLibrary.simpleMessage("秒"), - "server": MessageLookupByLibrary.simpleMessage("服务器"), - "serverTabConnecting": MessageLookupByLibrary.simpleMessage("连接中..."), - "serverTabEmpty": - MessageLookupByLibrary.simpleMessage("现在没有服务器。\n点击右下方按钮来添加。"), - "serverTabFailed": MessageLookupByLibrary.simpleMessage("失败"), - "serverTabLoading": MessageLookupByLibrary.simpleMessage("加载中..."), - "serverTabPlzSave": MessageLookupByLibrary.simpleMessage("请再次保存该私钥"), - "serverTabUnkown": MessageLookupByLibrary.simpleMessage("未知状态"), - "setting": MessageLookupByLibrary.simpleMessage("设置"), - "sftpDlPrepare": MessageLookupByLibrary.simpleMessage("准备连接至服务器..."), - "sftpNoDownloadTask": MessageLookupByLibrary.simpleMessage("没有下载任务"), - "sftpSSHConnected": - MessageLookupByLibrary.simpleMessage("SFTP 已连接,即将开始下载..."), - "showDistLogo": MessageLookupByLibrary.simpleMessage("显示发行版 Logo"), - "snippet": MessageLookupByLibrary.simpleMessage("代码片段"), - "spentTime": m13, - "sshTip": m14, - "start": MessageLookupByLibrary.simpleMessage("开始"), - "stop": MessageLookupByLibrary.simpleMessage("停止"), - "sureDelete": m15, - "sureNoPwd": MessageLookupByLibrary.simpleMessage("确认使用无密码?"), - "sureToDeleteServer": m16, - "termTheme": MessageLookupByLibrary.simpleMessage("终端主题"), - "times": MessageLookupByLibrary.simpleMessage("次"), - "ttl": MessageLookupByLibrary.simpleMessage("缓存时间"), - "unknown": MessageLookupByLibrary.simpleMessage("未知"), - "unknownError": MessageLookupByLibrary.simpleMessage("未知错误"), - "unkownConvertMode": MessageLookupByLibrary.simpleMessage("未知转换模式"), - "update": MessageLookupByLibrary.simpleMessage("更新"), - "updateAll": MessageLookupByLibrary.simpleMessage("更新全部"), - "updateIntervalEqual0": MessageLookupByLibrary.simpleMessage( - "你设置为0,服务器状态不会自动刷新。\n且不能计算CPU使用情况。"), - "updateServerStatusInterval": - MessageLookupByLibrary.simpleMessage("服务器状态刷新间隔"), - "updateTip": m17, - "updateTipTooLow": m18, - "upsideDown": MessageLookupByLibrary.simpleMessage("上下交换"), - "urlOrJson": MessageLookupByLibrary.simpleMessage("链接或JSON"), - "user": MessageLookupByLibrary.simpleMessage("用户"), - "versionHaveUpdate": m19, - "versionUnknownUpdate": m20, - "versionUpdated": m21, - "waitConnection": MessageLookupByLibrary.simpleMessage("请等待连接建立"), - "willTakEeffectImmediately": - MessageLookupByLibrary.simpleMessage("更改将会立即生效") - }; -} diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart deleted file mode 100644 index e60bfb8d..00000000 --- a/lib/generated/l10n.dart +++ /dev/null @@ -1,1670 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; -import 'intl/messages_all.dart'; - -// ************************************************************************** -// Generator: Flutter Intl IDE plugin -// Made by Localizely -// ************************************************************************** - -// ignore_for_file: non_constant_identifier_names, lines_longer_than_80_chars -// ignore_for_file: join_return_with_assignment, prefer_final_in_for_each -// ignore_for_file: avoid_redundant_argument_values, avoid_escaping_inner_quotes - -class S { - S(); - - static S? _current; - - static S get current { - assert(_current != null, - 'No instance of S was loaded. Try to initialize the S delegate before accessing S.current.'); - return _current!; - } - - static const AppLocalizationDelegate delegate = AppLocalizationDelegate(); - - static Future load(Locale locale) { - final name = (locale.countryCode?.isEmpty ?? false) - ? locale.languageCode - : locale.toString(); - final localeName = Intl.canonicalizedLocale(name); - return initializeMessages(localeName).then((_) { - Intl.defaultLocale = localeName; - final instance = S(); - S._current = instance; - - return instance; - }); - } - - static S of(BuildContext context) { - final instance = S.maybeOf(context); - assert(instance != null, - 'No instance of S present in the widget tree. Did you add S.delegate in localizationsDelegates?'); - return instance!; - } - - static S? maybeOf(BuildContext context) { - return Localizations.of(context, S); - } - - /// `About` - String get about { - return Intl.message( - 'About', - name: 'about', - desc: '', - args: [], - ); - } - - /// `\n\nThanks to the following people who participated in the test.` - String get aboutThanks { - return Intl.message( - '\n\nThanks to the following people who participated in the test.', - name: 'aboutThanks', - desc: '', - args: [], - ); - } - - /// `add a server` - String get addAServer { - return Intl.message( - 'add a server', - name: 'addAServer', - desc: '', - args: [], - ); - } - - /// `Add one` - String get addOne { - return Intl.message( - 'Add one', - name: 'addOne', - desc: '', - args: [], - ); - } - - /// `Add private key` - String get addPrivateKey { - return Intl.message( - 'Add private key', - name: 'addPrivateKey', - desc: '', - args: [], - ); - } - - /// `Already in last directory.` - String get alreadyLastDir { - return Intl.message( - 'Already in last directory.', - name: 'alreadyLastDir', - desc: '', - args: [], - ); - } - - /// `App primary color` - String get appPrimaryColor { - return Intl.message( - 'App primary color', - name: 'appPrimaryColor', - desc: '', - args: [], - ); - } - - /// `Attention` - String get attention { - return Intl.message( - 'Attention', - name: 'attention', - desc: '', - args: [], - ); - } - - /// `Back` - String get backDir { - return Intl.message( - 'Back', - name: 'backDir', - desc: '', - args: [], - ); - } - - /// `Backup` - String get backup { - return Intl.message( - 'Backup', - name: 'backup', - desc: '', - args: [], - ); - } - - /// `The exported data is simply encrypted. \nPlease keep it safe.\nRestoring will not overwrite existing data (except setting).` - String get backupTip { - return Intl.message( - 'The exported data is simply encrypted. \nPlease keep it safe.\nRestoring will not overwrite existing data (except setting).', - name: 'backupTip', - desc: '', - args: [], - ); - } - - /// `Backup version is not match.` - String get backupVersionNotMatch { - return Intl.message( - 'Backup version is not match.', - name: 'backupVersionNotMatch', - desc: '', - args: [], - ); - } - - /// `Cancel` - String get cancel { - return Intl.message( - 'Cancel', - name: 'cancel', - desc: '', - args: [], - ); - } - - /// `Choose` - String get choose { - return Intl.message( - 'Choose', - name: 'choose', - desc: '', - args: [], - ); - } - - /// `Choose destination` - String get chooseDestination { - return Intl.message( - 'Choose destination', - name: 'chooseDestination', - desc: '', - args: [], - ); - } - - /// `Choose private key` - String get choosePrivateKey { - return Intl.message( - 'Choose private key', - name: 'choosePrivateKey', - desc: '', - args: [], - ); - } - - /// `Clear` - String get clear { - return Intl.message( - 'Clear', - name: 'clear', - desc: '', - args: [], - ); - } - - /// `Click here` - String get clickSee { - return Intl.message( - 'Click here', - name: 'clickSee', - desc: '', - args: [], - ); - } - - /// `Close` - String get close { - return Intl.message( - 'Close', - name: 'close', - desc: '', - args: [], - ); - } - - /// `Command` - String get cmd { - return Intl.message( - 'Command', - name: 'cmd', - desc: '', - args: [], - ); - } - - /// `Container status` - String get containerStatus { - return Intl.message( - 'Container status', - name: 'containerStatus', - desc: '', - args: [], - ); - } - - /// `Convert` - String get convert { - return Intl.message( - 'Convert', - name: 'convert', - desc: '', - args: [], - ); - } - - /// `Copy` - String get copy { - return Intl.message( - 'Copy', - name: 'copy', - desc: '', - args: [], - ); - } - - /// `Copy path` - String get copyPath { - return Intl.message( - 'Copy path', - name: 'copyPath', - desc: '', - args: [], - ); - } - - /// `Create file` - String get createFile { - return Intl.message( - 'Create file', - name: 'createFile', - desc: '', - args: [], - ); - } - - /// `Create folder` - String get createFolder { - return Intl.message( - 'Create folder', - name: 'createFolder', - desc: '', - args: [], - ); - } - - /// `Current Mode` - String get currentMode { - return Intl.message( - 'Current Mode', - name: 'currentMode', - desc: '', - args: [], - ); - } - - /// `Debug` - String get debug { - return Intl.message( - 'Debug', - name: 'debug', - desc: '', - args: [], - ); - } - - /// `Decode` - String get decode { - return Intl.message( - 'Decode', - name: 'decode', - desc: '', - args: [], - ); - } - - /// `Delete` - String get delete { - return Intl.message( - 'Delete', - name: 'delete', - desc: '', - args: [], - ); - } - - /// `Disconnected` - String get disconnected { - return Intl.message( - 'Disconnected', - name: 'disconnected', - desc: '', - args: [], - ); - } - - /// `Download [{fileName}] to local?` - String dl2Local(Object fileName) { - return Intl.message( - 'Download [$fileName] to local?', - name: 'dl2Local', - desc: '', - args: [fileName], - ); - } - - /// `Container name` - String get dockerContainerName { - return Intl.message( - 'Container name', - name: 'dockerContainerName', - desc: '', - args: [], - ); - } - - /// `Edit DOCKER_HOST` - String get dockerEditHost { - return Intl.message( - 'Edit DOCKER_HOST', - name: 'dockerEditHost', - desc: '', - args: [], - ); - } - - /// `No running container. \nIt may be that the env DOCKER_HOST is not read correctly. You can found it by running 'echo $DOCKER_HOST' in terminal.` - String get dockerEmptyRunningItems { - return Intl.message( - 'No running container. \nIt may be that the env DOCKER_HOST is not read correctly. You can found it by running `echo \$DOCKER_HOST` in terminal.', - name: 'dockerEmptyRunningItems', - desc: '', - args: [], - ); - } - - /// `Image` - String get dockerImage { - return Intl.message( - 'Image', - name: 'dockerImage', - desc: '', - args: [], - ); - } - - /// `{count} images` - String dockerImagesFmt(Object count) { - return Intl.message( - '$count images', - name: 'dockerImagesFmt', - desc: '', - args: [count], - ); - } - - /// `Docker not installed` - String get dockerNotInstalled { - return Intl.message( - 'Docker not installed', - name: 'dockerNotInstalled', - desc: '', - args: [], - ); - } - - /// `{runningCount} running, {stoppedCount} container stopped.` - String dockerStatusRunningAndStoppedFmt( - Object runningCount, Object stoppedCount) { - return Intl.message( - '$runningCount running, $stoppedCount container stopped.', - name: 'dockerStatusRunningAndStoppedFmt', - desc: '', - args: [runningCount, stoppedCount], - ); - } - - /// `{count} container running.` - String dockerStatusRunningFmt(Object count) { - return Intl.message( - '$count container running.', - name: 'dockerStatusRunningFmt', - desc: '', - args: [count], - ); - } - - /// `Download` - String get download { - return Intl.message( - 'Download', - name: 'download', - desc: '', - args: [], - ); - } - - /// `Download finished` - String get downloadFinished { - return Intl.message( - 'Download finished', - name: 'downloadFinished', - desc: '', - args: [], - ); - } - - /// `{percent}% of {size}` - String downloadStatus(Object percent, Object size) { - return Intl.message( - '$percent% of $size', - name: 'downloadStatus', - desc: '', - args: [percent, size], - ); - } - - /// `Edit` - String get edit { - return Intl.message( - 'Edit', - name: 'edit', - desc: '', - args: [], - ); - } - - /// `Encode` - String get encode { - return Intl.message( - 'Encode', - name: 'encode', - desc: '', - args: [], - ); - } - - /// `Error` - String get error { - return Intl.message( - 'Error', - name: 'error', - desc: '', - args: [], - ); - } - - /// `Example name` - String get exampleName { - return Intl.message( - 'Example name', - name: 'exampleName', - desc: '', - args: [], - ); - } - - /// `Experimental feature` - String get experimentalFeature { - return Intl.message( - 'Experimental feature', - name: 'experimentalFeature', - desc: '', - args: [], - ); - } - - /// `Export` - String get export { - return Intl.message( - 'Export', - name: 'export', - desc: '', - args: [], - ); - } - - /// `Extra args` - String get extraArgs { - return Intl.message( - 'Extra args', - name: 'extraArgs', - desc: '', - args: [], - ); - } - - /// `Feedback` - String get feedback { - return Intl.message( - 'Feedback', - name: 'feedback', - desc: '', - args: [], - ); - } - - /// `If you have any questions, please feedback on Github.` - String get feedbackOnGithub { - return Intl.message( - 'If you have any questions, please feedback on Github.', - name: 'feedbackOnGithub', - desc: '', - args: [], - ); - } - - /// `These fields must not be empty.` - String get fieldMustNotEmpty { - return Intl.message( - 'These fields must not be empty.', - name: 'fieldMustNotEmpty', - desc: '', - args: [], - ); - } - - /// `{file} not exist` - String fileNotExist(Object file) { - return Intl.message( - '$file not exist', - name: 'fileNotExist', - desc: '', - args: [file], - ); - } - - /// `File '{file}' too large {size}, max {sizeMax}` - String fileTooLarge(Object file, Object size, Object sizeMax) { - return Intl.message( - 'File \'$file\' too large $size, max $sizeMax', - name: 'fileTooLarge', - desc: '', - args: [file, size, sizeMax], - ); - } - - /// `Files` - String get files { - return Intl.message( - 'Files', - name: 'files', - desc: '', - args: [], - ); - } - - /// `Found {count} update` - String foundNUpdate(Object count) { - return Intl.message( - 'Found $count update', - name: 'foundNUpdate', - desc: '', - args: [count], - ); - } - - /// `Go` - String get go { - return Intl.message( - 'Go', - name: 'go', - desc: '', - args: [], - ); - } - - /// `Go to` - String get goto { - return Intl.message( - 'Go to', - name: 'goto', - desc: '', - args: [], - ); - } - - /// `Host` - String get host { - return Intl.message( - 'Host', - name: 'host', - desc: '', - args: [], - ); - } - - /// `request failed, status code: {code}` - String httpFailedWithCode(Object code) { - return Intl.message( - 'request failed, status code: $code', - name: 'httpFailedWithCode', - desc: '', - args: [code], - ); - } - - /// `Images list` - String get imagesList { - return Intl.message( - 'Images list', - name: 'imagesList', - desc: '', - args: [], - ); - } - - /// `Import` - String get import { - return Intl.message( - 'Import', - name: 'import', - desc: '', - args: [], - ); - } - - /// `Import and Export` - String get importAndExport { - return Intl.message( - 'Import and Export', - name: 'importAndExport', - desc: '', - args: [], - ); - } - - /// `Input Domain here` - String get inputDomainHere { - return Intl.message( - 'Input Domain here', - name: 'inputDomainHere', - desc: '', - args: [], - ); - } - - /// `install` - String get install { - return Intl.message( - 'install', - name: 'install', - desc: '', - args: [], - ); - } - - /// `Please https://docs.docker.com/engine/install docker first.` - String get installDockerWithUrl { - return Intl.message( - 'Please https://docs.docker.com/engine/install docker first.', - name: 'installDockerWithUrl', - desc: '', - args: [], - ); - } - - /// `Invalid JSON` - String get invalidJson { - return Intl.message( - 'Invalid JSON', - name: 'invalidJson', - desc: '', - args: [], - ); - } - - /// `Invalid version` - String get invalidVersion { - return Intl.message( - 'Invalid version', - name: 'invalidVersion', - desc: '', - args: [], - ); - } - - /// `Please make sure that docker is installed correctly, or that you are using a non-self-compiled version. If you don't have the above issues, please submit an issue on {url}.` - String invalidVersionHelp(Object url) { - return Intl.message( - 'Please make sure that docker is installed correctly, or that you are using a non-self-compiled version. If you don\'t have the above issues, please submit an issue on $url.', - name: 'invalidVersionHelp', - desc: '', - args: [url], - ); - } - - /// `Is busy now` - String get isBusy { - return Intl.message( - 'Is busy now', - name: 'isBusy', - desc: '', - args: [], - ); - } - - /// `Keep app foreground!` - String get keepForeground { - return Intl.message( - 'Keep app foreground!', - name: 'keepForeground', - desc: '', - args: [], - ); - } - - /// `Key Auth` - String get keyAuth { - return Intl.message( - 'Key Auth', - name: 'keyAuth', - desc: '', - args: [], - ); - } - - /// `Last try!` - String get lastTry { - return Intl.message( - 'Last try!', - name: 'lastTry', - desc: '', - args: [], - ); - } - - /// `Launch page` - String get launchPage { - return Intl.message( - 'Launch page', - name: 'launchPage', - desc: '', - args: [], - ); - } - - /// `License` - String get license { - return Intl.message( - 'License', - name: 'license', - desc: '', - args: [], - ); - } - - /// `Loading files...` - String get loadingFiles { - return Intl.message( - 'Loading files...', - name: 'loadingFiles', - desc: '', - args: [], - ); - } - - /// `loss` - String get loss { - return Intl.message( - 'loss', - name: 'loss', - desc: '', - args: [], - ); - } - - /// `\nMade with ❤️ by {myGithub}` - String madeWithLove(Object myGithub) { - return Intl.message( - '\nMade with ❤️ by $myGithub', - name: 'madeWithLove', - desc: '', - args: [myGithub], - ); - } - - /// `max` - String get max { - return Intl.message( - 'max', - name: 'max', - desc: '', - args: [], - ); - } - - /// `Number of server reconnection` - String get maxRetryCount { - return Intl.message( - 'Number of server reconnection', - name: 'maxRetryCount', - desc: '', - args: [], - ); - } - - /// `Will retry again and again.` - String get maxRetryCountEqual0 { - return Intl.message( - 'Will retry again and again.', - name: 'maxRetryCountEqual0', - desc: '', - args: [], - ); - } - - /// `min` - String get min { - return Intl.message( - 'min', - name: 'min', - desc: '', - args: [], - ); - } - - /// `ms` - String get ms { - return Intl.message( - 'ms', - name: 'ms', - desc: '', - args: [], - ); - } - - /// `Name` - String get name { - return Intl.message( - 'Name', - name: 'name', - desc: '', - args: [], - ); - } - - /// `New container` - String get newContainer { - return Intl.message( - 'New container', - name: 'newContainer', - desc: '', - args: [], - ); - } - - /// `No client` - String get noClient { - return Intl.message( - 'No client', - name: 'noClient', - desc: '', - args: [], - ); - } - - /// `No interface` - String get noInterface { - return Intl.message( - 'No interface', - name: 'noInterface', - desc: '', - args: [], - ); - } - - /// `No result` - String get noResult { - return Intl.message( - 'No result', - name: 'noResult', - desc: '', - args: [], - ); - } - - /// `No saved private keys.` - String get noSavedPrivateKey { - return Intl.message( - 'No saved private keys.', - name: 'noSavedPrivateKey', - desc: '', - args: [], - ); - } - - /// `No saved snippets.` - String get noSavedSnippet { - return Intl.message( - 'No saved snippets.', - name: 'noSavedSnippet', - desc: '', - args: [], - ); - } - - /// `No server available.` - String get noServerAvailable { - return Intl.message( - 'No server available.', - name: 'noServerAvailable', - desc: '', - args: [], - ); - } - - /// `No update available` - String get noUpdateAvailable { - return Intl.message( - 'No update available', - name: 'noUpdateAvailable', - desc: '', - args: [], - ); - } - - /// `OK` - String get ok { - return Intl.message( - 'OK', - name: 'ok', - desc: '', - args: [], - ); - } - - /// `On server detail page` - String get onServerDetailPage { - return Intl.message( - 'On server detail page', - name: 'onServerDetailPage', - desc: '', - args: [], - ); - } - - /// `Open` - String get open { - return Intl.message( - 'Open', - name: 'open', - desc: '', - args: [], - ); - } - - /// `Path` - String get path { - return Intl.message( - 'Path', - name: 'path', - desc: '', - args: [], - ); - } - - /// `Pick file` - String get pickFile { - return Intl.message( - 'Pick file', - name: 'pickFile', - desc: '', - args: [], - ); - } - - /// `Ping` - String get ping { - return Intl.message( - 'Ping', - name: 'ping', - desc: '', - args: [], - ); - } - - /// `Avg:` - String get pingAvg { - return Intl.message( - 'Avg:', - name: 'pingAvg', - desc: '', - args: [], - ); - } - - /// `Please input a target IP/domain.` - String get pingInputIP { - return Intl.message( - 'Please input a target IP/domain.', - name: 'pingInputIP', - desc: '', - args: [], - ); - } - - /// `No server to ping.\nPlease add a server in server tab.` - String get pingNoServer { - return Intl.message( - 'No server to ping.\nPlease add a server in server tab.', - name: 'pingNoServer', - desc: '', - args: [], - ); - } - - /// `Pkg` - String get pkg { - return Intl.message( - 'Pkg', - name: 'pkg', - desc: '', - args: [], - ); - } - - /// `Current platform does not support in app update.\nPlease build from source and install it.` - String get platformNotSupportUpdate { - return Intl.message( - 'Current platform does not support in app update.\nPlease build from source and install it.', - name: 'platformNotSupportUpdate', - desc: '', - args: [], - ); - } - - /// `Please enter host.` - String get plzEnterHost { - return Intl.message( - 'Please enter host.', - name: 'plzEnterHost', - desc: '', - args: [], - ); - } - - /// `Please select a key.` - String get plzSelectKey { - return Intl.message( - 'Please select a key.', - name: 'plzSelectKey', - desc: '', - args: [], - ); - } - - /// `Port` - String get port { - return Intl.message( - 'Port', - name: 'port', - desc: '', - args: [], - ); - } - - /// `Preview` - String get preview { - return Intl.message( - 'Preview', - name: 'preview', - desc: '', - args: [], - ); - } - - /// `Private Key` - String get privateKey { - return Intl.message( - 'Private Key', - name: 'privateKey', - desc: '', - args: [], - ); - } - - /// `Password` - String get pwd { - return Intl.message( - 'Password', - name: 'pwd', - desc: '', - args: [], - ); - } - - /// `Rename` - String get rename { - return Intl.message( - 'Rename', - name: 'rename', - desc: '', - args: [], - ); - } - - /// `Please report bugs on {url}` - String reportBugsOnGithubIssue(Object url) { - return Intl.message( - 'Please report bugs on $url', - name: 'reportBugsOnGithubIssue', - desc: '', - args: [url], - ); - } - - /// `Restore` - String get restore { - return Intl.message( - 'Restore', - name: 'restore', - desc: '', - args: [], - ); - } - - /// `Restore success. Restart app to apply.` - String get restoreSuccess { - return Intl.message( - 'Restore success. Restart app to apply.', - name: 'restoreSuccess', - desc: '', - args: [], - ); - } - - /// `Are you sure to restore from {date} ?` - String restoreSureWithDate(Object date) { - return Intl.message( - 'Are you sure to restore from $date ?', - name: 'restoreSureWithDate', - desc: '', - args: [date], - ); - } - - /// `Result` - String get result { - return Intl.message( - 'Result', - name: 'result', - desc: '', - args: [], - ); - } - - /// `Run` - String get run { - return Intl.message( - 'Run', - name: 'run', - desc: '', - args: [], - ); - } - - /// `Save` - String get save { - return Intl.message( - 'Save', - name: 'save', - desc: '', - args: [], - ); - } - - /// `s` - String get second { - return Intl.message( - 's', - name: 'second', - desc: '', - args: [], - ); - } - - /// `Server` - String get server { - return Intl.message( - 'Server', - name: 'server', - desc: '', - args: [], - ); - } - - /// `Connecting...` - String get serverTabConnecting { - return Intl.message( - 'Connecting...', - name: 'serverTabConnecting', - desc: '', - args: [], - ); - } - - /// `There is no server.\nClick the fab to add one.` - String get serverTabEmpty { - return Intl.message( - 'There is no server.\nClick the fab to add one.', - name: 'serverTabEmpty', - desc: '', - args: [], - ); - } - - /// `Failed` - String get serverTabFailed { - return Intl.message( - 'Failed', - name: 'serverTabFailed', - desc: '', - args: [], - ); - } - - /// `Loading...` - String get serverTabLoading { - return Intl.message( - 'Loading...', - name: 'serverTabLoading', - desc: '', - args: [], - ); - } - - /// `Please 'save' this private key again.` - String get serverTabPlzSave { - return Intl.message( - 'Please \'save\' this private key again.', - name: 'serverTabPlzSave', - desc: '', - args: [], - ); - } - - /// `Unknown state` - String get serverTabUnkown { - return Intl.message( - 'Unknown state', - name: 'serverTabUnkown', - desc: '', - args: [], - ); - } - - /// `Setting` - String get setting { - return Intl.message( - 'Setting', - name: 'setting', - desc: '', - args: [], - ); - } - - /// `Preparing to connect...` - String get sftpDlPrepare { - return Intl.message( - 'Preparing to connect...', - name: 'sftpDlPrepare', - desc: '', - args: [], - ); - } - - /// `No download task.` - String get sftpNoDownloadTask { - return Intl.message( - 'No download task.', - name: 'sftpNoDownloadTask', - desc: '', - args: [], - ); - } - - /// `SFTP Connected` - String get sftpSSHConnected { - return Intl.message( - 'SFTP Connected', - name: 'sftpSSHConnected', - desc: '', - args: [], - ); - } - - /// `Show distribution logo` - String get showDistLogo { - return Intl.message( - 'Show distribution logo', - name: 'showDistLogo', - desc: '', - args: [], - ); - } - - /// `Snippet` - String get snippet { - return Intl.message( - 'Snippet', - name: 'snippet', - desc: '', - args: [], - ); - } - - /// `Spent time: {time}` - String spentTime(Object time) { - return Intl.message( - 'Spent time: $time', - name: 'spentTime', - desc: '', - args: [time], - ); - } - - /// `This function is now in the experimental stage.\n\nPlease report bugs on {url} or join our development.` - String sshTip(Object url) { - return Intl.message( - 'This function is now in the experimental stage.\n\nPlease report bugs on $url or join our development.', - name: 'sshTip', - desc: '', - args: [url], - ); - } - - /// `Start` - String get start { - return Intl.message( - 'Start', - name: 'start', - desc: '', - args: [], - ); - } - - /// `Stop` - String get stop { - return Intl.message( - 'Stop', - name: 'stop', - desc: '', - args: [], - ); - } - - /// `Are you sure to delete [{name}]?` - String sureDelete(Object name) { - return Intl.message( - 'Are you sure to delete [$name]?', - name: 'sureDelete', - desc: '', - args: [name], - ); - } - - /// `Are you sure to use no password?` - String get sureNoPwd { - return Intl.message( - 'Are you sure to use no password?', - name: 'sureNoPwd', - desc: '', - args: [], - ); - } - - /// `Are you sure to delete server [{server}]?` - String sureToDeleteServer(Object server) { - return Intl.message( - 'Are you sure to delete server [$server]?', - name: 'sureToDeleteServer', - desc: '', - args: [server], - ); - } - - /// `Terminal theme` - String get termTheme { - return Intl.message( - 'Terminal theme', - name: 'termTheme', - desc: '', - args: [], - ); - } - - /// `Times` - String get times { - return Intl.message( - 'Times', - name: 'times', - desc: '', - args: [], - ); - } - - /// `ttl` - String get ttl { - return Intl.message( - 'ttl', - name: 'ttl', - desc: '', - args: [], - ); - } - - /// `unknown` - String get unknown { - return Intl.message( - 'unknown', - name: 'unknown', - desc: '', - args: [], - ); - } - - /// `Unknown error` - String get unknownError { - return Intl.message( - 'Unknown error', - name: 'unknownError', - desc: '', - args: [], - ); - } - - /// `Unknown convert mode` - String get unkownConvertMode { - return Intl.message( - 'Unknown convert mode', - name: 'unkownConvertMode', - desc: '', - args: [], - ); - } - - /// `Update` - String get update { - return Intl.message( - 'Update', - name: 'update', - desc: '', - args: [], - ); - } - - /// `Update all` - String get updateAll { - return Intl.message( - 'Update all', - name: 'updateAll', - desc: '', - args: [], - ); - } - - /// `You set to 0, will not update automatically.\nCan't calculate CPU status.` - String get updateIntervalEqual0 { - return Intl.message( - 'You set to 0, will not update automatically.\nCan\'t calculate CPU status.', - name: 'updateIntervalEqual0', - desc: '', - args: [], - ); - } - - /// `Server status update interval` - String get updateServerStatusInterval { - return Intl.message( - 'Server status update interval', - name: 'updateServerStatusInterval', - desc: '', - args: [], - ); - } - - /// `Update: v1.0.{newest}` - String updateTip(Object newest) { - return Intl.message( - 'Update: v1.0.$newest', - name: 'updateTip', - desc: '', - args: [newest], - ); - } - - /// `Current version is too low, please update to v1.0.{newest}` - String updateTipTooLow(Object newest) { - return Intl.message( - 'Current version is too low, please update to v1.0.$newest', - name: 'updateTipTooLow', - desc: '', - args: [newest], - ); - } - - /// `Upside Down` - String get upsideDown { - return Intl.message( - 'Upside Down', - name: 'upsideDown', - desc: '', - args: [], - ); - } - - /// `URL or JSON` - String get urlOrJson { - return Intl.message( - 'URL or JSON', - name: 'urlOrJson', - desc: '', - args: [], - ); - } - - /// `User` - String get user { - return Intl.message( - 'User', - name: 'user', - desc: '', - args: [], - ); - } - - /// `Found: v1.0.{build}, click to update` - String versionHaveUpdate(Object build) { - return Intl.message( - 'Found: v1.0.$build, click to update', - name: 'versionHaveUpdate', - desc: '', - args: [build], - ); - } - - /// `Current: v1.0.{build}` - String versionUnknownUpdate(Object build) { - return Intl.message( - 'Current: v1.0.$build', - name: 'versionUnknownUpdate', - desc: '', - args: [build], - ); - } - - /// `Current: v1.0.{build}, is up to date` - String versionUpdated(Object build) { - return Intl.message( - 'Current: v1.0.$build, is up to date', - name: 'versionUpdated', - desc: '', - args: [build], - ); - } - - /// `Please wait for the connection to be established.` - String get waitConnection { - return Intl.message( - 'Please wait for the connection to be established.', - name: 'waitConnection', - desc: '', - args: [], - ); - } - - /// `Will take effect immediately` - String get willTakEeffectImmediately { - return Intl.message( - 'Will take effect immediately', - name: 'willTakEeffectImmediately', - desc: '', - args: [], - ); - } -} - -class AppLocalizationDelegate extends LocalizationsDelegate { - const AppLocalizationDelegate(); - - List get supportedLocales { - return const [ - Locale.fromSubtags(languageCode: 'en'), - Locale.fromSubtags(languageCode: 'zh'), - ]; - } - - @override - bool isSupported(Locale locale) => _isSupported(locale); - @override - Future load(Locale locale) => S.load(locale); - @override - bool shouldReload(AppLocalizationDelegate old) => false; - - bool _isSupported(Locale locale) { - for (var supportedLocale in supportedLocales) { - if (supportedLocale.languageCode == locale.languageCode) { - return true; - } - } - return false; - } -} diff --git a/lib/l10n/intl_en.arb b/lib/l10n/app_en.arb similarity index 98% rename from lib/l10n/intl_en.arb rename to lib/l10n/app_en.arb index 5659b83b..e1916c72 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/app_en.arb @@ -7,6 +7,7 @@ "alreadyLastDir": "Already in last directory.", "appPrimaryColor": "App primary color", "attention": "Attention", + "auto": "Auto", "backDir": "Back", "backup": "Backup", "backupTip": "The exported data is simply encrypted. \nPlease keep it safe.\nRestoring will not overwrite existing data (except setting).", @@ -26,6 +27,7 @@ "createFile": "Create file", "createFolder": "Create folder", "currentMode": "Current Mode", + "dark": "Dark", "debug": "Debug", "decode": "Decode", "delete": "Delete", @@ -75,6 +77,7 @@ "lastTry": "Last try!", "launchPage": "Launch page", "license": "License", + "light": "Light", "loadingFiles": "Loading files...", "loss": "loss", "madeWithLove": "\nMade with ❤️ by {myGithub}", @@ -139,6 +142,7 @@ "sureNoPwd": "Are you sure to use no password?", "sureToDeleteServer": "Are you sure to delete server [{server}]?", "termTheme": "Terminal theme", + "themeMode": "Theme mode", "times": "Times", "ttl": "ttl", "unknown": "unknown", diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/app_zh.arb similarity index 98% rename from lib/l10n/intl_zh.arb rename to lib/l10n/app_zh.arb index 4ad94826..c2e160b7 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/app_zh.arb @@ -7,6 +7,7 @@ "alreadyLastDir": "已经是最上层目录了", "appPrimaryColor": "App主要色", "attention": "注意", + "auto": "自动", "backDir": "返回上一级", "backup": "备份", "backupTip": "导出的数据仅进行了简单加密,请妥善保管。\n除了设置项,恢复的数据不会覆盖现有数据。", @@ -26,6 +27,7 @@ "createFile": "创建文件", "createFolder": "创建文件夹", "currentMode": "当前模式", + "dark": "暗", "debug": "调试", "decode": "解码", "delete": "删除", @@ -75,6 +77,7 @@ "lastTry": "最后尝试", "launchPage": "启动页", "license": "开源证书", + "light": "亮", "loadingFiles": "正在加载目录。。。", "loss": "丢包率", "madeWithLove": "\n用❤️制作 by {myGithub}", @@ -139,6 +142,7 @@ "sureNoPwd": "确认使用无密码?", "sureToDeleteServer": "你确定要删除服务器 [{server}] 吗?", "termTheme": "终端主题", + "themeMode": "主题模式", "times": "次", "ttl": "缓存时间", "unknown": "未知", diff --git a/lib/main.dart b/lib/main.dart index 3fae1eac..7a6947f5 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -89,7 +89,7 @@ Future main() async { ChangeNotifierProvider( create: (_) => locator()), ], - child: const MyApp(), + child: MyApp(), ), ); }); diff --git a/lib/view/page/backup.dart b/lib/view/page/backup.dart index ea936eed..20f54ba8 100644 --- a/lib/view/page/backup.dart +++ b/lib/view/page/backup.dart @@ -4,6 +4,7 @@ import 'dart:convert'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:toolbox/data/res/color.dart'; import '../../core/extension/colorx.dart'; @@ -14,7 +15,6 @@ import '../../data/store/private_key.dart'; import '../../data/store/server.dart'; import '../../data/store/setting.dart'; import '../../data/store/snippet.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; const backupFormatVersion = 1; @@ -30,7 +30,7 @@ class BackupPage extends StatelessWidget { @override Widget build(BuildContext context) { final media = MediaQuery.of(context); - final s = S.of(context); + final s = S.of(context)!; return Scaffold( appBar: AppBar( title: Text(s.importAndExport, style: textSize18), diff --git a/lib/view/page/convert.dart b/lib/view/page/convert.dart index 2e09d8ca..a757de80 100644 --- a/lib/view/page/convert.dart +++ b/lib/view/page/convert.dart @@ -2,10 +2,10 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../core/utils/ui.dart'; import '../../data/res/color.dart'; -import '../../generated/l10n.dart'; import '../widget/input_field.dart'; import '../widget/round_rect_card.dart'; @@ -38,7 +38,7 @@ class _ConvertPageState extends State super.didChangeDependencies(); _media = MediaQuery.of(context); _theme = Theme.of(context); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/docker.dart b/lib/view/page/docker.dart index 49c9d10c..3e8c3aaa 100644 --- a/lib/view/page/docker.dart +++ b/lib/view/page/docker.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import '../../core/utils/ui.dart'; @@ -11,7 +12,6 @@ import '../../data/res/font_style.dart'; import '../../data/res/menu.dart'; import '../../data/res/url.dart'; import '../../data/store/docker.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; import '../widget/center_loading.dart'; import '../widget/dropdown_menu.dart'; @@ -41,7 +41,7 @@ class _DockerManagePageState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index b5c80e6e..60fe9f9f 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -1,5 +1,6 @@ import 'package:after_layout/after_layout.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:get_it/get_it.dart'; import '../../core/analysis.dart'; @@ -15,7 +16,6 @@ import '../../data/res/icon.dart'; import '../../data/res/tab.dart'; import '../../data/res/url.dart'; import '../../data/store/setting.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; import '../widget/url_text.dart'; import 'backup.dart'; @@ -61,7 +61,7 @@ class _MyHomePageState extends State @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; _width = MediaQuery.of(context).size.width; } diff --git a/lib/view/page/ping.dart b/lib/view/page/ping.dart index 69c09fd4..f9f7c40c 100644 --- a/lib/view/page/ping.dart +++ b/lib/view/page/ping.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:after_layout/after_layout.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../core/extension/uint8list.dart'; import '../../core/utils/ui.dart'; @@ -9,7 +10,6 @@ import '../../data/model/server/ping_result.dart'; import '../../data/provider/server.dart'; import '../../data/res/color.dart'; import '../../data/res/font_style.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; import '../widget/input_field.dart'; import '../widget/round_rect_card.dart'; @@ -45,7 +45,7 @@ class _PingPageState extends State void didChangeDependencies() { super.didChangeDependencies(); _media = MediaQuery.of(context); - s = S.of(context); + s = S.of(context)!; } @override diff --git a/lib/view/page/pkg.dart b/lib/view/page/pkg.dart index 173747fa..d792a276 100644 --- a/lib/view/page/pkg.dart +++ b/lib/view/page/pkg.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import '../../data/model/pkg/upgrade_info.dart'; @@ -8,7 +9,6 @@ import '../../data/model/server/server_private_info.dart'; import '../../data/provider/pkg.dart'; import '../../data/provider/server.dart'; import '../../data/res/font_style.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; import '../widget/center_loading.dart'; import '../widget/round_rect_card.dart'; @@ -36,7 +36,7 @@ class _PkgManagePageState extends State void didChangeDependencies() { super.didChangeDependencies(); _media = MediaQuery.of(context); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/private_key/edit.dart b/lib/view/page/private_key/edit.dart index 1b1dd48d..22d4867c 100644 --- a/lib/view/page/private_key/edit.dart +++ b/lib/view/page/private_key/edit.dart @@ -4,6 +4,7 @@ import 'package:after_layout/after_layout.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:toolbox/core/extension/numx.dart'; import 'package:toolbox/core/utils/misc.dart'; import 'package:toolbox/data/res/misc.dart'; @@ -13,7 +14,6 @@ import '../../../core/utils/ui.dart'; import '../../../data/model/server/private_key_info.dart'; import '../../../data/provider/private_key.dart'; import '../../../data/res/font_style.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/input_decoration.dart'; @@ -53,7 +53,7 @@ class _PrivateKeyEditPageState extends State @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; _focusScope = FocusScope.of(context); } diff --git a/lib/view/page/private_key/list.dart b/lib/view/page/private_key/list.dart index e9e7ce46..1b911270 100644 --- a/lib/view/page/private_key/list.dart +++ b/lib/view/page/private_key/list.dart @@ -1,11 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; -import 'package:toolbox/core/route.dart'; -import 'package:toolbox/data/provider/private_key.dart'; -import 'package:toolbox/data/res/font_style.dart'; -import 'package:toolbox/generated/l10n.dart'; -import 'package:toolbox/view/page/private_key/edit.dart'; -import 'package:toolbox/view/widget/round_rect_card.dart'; + +import '../../../core/route.dart'; +import '../../../data/provider/private_key.dart'; +import '../../../data/res/font_style.dart'; +import 'edit.dart'; +import '../../../view/widget/round_rect_card.dart'; class PrivateKeysListPage extends StatefulWidget { const PrivateKeysListPage({Key? key}) : super(key: key); @@ -20,7 +21,7 @@ class _PrivateKeyListState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/server/detail.dart b/lib/view/page/server/detail.dart index 0f94ad22..7bd81920 100644 --- a/lib/view/page/server/detail.dart +++ b/lib/view/page/server/detail.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import '../../../core/extension/numx.dart'; @@ -12,7 +13,6 @@ import '../../../data/res/font_style.dart'; import '../../../data/res/padding.dart'; import '../../../data/res/sizedbox.dart'; import '../../../data/store/setting.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/round_rect_card.dart'; @@ -35,7 +35,7 @@ class _ServerDetailPageState extends State void didChangeDependencies() { super.didChangeDependencies(); _media = MediaQuery.of(context); - _s = S.of(context); + _s = S.of(context)!; _showDistLogo = locator().showDistLogo.fetch()!; } diff --git a/lib/view/page/server/edit.dart b/lib/view/page/server/edit.dart index a173800a..30446b91 100644 --- a/lib/view/page/server/edit.dart +++ b/lib/view/page/server/edit.dart @@ -1,5 +1,6 @@ import 'package:after_layout/after_layout.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import '../../../core/route.dart'; @@ -11,7 +12,6 @@ import '../../../data/provider/server.dart'; import '../../../data/res/color.dart'; import '../../../data/res/font_style.dart'; import '../../../data/store/private_key.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/input_decoration.dart'; import '../private_key/edit.dart'; @@ -53,7 +53,7 @@ class _ServerEditPageState extends State with AfterLayoutMixin { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; _focusScope = FocusScope.of(context); } diff --git a/lib/view/page/server/tab.dart b/lib/view/page/server/tab.dart index f25c3018..a8ebeeb7 100644 --- a/lib/view/page/server/tab.dart +++ b/lib/view/page/server/tab.dart @@ -1,6 +1,7 @@ import 'package:after_layout/after_layout.dart'; import 'package:circle_chart/circle_chart.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:get_it/get_it.dart'; import 'package:provider/provider.dart'; @@ -16,7 +17,6 @@ import '../../../data/res/font_style.dart'; import '../../../data/res/menu.dart'; import '../../../data/res/url.dart'; import '../../../data/store/setting.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/dropdown_menu.dart'; import '../../widget/picker.dart'; @@ -57,7 +57,7 @@ class _ServerPageState extends State super.didChangeDependencies(); _media = MediaQuery.of(context); _theme = Theme.of(context); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/setting.dart b/lib/view/page/setting.dart index ef6f7010..e7e3e7e7 100644 --- a/lib/view/page/setting.dart +++ b/lib/view/page/setting.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_material_color_picker/flutter_material_color_picker.dart'; import 'package:provider/provider.dart'; @@ -12,7 +13,6 @@ import '../../data/res/color.dart'; import '../../data/res/font_style.dart'; import '../../data/res/tab.dart'; import '../../data/store/setting.dart'; -import '../../generated/l10n.dart'; import '../../locator.dart'; import '../widget/round_rect_card.dart'; @@ -32,6 +32,7 @@ class _SettingPageState extends State { late int _selectedColorValue; late int _launchPageIdx; late int _termThemeIdx; + late int _nightMode; late double _maxRetryCount; late double _updateInterval; @@ -39,7 +40,7 @@ class _SettingPageState extends State { void didChangeDependencies() { super.didChangeDependencies(); _media = MediaQuery.of(context); - _s = S.of(context); + _s = S.of(context)!; } @override @@ -49,6 +50,7 @@ class _SettingPageState extends State { _setting = locator(); _launchPageIdx = _setting.launchPage.fetch()!; _termThemeIdx = _setting.termColorIdx.fetch()!; + _nightMode = _setting.nightMode.fetch()!; _updateInterval = _setting.serverStatusUpdateInterval.fetch()!.toDouble(); _maxRetryCount = _setting.maxRetryCount.fetch()!.toDouble(); } @@ -88,6 +90,7 @@ class _SettingPageState extends State { Widget _buildApp() { return Column( children: [ + _buildNightMode(), _buildAppColorPreview(), _buildLaunchPage(), _buildCheckUpdate(), @@ -371,4 +374,49 @@ class _SettingPageState extends State { ], ); } + + Widget _buildNightMode() { + return ExpansionTile( + textColor: primaryColor, + title: Text( + _s.themeMode, + style: textSize13, + textAlign: TextAlign.start, + ), + trailing: Text( + _buildNightModeStr(_nightMode), + style: textSize13, + ), + children: [ + Slider( + thumbColor: primaryColor, + activeColor: primaryColor.withOpacity(0.7), + min: 0, + max: 2, + value: _nightMode.toDouble(), + onChanged: (newValue) { + setState(() { + _nightMode = newValue.toInt(); + }); + }, + onChangeEnd: (val) { + _setting.nightMode.put(val.toInt()); + }, + label: _buildNightModeStr(_nightMode), + divisions: 2, + ), + ], + ); + } + + String _buildNightModeStr(int n) { + switch (n) { + case 1: + return _s.light; + case 2: + return _s.dark; + default: + return _s.auto; + } + } } diff --git a/lib/view/page/sftp/downloaded.dart b/lib/view/page/sftp/downloaded.dart index 5d423032..e4006c99 100644 --- a/lib/view/page/sftp/downloaded.dart +++ b/lib/view/page/sftp/downloaded.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../../core/extension/numx.dart'; import '../../../core/extension/stringx.dart'; @@ -10,7 +11,6 @@ import '../../../core/utils/ui.dart'; import '../../../data/model/app/path_with_prefix.dart'; import '../../../data/res/font_style.dart'; import '../../../data/res/path.dart'; -import '../../../generated/l10n.dart'; import '../../widget/fade_in.dart'; import 'downloading.dart'; @@ -39,7 +39,7 @@ class _SFTPDownloadedPageState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/sftp/downloading.dart b/lib/view/page/sftp/downloading.dart index 27352c29..9418a21a 100644 --- a/lib/view/page/sftp/downloading.dart +++ b/lib/view/page/sftp/downloading.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import '../../../core/extension/numx.dart'; @@ -7,7 +8,6 @@ import '../../../core/utils/ui.dart'; import '../../../data/model/sftp/download_status.dart'; import '../../../data/provider/sftp_download.dart'; import '../../../data/res/font_style.dart'; -import '../../../generated/l10n.dart'; import '../../widget/center_loading.dart'; import '../../widget/round_rect_card.dart'; @@ -24,7 +24,7 @@ class _SFTPDownloadingPageState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/sftp/view.dart b/lib/view/page/sftp/view.dart index ecf2e675..e4ada483 100644 --- a/lib/view/page/sftp/view.dart +++ b/lib/view/page/sftp/view.dart @@ -2,6 +2,7 @@ import 'dart:typed_data'; import 'package:dartssh2/dartssh2.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../../core/extension/numx.dart'; import '../../../core/extension/stringx.dart'; @@ -16,7 +17,6 @@ import '../../../data/provider/server.dart'; import '../../../data/provider/sftp_download.dart'; import '../../../data/res/path.dart'; import '../../../data/store/private_key.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/fade_in.dart'; import '../../widget/two_line_text.dart'; @@ -44,7 +44,7 @@ class _SFTPPageState extends State { void didChangeDependencies() { super.didChangeDependencies(); _media = MediaQuery.of(context); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/snippet/edit.dart b/lib/view/page/snippet/edit.dart index e7c53a20..d742211e 100644 --- a/lib/view/page/snippet/edit.dart +++ b/lib/view/page/snippet/edit.dart @@ -1,11 +1,11 @@ import 'package:after_layout/after_layout.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../../core/utils/ui.dart'; import '../../../data/model/server/snippet.dart'; import '../../../data/provider/snippet.dart'; import '../../../data/res/font_style.dart'; -import '../../../generated/l10n.dart'; import '../../../locator.dart'; import '../../widget/input_decoration.dart'; @@ -36,7 +36,7 @@ class _SnippetEditPageState extends State @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/snippet/list.dart b/lib/view/page/snippet/list.dart index ab5bbbf8..dae80371 100644 --- a/lib/view/page/snippet/list.dart +++ b/lib/view/page/snippet/list.dart @@ -1,11 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; -import 'package:toolbox/core/route.dart'; -import 'package:toolbox/data/provider/snippet.dart'; -import 'package:toolbox/data/res/font_style.dart'; -import 'package:toolbox/generated/l10n.dart'; -import 'package:toolbox/view/page/snippet/edit.dart'; -import 'package:toolbox/view/widget/round_rect_card.dart'; + +import '/core/route.dart'; +import '/data/provider/snippet.dart'; +import '/data/res/font_style.dart'; +import 'edit.dart'; +import '/view/widget/round_rect_card.dart'; class SnippetListPage extends StatefulWidget { const SnippetListPage({Key? key}) : super(key: key); @@ -20,7 +21,7 @@ class _SnippetListPageState extends State { @override void didChangeDependencies() { super.didChangeDependencies(); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/page/ssh.dart b/lib/view/page/ssh.dart index 323f7aff..ff8dc6db 100644 --- a/lib/view/page/ssh.dart +++ b/lib/view/page/ssh.dart @@ -5,11 +5,11 @@ import 'package:dartssh2/dartssh2.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:provider/provider.dart'; import 'package:xterm/xterm.dart' hide TerminalColors; import '../../data/model/ssh/terminal_color.dart'; -import '../../generated/l10n.dart'; import '../../core/utils/misc.dart'; import '../../core/utils/ui.dart'; import '../../core/utils/server.dart'; @@ -58,7 +58,7 @@ class _SSHPageState extends State { _isDark = isDarkMode(context); _media = MediaQuery.of(context); _menuTextStyle = TextStyle(color: contentColor.resolve(context)); - _s = S.of(context); + _s = S.of(context)!; } @override diff --git a/lib/view/widget/dropdown_menu.dart b/lib/view/widget/dropdown_menu.dart index bcbe9440..a2875be1 100644 --- a/lib/view/widget/dropdown_menu.dart +++ b/lib/view/widget/dropdown_menu.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; import '../../data/res/menu.dart'; -import '../../generated/l10n.dart'; class DropdownBtnItem { final String text; diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 788a527a..8bfcdcc6 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -26,9 +26,9 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7 - url_launcher_macos: c04e4fa86382d4f94f6b38f14625708be3ae52e2 + url_launcher_macos: 5335912b679c073563f29d89d33d10d459f95451 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 6e624417..43f828de 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -26,7 +26,7 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 4C070605ECAE15AF72815802 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2CB2EC868EDACCBD0199581 /* Pods_Runner.framework */; }; + CC3C9C24336DBCBB13B1DD4E /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 051B6E43AB66C836E65690B6 /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -53,6 +53,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 051B6E43AB66C836E65690B6 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1B64E26251C2132C1FD3DE5F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* server_box.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = server_box.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -67,12 +69,10 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 3EBAA16736A04B8FA45DF33F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 93BF56BCB6A779C1799D1A42 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - BC4454F0DC2BCE8F9B14AD95 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - E2CB2EC868EDACCBD0199581 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EF544CC0E8F5001B58CA124F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + E8FDB0F1B04D4A1C2983795D /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -80,7 +80,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 4C070605ECAE15AF72815802 /* Pods_Runner.framework in Frameworks */, + CC3C9C24336DBCBB13B1DD4E /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -105,7 +105,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, - 3B06CFC5C95E07DA79CF798C /* Pods */, + 51D4AEDD40A46AA3AF8AF7AE /* Pods */, ); sourceTree = ""; }; @@ -152,12 +152,12 @@ path = Runner; sourceTree = ""; }; - 3B06CFC5C95E07DA79CF798C /* Pods */ = { + 51D4AEDD40A46AA3AF8AF7AE /* Pods */ = { isa = PBXGroup; children = ( - 93BF56BCB6A779C1799D1A42 /* Pods-Runner.debug.xcconfig */, - BC4454F0DC2BCE8F9B14AD95 /* Pods-Runner.release.xcconfig */, - EF544CC0E8F5001B58CA124F /* Pods-Runner.profile.xcconfig */, + 1B64E26251C2132C1FD3DE5F /* Pods-Runner.debug.xcconfig */, + E8FDB0F1B04D4A1C2983795D /* Pods-Runner.release.xcconfig */, + 3EBAA16736A04B8FA45DF33F /* Pods-Runner.profile.xcconfig */, ); name = Pods; path = Pods; @@ -166,7 +166,7 @@ D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( - E2CB2EC868EDACCBD0199581 /* Pods_Runner.framework */, + 051B6E43AB66C836E65690B6 /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -178,13 +178,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - AE558C9DE21E3C54833AFCE4 /* [CP] Check Pods Manifest.lock */, + 33DCC8E03FB9B8627035A7B7 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - DFE8A6B34CDBFF27DB607EA9 /* [CP] Embed Pods Frameworks */, + DE29B08A1EBC54F140840A8F /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -292,7 +292,7 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; - AE558C9DE21E3C54833AFCE4 /* [CP] Check Pods Manifest.lock */ = { + 33DCC8E03FB9B8627035A7B7 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -314,7 +314,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - DFE8A6B34CDBFF27DB607EA9 /* [CP] Embed Pods Frameworks */ = { + DE29B08A1EBC54F140840A8F /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( diff --git a/pubspec.lock b/pubspec.lock index b8c1da3a..396c1605 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,48 +5,48 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0c80aeab9bc807ab10022cd3b2f4cf2ecdf231949dc1ddd9442406a003f19201" - url: "https://pub.flutter-io.cn" + sha256: e440ac42679dfc04bbbefb58ed225c994bc7e07fccc8a68ec7d3631a127e5da9 + url: "https://pub.dev" source: hosted - version: "52.0.0" + version: "54.0.0" after_layout: dependency: "direct main" description: name: after_layout sha256: "95a1cb2ca1464f44f14769329fbf15987d20ab6c88f8fc5d359bd362be625f29" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.0" analyzer: dependency: transitive description: name: analyzer - sha256: cd8ee83568a77f3ae6b913a36093a1c9b1264e7cb7f834d9ddd2311dade9c1f4 - url: "https://pub.flutter-io.cn" + sha256: "2c2e3721ee9fb36de92faa060f3480c81b23e904352b087e5c64224b1a044427" + url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.6.0" archive: dependency: transitive description: name: archive sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.3.6" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" - url: "https://pub.flutter-io.cn" + sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" + url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.0" asn1lib: dependency: transitive description: name: asn1lib sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.4.0" async: @@ -54,7 +54,7 @@ packages: description: name: async sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.10.0" boolean_selector: @@ -62,7 +62,7 @@ packages: description: name: boolean_selector sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.1" build: @@ -70,7 +70,7 @@ packages: description: name: build sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.3.1" build_config: @@ -78,31 +78,31 @@ packages: description: name: build_config sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.1" build_daemon: dependency: transitive description: name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" - url: "https://pub.flutter-io.cn" + sha256: "757153e5d9cd88253cb13f28c2fb55a537dc31fefd98137549895b5beb7c6169" + url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "7c35a3a7868626257d8aee47b51c26b9dba11eaddf3431117ed2744951416aab" - url: "https://pub.flutter-io.cn" + sha256: db49b8609ef8c81cca2b310618c3017c00f03a92af44c04d310b907b2d692d95 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" build_runner: dependency: "direct dev" description: name: build_runner sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.3.3" build_runner_core: @@ -110,7 +110,7 @@ packages: description: name: build_runner_core sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "7.2.7" built_collection: @@ -118,7 +118,7 @@ packages: description: name: built_collection sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "5.1.1" built_value: @@ -126,7 +126,7 @@ packages: description: name: built_value sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "8.4.3" characters: @@ -134,7 +134,7 @@ packages: description: name: characters sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.1" checked_yaml: @@ -142,7 +142,7 @@ packages: description: name: checked_yaml sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.2" circle_chart: @@ -159,7 +159,7 @@ packages: description: name: clock sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.1" code_builder: @@ -167,7 +167,7 @@ packages: description: name: code_builder sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "4.4.0" collection: @@ -175,7 +175,7 @@ packages: description: name: collection sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.17.0" convert: @@ -183,7 +183,7 @@ packages: description: name: convert sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.1.1" countly_flutter: @@ -191,7 +191,7 @@ packages: description: name: countly_flutter sha256: "9e5a852bb6fcf0923032ca9080c528d06310e57fe1235cb735b0a28bd277c213" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "22.09.0" cross_file: @@ -199,7 +199,7 @@ packages: description: name: cross_file sha256: "0b0036e8cccbfbe0555fd83c1d31a6f30b77a96b598b35a5d36dd41f718695e9" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.3.3+4" crypto: @@ -207,7 +207,7 @@ packages: description: name: crypto sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.0.2" csslib: @@ -215,7 +215,7 @@ packages: description: name: csslib sha256: b36c7f7e24c0bdf1bf9a3da461c837d1de64b9f8beb190c9011d8c72a3dfd745 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.17.2" dart_style: @@ -223,7 +223,7 @@ packages: description: name: dart_style sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.2.4" dartssh2: @@ -231,7 +231,7 @@ packages: description: name: dartssh2 sha256: "4c44ad7bb6a12cd56f775fc72b64e81fcc3f7971dc731c48359f2aa551d6f6a7" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.7.3" dio: @@ -239,7 +239,7 @@ packages: description: name: dio sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "4.0.6" easy_isolate: @@ -247,7 +247,7 @@ packages: description: name: easy_isolate sha256: "44ed6d08efb5df29fb9cff6e6405ba919e7b1d1658ea4b120dc264d9c2d89710" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.0" equatable: @@ -255,23 +255,23 @@ packages: description: name: equatable sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.5" extended_image: dependency: "direct main" description: name: extended_image - sha256: "5854d0d05ee0c687d1852af9db05f15cfe058520fa56f417075705c5bce965d4" - url: "https://pub.flutter-io.cn" + sha256: a6b738d9b8d5513be72c545cc3e9c5c451fbee77c8db3cbec7c32ae85b82fb93 + url: "https://pub.dev" source: hosted - version: "6.4.0" + version: "6.4.1" extended_image_library: dependency: transitive description: name: extended_image_library sha256: b1de389378589e4dffb3564d782373238f19064037458092c49b3043b2791b2b - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.4.1" fake_async: @@ -279,7 +279,7 @@ packages: description: name: fake_async sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.1" ffi: @@ -287,7 +287,7 @@ packages: description: name: ffi sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.1" file: @@ -295,7 +295,7 @@ packages: description: name: file sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "6.1.4" file_picker: @@ -303,7 +303,7 @@ packages: description: name: file_picker sha256: d090ae03df98b0247b82e5928f44d1b959867049d18d73635e2e0bc3f49542b9 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "5.2.5" fixnum: @@ -311,7 +311,7 @@ packages: description: name: fixnum sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.0" flutter: @@ -324,7 +324,7 @@ packages: description: name: flutter_lints sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.1" flutter_localizations: @@ -337,25 +337,25 @@ packages: description: name: flutter_material_color_picker sha256: "64432c3b13bbcc6f428bae9d2e75b1b3da1e6f3219979e08a3bd9f176781d9f2" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.0+2" flutter_native_splash: dependency: "direct dev" description: name: flutter_native_splash - sha256: "048bd1f1dc0e5ea25899f702815934d9a9e916fe23451c320e7dd94d5e3ad933" - url: "https://pub.flutter-io.cn" + sha256: e301ae206ff0fb09b67d3716009c6c28c2da57a0ad164827b178421bb9d601f7 + url: "https://pub.dev" source: hosted - version: "2.2.17" + version: "2.2.18" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "60fc7b78455b94e6de2333d2f95196d32cf5c22f4b0b0520a628804cb463503b" - url: "https://pub.flutter-io.cn" + sha256: "4bef634684b2c7f3468c77c766c831229af829a0cd2d4ee6c1b99558bd14e5d2" + url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" flutter_test: dependency: "direct dev" description: flutter @@ -371,7 +371,7 @@ packages: description: name: frontend_server_client sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.2.0" get_it: @@ -379,7 +379,7 @@ packages: description: name: get_it sha256: "290fde3a86072e4b37dbb03c07bec6126f0ecc28dad403c12ffe2e5a2d751ab7" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "7.2.0" glob: @@ -387,7 +387,7 @@ packages: description: name: glob sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.1" graphs: @@ -395,7 +395,7 @@ packages: description: name: graphs sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.2.0" hive: @@ -403,7 +403,7 @@ packages: description: name: hive sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.2.3" hive_flutter: @@ -411,7 +411,7 @@ packages: description: name: hive_flutter sha256: dca1da446b1d808a51689fb5d0c6c9510c0a2ba01e22805d492c73b68e33eecc - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.0" hive_generator: @@ -419,7 +419,7 @@ packages: description: name: hive_generator sha256: "65998cc4d2cd9680a3d9709d893d2f6bb15e6c1f92626c3f1fa650b4b3281521" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.0" html: @@ -427,7 +427,7 @@ packages: description: name: html sha256: d9793e10dbe0e6c364f4c59bf3e01fb33a9b2a674bc7a1081693dba0614b6269 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.15.1" http: @@ -435,7 +435,7 @@ packages: description: name: http sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.13.5" http_client_helper: @@ -443,7 +443,7 @@ packages: description: name: http_client_helper sha256: "1f32359bd07a064ad256d1f84ae5f973f69bc972e7287223fa198abe1d969c28" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.3" http_multi_server: @@ -451,7 +451,7 @@ packages: description: name: http_multi_server sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.2.1" http_parser: @@ -459,39 +459,31 @@ packages: description: name: http_parser sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "4.0.2" image: dependency: transitive description: name: image - sha256: "3686865febd85c57a632d87a0fb1f0a8a9ef602fdb68d909c3e9aa29ec70fd24" - url: "https://pub.flutter-io.cn" + sha256: "483a389d6ccb292b570c31b3a193779b1b0178e7eb571986d9a49904b6861227" + url: "https://pub.dev" source: hosted - version: "4.0.13" + version: "4.0.15" intl: dependency: "direct main" description: name: intl sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.17.0" - intl_utils: - dependency: "direct dev" - description: - name: intl_utils - sha256: "413699c0f7a1123a9306c1f2f5ea8662677d25bdebf22ba4f3960e0069be3be2" - url: "https://pub.flutter-io.cn" - source: hosted - version: "2.8.1" io: dependency: transitive description: name: io sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.4" js: @@ -499,7 +491,7 @@ packages: description: name: js sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.6.5" json_annotation: @@ -507,7 +499,7 @@ packages: description: name: json_annotation sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "4.8.0" lints: @@ -515,7 +507,7 @@ packages: description: name: lints sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.0.1" logging: @@ -523,7 +515,7 @@ packages: description: name: logging sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.1" matcher: @@ -531,7 +523,7 @@ packages: description: name: matcher sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.12.13" material_color_utilities: @@ -539,7 +531,7 @@ packages: description: name: material_color_utilities sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.2.0" meta: @@ -547,7 +539,7 @@ packages: description: name: meta sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.8.0" mime: @@ -555,7 +547,7 @@ packages: description: name: mime sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.4" nested: @@ -563,7 +555,7 @@ packages: description: name: nested sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.0" package_config: @@ -571,7 +563,7 @@ packages: description: name: package_config sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.0" path: @@ -579,63 +571,63 @@ packages: description: name: path sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.8.2" path_provider: dependency: "direct main" description: name: path_provider - sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95 - url: "https://pub.flutter-io.cn" + sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9" + url: "https://pub.dev" source: hosted - version: "2.0.12" + version: "2.0.13" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e - url: "https://pub.flutter-io.cn" + sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e" + url: "https://pub.dev" source: hosted - version: "2.0.22" + version: "2.0.23" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74" - url: "https://pub.flutter-io.cn" + sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972 + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 - url: "https://pub.flutter-io.cn" + sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a" + url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.9" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 - url: "https://pub.flutter-io.cn" + sha256: "57585299a729335f1298b43245842678cb9f43a6310351b18fb577d6e33165ec" + url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.6" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c - url: "https://pub.flutter-io.cn" + sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d" + url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pedantic: dependency: transitive description: name: pedantic sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.11.1" petitparser: @@ -643,7 +635,7 @@ packages: description: name: petitparser sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "5.1.0" pinenacl: @@ -651,7 +643,7 @@ packages: description: name: pinenacl sha256: "3a5503637587d635647c93ea9a8fecf48a420cc7deebe6f1fc85c2a5637ab327" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.5.1" platform: @@ -659,7 +651,7 @@ packages: description: name: platform sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.1.0" platform_info: @@ -667,23 +659,23 @@ packages: description: name: platform_info sha256: "012e73712166cf0b56d3eb95c0d33491f56b428c169eca385f036448474147e4" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.2.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a - url: "https://pub.flutter-io.cn" + sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" + url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pointycastle: dependency: transitive description: name: pointycastle sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.6.2" pool: @@ -691,7 +683,7 @@ packages: description: name: pool sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.5.1" process: @@ -699,7 +691,7 @@ packages: description: name: process sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "4.2.4" provider: @@ -707,7 +699,7 @@ packages: description: name: provider sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "6.0.5" pub_semver: @@ -715,7 +707,7 @@ packages: description: name: pub_semver sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.3" pubspec_parse: @@ -723,7 +715,7 @@ packages: description: name: pubspec_parse sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.1" quiver: @@ -731,7 +723,7 @@ packages: description: name: quiver sha256: b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.2.1" r_upgrade: @@ -739,7 +731,7 @@ packages: description: name: r_upgrade sha256: be460ed1d2bf3b444a731aa2eeb38751faaef91097fed4bf9d138d3214b98999 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.3.8+2" share_plus: @@ -747,7 +739,7 @@ packages: description: name: share_plus sha256: "8c6892037b1824e2d7e8f59d54b3105932899008642e6372e5079c6939b4b625" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "6.3.1" share_plus_platform_interface: @@ -755,7 +747,7 @@ packages: description: name: share_plus_platform_interface sha256: "82ddd4ab9260c295e6e39612d4ff00390b9a7a21f1bb1da771e2f232d80ab8a1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.2.0" share_plus_web: @@ -763,7 +755,7 @@ packages: description: name: share_plus_web sha256: eaef05fa8548b372253e772837dd1fbe4ce3aca30ea330765c945d7d4f7c9935 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.1.0" shelf: @@ -771,7 +763,7 @@ packages: description: name: shelf sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.4.0" shelf_web_socket: @@ -779,7 +771,7 @@ packages: description: name: shelf_web_socket sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.3" sky_engine: @@ -792,7 +784,7 @@ packages: description: name: source_gen sha256: c2bea18c95cfa0276a366270afaa2850b09b4a76db95d546f3d003dcc7011298 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.7" source_helper: @@ -800,7 +792,7 @@ packages: description: name: source_helper sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.3" source_span: @@ -808,7 +800,7 @@ packages: description: name: source_span sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.9.1" stack_trace: @@ -816,7 +808,7 @@ packages: description: name: stack_trace sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.11.0" stream_channel: @@ -824,7 +816,7 @@ packages: description: name: stream_channel sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.1" stream_transform: @@ -832,7 +824,7 @@ packages: description: name: stream_transform sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.0" string_scanner: @@ -840,7 +832,7 @@ packages: description: name: string_scanner sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.0" term_glyph: @@ -848,7 +840,7 @@ packages: description: name: term_glyph sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.1" test_api: @@ -856,7 +848,7 @@ packages: description: name: test_api sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "0.4.16" timing: @@ -864,7 +856,7 @@ packages: description: name: timing sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.1" typed_data: @@ -872,87 +864,87 @@ packages: description: name: typed_data sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.1" universal_io: dependency: transitive description: name: universal_io - sha256: "79f78ddad839ee3aae3ec7c01eb4575faf0d5c860f8e5223bc9f9c17f7f03cef" - url: "https://pub.flutter-io.cn" + sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d" + url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.2.0" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: "698fa0b4392effdc73e9e184403b627362eb5fbf904483ac9defbb1c2191d809" - url: "https://pub.flutter-io.cn" + sha256: "75f2846facd11168d007529d6cd8fcb2b750186bea046af9711f10b907e1587e" + url: "https://pub.dev" source: hosted - version: "6.1.8" + version: "6.1.10" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "3e2f6dfd2c7d9cd123296cab8ef66cfc2c1a13f5845f42c7a0f365690a8a7dd1" - url: "https://pub.flutter-io.cn" + sha256: "1f4d9ebe86f333c15d318f81dcdc08b01d45da44af74552608455ebdc08d9732" + url: "https://pub.dev" source: hosted - version: "6.0.23" + version: "6.0.24" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bb328b24d3bccc20bdf1024a0990ac4f869d57663660de9c936fb8c043edefe3 - url: "https://pub.flutter-io.cn" + sha256: c9cd648d2f7ab56968e049d4e9116f96a85517f1dd806b96a86ea1018a3a82e5 + url: "https://pub.dev" source: hosted - version: "6.0.18" + version: "6.1.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "318c42cba924e18180c029be69caf0a1a710191b9ec49bb42b5998fdcccee3cc" - url: "https://pub.flutter-io.cn" + sha256: e29039160ab3730e42f3d811dc2a6d5f2864b90a70fb765ea60144b03307f682 + url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "41988b55570df53b3dd2a7fc90c76756a963de6a8c5f8e113330cb35992e2094" - url: "https://pub.flutter-io.cn" + sha256: "2dddb3291a57b074dade66b5e07e64401dd2487caefd4e9e2f467138d8c7eb06" + url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6" - url: "https://pub.flutter-io.cn" + sha256: "6c9ca697a5ae218ce56cece69d46128169a58aa8653c1b01d26fcd4aad8c4370" + url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "44d79408ce9f07052095ef1f9a693c258d6373dc3944249374e30eff7219ccb0" - url: "https://pub.flutter-io.cn" + sha256: "574cfbe2390666003c3a1d129bdc4574aaa6728f0c00a4829a81c316de69dd9b" + url: "https://pub.dev" source: hosted - version: "2.0.14" + version: "2.0.15" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: b6217370f8eb1fd85c8890c539f5a639a01ab209a36db82c921ebeacefc7a615 - url: "https://pub.flutter-io.cn" + sha256: "97c9067950a0d09cbd93e2e3f0383d1403989362b97102fbf446473a48079a4b" + url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.4" uuid: dependency: transitive description: name: uuid sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.0.7" vector_math: @@ -960,7 +952,7 @@ packages: description: name: vector_math sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.4" watcher: @@ -968,7 +960,7 @@ packages: description: name: watcher sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.2" web_socket_channel: @@ -976,7 +968,7 @@ packages: description: name: web_socket_channel sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.3.0" win32: @@ -984,23 +976,23 @@ packages: description: name: win32 sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.1.3" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 - url: "https://pub.flutter-io.cn" + sha256: ee1505df1426458f7f60aac270645098d318a8b4766d85fde75f76f2e21807d1 + url: "https://pub.dev" source: hosted - version: "0.2.0+3" + version: "1.0.0" xml: dependency: transitive description: name: xml sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "6.2.2" xterm: @@ -1015,7 +1007,7 @@ packages: description: name: yaml sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.1.1" sdks: diff --git a/pubspec.yaml b/pubspec.yaml index 65f9c1d6..cc5226b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -62,7 +62,6 @@ dev_dependencies: flutter_native_splash: ^2.1.6 hive_generator: ^2.0.0 build_runner: ^2.3.2 - intl_utils: ^2.8.1 flutter_test: sdk: flutter @@ -77,7 +76,7 @@ dev_dependencies: # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter. flutter: - + generate: true # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. @@ -184,5 +183,3 @@ flutter_native_splash: # - 'ios/Runner/Info-Release.plist' # To enable support for Android 12, set the following parameter to true. Defaults to false. #android12: true -flutter_intl: - enabled: true diff --git a/test/widget_test.dart b/test/widget_test.dart index 89e400ad..e38d965a 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -12,7 +12,7 @@ import 'package:toolbox/app.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget(MyApp()); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget);