From a3bc258934e75662051585dd0e39b681fded8bd3 Mon Sep 17 00:00:00 2001 From: ewuuwe Date: Tue, 13 Feb 2024 11:13:18 +0100 Subject: [PATCH] Refactoring --- docker/Dockerfile | 34 + flake.nix | 33 +- lib/main.dart | 71 +- lib/pages/ReceivePage.dart | 2 +- lib/pages/{BasePage.dart => Router.dart} | 0 lib/pages/SendPage.dart | 2 +- lib/pages/SendingPage.dart | 3 +- lib/utils/responsive_layout.dart | 25 + lib/{ => utils}/type_helpers.dart | 2 +- pubspec.lock | 16 + pubspec.lock.json | 1282 ++++++++++++++++++++++ pubspec.yaml | 2 + 12 files changed, 1444 insertions(+), 28 deletions(-) create mode 100644 docker/Dockerfile rename lib/pages/{BasePage.dart => Router.dart} (100%) create mode 100644 lib/utils/responsive_layout.dart rename lib/{ => utils}/type_helpers.dart (71%) create mode 100644 pubspec.lock.json diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..e2516d1 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,34 @@ +FROM ghcr.io/cirruslabs/flutter:latest + +ENV ANDROID_NDK_VERSION 24.0.8215888 +ENV PATH="/root/.cargo/bin:$PATH" + + +RUN yes | sdkmanager "ndk;$ANDROID_NDK_VERSION" + +RUN echo "INPUT(-lunwind)" > /opt/android-sdk-linux/ndk/$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.1/lib/linux/aarch64/libgcc.a +RUN echo "INPUT(-lunwind)" > /opt/android-sdk-linux/ndk/$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.1/lib/linux/arm/libgcc.a +RUN echo "INPUT(-lunwind)" > /opt/android-sdk-linux/ndk/$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.1/lib/linux/i386/libgcc.a +RUN echo "INPUT(-lunwind)" > /opt/android-sdk-linux/ndk/$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.1/lib/linux/x86_64/libgcc.a + +RUN apt update && apt install -y \ + build-essential \ + clang \ + llvm \ + curl \ + git \ + libssl-dev \ + libgtk-3-dev \ + ninja-build \ + cmake + +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y \ + && . "$HOME/.cargo/env" \ + && rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android \ + && echo "export ANDROID_NDK_HOME=/opt/android-sdk-linux/ndk/$ANDROID_NDK_VERSION" >> $HOME/.bashrc \ + && cargo install cargo-ndk + +RUN cargo install flutter_rust_bridge_codegen \ + && cargo install cargo-expand + +WORKDIR /root/wormhole \ No newline at end of file diff --git a/flake.nix b/flake.nix index 2e11be4..6113e89 100644 --- a/flake.nix +++ b/flake.nix @@ -74,23 +74,24 @@ rustToolchain flutter androidSdk - gnumake - jdk11 - libstdcxx5 - libzra - libzip - zlib - libllvm - libclang - llvm - musl - libcxx - glibc - glibc_multi - pkg-config - libclang + gnome.zenity ]; - #GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${androidSdk}/libexec/android-sdk/build-tools/${buildToolsVersion}/aapt2"; }; + + formatter = pkgs.alejandra; + + packages = { + default = pkgs.flutter.buildFlutterApplication { + pname = "firmware-updater"; + version = "0-unstable-2023-04-30"; + + # To build for the Web, use the targetFlutterPlatform argument. + targetFlutterPlatform = "linux"; + + src = ./.; + + pubspecLock = pkgs.lib.importJSON ./pubspec.lock.json; + }; + }; }); } diff --git a/lib/main.dart b/lib/main.dart index c95c0a3..dd42cae 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,19 +1,79 @@ + +import 'dart:io'; + import 'package:dynamic_color/dynamic_color.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:iyox_wormhole/pages/BasePage.dart'; +import 'package:flutter_displaymode/flutter_displaymode.dart'; +import 'package:iyox_wormhole/pages/Router.dart'; import 'package:flutter/services.dart'; +import 'package:logger/logger.dart'; -void main() { +void main() async { + await initApp(); runApp(const WormholeApp()); } +Future initApp() async { + WidgetsFlutterBinding.ensureInitialized(); + + if (kReleaseMode && Platform.isAndroid) { + try { + await FlutterDisplayMode.setHighRefreshRate(); + debugPrint("Enabled high refresh mode"); + } catch (e) { + debugPrint("Error setting high refresh rate: $e"); + } + } + + var log = Logger(); + + FlutterError.onError = (details) { + FlutterError.presentError(details); + log.f( + 'FlutterError - Catch all error: ${details.toString()} - ${details.exception} - ${details.library} - ${details.context} - ${details.stack}', + error: details, + stackTrace: details.stack, + ); + }; + + PlatformDispatcher.instance.onError = (error, stack) { + log.f('PlatformDispatcher - Catch all error: $error', error: error, stackTrace: stack); + debugPrint("PlatformDispatcher - Catch all error: $error $stack"); + return true; + }; +} + class NavigationService { static GlobalKey navigatorKey = GlobalKey(); } -class WormholeApp extends StatelessWidget { +class WormholeApp extends StatefulWidget { const WormholeApp({super.key}); + @override + WormholeAppState createState() => WormholeAppState(); +} + +class WormholeAppState extends State { + + Future initApp() async { + // Draw the app from edge to edge + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); + + // Sets the navigation bar color + SystemUiOverlayStyle overlayStyle = const SystemUiOverlayStyle( + systemNavigationBarColor: Colors.transparent, + ); + SystemChrome.setSystemUIOverlayStyle(overlayStyle); + } + + @override + initState() { + super.initState(); + initApp().then((_) => debugPrint("App Init Completed")); + } + @override Widget build(BuildContext context) { return DynamicColorBuilder(builder: (lightColorScheme, darkColorScheme) { @@ -31,10 +91,7 @@ class WormholeApp extends StatelessWidget { colorScheme: darkColorScheme, ), themeMode: ThemeMode.dark, - home: GestureDetector( - onTap: () => FocusManager.instance.primaryFocus?.unfocus(), - child: const BasePage(), - ), + home: const BasePage(), ); }); } diff --git a/lib/pages/ReceivePage.dart b/lib/pages/ReceivePage.dart index 69b16f4..c51ab86 100644 --- a/lib/pages/ReceivePage.dart +++ b/lib/pages/ReceivePage.dart @@ -5,7 +5,7 @@ import 'package:gap/gap.dart'; import 'package:iyox_wormhole/gen/ffi.dart'; import 'package:iyox_wormhole/pages/QrCodeScannerPage.dart'; import 'package:iyox_wormhole/pages/SendPage.dart'; -import 'package:iyox_wormhole/type_helpers.dart'; +import 'package:iyox_wormhole/utils/type_helpers.dart'; import 'package:iyox_wormhole/utils/paths.dart'; class ReceivePage extends StatefulWidget { diff --git a/lib/pages/BasePage.dart b/lib/pages/Router.dart similarity index 100% rename from lib/pages/BasePage.dart rename to lib/pages/Router.dart diff --git a/lib/pages/SendPage.dart b/lib/pages/SendPage.dart index 92365cc..7db6c88 100644 --- a/lib/pages/SendPage.dart +++ b/lib/pages/SendPage.dart @@ -3,7 +3,7 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:gap/gap.dart'; -import 'package:iyox_wormhole/type_helpers.dart'; +import 'package:iyox_wormhole/utils/type_helpers.dart'; import 'package:iyox_wormhole/gen/ffi.dart'; import 'SendingPage.dart'; diff --git a/lib/pages/SendingPage.dart b/lib/pages/SendingPage.dart index 368ccbe..3c8d653 100644 --- a/lib/pages/SendingPage.dart +++ b/lib/pages/SendingPage.dart @@ -2,7 +2,7 @@ import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:gap/gap.dart'; -import 'package:iyox_wormhole/type_helpers.dart'; +import 'package:iyox_wormhole/utils/type_helpers.dart'; import 'package:qr_flutter/qr_flutter.dart'; import '../gen/ffi.dart'; @@ -77,7 +77,6 @@ class _SendingPageState extends State { appBar: AppBar(), body: LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { - debugPrint(constraints.maxWidth.toString()); if (constraints.maxWidth > 600) { return _buildWideContainer(); } else { diff --git a/lib/utils/responsive_layout.dart b/lib/utils/responsive_layout.dart new file mode 100644 index 0000000..cd84358 --- /dev/null +++ b/lib/utils/responsive_layout.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; + +class ResponsiveLayout extends StatelessWidget { + const ResponsiveLayout({ + super.key, + required this.mobileLayout, + required this.desktopLayout, + }); + + final Widget mobileLayout; + final Widget desktopLayout; + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (BuildContext context, BoxConstraints constraints) { + if (constraints.maxWidth < 700) { + return mobileLayout; + } else { + return desktopLayout; + } + }, + ); + } +} \ No newline at end of file diff --git a/lib/type_helpers.dart b/lib/utils/type_helpers.dart similarity index 71% rename from lib/type_helpers.dart rename to lib/utils/type_helpers.dart index c8964b1..f6f5cb4 100644 --- a/lib/type_helpers.dart +++ b/lib/utils/type_helpers.dart @@ -1,4 +1,4 @@ -import '../gen/bridge_definitions.dart'; +import '../../gen/bridge_definitions.dart'; extension GetValue on TUpdate { T getValue() { diff --git a/pubspec.lock b/pubspec.lock index 4fea3d2..eb44119 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -358,6 +358,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_displaymode: + dependency: "direct main" + description: + name: flutter_displaymode + sha256: "42c5e9abd13d28ed74f701b60529d7f8416947e58256e6659c5550db719c57ef" + url: "https://pub.dev" + source: hosted + version: "0.6.0" flutter_launcher_icons: dependency: "direct dev" description: @@ -584,6 +592,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.1" + logger: + dependency: "direct main" + description: + name: logger + sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac" + url: "https://pub.dev" + source: hosted + version: "2.0.2+1" logging: dependency: transitive description: diff --git a/pubspec.lock.json b/pubspec.lock.json new file mode 100644 index 0000000..c5eaae4 --- /dev/null +++ b/pubspec.lock.json @@ -0,0 +1,1282 @@ +{ + "packages": { + "_fe_analyzer_shared": { + "dependency": "transitive", + "description": { + "name": "_fe_analyzer_shared", + "sha256": "eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "64.0.0" + }, + "analyzer": { + "dependency": "transitive", + "description": { + "name": "analyzer", + "sha256": "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.2.0" + }, + "animations": { + "dependency": "direct main", + "description": { + "name": "animations", + "sha256": "d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.11" + }, + "archive": { + "dependency": "transitive", + "description": { + "name": "archive", + "sha256": "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.4.10" + }, + "args": { + "dependency": "transitive", + "description": { + "name": "args", + "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "async": { + "dependency": "transitive", + "description": { + "name": "async", + "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.11.0" + }, + "boolean_selector": { + "dependency": "transitive", + "description": { + "name": "boolean_selector", + "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "build": { + "dependency": "transitive", + "description": { + "name": "build", + "sha256": "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.1" + }, + "build_cli_annotations": { + "dependency": "transitive", + "description": { + "name": "build_cli_annotations", + "sha256": "b59d2769769efd6c9ff6d4c4cede0be115a566afc591705c2040b707534b1172", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "build_config": { + "dependency": "transitive", + "description": { + "name": "build_config", + "sha256": "bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "build_daemon": { + "dependency": "transitive", + "description": { + "name": "build_daemon", + "sha256": "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.1" + }, + "build_resolvers": { + "dependency": "transitive", + "description": { + "name": "build_resolvers", + "sha256": "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.2" + }, + "build_runner": { + "dependency": "direct dev", + "description": { + "name": "build_runner", + "sha256": "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.8" + }, + "build_runner_core": { + "dependency": "transitive", + "description": { + "name": "build_runner_core", + "sha256": "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.3.0" + }, + "built_collection": { + "dependency": "transitive", + "description": { + "name": "built_collection", + "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.1.1" + }, + "built_value": { + "dependency": "transitive", + "description": { + "name": "built_value", + "sha256": "a3ec2e0f967bc47f69f95009bb93db936288d61d5343b9436e378b28a2f830c6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.9.0" + }, + "camera": { + "dependency": "transitive", + "description": { + "name": "camera", + "sha256": "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.10.5+9" + }, + "camera_android": { + "dependency": "transitive", + "description": { + "name": "camera_android", + "sha256": "351429510121d179b9aac5a2e8cb525c3cd6c39f4d709c5f72dfb21726e52371", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.10.8+16" + }, + "camera_avfoundation": { + "dependency": "transitive", + "description": { + "name": "camera_avfoundation", + "sha256": "7d0763dfcbf060f56aa254a68c103210280bee9e97bbe4fdef23e257a4f70ab9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.14" + }, + "camera_platform_interface": { + "dependency": "transitive", + "description": { + "name": "camera_platform_interface", + "sha256": "e971ebca970f7cfee396f76ef02070b5e441b4aa04942da9c108d725f57bbd32", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.7.2" + }, + "camera_web": { + "dependency": "transitive", + "description": { + "name": "camera_web", + "sha256": "f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.2+4" + }, + "characters": { + "dependency": "transitive", + "description": { + "name": "characters", + "sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.0" + }, + "checked_yaml": { + "dependency": "transitive", + "description": { + "name": "checked_yaml", + "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "cli_util": { + "dependency": "transitive", + "description": { + "name": "cli_util", + "sha256": "c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.4.1" + }, + "clock": { + "dependency": "transitive", + "description": { + "name": "clock", + "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.1" + }, + "code_builder": { + "dependency": "transitive", + "description": { + "name": "code_builder", + "sha256": "f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.10.0" + }, + "collection": { + "dependency": "transitive", + "description": { + "name": "collection", + "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.18.0" + }, + "convert": { + "dependency": "transitive", + "description": { + "name": "convert", + "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.1" + }, + "cross_file": { + "dependency": "transitive", + "description": { + "name": "cross_file", + "sha256": "fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.3+8" + }, + "crypto": { + "dependency": "transitive", + "description": { + "name": "crypto", + "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.3" + }, + "dart_style": { + "dependency": "transitive", + "description": { + "name": "dart_style", + "sha256": "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.4" + }, + "device_info_plus": { + "dependency": "transitive", + "description": { + "name": "device_info_plus", + "sha256": "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.1.2" + }, + "device_info_plus_platform_interface": { + "dependency": "transitive", + "description": { + "name": "device_info_plus_platform_interface", + "sha256": "d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0" + }, + "dynamic_color": { + "dependency": "direct main", + "description": { + "name": "dynamic_color", + "sha256": "a866f1f8947bfdaf674d7928e769eac7230388a2e7a2542824fad4bb5b87be3b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.6.9" + }, + "fake_async": { + "dependency": "transitive", + "description": { + "name": "fake_async", + "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.1" + }, + "ffi": { + "dependency": "direct main", + "description": { + "name": "ffi", + "sha256": "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "ffigen": { + "dependency": "direct dev", + "description": { + "name": "ffigen", + "sha256": "d3e76c2ad48a4e7f93a29a162006f00eba46ce7c08194a77bb5c5e97d1b5ff0a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "8.0.2" + }, + "file": { + "dependency": "transitive", + "description": { + "name": "file", + "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.1.4" + }, + "file_picker": { + "dependency": "direct main", + "description": { + "name": "file_picker", + "sha256": "be325344c1f3070354a1d84a231a1ba75ea85d413774ec4bdf444c023342e030", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.5.0" + }, + "file_selector_linux": { + "dependency": "transitive", + "description": { + "name": "file_selector_linux", + "sha256": "045d372bf19b02aeb69cacf8b4009555fb5f6f0b7ad8016e5f46dd1387ddd492", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.2+1" + }, + "file_selector_macos": { + "dependency": "transitive", + "description": { + "name": "file_selector_macos", + "sha256": "b15c3da8bd4908b9918111fa486903f5808e388b8d1c559949f584725a6594d6", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.3+3" + }, + "file_selector_platform_interface": { + "dependency": "transitive", + "description": { + "name": "file_selector_platform_interface", + "sha256": "a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.6.2" + }, + "file_selector_windows": { + "dependency": "transitive", + "description": { + "name": "file_selector_windows", + "sha256": "d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.9.3+1" + }, + "fixnum": { + "dependency": "transitive", + "description": { + "name": "fixnum", + "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "flutter": { + "dependency": "direct main", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_displaymode": { + "dependency": "direct main", + "description": { + "name": "flutter_displaymode", + "sha256": "42c5e9abd13d28ed74f701b60529d7f8416947e58256e6659c5550db719c57ef", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.0" + }, + "flutter_launcher_icons": { + "dependency": "direct dev", + "description": { + "name": "flutter_launcher_icons", + "sha256": "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.13.1" + }, + "flutter_lints": { + "dependency": "direct dev", + "description": { + "name": "flutter_lints", + "sha256": "a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.3" + }, + "flutter_plugin_android_lifecycle": { + "dependency": "transitive", + "description": { + "name": "flutter_plugin_android_lifecycle", + "sha256": "b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.17" + }, + "flutter_rust_bridge": { + "dependency": "direct main", + "description": { + "name": "flutter_rust_bridge", + "sha256": "02720226035257ad0b571c1256f43df3e1556a499f6bcb004849a0faaa0e87f0", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.82.6" + }, + "flutter_test": { + "dependency": "direct dev", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_web_plugins": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.0" + }, + "flutter_zxing": { + "dependency": "direct main", + "description": { + "name": "flutter_zxing", + "sha256": "ed8da1a0e4650c7645e94b5ab92f855a6b628385d815641761ccbdcaee131683", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.2" + }, + "freezed": { + "dependency": "direct dev", + "description": { + "name": "freezed", + "sha256": "6c5031daae12c7072b3a87eff98983076434b4889ef2a44384d0cae3f82372ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.6" + }, + "freezed_annotation": { + "dependency": "direct main", + "description": { + "name": "freezed_annotation", + "sha256": "c3fd9336eb55a38cc1bbd79ab17573113a8deccd0ecbbf926cca3c62803b5c2d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.1" + }, + "frontend_server_client": { + "dependency": "transitive", + "description": { + "name": "frontend_server_client", + "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.0" + }, + "gap": { + "dependency": "direct main", + "description": { + "name": "gap", + "sha256": "f19387d4e32f849394758b91377f9153a1b41d79513ef7668c088c77dbc6955d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "glob": { + "dependency": "transitive", + "description": { + "name": "glob", + "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "graphs": { + "dependency": "transitive", + "description": { + "name": "graphs", + "sha256": "aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.1" + }, + "http": { + "dependency": "transitive", + "description": { + "name": "http", + "sha256": "a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "http_multi_server": { + "dependency": "transitive", + "description": { + "name": "http_multi_server", + "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "http_parser": { + "dependency": "transitive", + "description": { + "name": "http_parser", + "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.0.2" + }, + "image": { + "dependency": "transitive", + "description": { + "name": "image", + "sha256": "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.6" + }, + "image_picker": { + "dependency": "transitive", + "description": { + "name": "image_picker", + "sha256": "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.7" + }, + "image_picker_android": { + "dependency": "transitive", + "description": { + "name": "image_picker_android", + "sha256": "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.9+3" + }, + "image_picker_for_web": { + "dependency": "transitive", + "description": { + "name": "image_picker_for_web", + "sha256": "e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.2" + }, + "image_picker_ios": { + "dependency": "transitive", + "description": { + "name": "image_picker_ios", + "sha256": "fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.8.9+1" + }, + "image_picker_linux": { + "dependency": "transitive", + "description": { + "name": "image_picker_linux", + "sha256": "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "image_picker_macos": { + "dependency": "transitive", + "description": { + "name": "image_picker_macos", + "sha256": "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "image_picker_platform_interface": { + "dependency": "transitive", + "description": { + "name": "image_picker_platform_interface", + "sha256": "fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.9.3" + }, + "image_picker_windows": { + "dependency": "transitive", + "description": { + "name": "image_picker_windows", + "sha256": "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.2.1+1" + }, + "io": { + "dependency": "transitive", + "description": { + "name": "io", + "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "js": { + "dependency": "transitive", + "description": { + "name": "js", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.7" + }, + "json_annotation": { + "dependency": "transitive", + "description": { + "name": "json_annotation", + "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.8.1" + }, + "lints": { + "dependency": "transitive", + "description": { + "name": "lints", + "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + }, + "logger": { + "dependency": "direct main", + "description": { + "name": "logger", + "sha256": "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2+1" + }, + "logging": { + "dependency": "transitive", + "description": { + "name": "logging", + "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "matcher": { + "dependency": "transitive", + "description": { + "name": "matcher", + "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.12.16" + }, + "material_color_utilities": { + "dependency": "transitive", + "description": { + "name": "material_color_utilities", + "sha256": "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.5.0" + }, + "meta": { + "dependency": "transitive", + "description": { + "name": "meta", + "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "mime": { + "dependency": "transitive", + "description": { + "name": "mime", + "sha256": "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.5" + }, + "package_config": { + "dependency": "transitive", + "description": { + "name": "package_config", + "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "path": { + "dependency": "transitive", + "description": { + "name": "path", + "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.3" + }, + "path_provider": { + "dependency": "direct main", + "description": { + "name": "path_provider", + "sha256": "b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "path_provider_android": { + "dependency": "transitive", + "description": { + "name": "path_provider_android", + "sha256": "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.2" + }, + "path_provider_foundation": { + "dependency": "transitive", + "description": { + "name": "path_provider_foundation", + "sha256": "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.3.2" + }, + "path_provider_linux": { + "dependency": "transitive", + "description": { + "name": "path_provider_linux", + "sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "path_provider_platform_interface": { + "dependency": "transitive", + "description": { + "name": "path_provider_platform_interface", + "sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "path_provider_windows": { + "dependency": "transitive", + "description": { + "name": "path_provider_windows", + "sha256": "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.2.1" + }, + "petitparser": { + "dependency": "transitive", + "description": { + "name": "petitparser", + "sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.0.2" + }, + "platform": { + "dependency": "transitive", + "description": { + "name": "platform", + "sha256": "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.4" + }, + "plugin_platform_interface": { + "dependency": "transitive", + "description": { + "name": "plugin_platform_interface", + "sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.8" + }, + "pointycastle": { + "dependency": "transitive", + "description": { + "name": "pointycastle", + "sha256": "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.7.4" + }, + "pool": { + "dependency": "transitive", + "description": { + "name": "pool", + "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.1" + }, + "pub_semver": { + "dependency": "transitive", + "description": { + "name": "pub_semver", + "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "pubspec_parse": { + "dependency": "transitive", + "description": { + "name": "pubspec_parse", + "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.3" + }, + "puppeteer": { + "dependency": "transitive", + "description": { + "name": "puppeteer", + "sha256": "eedeaae6ec5d2e54f9ae22ab4d6b3dda2e8791c356cc783046d06c287ffe11d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.6.0" + }, + "qr": { + "dependency": "transitive", + "description": { + "name": "qr", + "sha256": "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.0.1" + }, + "qr_flutter": { + "dependency": "direct main", + "description": { + "name": "qr_flutter", + "sha256": "5095f0fc6e3f71d08adef8feccc8cea4f12eec18a2e31c2e8d82cb6019f4b097", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.1.0" + }, + "quiver": { + "dependency": "transitive", + "description": { + "name": "quiver", + "sha256": "b1c1ac5ce6688d77f65f3375a9abb9319b3cb32486bdc7a1e0fdf004d7ba4e47", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.2.1" + }, + "shelf": { + "dependency": "transitive", + "description": { + "name": "shelf", + "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.4.1" + }, + "shelf_static": { + "dependency": "transitive", + "description": { + "name": "shelf_static", + "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "shelf_web_socket": { + "dependency": "transitive", + "description": { + "name": "shelf_web_socket", + "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "sky_engine": { + "dependency": "transitive", + "description": "flutter", + "source": "sdk", + "version": "0.0.99" + }, + "source_gen": { + "dependency": "transitive", + "description": { + "name": "source_gen", + "sha256": "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.5.0" + }, + "source_span": { + "dependency": "transitive", + "description": { + "name": "source_span", + "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.10.0" + }, + "sprintf": { + "dependency": "transitive", + "description": { + "name": "sprintf", + "sha256": "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "7.0.0" + }, + "stack_trace": { + "dependency": "transitive", + "description": { + "name": "stack_trace", + "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.11.1" + }, + "statusbarz": { + "dependency": "direct main", + "description": { + "name": "statusbarz", + "sha256": "0564403d1a6169076557d9daa4bc5fb9aa0d39a46585156d5b4cd0c9a3b6efbe", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.14" + }, + "stream_channel": { + "dependency": "transitive", + "description": { + "name": "stream_channel", + "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.2" + }, + "stream_transform": { + "dependency": "transitive", + "description": { + "name": "stream_transform", + "sha256": "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.0" + }, + "string_scanner": { + "dependency": "transitive", + "description": { + "name": "string_scanner", + "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.0" + }, + "term_glyph": { + "dependency": "transitive", + "description": { + "name": "term_glyph", + "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "test_api": { + "dependency": "transitive", + "description": { + "name": "test_api", + "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.6.1" + }, + "timing": { + "dependency": "transitive", + "description": { + "name": "timing", + "sha256": "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.1" + }, + "tuple": { + "dependency": "transitive", + "description": { + "name": "tuple", + "sha256": "a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.0.2" + }, + "typed_data": { + "dependency": "transitive", + "description": { + "name": "typed_data", + "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.3.2" + }, + "uuid": { + "dependency": "transitive", + "description": { + "name": "uuid", + "sha256": "cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "4.3.3" + }, + "vector_math": { + "dependency": "transitive", + "description": { + "name": "vector_math", + "sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.4" + }, + "vibration": { + "dependency": "direct main", + "description": { + "name": "vibration", + "sha256": "778ace40e84852e6cf6017cdbaf6790a837d73ff3dd50b27da9ac232a19de8fc", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.8.4" + }, + "watcher": { + "dependency": "transitive", + "description": { + "name": "watcher", + "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.0" + }, + "web": { + "dependency": "transitive", + "description": { + "name": "web", + "sha256": "afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "0.3.0" + }, + "web_socket_channel": { + "dependency": "transitive", + "description": { + "name": "web_socket_channel", + "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.4.0" + }, + "win32": { + "dependency": "transitive", + "description": { + "name": "win32", + "sha256": "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "5.2.0" + }, + "win32_registry": { + "dependency": "transitive", + "description": { + "name": "win32_registry", + "sha256": "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "xdg_directories": { + "dependency": "transitive", + "description": { + "name": "xdg_directories", + "sha256": "faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.0.4" + }, + "xml": { + "dependency": "transitive", + "description": { + "name": "xml", + "sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "6.5.0" + }, + "yaml": { + "dependency": "transitive", + "description": { + "name": "yaml", + "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, + "yaml_edit": { + "dependency": "transitive", + "description": { + "name": "yaml_edit", + "sha256": "1579d4a0340a83cf9e4d580ea51a16329c916973bffd5bd4b45e911b25d46bfd", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "2.1.1" + } + }, + "sdks": { + "dart": ">=3.2.3 <4.0.0", + "flutter": ">=3.16.6" + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 50ffe26..4ca8c3c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,6 +31,8 @@ dependencies: statusbarz: ^1.0.12 animations: ^2.0.11 gap: ^3.0.1 + flutter_displaymode: ^0.6.0 + logger: ^2.0.2+1 dev_dependencies: flutter_test: