From fb52f6fe563b5e40067ff24e7f6e5bc2690189b1 Mon Sep 17 00:00:00 2001 From: Steven Yi Date: Thu, 11 Apr 2024 16:27:13 -0400 Subject: [PATCH 01/21] fix: update webthree to latest version and update code to handle multiple connected accounts --- .fvm/fvm_config.json | 3 +- .fvmrc | 4 + .gitignore | 6 +- .../ethereum/provider/ethereum_provider.dart | 6 + .../ethereum_provider_web.dart | 38 +++-- packages/ardrive_crypto/pubspec.yaml | 5 +- packages/ardrive_ui/storybook/pubspec.lock | 66 ++++++--- .../flutter/generated_plugin_registrant.cc | 8 ++ .../linux/flutter/generated_plugins.cmake | 2 + .../Flutter/GeneratedPluginRegistrant.swift | 2 - .../flutter/generated_plugin_registrant.cc | 12 +- .../windows/flutter/generated_plugins.cmake | 1 - packages/ardrive_uploader/pubspec.yaml | 2 +- packages/pst/pubspec.lock | 66 ++++++--- pubspec.lock | 136 ++++++++++-------- pubspec.yaml | 13 +- 16 files changed, 235 insertions(+), 135 deletions(-) create mode 100644 .fvmrc diff --git a/.fvm/fvm_config.json b/.fvm/fvm_config.json index 9acb749cda..4f0d73b3ab 100644 --- a/.fvm/fvm_config.json +++ b/.fvm/fvm_config.json @@ -1,4 +1,3 @@ { - "flutterSdkVersion": "3.13.6", - "flavors": {} + "flutterSdkVersion": "3.19.5" } \ No newline at end of file diff --git a/.fvmrc b/.fvmrc new file mode 100644 index 0000000000..db15b84131 --- /dev/null +++ b/.fvmrc @@ -0,0 +1,4 @@ +{ + "flutter": "3.19.5", + "flavors": {} +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 4977b4d256..9415774cfb 100644 --- a/.gitignore +++ b/.gitignore @@ -70,8 +70,8 @@ app.*.map.json # scan temporary files **/fastlane/test_output -# fvm -/.fvm/flutter_sdk - # direnv .direnv + +# FVM Version Cache +.fvm/ diff --git a/lib/services/ethereum/provider/ethereum_provider.dart b/lib/services/ethereum/provider/ethereum_provider.dart index b6ccb30ba6..063c484a8b 100644 --- a/lib/services/ethereum/provider/ethereum_provider.dart +++ b/lib/services/ethereum/provider/ethereum_provider.dart @@ -1,9 +1,15 @@ +import 'package:webthree/browser.dart'; + import '../ethereum_wallet.dart'; import '../provider/implementations/ethereum_provider_web.dart' if (dart.library.io) 'implementations/ethereum_provider_stub.dart' as implementation; class EthereumProviderService { + Ethereum getProvider() { + return implementation.getProvider(); + } + bool isExtensionPresent() { return implementation.isExtensionPresent(); } diff --git a/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart b/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart index 189339bd0a..6351b41179 100644 --- a/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart +++ b/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart @@ -6,7 +6,7 @@ import '../ethereum_provider_wallet.dart'; bool isExtensionPresent() => window.ethereum != null; -Ethereum _getProvider() { +Ethereum getProvider() { if (isExtensionPresent()) { return window.ethereum!; } else { @@ -23,20 +23,28 @@ class JSrawRequestParams { } Future connect() async { - final eth = _getProvider(); - - final credentials = await eth.requestAccount(); - if (!eth.isConnected()) { + final eth = getProvider(); + + print('test'); + try { + final credentials = await eth.requestAccounts(); + print('credentials: ${credentials[0].address}'); + + if (!eth.isConnected()) { + return null; + } + + // Ensure the user is on Ethereum chain + await eth.rawRequest( + 'wallet_switchEthereumChain', + params: [ + JSrawRequestParams(chainId: '0x1'), + ], + ); + + return EthereumProviderWallet(credentials[0]); + } catch (e) { + print('error: $e'); return null; } - - // Ensure the user is on Ethereum chain - await eth.rawRequest( - 'wallet_switchEthereumChain', - params: [ - JSrawRequestParams(chainId: '0x1'), - ], - ); - - return EthereumProviderWallet(credentials); } diff --git a/packages/ardrive_crypto/pubspec.yaml b/packages/ardrive_crypto/pubspec.yaml index 1221529ebc..db16fdd12a 100644 --- a/packages/ardrive_crypto/pubspec.yaml +++ b/packages/ardrive_crypto/pubspec.yaml @@ -1,11 +1,10 @@ name: ardrive_crypto description: A new Flutter package project. version: 0.0.1 -homepage: publish_to: none environment: - sdk: '>=3.0.2 <4.0.0' + sdk: '>=3.2.0 <4.0.0' flutter: ">=1.17.0" dependencies: @@ -17,7 +16,7 @@ dependencies: ref: v3.8.3 ardrive_utils: path: ../ardrive_utils - uuid: ^3.0.4 + uuid: ^4.4.0 webcrypto: ^0.5.3 async: ^2.11.0 cryptography: ^2.5.0 diff --git a/packages/ardrive_ui/storybook/pubspec.lock b/packages/ardrive_ui/storybook/pubspec.lock index f133ec36ac..258ad7640c 100644 --- a/packages/ardrive_ui/storybook/pubspec.lock +++ b/packages/ardrive_ui/storybook/pubspec.lock @@ -77,10 +77,10 @@ packages: dependency: "direct main" description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" convert: dependency: transitive description: @@ -490,6 +490,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.8.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -510,26 +534,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" mime: dependency: transitive description: @@ -550,10 +574,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_drawing: dependency: transitive description: @@ -763,18 +787,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -803,10 +827,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -831,14 +855,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - web: + vm_service: dependency: transitive description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "13.0.0" widgetbook: dependency: "direct main" description: @@ -896,5 +920,5 @@ packages: source: hosted version: "6.3.0" sdks: - dart: ">=3.1.0 <4.0.0" + dart: ">=3.2.0-0 <4.0.0" flutter: ">=3.13.6" diff --git a/packages/ardrive_uploader/example/linux/flutter/generated_plugin_registrant.cc b/packages/ardrive_uploader/example/linux/flutter/generated_plugin_registrant.cc index 18bcac76f6..8cf19868de 100644 --- a/packages/ardrive_uploader/example/linux/flutter/generated_plugin_registrant.cc +++ b/packages/ardrive_uploader/example/linux/flutter/generated_plugin_registrant.cc @@ -8,6 +8,8 @@ #include #include +#include +#include #include void fl_register_plugins(FlPluginRegistry* registry) { @@ -17,6 +19,12 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); + sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); g_autoptr(FlPluginRegistrar) webcrypto_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "WebcryptoPlugin"); webcrypto_plugin_register_with_registrar(webcrypto_registrar); diff --git a/packages/ardrive_uploader/example/linux/flutter/generated_plugins.cmake b/packages/ardrive_uploader/example/linux/flutter/generated_plugins.cmake index e0aae0036c..a17af3499e 100644 --- a/packages/ardrive_uploader/example/linux/flutter/generated_plugins.cmake +++ b/packages/ardrive_uploader/example/linux/flutter/generated_plugins.cmake @@ -5,6 +5,8 @@ list(APPEND FLUTTER_PLUGIN_LIST file_saver file_selector_linux + sentry_flutter + url_launcher_linux webcrypto ) diff --git a/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift index dd517499b2..51713b9b7c 100644 --- a/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -12,7 +12,6 @@ import package_info_plus import path_provider_foundation import sentry_flutter import share_plus -import webcrypto func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) @@ -22,5 +21,4 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) - WebcryptoPlugin.register(with: registry.registrar(forPlugin: "WebcryptoPlugin")) } diff --git a/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc b/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc index e7a1ce26d8..5fceedd660 100644 --- a/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc @@ -9,7 +9,9 @@ #include #include #include -#include +#include +#include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FileSaverPluginRegisterWithRegistrar( @@ -18,6 +20,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("FileSelectorWindows")); PermissionHandlerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); - WebcryptoPluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("WebcryptoPlugin")); + SentryFlutterPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SentryFlutterPlugin")); + SharePlusWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); } diff --git a/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake b/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake index a71ed9ee44..40cb204ddc 100644 --- a/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake +++ b/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake @@ -9,7 +9,6 @@ list(APPEND FLUTTER_PLUGIN_LIST sentry_flutter share_plus url_launcher_windows - webcrypto ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/packages/ardrive_uploader/pubspec.yaml b/packages/ardrive_uploader/pubspec.yaml index 4bf3579fca..00ec96000b 100644 --- a/packages/ardrive_uploader/pubspec.yaml +++ b/packages/ardrive_uploader/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: path: ../arfs pst: path: ../pst - uuid: ^3.0.4 + uuid: ^4.4.0 cryptography: ^2.5.0 rxdart: ^0.27.7 dio: ^5.4.0 diff --git a/packages/pst/pubspec.lock b/packages/pst/pubspec.lock index a48e4b0c8c..61428ce402 100644 --- a/packages/pst/pubspec.lock +++ b/packages/pst/pubspec.lock @@ -110,10 +110,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" convert: dependency: transitive description: @@ -346,6 +346,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -358,26 +382,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" mocktail: dependency: "direct main" description: @@ -414,10 +438,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" platform: dependency: transitive description: @@ -483,18 +507,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -515,10 +539,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -551,14 +575,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - web: + vm_service: dependency: transitive description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "13.0.0" win32: dependency: transitive description: @@ -576,5 +600,5 @@ packages: source: hosted version: "1.1.2" sdks: - dart: ">=3.1.3 <4.0.0" + dart: ">=3.2.0-0 <4.0.0" flutter: ">=3.7.12" diff --git a/pubspec.lock b/pubspec.lock index eb8f97aad3..82f5ff747d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -385,10 +385,10 @@ packages: dependency: "direct main" description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" confetti: dependency: "direct main" description: @@ -425,10 +425,10 @@ packages: dependency: transitive description: name: coverage - sha256: "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097" + sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" url: "https://pub.dev" source: hosted - version: "1.6.3" + version: "1.7.2" credit_card_type_detector: dependency: transitive description: @@ -627,10 +627,10 @@ packages: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_picker: dependency: transitive description: @@ -1346,6 +1346,30 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -1422,26 +1446,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" mime: dependency: "direct main" description: @@ -1518,10 +1542,10 @@ packages: dependency: "direct main" description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_drawing: dependency: transitive description: @@ -1646,10 +1670,10 @@ packages: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: @@ -1678,10 +1702,10 @@ packages: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "21e54fd2faf1b5bdd5102afd25012184a6793927648ea81eea80552ac9405b32" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "5.0.2" properties: dependency: transitive description: @@ -1813,10 +1837,10 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: b7f41bad7e521d205998772545de63ff4e6c97714775902c199353f8bf1511ac + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.3" shared_preferences_android: dependency: transitive description: @@ -1829,10 +1853,10 @@ packages: dependency: transitive description: name: shared_preferences_foundation - sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" + sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" url: "https://pub.dev" source: hosted - version: "2.3.4" + version: "2.3.5" shared_preferences_linux: dependency: transitive description: @@ -1950,6 +1974,14 @@ packages: 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" sqflite: dependency: transitive description: @@ -1994,42 +2026,42 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stash: dependency: "direct main" description: name: stash - sha256: "4a9b765eef4890b8032c1c440464f71ca45f7a68c1b91c7db07165bc5accdf73" + sha256: "5d42c73727336e9ea8cef3b028355fc4728b4cdad643444d74e432d0289cdb7d" url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "5.1.0" stash_memory: dependency: "direct main" description: name: stash_memory - sha256: "5a8590213d8cd8e228900e4d003109580635279f89761163b9f2b802cecfe03e" + sha256: afe41cf5385204d6f6f0909988f6210f774bf43836535d6962c9f483d43233e0 url: "https://pub.dev" source: hosted - version: "4.5.3" + version: "5.1.0" stash_shared_preferences: dependency: "direct main" description: name: stash_shared_preferences - sha256: be81ec8f69c0a67475b77509558f78385dd09ee16493bb985312aad0442d4d59 + sha256: "6196907e2a4a61ca40cb9ee5c271a7204ca6f5bf301b90f38c062d6e4a8bc2ca" url: "https://pub.dev" source: hosted - version: "4.6.2" + version: "5.1.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" stream_transform: dependency: transitive description: @@ -2116,26 +2148,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46" + sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f url: "https://pub.dev" source: hosted - version: "1.24.3" + version: "1.24.9" test_api: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" test_core: dependency: transitive description: name: test_core - sha256: "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e" + sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a url: "https://pub.dev" source: hosted - version: "0.5.3" + version: "0.5.9" timeago: dependency: "direct main" description: @@ -2252,10 +2284,10 @@ packages: dependency: "direct main" description: name: uuid - sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "4.4.0" vector_math: dependency: transitive description: @@ -2316,10 +2348,10 @@ packages: dependency: transitive description: name: vm_service - sha256: c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "11.7.1" + version: "13.0.0" watcher: dependency: transitive description: @@ -2328,14 +2360,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" - web: - dependency: transitive - description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 - url: "https://pub.dev" - source: hosted - version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -2356,10 +2380,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: @@ -2372,10 +2396,10 @@ packages: dependency: "direct main" description: name: webthree - sha256: "3c653ea7a3a8e846f444afac9912daf6f83e9270f5ee0d677873569ef42d3374" + sha256: "7b1c743690931559d91227f512d60965752b6753c5dec75eccb489505a6fcbad" url: "https://pub.dev" source: hosted - version: "2.5.7+2" + version: "2.7.4" win32: dependency: transitive description: @@ -2417,5 +2441,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.1.3 <4.0.0" - flutter: ">=3.13.6" + dart: ">=3.2.0 <4.0.0" + flutter: ">=3.19.5" diff --git a/pubspec.yaml b/pubspec.yaml index 4520b0525a..ad66304e47 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -6,8 +6,8 @@ publish_to: 'none' version: 2.40.0 environment: - sdk: '>=3.0.2 <4.0.0' - flutter: 3.13.6 + sdk: '>=3.2.0 <4.0.0' + flutter: 3.19.5 # https://pub.dev/packages/script_runner script_runner: @@ -68,7 +68,7 @@ dependencies: rxdart: ^0.27.1 timeago: ^3.1.0 url_launcher: ^6.0.6 - uuid: ^3.0.4 + uuid: ^4.4.0 flutter_dropzone: git: url: https://github.com/ardriveapp/flutter_dropzone @@ -79,7 +79,7 @@ dependencies: js: ^0.6.3 collection: ^1.15.0-nullsafety.4 csv: ^5.0.1 - stash_memory: ^4.3.2 + stash_memory: ^5.1.0 percent_indicator: ^4.0.0 flutter_lints: ^2.0.1 retry: ^3.1.0 @@ -87,7 +87,7 @@ dependencies: flutter_launcher_icons: ^0.10.0 equatable: ^2.0.3 http: ^1.1.0 - stash: ^4.3.2 + stash: ^5.1.0 path: ^1.8.1 flutter_svg: ^1.1.3 sqlite3_flutter_libs: ^0.5.9 @@ -116,7 +116,7 @@ dependencies: url: https://github.com/ardriveapp/flutter_stripe/ path: packages/stripe_web ref: main - stash_shared_preferences: ^4.6.2 + stash_shared_preferences: ^5.1.0 flutter_portal: ^1.1.3 flutter_hooks: ^0.18.6 flutter_multi_formatter: ^2.11.1 @@ -173,7 +173,6 @@ dependency_overrides: ardrive_ui: path: ./packages/ardrive_ui - dev_dependencies: integration_test: sdk: flutter From 625f80c8d3a4017db020097603023962277b8c89 Mon Sep 17 00:00:00 2001 From: Steven Yi Date: Fri, 12 Apr 2024 12:01:56 -0400 Subject: [PATCH 02/21] fix: linter issues and updated code that used deprecated classes --- .../components/biometric_toggle.dart | 2 +- lib/blocs/data_export/data_export_cubit.dart | 3 +- .../file_data_item_upload_handle.dart | 2 +- .../upload_handles/file_v2_upload_handle.dart | 2 +- lib/components/app_dialog.dart | 11 +---- lib/components/keyboard_handler.dart | 25 +++++----- lib/components/upload_form.dart | 12 +++-- lib/core/crypto/crypto.dart | 6 +-- lib/dev_tools/shortcut_handler.dart | 9 ++-- lib/download/multiple_download_bloc.dart | 2 +- lib/entities/manifest_data.dart | 2 +- lib/pages/drive_detail/drive_detail_page.dart | 6 +-- lib/services/ethereum/ethereum_wallet.dart | 2 +- .../ethereum_provider_web.dart | 5 +- packages/ardrive_logger/lib/src/logger.dart | 2 +- .../src/components/data_table/data_table.dart | 49 +++++++++---------- .../lib/src/metadata_generator.dart | 8 ++- 17 files changed, 68 insertions(+), 80 deletions(-) diff --git a/lib/authentication/components/biometric_toggle.dart b/lib/authentication/components/biometric_toggle.dart index e02155d96b..86befe38b6 100644 --- a/lib/authentication/components/biometric_toggle.dart +++ b/lib/authentication/components/biometric_toggle.dart @@ -96,8 +96,8 @@ class _BiometricToggleState extends State { } catch (e) { widget.onError?.call(); if (e is BiometricException) { - // ignore: use_build_context_synchronously showBiometricExceptionDialogForException( + // ignore: use_build_context_synchronously context, e, () => widget.onDisableBiometric?.call(), diff --git a/lib/blocs/data_export/data_export_cubit.dart b/lib/blocs/data_export/data_export_cubit.dart index 1b542a370d..318b706409 100644 --- a/lib/blocs/data_export/data_export_cubit.dart +++ b/lib/blocs/data_export/data_export_cubit.dart @@ -62,8 +62,7 @@ class DataExportCubit extends Cubit { /// FIXME: context is not available here. Internationalization cannot be applied /// name: appLocalizationsOf(context).exportFromCSV(driveId, DateTime.now().toString()), final fileName = 'Export from $driveId ${DateTime.now().toString()}.csv'; - final dataBytes = - utf8.encode((await getFilesInDriveAsCSV(driveId))) as Uint8List; + final dataBytes = utf8.encode((await getFilesInDriveAsCSV(driveId))); emit( DataExportSuccess( bytes: dataBytes, diff --git a/lib/blocs/upload/upload_handles/file_data_item_upload_handle.dart b/lib/blocs/upload/upload_handles/file_data_item_upload_handle.dart index 38dc87f7ad..3a81ce3664 100644 --- a/lib/blocs/upload/upload_handles/file_data_item_upload_handle.dart +++ b/lib/blocs/upload/upload_handles/file_data_item_upload_handle.dart @@ -141,7 +141,7 @@ class FileDataItemUploadHandle implements UploadHandle, DataItemHandle { parentFolderId: entity.parentFolderId, size: entity.size, ); - return (utf8.encode(json.encode(entityFake)) as Uint8List).lengthInBytes; + return utf8.encode(json.encode(entityFake)).lengthInBytes; } Future _estimateDataTxSize() async { diff --git a/lib/blocs/upload/upload_handles/file_v2_upload_handle.dart b/lib/blocs/upload/upload_handles/file_v2_upload_handle.dart index 86c872f678..5c5087361f 100644 --- a/lib/blocs/upload/upload_handles/file_v2_upload_handle.dart +++ b/lib/blocs/upload/upload_handles/file_v2_upload_handle.dart @@ -109,7 +109,7 @@ class FileV2UploadHandle implements UploadHandle { parentFolderId: entity.parentFolderId, size: entity.size, ); - return (utf8.encode(json.encode(entityFake)) as Uint8List).lengthInBytes; + return utf8.encode(json.encode(entityFake)).lengthInBytes; } void dispose() { diff --git a/lib/components/app_dialog.dart b/lib/components/app_dialog.dart index ca41492830..945901a7d6 100644 --- a/lib/components/app_dialog.dart +++ b/lib/components/app_dialog.dart @@ -1,5 +1,3 @@ -import 'dart:async'; - import 'package:ardrive/theme/theme.dart'; import 'package:flutter/material.dart'; @@ -8,7 +6,6 @@ class AppDialog extends StatelessWidget { final EdgeInsetsGeometry contentPadding; final Widget content; final List actions; - final FutureOr Function()? onWillPopCallback; final bool dismissable; static const double dialogBorderRadius = 4.0; @@ -22,18 +19,14 @@ class AppDialog extends StatelessWidget { required this.title, this.contentPadding = const EdgeInsets.fromLTRB(24, 20, 24, 24), required this.content, - this.onWillPopCallback, this.actions = const [], this.dismissable = true, Key? key, }) : super(key: key); @override - Widget build(BuildContext context) => WillPopScope( - onWillPop: () async { - await onWillPopCallback?.call(); - return dismissable; - }, + Widget build(BuildContext context) => PopScope( + canPop: dismissable, child: AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(dialogBorderRadius)), diff --git a/lib/components/keyboard_handler.dart b/lib/components/keyboard_handler.dart index d5271d4cc0..316b21dbcc 100644 --- a/lib/components/keyboard_handler.dart +++ b/lib/components/keyboard_handler.dart @@ -28,13 +28,14 @@ class _KeyboardHandlerState extends State { create: (context) => KeyboardListenerBloc(), child: BlocBuilder( builder: (context, state) { - return RawKeyboardListener( + final keyboardListenerBloc = context.read(); + return KeyboardListener( focusNode: _focusTable, autofocus: true, - onKey: (event) async { + onKeyEvent: (event) async { // detect if ctrl + v or cmd + v is pressed if (await isCtrlOrMetaKeyPressed(event)) { - if (event is RawKeyDownEvent) { + if (event is KeyDownEvent) { setState(() => ctrlMetaPressed = true); } } else { @@ -42,11 +43,11 @@ class _KeyboardHandlerState extends State { } if (!mounted) return; - context.read().add( - KeyboardListenerUpdateCtrlMetaPressed( - isPressed: ctrlMetaPressed, - ), - ); + keyboardListenerBloc.add( + KeyboardListenerUpdateCtrlMetaPressed( + isPressed: ctrlMetaPressed, + ), + ); }, child: widget.child, ); @@ -56,16 +57,14 @@ class _KeyboardHandlerState extends State { } } -Future isCtrlOrMetaKeyPressed(RawKeyEvent event) async { +Future isCtrlOrMetaKeyPressed(KeyEvent event) async { try { final userAgent = (await DeviceInfoPlugin().webBrowserInfo).userAgent; late bool ctrlMetaKeyPressed; if (userAgent != null && isApple(userAgent)) { - ctrlMetaKeyPressed = event.isKeyPressed(LogicalKeyboardKey.metaLeft) || - event.isKeyPressed(LogicalKeyboardKey.metaRight); + ctrlMetaKeyPressed = HardwareKeyboard.instance.isMetaPressed; } else { - ctrlMetaKeyPressed = event.isKeyPressed(LogicalKeyboardKey.controlLeft) || - event.isKeyPressed(LogicalKeyboardKey.controlRight); + ctrlMetaKeyPressed = HardwareKeyboard.instance.isControlPressed; } return ctrlMetaKeyPressed; } catch (e) { diff --git a/lib/components/upload_form.dart b/lib/components/upload_form.dart index 7764bca07f..1c744756c5 100644 --- a/lib/components/upload_form.dart +++ b/lib/components/upload_form.dart @@ -108,9 +108,11 @@ Future promptToUpload( } // ignore: use_build_context_synchronously - await showCongestionDependentModalDialog( - context, - () => showArDriveDialog( + await showCongestionDependentModalDialog(context, () { + if (!context.mounted) { + return; + } + showArDriveDialog( context, content: RepositoryProvider( create: (context) => ArDriveUploadPreparationManager( @@ -182,8 +184,8 @@ Future promptToUpload( ), ), barrierDismissible: false, - ), - ); + ); + }); } class UploadForm extends StatefulWidget { diff --git a/lib/core/crypto/crypto.dart b/lib/core/crypto/crypto.dart index 968ec14a3f..e49d567f2c 100644 --- a/lib/core/crypto/crypto.dart +++ b/lib/core/crypto/crypto.dart @@ -164,14 +164,12 @@ class ArDriveCrypto { /// Creates a transaction with the provided entity's JSON data encrypted along with the appropriate cipher tags. Future createEncryptedEntityTransaction( Entity entity, SecretKey key) => - createEncryptedTransaction( - utf8.encode(json.encode(entity)) as Uint8List, key); + createEncryptedTransaction(utf8.encode(json.encode(entity)), key); /// Creates a data item with the provided entity's JSON data encrypted along with the appropriate cipher tags. Future createEncryptedEntityDataItem( Entity entity, SecretKey key) => - createEncryptedDataItem( - utf8.encode(json.encode(entity)) as Uint8List, key); + createEncryptedDataItem(utf8.encode(json.encode(entity)), key); /// Creates a [Transaction] with the provided data encrypted along with the appropriate cipher tags. /// TODO: remove it as we won't use it anymore diff --git a/lib/dev_tools/shortcut_handler.dart b/lib/dev_tools/shortcut_handler.dart index 2ca0fa059c..928790e769 100644 --- a/lib/dev_tools/shortcut_handler.dart +++ b/lib/dev_tools/shortcut_handler.dart @@ -37,13 +37,14 @@ class ShortcutHandlerState extends State { @override Widget build(BuildContext context) { - return RawKeyboardListener( + return KeyboardListener( focusNode: _focusNode, autofocus: true, - onKey: (RawKeyEvent event) { + onKeyEvent: (KeyEvent event) { for (var shortcut in widget.shortcuts) { - if (event.isKeyPressed(shortcut.modifier) && - event.isKeyPressed(shortcut.key)) { + if (HardwareKeyboard.instance + .isLogicalKeyPressed(shortcut.modifier) && + HardwareKeyboard.instance.isLogicalKeyPressed(shortcut.key)) { shortcut.action(); } } diff --git a/lib/download/multiple_download_bloc.dart b/lib/download/multiple_download_bloc.dart index 93ea117ccf..62641b0f36 100644 --- a/lib/download/multiple_download_bloc.dart +++ b/lib/download/multiple_download_bloc.dart @@ -116,7 +116,7 @@ class MultipleDownloadBloc if (_cipherKey != null) { _driveKey = await _driveDao.getDriveKey( _drive!.driveId, - _cipherKey!, + _cipherKey, ); } else { _driveKey = await _driveDao.getDriveKeyFromMemory(_drive!.driveId); diff --git a/lib/entities/manifest_data.dart b/lib/entities/manifest_data.dart index e9dbf0ef2f..afe9f45387 100644 --- a/lib/entities/manifest_data.dart +++ b/lib/entities/manifest_data.dart @@ -58,7 +58,7 @@ class ManifestData { ); int get size => jsonData.lengthInBytes; - Uint8List get jsonData => utf8.encode(json.encode(this)) as Uint8List; + Uint8List get jsonData => utf8.encode(json.encode(this)); Future asPreparedDataItem({ required ArweaveAddressString owner, diff --git a/lib/pages/drive_detail/drive_detail_page.dart b/lib/pages/drive_detail/drive_detail_page.dart index e5c78e6a92..0293d94956 100644 --- a/lib/pages/drive_detail/drive_detail_page.dart +++ b/lib/pages/drive_detail/drive_detail_page.dart @@ -660,10 +660,10 @@ class _DriveDetailPageState extends State { if (driveDetailLoadSuccessState.showSelectedItemDetails && context.read().selectedItem != null) { return Material( - child: WillPopScope( - onWillPop: () async { + child: PopScope( + canPop: false, + onPopInvoked: (didPop) { context.read().toggleSelectedItemDetails(); - return false; }, child: DetailsPanel( currentDrive: driveDetailLoadSuccessState.currentDrive, diff --git a/lib/services/ethereum/ethereum_wallet.dart b/lib/services/ethereum/ethereum_wallet.dart index 718ccfed7b..a24778c56d 100644 --- a/lib/services/ethereum/ethereum_wallet.dart +++ b/lib/services/ethereum/ethereum_wallet.dart @@ -17,7 +17,7 @@ abstract class EthereumWallet extends Wallet { final messageHash = await sha256.hash(utf8.encode(messageText)); final messageHex = hex.encode(messageHash.bytes); - final messageData = utf8.encode(messageHex) as Uint8List; + final messageData = utf8.encode(messageHex); final signature = await sign(messageData); final signatureSha256 = await sha256.hash(signature); diff --git a/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart b/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart index 6351b41179..c0b18f941a 100644 --- a/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart +++ b/lib/services/ethereum/provider/implementations/ethereum_provider_web.dart @@ -1,3 +1,4 @@ +import 'package:ardrive/utils/logger.dart'; import 'package:js/js.dart'; import 'package:universal_html/html.dart'; import 'package:webthree/browser.dart'; @@ -25,10 +26,8 @@ class JSrawRequestParams { Future connect() async { final eth = getProvider(); - print('test'); try { final credentials = await eth.requestAccounts(); - print('credentials: ${credentials[0].address}'); if (!eth.isConnected()) { return null; @@ -44,7 +43,7 @@ Future connect() async { return EthereumProviderWallet(credentials[0]); } catch (e) { - print('error: $e'); + logger.d('Error connecting to Ethereum provider: $e'); return null; } } diff --git a/packages/ardrive_logger/lib/src/logger.dart b/packages/ardrive_logger/lib/src/logger.dart index b47338e836..4b915bb66a 100644 --- a/packages/ardrive_logger/lib/src/logger.dart +++ b/packages/ardrive_logger/lib/src/logger.dart @@ -16,7 +16,7 @@ Future _convertTextToIOFile({ required String filePrefix, }) { final fileName = '${filePrefix}_${DateTime.now().toIso8601String()}.txt'; - final dataBytes = utf8.encode(text) as Uint8List; + final dataBytes = utf8.encode(text); return IOFile.fromData( dataBytes, diff --git a/packages/ardrive_ui/lib/src/components/data_table/data_table.dart b/packages/ardrive_ui/lib/src/components/data_table/data_table.dart index 0c22da1d9a..94cc29127f 100644 --- a/packages/ardrive_ui/lib/src/components/data_table/data_table.dart +++ b/packages/ardrive_ui/lib/src/components/data_table/data_table.dart @@ -128,9 +128,9 @@ class _ArDriveDataTableState selectPage(0); - RawKeyboard.instance.addListener(_handleKeyDownEvent); - RawKeyboard.instance.addListener(_handleEscapeKey); - RawKeyboard.instance.addListener(_handleSelectAllShortcut); + HardwareKeyboard.instance.addHandler(_handleKeyDownEvent); + HardwareKeyboard.instance.addHandler(_handleEscapeKey); + HardwareKeyboard.instance.addHandler(_handleSelectAllShortcut); _columns = widget.columns; } @@ -267,9 +267,10 @@ class _ArDriveDataTableState } } - void _handleEscapeKey(RawKeyEvent event) { + bool _handleEscapeKey(KeyEvent event) { if (mounted) { - if (event.isKeyPressed(LogicalKeyboardKey.escape)) { + if (HardwareKeyboard.instance + .isLogicalKeyPressed(LogicalKeyboardKey.escape)) { setState(() { clearSelection(); @@ -277,36 +278,34 @@ class _ArDriveDataTableState widget.onChangeMultiSelecting!(false); } }); + return true; } } + return false; } /// Selects all items c=with ctrl / command + a - void _handleSelectAllShortcut(RawKeyEvent event) { - if (event.isKeyPressed(LogicalKeyboardKey.keyA) && _isCtrlPressed) { + bool _handleSelectAllShortcut(KeyEvent event) { + if (HardwareKeyboard.instance + .isLogicalKeyPressed(LogicalKeyboardKey.keyA) && + _isCtrlPressed) { _selectAllItemsInPage(); + return true; } + return false; } - void _handleKeyDownEvent(RawKeyEvent event) { - if (mounted) { - if (widget.lockMultiSelect) { - return; - } - - setState(() { - if (event.isKeyPressed(LogicalKeyboardKey.metaLeft) || - event.isKeyPressed(LogicalKeyboardKey.controlLeft)) { - _isCtrlPressed = true; - } else { - _isCtrlPressed = false; - } - - if (widget.onChangeMultiSelecting != null) { + bool _handleKeyDownEvent(KeyEvent event) { + if (mounted && !widget.lockMultiSelect) { + if (widget.onChangeMultiSelecting != null) { + setState(() { + _isCtrlPressed = HardwareKeyboard.instance.isMetaPressed; widget.onChangeMultiSelecting!(_isMultiSelecting); - } - }); + }); + return true; + } } + return false; } void _selectMultiSelectItem(T item, int index, bool select) { @@ -332,7 +331,7 @@ class _ArDriveDataTableState } else { multiselectBox.add(item); } - } else if (RawKeyboard.instance.keysPressed + } else if (HardwareKeyboard.instance.logicalKeysPressed .contains(LogicalKeyboardKey.shiftLeft)) { if (_shiftSelectionStartIndex != null) { final startIndex = _shiftSelectionStartIndex!; diff --git a/packages/ardrive_uploader/lib/src/metadata_generator.dart b/packages/ardrive_uploader/lib/src/metadata_generator.dart index d3cf846b3a..84c11f738a 100644 --- a/packages/ardrive_uploader/lib/src/metadata_generator.dart +++ b/packages/ardrive_uploader/lib/src/metadata_generator.dart @@ -89,11 +89,9 @@ class ARFSUploadMetadataGenerator contentType: contentType, isPrivate: arguments.isPrivate, licenseDefinitionTxId: arguments.licenseDefinitionTxId, - licenseAdditionalTags: arguments.licenseAdditionalTags == null - ? null - : arguments.licenseAdditionalTags!.entries - .map((e) => Tag(e.key, e.value)) - .toList(), + licenseAdditionalTags: arguments.licenseAdditionalTags?.entries + .map((e) => Tag(e.key, e.value)) + .toList(), customBundleTags: customBundleTags, ), ); From e347b6acfa74442afb4403ce73b104d9683a0db0 Mon Sep 17 00:00:00 2001 From: Steven Yi Date: Fri, 12 Apr 2024 12:20:28 -0400 Subject: [PATCH 03/21] fix: updated android sdk version and added unimplemented method for ethereum stub --- android/app/build.gradle | 4 ++-- .../provider/implementations/ethereum_provider_stub.dart | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index e74df07e61..dbd6d9eda7 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -30,7 +30,7 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 33 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -43,7 +43,7 @@ android { defaultConfig { applicationId "io.ardrive.app" minSdkVersion 26 - targetSdkVersion 33 + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } diff --git a/lib/services/ethereum/provider/implementations/ethereum_provider_stub.dart b/lib/services/ethereum/provider/implementations/ethereum_provider_stub.dart index c0df823b21..e1936fda0e 100644 --- a/lib/services/ethereum/provider/implementations/ethereum_provider_stub.dart +++ b/lib/services/ethereum/provider/implementations/ethereum_provider_stub.dart @@ -1,5 +1,9 @@ +import 'package:webthree/browser.dart'; + import '../ethereum_provider_wallet.dart'; bool isExtensionPresent() => false; Future connect() => throw UnimplementedError(); + +Ethereum getProvider() => throw UnimplementedError(); From 029418d66f107b5580a3e73e296bb6f02721602d Mon Sep 17 00:00:00 2001 From: Steven Yi Date: Fri, 12 Apr 2024 17:32:42 -0400 Subject: [PATCH 04/21] fix: auth tests missing mockBiometricAuthentication calls --- test/authentication/ardrive_auth_test.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/authentication/ardrive_auth_test.dart b/test/authentication/ardrive_auth_test.dart index dd8b84a1fb..ca0fe5810b 100644 --- a/test/authentication/ardrive_auth_test.dart +++ b/test/authentication/ardrive_auth_test.dart @@ -356,6 +356,8 @@ void main() { test( 'should unlock user when biometric authentication succeeds and user is logged in', () async { + when(() => mockBiometricAuthentication.isEnabled()) + .thenAnswer((_) async => false); when(() => mockBiometricAuthentication.authenticate( localizedReason: localizedReason, useCached: true, @@ -467,6 +469,9 @@ void main() { when(() => mockUserRepository.getUser('password')) .thenAnswer((invocation) async => unlockedUser); + when(() => mockBiometricAuthentication.isEnabled()) + .thenAnswer((_) async => false); + final user = await arDriveAuth.unlockUser(password: 'password'); expect(user, isNotNull); @@ -504,6 +509,8 @@ void main() { .thenAnswer((invocation) => Future.value(true)); when(() => mockUserRepository.getUser('password')) .thenAnswer((invocation) async => unlockedUser); + when(() => mockBiometricAuthentication.isEnabled()) + .thenAnswer((_) async => false); await arDriveAuth.unlockUser(password: 'password'); @@ -648,6 +655,9 @@ void main() { when(() => mockUserRepository.getUser('password')) .thenAnswer((invocation) async => loggedUser); + + when(() => mockBiometricAuthentication.isEnabled()) + .thenAnswer((_) async => false); }); test('should change the state when user logs in', () async { when(() => mockBiometricAuthentication.isEnabled()) From c8da33b6efbff730cb0dc442640c4fdc4f9502d0 Mon Sep 17 00:00:00 2001 From: Steven Yi Date: Fri, 12 Apr 2024 17:41:06 -0400 Subject: [PATCH 05/21] fix: uuid version in example project --- packages/ardrive_uploader/example/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ardrive_uploader/example/pubspec.yaml b/packages/ardrive_uploader/example/pubspec.yaml index 83a064b745..65b267503f 100644 --- a/packages/ardrive_uploader/example/pubspec.yaml +++ b/packages/ardrive_uploader/example/pubspec.yaml @@ -47,7 +47,7 @@ dependencies: cupertino_icons: ^1.0.2 ardrive_crypto: path: ../../ardrive_crypto - uuid: ^3.0.4 + uuid: ^4.4.0 cryptography: ^2.5.0 dio: ^5.3.2 http: From 6ba67608962e109b1e4b8391430448fe18188532 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Mon, 15 Apr 2024 08:42:19 -0300 Subject: [PATCH 06/21] upgrade major version packages --- lib/utils/internet_checker.dart | 6 +- pubspec.lock | 482 +++++++++++++------------- pubspec.yaml | 14 +- test/utils/internet_checker_test.dart | 6 +- 4 files changed, 264 insertions(+), 244 deletions(-) diff --git a/lib/utils/internet_checker.dart b/lib/utils/internet_checker.dart index 851bee0f1e..f426d7c54b 100644 --- a/lib/utils/internet_checker.dart +++ b/lib/utils/internet_checker.dart @@ -7,6 +7,10 @@ class InternetChecker { Future isConnected() async { final connectivityResult = await connectivity.checkConnectivity(); - return connectivityResult != ConnectivityResult.none; + + /// According to the documentation, if no connection is available, the result will be [ConnectivityResult.none] + final noneConnection = connectivityResult.first == ConnectivityResult.none; + + return !noneConnection; } } diff --git a/pubspec.lock b/pubspec.lock index 82f5ff747d..3444eb8a90 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: d84d98f1992976775f83083523a34c5d22fea191eec3abb2bd09537fb623c2e0 + sha256: "0cb43f83f36ba8cb20502dee0c205e3f3aafb751732d724aeac3f2e044212cc2" url: "https://pub.dev" source: hosted - version: "1.3.7" + version: "1.3.29" analyzer: dependency: transitive description: @@ -37,10 +37,10 @@ packages: dependency: "direct main" description: name: animations - sha256: ef57563eed3620bd5d75ad96189846aca1e033c0c45fc9a7d26e80ab02b88a70 + sha256: d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb url: "https://pub.dev" source: hosted - version: "2.0.8" + version: "2.0.11" ansicolor: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: "direct main" description: name: archive - sha256: "06a96f1249f38a00435b3b0c9a3246d934d7dbc8183fc7c9e56989860edb99d4" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" url: "https://pub.dev" source: hosted - version: "3.4.4" + version: "3.4.10" arconnect: dependency: "direct main" description: @@ -136,18 +136,18 @@ packages: dependency: transitive description: name: args - sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.5.0" artemis: dependency: "direct main" description: name: artemis - sha256: "696b16c9ee7934d76ca18267973355620669bdc5a3cc62d116e8e7c86ef8f31b" + sha256: "06a268b75948a9822572f65280cc679bfe889bf84fa02283ed75470670d2a3e0" url: "https://pub.dev" source: hosted - version: "7.13.0-beta.2" + version: "7.13.1" arweave: dependency: "direct main" description: @@ -169,10 +169,10 @@ packages: dependency: transitive description: name: audio_session - sha256: "8a2bc5e30520e18f3fb0e366793d78057fb64cd5287862c76af0c8771f2a52ad" + sha256: a49af9981eec5d7cd73b37bacb6ee73f8143a6a9f9bd5b6021e6c346b9b6cf4e url: "https://pub.dev" source: hosted - version: "0.1.16" + version: "0.1.19" auto_size_text: dependency: transitive description: @@ -225,26 +225,26 @@ packages: dependency: transitive description: name: bloc - sha256: "3820f15f502372d979121de1f6b97bfcf1630ebff8fe1d52fb2b0bfa49be5b49" + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "8.1.4" bloc_concurrency: dependency: "direct main" description: name: bloc_concurrency - sha256: "44535c9f429cd7e91d548cf89fde1c23a8b4b3637decdb1865bb583091a00d4e" + sha256: "456b7a3616a7c1ceb975c14441b3f198bf57d81cb95b7c6de5cb0c60201afcd8" url: "https://pub.dev" source: hosted - version: "0.2.2" + version: "0.2.5" bloc_test: dependency: "direct dev" description: name: bloc_test - sha256: af0de1a1e16a7536e95dcd7491e0a6d6078e11d2d691988e862280b74f5c7968 + sha256: "165a6ec950d9252ebe36dc5335f2e6eb13055f33d56db0eeb7642768849b43d2" url: "https://pub.dev" source: hosted - version: "9.1.4" + version: "9.1.7" boolean_selector: dependency: transitive description: @@ -273,34 +273,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "64e12b0521812d1684b1917bc80945625391cb9bdd4312536b1d69dcb6133ed8" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "10c6bcdbf9d049a0b666702cf1cee4ddfdc38f02a19d35ae392863b47519848b" + sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22" url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.4.9" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" url: "https://pub.dev" source: hosted - version: "7.2.11" + version: "7.3.0" built_collection: dependency: transitive description: @@ -313,10 +313,10 @@ packages: dependency: transitive description: name: built_value - sha256: a8de5955205b4d1dbbbc267daddf2178bd737e4bab8987c04a500478c9651e74 + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb url: "https://pub.dev" source: hosted - version: "8.6.3" + version: "8.9.2" carousel_slider: dependency: "direct main" description: @@ -361,10 +361,10 @@ packages: dependency: transitive description: name: cli_util - sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" + sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 url: "https://pub.dev" source: hosted - version: "0.3.5" + version: "0.4.1" clock: dependency: transitive description: @@ -377,10 +377,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "1be9be30396d7e4c0db42c35ea6ccd7cc6a1e19916b5dc64d6ac216b5544d677" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "4.10.0" collection: dependency: "direct main" description: @@ -401,18 +401,18 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "77a180d6938f78ca7d2382d2240eb626c0f6a735d0bfdce227d8ffb80f95c48b" + sha256: ebe15d94de9dd7c31dc2ac54e42780acdf3384b1497c69290c9f3c5b0279fc57 url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "6.0.2" connectivity_plus_platform_interface: dependency: transitive description: name: connectivity_plus_platform_interface - sha256: cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a + sha256: b6a56efe1e6675be240de39107281d4034b64ac23438026355b4234042a35adb url: "https://pub.dev" source: hosted - version: "1.2.4" + version: "2.0.0" convert: dependency: transitive description: @@ -449,10 +449,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fd832b5384d0d6da4f6df60b854d33accaaeb63aa9e10e736a87381f08dee2cb + sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" url: "https://pub.dev" source: hosted - version: "0.3.3+5" + version: "0.3.4+1" crypto: dependency: transitive description: @@ -481,10 +481,10 @@ packages: dependency: "direct main" description: name: csv - sha256: "016b31a51a913744a0a1655c74ff13c9379e1200e246a03d96c81c5d9ed297b5" + sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c url: "https://pub.dev" source: hosted - version: "5.0.2" + version: "6.0.0" dart_style: dependency: transitive description: @@ -497,10 +497,10 @@ packages: dependency: transitive description: name: dbus - sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" url: "https://pub.dev" source: hosted - version: "0.7.8" + version: "0.7.10" desktop_drop: dependency: transitive description: @@ -513,10 +513,10 @@ packages: dependency: transitive description: name: device_info_plus - sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659" + sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" url: "https://pub.dev" source: hosted - version: "9.0.3" + version: "9.1.2" device_info_plus_platform_interface: dependency: transitive description: @@ -537,10 +537,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" + sha256: "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.4.3+1" dio_smart_retry: dependency: transitive description: @@ -569,18 +569,18 @@ packages: dependency: "direct main" description: name: drift - sha256: c66df5f88616f5b1fb8d83266738d4f3671c692b2aa680fd8fe53e57a4e149be + sha256: "3b276c838ff7f8e19aac18a51f9b388715268f3534eaaf8047c8455ef3c1738d" url: "https://pub.dev" source: hosted - version: "2.12.1" + version: "2.16.0" drift_dev: dependency: "direct dev" description: name: drift_dev - sha256: "8c9bb294a2f1a053f6d09890798ad5ac1fe436d527a4aa3254499105b7b93f96" + sha256: "66cf3e397448f855523d7b6b7b3789db232b211db96543a42285464d05f3bf72" url: "https://pub.dev" source: hosted - version: "2.12.1" + version: "2.16.0" equatable: dependency: "direct main" description: @@ -619,10 +619,10 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: @@ -653,26 +653,26 @@ packages: dependency: transitive description: name: file_selector - sha256: "070062b9fca7482baf60af671219086e188e50dd80497393e7d58532b56215d3" + sha256: "5019692b593455127794d5718304ff1ae15447dea286cdda9f0db2a796a1b828" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.0.3" file_selector_android: dependency: transitive description: name: file_selector_android - sha256: a2d50f9de59861605b866467a55d681a0ca7bc108129c0bd33e74fa602dd0249 + sha256: "1cd66575f063b689e041aec836905ba7be18d76c9f0634d0d75daec825f67095" url: "https://pub.dev" source: hosted - version: "0.5.0+5" + version: "0.5.0+7" file_selector_ios: dependency: transitive description: name: file_selector_ios - sha256: b015154e6d9fddbc4d08916794df170b44531798c8dd709a026df162d07ad81d + sha256: "0a1196a9c5795858aa315332da2fb5c4bcfdcb312d8a4e27651f765b87904431" url: "https://pub.dev" source: hosted - version: "0.5.1+8" + version: "0.5.1+9" file_selector_linux: dependency: transitive description: @@ -693,18 +693,18 @@ packages: dependency: transitive description: name: file_selector_platform_interface - sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.6.2" file_selector_web: dependency: transitive description: name: file_selector_web - sha256: dc6622c4d66cb1bee623ddcc029036603c6cc45c85e4a775bb06008d61c809c1 + sha256: "619e431b224711a3869e30dbd7d516f5f5a4f04b265013a50912f39e1abc88c8" url: "https://pub.dev" source: hosted - version: "0.9.2+1" + version: "0.9.4+1" file_selector_windows: dependency: transitive description: @@ -725,42 +725,42 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "95580fa07c8ca3072a2bb1fecd792616a33f8683477d25b7d29d3a6a399e6ece" + sha256: a864d1b6afd25497a3b57b016886d1763df52baaa69758a46723164de8d187fe url: "https://pub.dev" source: hosted - version: "2.17.0" + version: "2.29.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2 + sha256: c437ae5d17e6b5cc7981cf6fd458a5db4d12979905f9aafd1fea930428a9fe63 url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "5.0.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: e8c408923cd3a25bd342c576a114f2126769cd1a57106a4edeaa67ea4a84e962 + sha256: c8b02226e548f35aace298e2bb2e6c24e34e8a203d614e742bb1146e5a4ad3c8 url: "https://pub.dev" source: hosted - version: "2.8.0" + version: "2.15.0" firebase_crashlytics: dependency: "direct main" description: name: firebase_crashlytics - sha256: "833cf891d10e5e819a2034048ff7e8882bcc0b51055c0e17f5fe3f3c3c177a9d" + sha256: a4e2c0ef8a595d2fbbaa325ffb15179583db3a01da8ffc2ecd97a46d76ae7546 url: "https://pub.dev" source: hosted - version: "3.3.7" + version: "3.5.1" firebase_crashlytics_platform_interface: dependency: transitive description: name: firebase_crashlytics_platform_interface - sha256: dfdf1172f35fc0b0132bc5ec815aed52c07643ee56732e6807ca7dc12f7fce86 + sha256: "897e8814773b83848ce8967b94d1ad5e780671253d3cd7862bf4a442f29db811" url: "https://pub.dev" source: hosted - version: "3.6.7" + version: "3.6.29" fixnum: dependency: transitive description: @@ -778,10 +778,10 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: e74efb89ee6945bcbce74a5b3a5a3376b088e5f21f55c263fc38cbdc6237faae + sha256: f0ecf6e6eb955193ca60af2d5ca39565a86b8a142452c5b24d96fb477428f4d2 url: "https://pub.dev" source: hosted - version: "8.1.3" + version: "8.1.5" flutter_cache_manager: dependency: transitive description: @@ -794,10 +794,10 @@ packages: dependency: transitive description: name: flutter_downloader - sha256: e130001cf85d8d7450b8318a4670c19e495dd8c102ad4b15a512e9405e7c451d + sha256: "188d921f78471cb28ec2346bcf4045a27a516e384e2bfc9b4be12ae12d3ff8c8" url: "https://pub.dev" source: hosted - version: "1.11.6" + version: "1.11.7" flutter_driver: dependency: "direct dev" description: flutter @@ -842,26 +842,26 @@ packages: dependency: "direct main" description: name: flutter_hooks - sha256: "6a126f703b89499818d73305e4ce1e3de33b4ae1c5512e3b8eab4b986f46774c" + sha256: cde36b12f7188c85286fba9b38cc5a902e7279f36dd676967106c041dc9dde70 url: "https://pub.dev" source: hosted - version: "0.18.6" + version: "0.20.5" flutter_launcher_icons: dependency: "direct main" description: name: flutter_launcher_icons - sha256: a9de6706cd844668beac27c0aed5910fa0534832b3c2cad61a5fd977fce82a5d + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" url: "https://pub.dev" source: hosted - version: "0.10.0" + version: "0.13.1" flutter_lints: dependency: "direct main" description: name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "3.0.2" flutter_localizations: dependency: "direct main" description: flutter @@ -871,18 +871,18 @@ packages: dependency: "direct main" description: name: flutter_multi_formatter - sha256: "71232e0ff3e24e94a94b5e01aaca8476a2d0c27ffe8bde16127f5e7c17f8e96f" + sha256: "4798b3ee8a3c00271565e77dc8886f02b52354c3ac0d845e07d1715d159959f6" url: "https://pub.dev" source: hosted - version: "2.11.11" + version: "2.12.4" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: f185ac890306b5779ecbd611f52502d8d4d63d27703ef73161ca0407e815f02c + sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" url: "https://pub.dev" source: hosted - version: "2.0.16" + version: "2.0.19" flutter_portal: dependency: "direct main" description: @@ -895,10 +895,10 @@ packages: dependency: "direct main" description: name: flutter_secure_storage - sha256: "22dbf16f23a4bcf9d35e51be1c84ad5bb6f627750565edd70dab70f3ff5fff8f" + sha256: ffdbb60130e4665d2af814a0267c481bcf522c41ae2e43caf69fa0146876d685 url: "https://pub.dev" source: hosted - version: "8.1.0" + version: "9.0.0" flutter_secure_storage_linux: dependency: transitive description: @@ -935,10 +935,10 @@ packages: dependency: transitive description: name: flutter_secure_storage_windows - sha256: "38f9501c7cb6f38961ef0e1eacacee2b2d4715c63cc83fe56449c4d3d0b47255" + sha256: "5809c66f9dd3b4b93b0a6e2e8561539405322ee767ac2f64d084e2ab5429d108" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "3.0.0" flutter_sharing_intent: dependency: "direct main" description: @@ -1121,10 +1121,10 @@ packages: dependency: "direct main" description: name: http - sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.1" http_methods: dependency: transitive description: @@ -1153,42 +1153,42 @@ packages: dependency: transitive description: name: image - sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6" + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "4.1.7" image_picker: dependency: transitive description: name: image_picker - sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd" + sha256: "1f498d086203360cca099d20ffea2963f48c39ce91bdd8a3b6d4a045786b02c8" url: "https://pub.dev" source: hosted - version: "1.0.7" + version: "1.0.8" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1" + sha256: "844c6da4e4f2829dffdab97816bca09d0e0977e8dcef7450864aba4e07967a58" url: "https://pub.dev" source: hosted - version: "0.8.9+3" + version: "0.8.9+6" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 + sha256: "6a1704fdd75022272e7e7a897a9068e9c2ff3cd6a66820bf3ded810633eac954" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3 + sha256: "917a5cadd67d052554cfb258595e54217de53fac5b52939426e26319a02e6297" url: "https://pub.dev" source: hosted - version: "0.8.9+1" + version: "0.8.9+2" image_picker_linux: dependency: transitive description: @@ -1209,10 +1209,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "0e827c156e3a90edd3bbe7f6de048b39247b16e58173b08a835b7eb00aba239e" + sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" url: "https://pub.dev" source: hosted - version: "2.9.2" + version: "2.10.0" image_picker_windows: dependency: transitive description: @@ -1318,26 +1318,26 @@ packages: dependency: "direct main" description: name: just_audio - sha256: "5ed0cd723e17dfd8cd4b0253726221e67f6546841ea4553635cf895061fc335b" + sha256: b7cb6bbf3750caa924d03f432ba401ec300fd90936b3f73a9b33d58b1e96286b url: "https://pub.dev" source: hosted - version: "0.9.35" + version: "0.9.37" just_audio_platform_interface: dependency: transitive description: name: just_audio_platform_interface - sha256: d8409da198bbc59426cd45d4c92fca522a2ec269b576ce29459d6d6fcaeb44df + sha256: c3dee0014248c97c91fe6299edb73dc4d6c6930a2f4f713579cd692d9e47f4a1 url: "https://pub.dev" source: hosted - version: "4.2.1" + version: "4.2.2" just_audio_web: dependency: transitive description: name: just_audio_web - sha256: ff62f733f437b25a0ff590f0e295fa5441dcb465f1edbdb33b3dea264705bc13 + sha256: "134356b0fe3d898293102b33b5fd618831ffdc72bb7a1b726140abdf22772b70" url: "https://pub.dev" source: hosted - version: "0.4.8" + version: "0.4.9" jwk: dependency: transitive description: @@ -1374,50 +1374,50 @@ packages: dependency: transitive description: name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "3.0.0" loading_animation_widget: dependency: "direct main" description: name: loading_animation_widget - sha256: "1901682600273a966c34cf44a85fc5355da92a8d08a8a43c11adc4e471993e3a" + sha256: ee3659035528d19145d50cf0107632bf647e7306c88b6a32f35f3bed63f6d728 url: "https://pub.dev" source: hosted - version: "1.2.0+4" + version: "1.2.1" local_auth: dependency: "direct main" description: name: local_auth - sha256: "7e6c63082e399b61e4af71266b012e767a5d4525dd6e9ba41e174fd42d76e115" + sha256: "280421b416b32de31405b0a25c3bd42dfcef2538dfbb20c03019e02a5ed55ed0" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.2.0" local_auth_android: dependency: transitive description: name: local_auth_android - sha256: "9ad0b1ffa6f04f4d91e38c2d4c5046583e23f4cae8345776a994e8670df57fb1" + sha256: "3bcd732dda7c75fcb7ddaef12e131230f53dcc8c00790d0d6efb3aa0fbbeda57" url: "https://pub.dev" source: hosted - version: "1.0.34" - local_auth_ios: + version: "1.0.37" + local_auth_darwin: dependency: transitive description: - name: local_auth_ios - sha256: "26a8d1ad0b4ef6f861d29921be8383000fda952e323a5b6752cf82ca9cf9a7a9" + name: local_auth_darwin + sha256: "33381a15b0de2279523eca694089393bb146baebdce72a404555d03174ebc1e9" url: "https://pub.dev" source: hosted - version: "1.1.4" + version: "1.2.2" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface - sha256: fc5bd537970a324260fda506cfb61b33ad7426f37a8ea5c461cf612161ebba54 + sha256: "1b842ff177a7068442eae093b64abe3592f816afd2a533c0ebcdbe40f9d2075a" url: "https://pub.dev" source: hosted - version: "1.0.8" + version: "1.0.10" local_auth_windows: dependency: transitive description: @@ -1438,10 +1438,10 @@ packages: dependency: "direct main" description: name: lottie - sha256: b8bdd54b488c54068c57d41ae85d02808da09e2bee8b8dd1f59f441e7efa60cd + sha256: ce2bb2605753915080e4ee47f036a64228c88dc7f56f7bc1dbe912d75b55b1e2 url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "3.1.0" matcher: dependency: transitive description: @@ -1470,18 +1470,18 @@ packages: dependency: "direct main" description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mocktail: dependency: "direct dev" description: name: mocktail - sha256: f603ebd85a576e5914870b02e5839fc5d0243b867bf710651cf239a28ebb365e + sha256: c4b5007d91ca4f67256e720cb1b6d704e79a510183a12fa551021f652577dce6 url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.0.3" mutex: dependency: transitive description: @@ -1526,10 +1526,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "6ff267fcd9d48cb61c8df74a82680e8b82e940231bb5f68356672fde0397334a" + sha256: "7e76fad405b3e4016cd39d08f455a4eb5199723cf594cd1b8916d47140d93017" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.0" package_info_plus_platform_interface: dependency: transitive description: @@ -1566,26 +1566,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" + sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.4" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -1598,10 +1598,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -1622,50 +1622,58 @@ packages: dependency: transitive description: name: permission_handler - sha256: "284a66179cabdf942f838543e10413246f06424d960c92ba95c84439154fcac8" + sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb" url: "https://pub.dev" source: hosted - version: "11.0.1" + version: "11.3.1" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: f9fddd3b46109bd69ff3f9efa5006d2d309b7aec0f3c1c5637a60a2d5659e76e + sha256: "1acac6bae58144b442f11e66621c062aead9c99841093c38f5bcdcc24c1c3474" url: "https://pub.dev" source: hosted - version: "11.1.0" + version: "12.0.5" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: "99e220bce3f8877c78e4ace901082fb29fa1b4ebde529ad0932d8d664b34f3f5" + sha256: e9ad66020b89ff1b63908f247c2c6f931c6e62699b756ef8b3c4569350cd8662 + url: "https://pub.dev" + source: hosted + version: "9.4.4" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" url: "https://pub.dev" source: hosted - version: "9.1.4" + version: "0.1.1" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - sha256: "6760eb5ef34589224771010805bea6054ad28453906936f843a8cc4d3a55c4a4" + sha256: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20" url: "https://pub.dev" source: hosted - version: "3.12.0" + version: "4.2.1" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - sha256: cc074aace208760f1eee6aa4fae766b45d947df85bc831cde77009cdb4720098 + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" url: "https://pub.dev" source: hosted - version: "0.1.3" + version: "0.2.1" petitparser: dependency: transitive description: name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" platform: dependency: transitive description: @@ -1678,18 +1686,18 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: da3fdfeccc4d4ff2da8f8c556704c08f912542c5fb3cf2233ed75372384a034d + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "70fe966348fe08c34bf929582f1d8247d9d9408130723206472b4687227e4333" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.8.0" pool: dependency: transitive description: @@ -1718,10 +1726,10 @@ packages: dependency: "direct main" description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.2" pst: dependency: "direct main" description: @@ -1789,18 +1797,18 @@ packages: dependency: transitive description: name: security_scoped_resource - sha256: b05272fcbf172974541c159835044e352c9a55164837ac1984c6199298eb7386 + sha256: "82279652f4932530f67cf848a55117bb2dcb5a542cb95a84b6ee78ecec9ee31f" url: "https://pub.dev" source: hosted - version: "0.0.1" + version: "0.0.2" sentry: dependency: transitive description: name: sentry - sha256: "89e426587b0879e53c46a0aae0eb312696d9d2d803ba14b252a65cc24b1416a2" + sha256: fe99a06970b909a491b7f89d54c9b5119772e3a48a400308a6e129625b333f5b url: "https://pub.dev" source: hosted - version: "7.14.0" + version: "7.19.0" sentry_dart_plugin: dependency: "direct dev" description: @@ -1813,26 +1821,26 @@ packages: dependency: "direct main" description: name: sentry_flutter - sha256: fd089ee4e75a927be037c56815a0a54af5a519f52b803a5ffecb589bb36e2401 + sha256: fc013d4a753447320f62989b1871fdc1f20c77befcc8be3e38774dd7402e7a62 url: "https://pub.dev" source: hosted - version: "7.14.0" + version: "7.19.0" share_plus: dependency: "direct main" description: name: share_plus - sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd + sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900" url: "https://pub.dev" source: hosted - version: "7.2.1" + version: "7.2.2" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 + sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.0" shared_preferences: dependency: "direct main" description: @@ -1845,10 +1853,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" + sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" shared_preferences_foundation: dependency: transitive description: @@ -1869,18 +1877,18 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf + sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" shared_preferences_windows: dependency: transitive description: @@ -1938,10 +1946,10 @@ packages: dependency: transitive description: name: source_gen - sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" source_helper: dependency: transitive description: @@ -1986,42 +1994,42 @@ packages: dependency: transitive description: name: sqflite - sha256: c2c32eb0c74021d987336522acc3b6bf0082fbd0c540c36a9cf4ddb8ba891ddc + sha256: "5ce2e1a15e822c3b4bfb5400455775e421da7098eed8adc8f26298ada7c9308c" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.3" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" + sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4" sqlite3: dependency: transitive description: name: sqlite3 - sha256: db65233e6b99e99b2548932f55a987961bc06d82a31a0665451fa0b4fff4c3fb + sha256: "1abbeb84bf2b1a10e5e1138c913123c8aa9d83cd64e5f9a0dd847b3c83063202" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.4.2" sqlite3_flutter_libs: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "11a41f380fbcbda5bbba03ddcdbe0545e46094ab043783c46c70e8335831df03" + sha256: d6c31c8511c441d1f12f20b607343df1afe4eddf24a1cf85021677c8eea26060 url: "https://pub.dev" source: hosted - version: "0.5.17" + version: "0.5.20" sqlparser: dependency: transitive description: name: sqlparser - sha256: d0a6c3ad33d530da1b1306edb33d9948a0d4bf1ce0681a3587bbe47e86d1c82b + sha256: "7b20045d1ccfb7bc1df7e8f9fee5ae58673fce6ff62cefbb0e0fd7214e90e5a0" url: "https://pub.dev" source: hosted - version: "0.31.3" + version: "0.34.1" stack_trace: dependency: transitive description: @@ -2082,18 +2090,18 @@ packages: dependency: transitive description: name: stripe_android - sha256: "188858dab6cc38c2924457766e365980d80fe807109730bc2928f2376870c619" + sha256: "1de36b35c50f33e538c8e4bd6173f0ab8d7d8e6b9e05388488775e439c29b7d2" url: "https://pub.dev" source: hosted - version: "9.4.0" + version: "9.6.0+2" stripe_ios: dependency: transitive description: name: stripe_ios - sha256: ddcf87cacf3a6fa482568d099332bae69326acfab51a726af9faa31a8ef30af8 + sha256: "4b176f4ee7eaf229815b90c3ff78935da9e01765f4d3153b76fd0d3d64680294" url: "https://pub.dev" source: hosted - version: "9.4.1" + version: "9.6.0" stripe_js: dependency: "direct overridden" description: @@ -2124,10 +2132,10 @@ packages: dependency: "direct main" description: name: synchronized - sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60" + sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.0+1" system_info2: dependency: transitive description: @@ -2172,10 +2180,10 @@ packages: dependency: "direct main" description: name: timeago - sha256: "4addcda362e51f23cf7ae2357fccd053f29d59b4ddd17fb07fc3e7febb47a456" + sha256: d3204eb4c788214883380253da7f23485320a58c11d145babc82ad16bf4e7764 url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.1" timing: dependency: transitive description: @@ -2220,66 +2228,66 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27" + sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" url: "https://pub.dev" source: hosted - version: "6.1.14" + version: "6.2.6" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: b04af59516ab45762b2ca6da40fa830d72d0f6045cd97744450b73493fa76330 + sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.3.1" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "7c65021d5dee51813d652357bc65b8dd4a6177082a9966bc8ba6ee477baa795f" + sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5" url: "https://pub.dev" source: hosted - version: "6.1.5" + version: "6.2.5" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: b651aad005e0cb06a01dbd84b428a301916dc75f0e7ea6165f80057fee2d8e8e + sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 url: "https://pub.dev" source: hosted - version: "3.0.6" + version: "3.1.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b55486791f666e62e0e8ff825e58a023fd6b1f71c49926483f1128d3bbd8fe88 + sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 url: "https://pub.dev" source: hosted - version: "3.0.7" + version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "95465b39f83bfe95fcb9d174829d6476216f2d548b79c38ab2506e0458787618" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.1.5" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "2942294a500b4fa0b918685aff406773ba0a4cd34b7f42198742a94083020ce5" + sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d" url: "https://pub.dev" source: hosted - version: "2.0.20" + version: "2.3.0" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "95fef3129dc7cfaba2bc3d5ba2e16063bb561fc6d78e63eee16162bc70029069" + sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 url: "https://pub.dev" source: hosted - version: "3.0.8" + version: "3.1.1" uuid: dependency: "direct main" description: @@ -2300,42 +2308,42 @@ packages: dependency: "direct main" description: name: video_player - sha256: "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e" + sha256: db6a72d8f4fd155d0189845678f55ad2fd54b02c10dcafd11c068dbb631286c0 url: "https://pub.dev" source: hosted - version: "2.7.2" + version: "2.8.6" video_player_android: dependency: transitive description: name: video_player_android - sha256: "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55" + sha256: "821cff3446bbde255e8d03c12fe1f9810c69fee2c26c394545b13d824ba63c2e" url: "https://pub.dev" source: hosted - version: "2.4.10" + version: "2.4.13" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: "6387c2de77763b45104256b3b00b660089be4f909ded8631457dc11bf635e38f" + sha256: "00c49b1d68071341397cf760b982c1e26ed9232464c8506ee08378a5cca5070d" url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.5.7" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - sha256: be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a + sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" video_player_web: dependency: transitive description: name: video_player_web - sha256: "2dd24f7ba46bfb5d070e9c795001db95e0ca5f2a3d025e98f287c10c9f0fd62f" + sha256: "41245cef5ef29c4585dbabcbcbe9b209e34376642c7576cabf11b4ad9289d6e4" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.3.0" visibility_detector: dependency: "direct main" description: @@ -2360,22 +2368,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" + source: hosted + version: "0.5.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.5" webcrypto: dependency: transitive description: name: webcrypto - sha256: a3cc45ce5efa053435505a958d32785f7497a684a859e6910d805ddf094f903f + sha256: "8484a1ae7a9c6a14eef729261ff4e8d4b7e61b5f4d0c5dbed839043cc945ed28" url: "https://pub.dev" source: hosted - version: "0.5.3" + version: "0.5.6" webdriver: dependency: transitive description: @@ -2404,34 +2420,34 @@ packages: dependency: transitive description: name: win32 - sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" + sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" url: "https://pub.dev" source: hosted - version: "5.0.9" + version: "5.4.0" win32_registry: dependency: transitive description: name: win32_registry - sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a" + sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.1.3" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: name: xml - sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.5.0" yaml: dependency: transitive description: @@ -2441,5 +2457,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.0 <4.0.0" + dart: ">=3.3.0 <4.0.0" flutter: ">=3.19.5" diff --git a/pubspec.yaml b/pubspec.yaml index ad66304e47..93e4f3055b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -78,13 +78,13 @@ dependencies: package_info_plus: ^4.1.0 js: ^0.6.3 collection: ^1.15.0-nullsafety.4 - csv: ^5.0.1 + csv: ^6.0.0 stash_memory: ^5.1.0 percent_indicator: ^4.0.0 - flutter_lints: ^2.0.1 + flutter_lints: ^3.0.2 retry: ^3.1.0 shared_preferences: ^2.0.15 - flutter_launcher_icons: ^0.10.0 + flutter_launcher_icons: ^0.13.1 equatable: ^2.0.3 http: ^1.1.0 stash: ^5.1.0 @@ -97,13 +97,13 @@ dependencies: bloc_concurrency: ^0.2.0 universal_html: ^2.0.8 local_auth: ^2.1.2 - flutter_secure_storage: ^8.0.0 + flutter_secure_storage: ^9.0.0 async: ^2.9.0 animations: ^2.0.7 - connectivity_plus: ^4.0.0 + connectivity_plus: ^6.0.2 archive: ^3.3.0 video_player: ^2.7.1 - lottie: ^2.3.0 + lottie: ^3.1.0 visibility_detector: ^0.4.0+2 bip39: ^1.0.6 flutter_stripe: @@ -118,7 +118,7 @@ dependencies: ref: main stash_shared_preferences: ^5.1.0 flutter_portal: ^1.1.3 - flutter_hooks: ^0.18.6 + flutter_hooks: ^0.20.5 flutter_multi_formatter: ^2.11.1 credit_card_validator: ^2.1.0 tuple: ^2.0.2 diff --git a/test/utils/internet_checker_test.dart b/test/utils/internet_checker_test.dart index 4262ff7645..d377c74d1d 100644 --- a/test/utils/internet_checker_test.dart +++ b/test/utils/internet_checker_test.dart @@ -17,19 +17,19 @@ void main() { test('should return true if connected to mobile internet', () async { when(() => mockConnectivity.checkConnectivity()) - .thenAnswer((_) async => ConnectivityResult.mobile); + .thenAnswer((_) async => [ConnectivityResult.mobile]); expect(await checker.isConnected(), isTrue); }); test('should return true if connected to wifi internet', () async { when(() => mockConnectivity.checkConnectivity()) - .thenAnswer((_) async => ConnectivityResult.wifi); + .thenAnswer((_) async => [ConnectivityResult.wifi]); expect(await checker.isConnected(), isTrue); }); test('should return false if not connected to internet', () async { when(() => mockConnectivity.checkConnectivity()) - .thenAnswer((_) async => ConnectivityResult.none); + .thenAnswer((_) async => [ConnectivityResult.none]); expect(await checker.isConnected(), isFalse); }); }); From 61f47ad11f92f174b3413c8eca688403d3c17f34 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Mon, 15 Apr 2024 08:46:47 -0300 Subject: [PATCH 07/21] Update themes.dart fix material 3 components --- packages/ardrive_ui/lib/src/styles/theme/themes.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/ardrive_ui/lib/src/styles/theme/themes.dart b/packages/ardrive_ui/lib/src/styles/theme/themes.dart index b5aad18bc4..22fe22f436 100644 --- a/packages/ardrive_ui/lib/src/styles/theme/themes.dart +++ b/packages/ardrive_ui/lib/src/styles/theme/themes.dart @@ -219,6 +219,7 @@ ThemeData lightMaterialTheme() { surface: colors.themeBgSurface, onSurface: colors.themeBgSurface, ), + useMaterial3: false, textTheme: theme.textTheme.apply( fontFamily: _fontFamily, bodyColor: colors.themeFgDefault, @@ -328,6 +329,7 @@ ThemeData darkMaterialTheme() { surface: colors.themeBgSurface, onSurface: colors.themeBgSurface, ), + useMaterial3: false, textTheme: theme.textTheme.apply( fontFamily: _fontFamily, bodyColor: colors.themeFgDefault, From 0919e0bc7b4a1eecf54ccf73f195bc603148d063 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Mon, 15 Apr 2024 09:04:59 -0300 Subject: [PATCH 08/21] fix lint issues --- lib/app_shell.dart | 4 +-- .../components/breakpoint_layout_builder.dart | 4 +-- .../fadethrough_transition_switcher.dart | 4 +-- .../components/lined_text_divider.dart | 2 +- .../components/login_copy_button.dart | 4 +-- .../max_device_sizes_constrained_box.dart | 4 +-- .../modals/enter_your_password_modal.dart | 4 +-- .../views/modals/import_wallet_modal.dart | 3 +- .../modals/secure_your_wallet_modal.dart | 5 ++- .../login/views/tiles/tiles_view.dart | 12 +++---- .../login/views/wallet_created_view.dart | 3 +- .../drive_detail/drive_detail_cubit.dart | 11 ------ lib/blocs/drives/drives_state.dart | 3 +- .../feedback_survey_cubit.dart | 4 +-- .../file_download/file_download_cubit.dart | 2 +- .../fs_entry_activity_cubit.dart | 4 +-- .../fs_entry_info/fs_entry_info_cubit.dart | 4 +-- .../fs_entry_info/fs_entry_info_state.dart | 3 +- .../fs_entry_preview_state.dart | 11 +++--- .../fs_entry_rename_state.dart | 10 +++--- lib/blocs/pin_file/pin_file_state.dart | 24 +++++-------- lib/blocs/upload/upload_state.dart | 9 ++--- lib/components/app_dialog.dart | 4 +-- .../app_drawer/drive_list_tile.dart | 4 +-- lib/components/app_version_widget.dart | 4 +-- lib/components/copy_icon_button.dart | 4 +-- lib/components/create_manifest_form.dart | 4 +-- lib/components/csv_export_dialog.dart | 2 +- lib/components/details_panel.dart | 7 ++-- lib/components/drive_attach_form.dart | 2 +- lib/components/drive_create_form.dart | 2 +- lib/components/drive_rename_form.dart | 4 +-- lib/components/drive_share_dialog.dart | 2 +- lib/components/feedback_survey.dart | 2 +- lib/components/file_download_dialog.dart | 2 +- lib/components/file_share_dialog.dart | 2 +- lib/components/folder_create_form.dart | 2 +- lib/components/fs_entry_license_form.dart | 4 +-- lib/components/fs_entry_move_form.dart | 2 +- lib/components/fs_entry_rename_form.dart | 4 +-- lib/components/ghost_fixer_form.dart | 4 +-- lib/components/keyboard_handler.dart | 6 ++-- lib/components/pin_file_dialog.dart | 2 +- lib/components/pin_indicator.dart | 4 +-- lib/components/progress_bar.dart | 2 +- lib/components/side_bar.dart | 4 +-- lib/components/top_up_dialog.dart | 3 +- lib/components/truncated_address.dart | 4 +-- lib/components/truncated_address_new.dart | 4 +-- lib/components/upload_form.dart | 2 +- lib/components/wallet_switch_dialog.dart | 3 +- lib/core/upload/bundle_signer.dart | 8 ++--- lib/dev_tools/shortcut_handler.dart | 4 +-- lib/entities/entity.dart | 2 +- lib/main.dart | 2 +- lib/models/daos/drive_dao/drive_dao.dart | 4 +-- lib/models/daos/profile_dao.dart | 2 +- .../drive_detail_breadcrumb_row.dart | 5 ++- .../drive_detail_folder_empty_card.dart | 4 +-- .../components/drive_file_drop_zone.dart | 4 +-- .../components/dropdown_item.dart | 4 +-- .../drive_detail/components/file_icon.dart | 4 +-- .../components/fs_entry_preview_widget.dart | 30 ++++++++-------- .../components/unpreviewable_content.dart | 2 +- lib/pages/drive_detail/drive_detail_page.dart | 4 +-- lib/pages/no_drives/no_drives_page.dart | 4 +-- lib/pages/shared_file/shared_file_page.dart | 2 +- lib/services/arweave/error/gateway_error.dart | 34 ++++++------------- .../domain/repositories/sync_repository.dart | 2 +- .../models/payment_user_information.dart | 15 +++----- .../components/turbo_balance_widget.dart | 4 +-- lib/turbo/topup/views/topup_payment_form.dart | 18 ++++------ test/sync/utils/batch_processor_test.dart | 12 +++---- 73 files changed, 170 insertions(+), 229 deletions(-) diff --git a/lib/app_shell.dart b/lib/app_shell.dart index 29bca6d962..f6584e520b 100644 --- a/lib/app_shell.dart +++ b/lib/app_shell.dart @@ -25,9 +25,9 @@ class AppShell extends StatefulWidget { final Widget page; const AppShell({ - Key? key, + super.key, required this.page, - }) : super(key: key); + }); @override AppShellState createState() => AppShellState(); diff --git a/lib/authentication/components/breakpoint_layout_builder.dart b/lib/authentication/components/breakpoint_layout_builder.dart index 05d9ad9474..439c834433 100644 --- a/lib/authentication/components/breakpoint_layout_builder.dart +++ b/lib/authentication/components/breakpoint_layout_builder.dart @@ -13,12 +13,12 @@ class BreakpointLayoutBuilder extends StatelessWidget { final WidgetBuilder phone; const BreakpointLayoutBuilder({ - Key? key, + super.key, this.largeDesktop, this.smallDesktop, this.tablet, required this.phone, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/authentication/components/fadethrough_transition_switcher.dart b/lib/authentication/components/fadethrough_transition_switcher.dart index 5847d5e094..66ed33b553 100644 --- a/lib/authentication/components/fadethrough_transition_switcher.dart +++ b/lib/authentication/components/fadethrough_transition_switcher.dart @@ -6,8 +6,8 @@ class FadeThroughTransitionSwitcher extends StatelessWidget { const FadeThroughTransitionSwitcher({ required this.fillColor, required this.child, - Key? key, - }) : super(key: key); + super.key, + }); final Widget child; final Color fillColor; diff --git a/lib/authentication/components/lined_text_divider.dart b/lib/authentication/components/lined_text_divider.dart index df7ddd5fce..136eca3621 100644 --- a/lib/authentication/components/lined_text_divider.dart +++ b/lib/authentication/components/lined_text_divider.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; class LinedTextDivider extends StatelessWidget { final String text; - const LinedTextDivider({Key? key, this.text = 'or'}) : super(key: key); + const LinedTextDivider({super.key, this.text = 'or'}); @override Widget build(BuildContext context) { diff --git a/lib/authentication/components/login_copy_button.dart b/lib/authentication/components/login_copy_button.dart index 8a5c310803..83450cdfd1 100644 --- a/lib/authentication/components/login_copy_button.dart +++ b/lib/authentication/components/login_copy_button.dart @@ -12,7 +12,7 @@ class LoginCopyButton extends StatefulWidget { final Color? copyMessageColor; const LoginCopyButton({ - Key? key, + super.key, required this.text, this.size = 20, this.showCopyText = true, @@ -20,7 +20,7 @@ class LoginCopyButton extends StatefulWidget { this.positionY = 40, this.positionX = 20, this.copyMessageColor, - }) : super(key: key); + }); @override // ignore: library_private_types_in_public_api diff --git a/lib/authentication/components/max_device_sizes_constrained_box.dart b/lib/authentication/components/max_device_sizes_constrained_box.dart index 256ab82821..3fcf3b541b 100644 --- a/lib/authentication/components/max_device_sizes_constrained_box.dart +++ b/lib/authentication/components/max_device_sizes_constrained_box.dart @@ -10,12 +10,12 @@ class MaxDeviceSizesConstrainedBox extends StatelessWidget { final Widget child; const MaxDeviceSizesConstrainedBox({ - Key? key, + super.key, this.maxHeightPercent = 0.8, this.defaultMaxWidth = _defaultLoginCardMaxWidth, this.defaultMaxHeight = _defaultLoginCardMaxHeight, required this.child, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/authentication/login/views/modals/enter_your_password_modal.dart b/lib/authentication/login/views/modals/enter_your_password_modal.dart index bbb26a01be..f15c2fcca2 100644 --- a/lib/authentication/login/views/modals/enter_your_password_modal.dart +++ b/lib/authentication/login/views/modals/enter_your_password_modal.dart @@ -16,7 +16,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class EnterYourPasswordWidget extends StatefulWidget { const EnterYourPasswordWidget({ - Key? key, + super.key, required this.loginBloc, this.wallet, this.derivedEthWallet, @@ -24,7 +24,7 @@ class EnterYourPasswordWidget extends StatefulWidget { required this.alreadyLoggedIn, required this.checkingPassword, required this.passwordFailed, - }) : super(key: key); + }); final Wallet? wallet; final EthereumProviderWallet? derivedEthWallet; diff --git a/lib/authentication/login/views/modals/import_wallet_modal.dart b/lib/authentication/login/views/modals/import_wallet_modal.dart index a2a33510eb..290a8a7b3c 100644 --- a/lib/authentication/login/views/modals/import_wallet_modal.dart +++ b/lib/authentication/login/views/modals/import_wallet_modal.dart @@ -10,8 +10,7 @@ import 'package:bip39/bip39.dart' as bip39; import 'package:flutter/material.dart'; class ImportWalletModal extends StatefulWidget { - const ImportWalletModal({Key? key, required this.loginBloc}) - : super(key: key); + const ImportWalletModal({super.key, required this.loginBloc}); final LoginBloc loginBloc; diff --git a/lib/authentication/login/views/modals/secure_your_wallet_modal.dart b/lib/authentication/login/views/modals/secure_your_wallet_modal.dart index 5cf6505ea4..9505039bb5 100644 --- a/lib/authentication/login/views/modals/secure_your_wallet_modal.dart +++ b/lib/authentication/login/views/modals/secure_your_wallet_modal.dart @@ -14,14 +14,13 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class SecureYourWalletWidget extends StatefulWidget { const SecureYourWalletWidget( - {Key? key, + {super.key, required this.loginBloc, required this.wallet, this.derivedEthWallet, this.mnemonic, required this.showTutorials, - required this.showWalletCreated}) - : super(key: key); + required this.showWalletCreated}); final Wallet wallet; final EthereumProviderWallet? derivedEthWallet; diff --git a/lib/authentication/login/views/tiles/tiles_view.dart b/lib/authentication/login/views/tiles/tiles_view.dart index 9f62162322..7d7422428a 100644 --- a/lib/authentication/login/views/tiles/tiles_view.dart +++ b/lib/authentication/login/views/tiles/tiles_view.dart @@ -12,8 +12,8 @@ import 'package:flutter_svg/svg.dart'; class TilesView extends StatelessWidget { const TilesView({ - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) { @@ -504,10 +504,10 @@ class CarouselWithGroups extends StatefulWidget { final Function() onEndHover; const CarouselWithGroups({ - Key? key, + super.key, required this.onHover, required this.onEndHover, - }) : super(key: key); + }); @override _CarouselWithGroupsState createState() => _CarouselWithGroupsState(); @@ -615,12 +615,12 @@ class CustomIndicator extends StatefulWidget { final Duration duration; const CustomIndicator({ - Key? key, + super.key, required this.index, required this.currentPage, required this.onPageAnimationEnd, this.duration = const Duration(seconds: 10), - }) : super(key: key); + }); @override _CustomIndicatorState createState() => _CustomIndicatorState(); diff --git a/lib/authentication/login/views/wallet_created_view.dart b/lib/authentication/login/views/wallet_created_view.dart index 0767e27027..a960948404 100644 --- a/lib/authentication/login/views/wallet_created_view.dart +++ b/lib/authentication/login/views/wallet_created_view.dart @@ -15,8 +15,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_svg/flutter_svg.dart'; class WalletCreatedView extends StatefulWidget { - const WalletCreatedView({Key? key, this.mnemonic, required this.wallet}) - : super(key: key); + const WalletCreatedView({super.key, this.mnemonic, required this.wallet}); final String? mnemonic; final Wallet wallet; diff --git a/lib/blocs/drive_detail/drive_detail_cubit.dart b/lib/blocs/drive_detail/drive_detail_cubit.dart index 0159e51851..295689f799 100644 --- a/lib/blocs/drive_detail/drive_detail_cubit.dart +++ b/lib/blocs/drive_detail/drive_detail_cubit.dart @@ -277,17 +277,6 @@ class DriveDetailCubit extends Cubit { return availableRowsPerPage; } - void setRowsPerPage(int rowsPerPage) { - switch (state.runtimeType) { - case DriveDetailLoadSuccess: - emit( - (state as DriveDetailLoadSuccess).copyWith( - rowsPerPage: rowsPerPage, - ), - ); - } - } - Future selectDataItem(ArDriveDataTableItem item) async { var state = this.state as DriveDetailLoadSuccess; diff --git a/lib/blocs/drives/drives_state.dart b/lib/blocs/drives/drives_state.dart index 237aea9074..3de2c5988d 100644 --- a/lib/blocs/drives/drives_state.dart +++ b/lib/blocs/drives/drives_state.dart @@ -56,12 +56,11 @@ class DrivesLoadSuccess extends DrivesState { class DrivesLoadedWithNoDrivesFound extends DrivesLoadSuccess { DrivesLoadedWithNoDrivesFound({ - required bool canCreateNewDrive, + required super.canCreateNewDrive, }) : super( selectedDriveId: null, userDrives: [], sharedDrives: [], drivesWithAlerts: [], - canCreateNewDrive: canCreateNewDrive, ); } diff --git a/lib/blocs/feedback_survey/feedback_survey_cubit.dart b/lib/blocs/feedback_survey/feedback_survey_cubit.dart index 9f703a796e..e121c3ac31 100644 --- a/lib/blocs/feedback_survey/feedback_survey_cubit.dart +++ b/lib/blocs/feedback_survey/feedback_survey_cubit.dart @@ -11,10 +11,10 @@ class FeedbackSurveyCubit extends Cubit { bool _hasAlreadyBeenOpened = false; FeedbackSurveyCubit( - FeedbackSurveyState initialState, { + super.initialState, { /// takes a KeyValueStore for testing purposes KeyValueStore? store, - }) : super(initialState) { + }) { _maybeStore ??= store; } diff --git a/lib/blocs/file_download/file_download_cubit.dart b/lib/blocs/file_download/file_download_cubit.dart index f3689d7552..e37553cf8e 100644 --- a/lib/blocs/file_download/file_download_cubit.dart +++ b/lib/blocs/file_download/file_download_cubit.dart @@ -25,7 +25,7 @@ part 'shared_file_download_cubit.dart'; /// [FileDownloadCubit] is the abstract superclass for [Cubit]s that include /// logic for download user files. abstract class FileDownloadCubit extends Cubit { - FileDownloadCubit(FileDownloadState state) : super(state); + FileDownloadCubit(super.state); FutureOr abortDownload() {} } diff --git a/lib/blocs/fs_entry_activity/fs_entry_activity_cubit.dart b/lib/blocs/fs_entry_activity/fs_entry_activity_cubit.dart index 3cd3273eea..ffd933697f 100644 --- a/lib/blocs/fs_entry_activity/fs_entry_activity_cubit.dart +++ b/lib/blocs/fs_entry_activity/fs_entry_activity_cubit.dart @@ -25,7 +25,7 @@ class FsEntryActivityCubit extends Cubit { final selectedItem = maybeSelectedItem; if (selectedItem != null) { switch (selectedItem.runtimeType) { - case FolderDataTableItem: + case const (FolderDataTableItem): _entrySubscription = _driveDao .latestFolderRevisionsByFolderIdWithTransactions( driveId: driveId, @@ -36,7 +36,7 @@ class FsEntryActivityCubit extends Cubit { FsEntryActivitySuccess( revisions: r))); break; - case FileDataTableItem: + case const (FileDataTableItem): _entrySubscription = _driveDao .latestFileRevisionsByFileIdWithLicenseAndTransactions( driveId: driveId, diff --git a/lib/blocs/fs_entry_info/fs_entry_info_cubit.dart b/lib/blocs/fs_entry_info/fs_entry_info_cubit.dart index a16a904021..fbc4ef8a7e 100644 --- a/lib/blocs/fs_entry_info/fs_entry_info_cubit.dart +++ b/lib/blocs/fs_entry_info/fs_entry_info_cubit.dart @@ -33,7 +33,7 @@ class FsEntryInfoCubit extends Cubit { final selectedItem = maybeSelectedItem; if (selectedItem != null) { switch (selectedItem.runtimeType) { - case FolderDataTableItem: + case const (FolderDataTableItem): _entrySubscription = _driveDao .getFolderTree(driveId, selectedItem.id) .asStream() @@ -56,7 +56,7 @@ class FsEntryInfoCubit extends Cubit { }, ); break; - case FileDataTableItem: + case const (FileDataTableItem): fileHandler( String id, { required String name, diff --git a/lib/blocs/fs_entry_info/fs_entry_info_state.dart b/lib/blocs/fs_entry_info/fs_entry_info_state.dart index d004141c19..6db1ea48f6 100644 --- a/lib/blocs/fs_entry_info/fs_entry_info_state.dart +++ b/lib/blocs/fs_entry_info/fs_entry_info_state.dart @@ -57,10 +57,9 @@ class FsEntryDriveInfoSuccess extends FsEntryInfoSuccess { required this.drive, required this.rootFolderRevision, required this.rootFolderTree, - required String metadataTxId, + required super.metadataTxId, }) : super( entry: drive, - metadataTxId: metadataTxId, ); @override diff --git a/lib/blocs/fs_entry_preview/fs_entry_preview_state.dart b/lib/blocs/fs_entry_preview/fs_entry_preview_state.dart index 0db62f87d2..e95b3a7e29 100644 --- a/lib/blocs/fs_entry_preview/fs_entry_preview_state.dart +++ b/lib/blocs/fs_entry_preview/fs_entry_preview_state.dart @@ -34,8 +34,7 @@ class FsEntryPreviewImage extends FsEntryPreviewSuccess { class FsEntryPreviewAudio extends FsEntryPreviewSuccess { final String filename; const FsEntryPreviewAudio( - {required String previewUrl, required this.filename}) - : super(previewUrl: previewUrl); + {required super.previewUrl, required this.filename}); @override List get props => [previewUrl, filename]; @@ -45,9 +44,9 @@ class FsEntryPreviewVideo extends FsEntryPreviewSuccess { final String filename; const FsEntryPreviewVideo({ - required String previewUrl, + required super.previewUrl, required this.filename, - }) : super(previewUrl: previewUrl); + }); @override List get props => [previewUrl, filename]; @@ -64,8 +63,8 @@ class FsEntryPreviewMemory extends FsEntryPreviewSuccess { class FsEntryPreviewText extends FsEntryPreviewSuccess { const FsEntryPreviewText({ - required String previewUrl, - }) : super(previewUrl: previewUrl); + required super.previewUrl, + }); @override List get props => [previewUrl]; diff --git a/lib/blocs/fs_entry_rename/fs_entry_rename_state.dart b/lib/blocs/fs_entry_rename/fs_entry_rename_state.dart index 896329af63..96575862e4 100644 --- a/lib/blocs/fs_entry_rename/fs_entry_rename_state.dart +++ b/lib/blocs/fs_entry_rename/fs_entry_rename_state.dart @@ -10,13 +10,11 @@ abstract class FsEntryRenameState extends Equatable { } class FsEntryRenameInitializing extends FsEntryRenameState { - const FsEntryRenameInitializing({required bool isRenamingFolder}) - : super(isRenamingFolder: isRenamingFolder); + const FsEntryRenameInitializing({required super.isRenamingFolder}); } class FsEntryRenameInitialized extends FsEntryRenameState { - const FsEntryRenameInitialized({required bool isRenamingFolder}) - : super(isRenamingFolder: isRenamingFolder); + const FsEntryRenameInitialized({required super.isRenamingFolder}); } class FolderEntryRenameInProgress extends FsEntryRenameState { @@ -34,8 +32,8 @@ class FolderEntryRenameFailure extends FsEntryRenameState { class EntityAlreadyExists extends FsEntryRenameState { const EntityAlreadyExists( this.entityName, { - required bool isRenamingFolder, - }) : super(isRenamingFolder: isRenamingFolder); + required super.isRenamingFolder, + }); final String entityName; } diff --git a/lib/blocs/pin_file/pin_file_state.dart b/lib/blocs/pin_file/pin_file_state.dart index b7b261aa16..6d17e3ce40 100644 --- a/lib/blocs/pin_file/pin_file_state.dart +++ b/lib/blocs/pin_file/pin_file_state.dart @@ -80,10 +80,10 @@ class PinFileFieldsValid extends PinFileState { bool get isPrivate => privacy == DrivePrivacy.private; const PinFileFieldsValid({ - required String id, - required String name, - required NameValidationResult nameValidation, - required IdValidationResult idValidation, + required super.id, + required super.name, + required super.nameValidation, + required super.idValidation, required this.privacy, required this.dataContentType, this.maybeLastUpdated, @@ -92,12 +92,7 @@ class PinFileFieldsValid extends PinFileState { required this.size, required this.dataTxId, required this.pinnedDataOwnerAddress, - }) : super( - id: id, - name: name, - nameValidation: nameValidation, - idValidation: idValidation, - ); + }); @override List get props => [ @@ -116,14 +111,11 @@ class PinFileFieldsValid extends PinFileState { class PinFileCreating extends PinFileState { const PinFileCreating({ - required String id, - required String name, - required IdValidationResult idValidation, + required super.id, + required super.name, + required super.idValidation, }) : super( - id: id, - name: name, nameValidation: NameValidationResult.valid, - idValidation: idValidation, ); @override diff --git a/lib/blocs/upload/upload_state.dart b/lib/blocs/upload/upload_state.dart index 7a63532077..c588b84299 100644 --- a/lib/blocs/upload/upload_state.dart +++ b/lib/blocs/upload/upload_state.dart @@ -40,12 +40,9 @@ class UploadFileConflict extends UploadState { class UploadFolderNameConflict extends UploadFileConflict { UploadFolderNameConflict({ - required List conflictingFileNames, - required bool areAllFilesConflicting, - }) : super( - conflictingFileNames: conflictingFileNames, - areAllFilesConflicting: areAllFilesConflicting, - ); + required super.conflictingFileNames, + required super.areAllFilesConflicting, + }); } class UploadFileTooLarge extends UploadState { diff --git a/lib/components/app_dialog.dart b/lib/components/app_dialog.dart index 945901a7d6..bd1bbfa077 100644 --- a/lib/components/app_dialog.dart +++ b/lib/components/app_dialog.dart @@ -21,8 +21,8 @@ class AppDialog extends StatelessWidget { required this.content, this.actions = const [], this.dismissable = true, - Key? key, - }) : super(key: key); + super.key, + }); @override Widget build(BuildContext context) => PopScope( diff --git a/lib/components/app_drawer/drive_list_tile.dart b/lib/components/app_drawer/drive_list_tile.dart index 3980ce48c7..3a154878e4 100644 --- a/lib/components/app_drawer/drive_list_tile.dart +++ b/lib/components/app_drawer/drive_list_tile.dart @@ -10,12 +10,12 @@ class DriveListTile extends StatelessWidget { final bool hasAlert; const DriveListTile({ - Key? key, + super.key, required this.drive, required this.onPressed, this.selected = false, this.hasAlert = false, - }) : super(key: key); + }); @override Widget build(BuildContext context) => Padding( diff --git a/lib/components/app_version_widget.dart b/lib/components/app_version_widget.dart index 24a1611a36..bc3689e188 100644 --- a/lib/components/app_version_widget.dart +++ b/lib/components/app_version_widget.dart @@ -8,9 +8,9 @@ class AppVersionWidget extends StatelessWidget { final Color color; const AppVersionWidget({ - Key? key, + super.key, this.color = Colors.grey, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/copy_icon_button.dart b/lib/components/copy_icon_button.dart index 3d2dc16908..119cb4c512 100644 --- a/lib/components/copy_icon_button.dart +++ b/lib/components/copy_icon_button.dart @@ -11,12 +11,12 @@ class CopyIconButton extends StatelessWidget { final String? tooltip; const CopyIconButton({ - Key? key, + super.key, required this.value, this.size, this.tooltip, this.onTap, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/create_manifest_form.dart b/lib/components/create_manifest_form.dart index 61f329518e..e1f80e7b23 100644 --- a/lib/components/create_manifest_form.dart +++ b/lib/components/create_manifest_form.dart @@ -45,7 +45,7 @@ Future promptToCreateManifest( } class CreateManifestForm extends StatefulWidget { - const CreateManifestForm({Key? key}) : super(key: key); + const CreateManifestForm({super.key}); @override State createState() => _CreateManifestFormState(); @@ -504,7 +504,7 @@ class _CreateManifestFormState extends State { ), ), ) - .toList(), + , ]; return ArDriveCard( diff --git a/lib/components/csv_export_dialog.dart b/lib/components/csv_export_dialog.dart index b571f94b2a..3ac0676dfe 100644 --- a/lib/components/csv_export_dialog.dart +++ b/lib/components/csv_export_dialog.dart @@ -33,7 +33,7 @@ Future promptToExportCSVData({ ); class FileDownloadDialog extends StatelessWidget { - const FileDownloadDialog({Key? key}) : super(key: key); + const FileDownloadDialog({super.key}); @override Widget build(BuildContext context) => diff --git a/lib/components/details_panel.dart b/lib/components/details_panel.dart index 8e220516f9..ed5393d339 100644 --- a/lib/components/details_panel.dart +++ b/lib/components/details_panel.dart @@ -1092,7 +1092,7 @@ class CopyButton extends StatefulWidget { final Color? copyMessageColor; const CopyButton({ - Key? key, + super.key, required this.text, this.size = 20, this.showCopyText = true, @@ -1100,7 +1100,7 @@ class CopyButton extends StatefulWidget { this.positionY = 40, this.positionX = 20, this.copyMessageColor, - }) : super(key: key); + }); @override // ignore: library_private_types_in_public_api @@ -1206,12 +1206,11 @@ class _CopyButtonState extends State { class _DownloadOrPreview extends StatelessWidget { const _DownloadOrPreview({ - Key? key, required this.privacy, required this.fileRevision, this.fileKey, this.isSharedFile = false, - }) : super(key: key); + }); final String privacy; final ARFSFileEntity fileRevision; diff --git a/lib/components/drive_attach_form.dart b/lib/components/drive_attach_form.dart index 0f142c0137..d91e12f876 100644 --- a/lib/components/drive_attach_form.dart +++ b/lib/components/drive_attach_form.dart @@ -55,7 +55,7 @@ Future attachDrive({ /// Depends on a provided [DriveAttachCubit] for business logic. class DriveAttachForm extends StatefulWidget { - const DriveAttachForm({Key? key}) : super(key: key); + const DriveAttachForm({super.key}); @override State createState() => _DriveAttachFormState(); diff --git a/lib/components/drive_create_form.dart b/lib/components/drive_create_form.dart index a7af32d762..8f5715110a 100644 --- a/lib/components/drive_create_form.dart +++ b/lib/components/drive_create_form.dart @@ -36,7 +36,7 @@ Future promptToCreateDrive(BuildContext context) => ); class DriveCreateForm extends StatefulWidget { - const DriveCreateForm({Key? key}) : super(key: key); + const DriveCreateForm({super.key}); @override State createState() => _DriveCreateFormState(); diff --git a/lib/components/drive_rename_form.dart b/lib/components/drive_rename_form.dart index 26f606ed32..213ac6abf2 100644 --- a/lib/components/drive_rename_form.dart +++ b/lib/components/drive_rename_form.dart @@ -49,9 +49,9 @@ Future promptToRenameDrive( class DriveRenameForm extends StatefulWidget { const DriveRenameForm({ - Key? key, + super.key, required this.driveName, - }) : super(key: key); + }); final String driveName; diff --git a/lib/components/drive_share_dialog.dart b/lib/components/drive_share_dialog.dart index 2ea093a187..2a096f759a 100644 --- a/lib/components/drive_share_dialog.dart +++ b/lib/components/drive_share_dialog.dart @@ -29,7 +29,7 @@ Future promptToShareDrive({ /// Depends on a provided [DriveShareCubit] for business logic. class DriveShareDialog extends StatefulWidget { - const DriveShareDialog({Key? key}) : super(key: key); + const DriveShareDialog({super.key}); @override DriveShareDialogState createState() => DriveShareDialogState(); diff --git a/lib/components/feedback_survey.dart b/lib/components/feedback_survey.dart index fc67c0da9b..5a619c037d 100644 --- a/lib/components/feedback_survey.dart +++ b/lib/components/feedback_survey.dart @@ -14,7 +14,7 @@ Future openFeedbackSurveyModal(BuildContext context) => showArDriveDialog( ); class FeedbackSurveyModal extends StatelessWidget { - const FeedbackSurveyModal({Key? key}) : super(key: key); + const FeedbackSurveyModal({super.key}); @override Widget build(BuildContext context) => diff --git a/lib/components/file_download_dialog.dart b/lib/components/file_download_dialog.dart index ce186ed293..275f775090 100644 --- a/lib/components/file_download_dialog.dart +++ b/lib/components/file_download_dialog.dart @@ -122,7 +122,7 @@ Future promptToDownloadSharedFile({ } class FileDownloadDialog extends StatelessWidget { - const FileDownloadDialog({Key? key}) : super(key: key); + const FileDownloadDialog({super.key}); @override Widget build(BuildContext context) => diff --git a/lib/components/file_share_dialog.dart b/lib/components/file_share_dialog.dart index c14ddc5776..77aa39f5fc 100644 --- a/lib/components/file_share_dialog.dart +++ b/lib/components/file_share_dialog.dart @@ -30,7 +30,7 @@ Future promptToShareFile({ /// Depends on a provided [FileShareCubit] for business logic. class FileShareDialog extends StatefulWidget { - const FileShareDialog({Key? key}) : super(key: key); + const FileShareDialog({super.key}); @override FileShareDialogState createState() => FileShareDialogState(); diff --git a/lib/components/folder_create_form.dart b/lib/components/folder_create_form.dart index 39a64b3854..4daacf7823 100644 --- a/lib/components/folder_create_form.dart +++ b/lib/components/folder_create_form.dart @@ -57,7 +57,7 @@ Future promptToCreateFolderWithoutCongestionWarning( ); class FolderCreateForm extends StatefulWidget { - const FolderCreateForm({Key? key}) : super(key: key); + const FolderCreateForm({super.key}); @override State createState() => _FolderCreateFormState(); diff --git a/lib/components/fs_entry_license_form.dart b/lib/components/fs_entry_license_form.dart index 6596498a99..4691fb97f6 100644 --- a/lib/components/fs_entry_license_form.dart +++ b/lib/components/fs_entry_license_form.dart @@ -55,9 +55,9 @@ class FsEntryLicenseForm extends StatefulWidget { final List selectedItems; const FsEntryLicenseForm({ - Key? key, + super.key, required this.selectedItems, - }) : super(key: key); + }); @override State createState() => _FsEntryLicenseFormState(); diff --git a/lib/components/fs_entry_move_form.dart b/lib/components/fs_entry_move_form.dart index f64874b15d..a8e047f51d 100644 --- a/lib/components/fs_entry_move_form.dart +++ b/lib/components/fs_entry_move_form.dart @@ -46,7 +46,7 @@ Future promptToMove( } class FsEntryMoveForm extends StatelessWidget { - const FsEntryMoveForm({Key? key}) : super(key: key); + const FsEntryMoveForm({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/components/fs_entry_rename_form.dart b/lib/components/fs_entry_rename_form.dart index eb59b94256..dabf29f381 100644 --- a/lib/components/fs_entry_rename_form.dart +++ b/lib/components/fs_entry_rename_form.dart @@ -51,9 +51,9 @@ void promptToRenameModal( class FsEntryRenameForm extends StatefulWidget { const FsEntryRenameForm({ - Key? key, + super.key, required this.entryName, - }) : super(key: key); + }); final String entryName; diff --git a/lib/components/ghost_fixer_form.dart b/lib/components/ghost_fixer_form.dart index b6898b6068..474bd7bc3f 100644 --- a/lib/components/ghost_fixer_form.dart +++ b/lib/components/ghost_fixer_form.dart @@ -43,9 +43,9 @@ Future promptToReCreateFolder(BuildContext context, class GhostFixerForm extends StatefulWidget { const GhostFixerForm({ - Key? key, + super.key, required this.driveDetailCubit, - }) : super(key: key); + }); final DriveDetailCubit driveDetailCubit; diff --git a/lib/components/keyboard_handler.dart b/lib/components/keyboard_handler.dart index 316b21dbcc..e452f1182d 100644 --- a/lib/components/keyboard_handler.dart +++ b/lib/components/keyboard_handler.dart @@ -12,7 +12,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class KeyboardHandler extends StatefulWidget { final Widget child; - const KeyboardHandler({Key? key, required this.child}) : super(key: key); + const KeyboardHandler({super.key, required this.child}); @override State createState() => _KeyboardHandlerState(); @@ -99,10 +99,10 @@ class ArDriveDevToolsShortcuts extends StatelessWidget { final List? customShortcuts; const ArDriveDevToolsShortcuts({ - Key? key, + super.key, required this.child, this.customShortcuts, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/pin_file_dialog.dart b/lib/components/pin_file_dialog.dart index b1a9783c3f..52c15e1ad3 100644 --- a/lib/components/pin_file_dialog.dart +++ b/lib/components/pin_file_dialog.dart @@ -57,7 +57,7 @@ Future showPinFileDialog({ } class PinFileDialog extends StatelessWidget { - const PinFileDialog({Key? key}) : super(key: key); + const PinFileDialog({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/components/pin_indicator.dart b/lib/components/pin_indicator.dart index f7f57774de..e1eb9a42fe 100644 --- a/lib/components/pin_indicator.dart +++ b/lib/components/pin_indicator.dart @@ -5,9 +5,9 @@ class PinIndicator extends StatelessWidget { final double size; const PinIndicator({ - Key? key, + super.key, required this.size, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/progress_bar.dart b/lib/components/progress_bar.dart index bdb122b9c3..675749be53 100644 --- a/lib/components/progress_bar.dart +++ b/lib/components/progress_bar.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:percent_indicator/linear_percent_indicator.dart'; class ProgressBar extends StatefulWidget { - const ProgressBar({Key? key, required this.percentage}) : super(key: key); + const ProgressBar({super.key, required this.percentage}); final Stream percentage; diff --git a/lib/components/side_bar.dart b/lib/components/side_bar.dart index d506c4a6cb..20237e4f9d 100644 --- a/lib/components/side_bar.dart +++ b/lib/components/side_bar.dart @@ -665,12 +665,12 @@ class DriveListTile extends StatelessWidget { final VoidCallback onTap; const DriveListTile({ - Key? key, + super.key, required this.drive, required this.isSelected, required this.onTap, this.hasAlert = false, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/top_up_dialog.dart b/lib/components/top_up_dialog.dart index 4aebf652fe..3193aa66f9 100644 --- a/lib/components/top_up_dialog.dart +++ b/lib/components/top_up_dialog.dart @@ -855,8 +855,7 @@ class UnitItem extends InputDropdownItem { class AnimatedFeedbackMessage extends StatefulWidget { final String text; - const AnimatedFeedbackMessage({Key? key, required this.text}) - : super(key: key); + const AnimatedFeedbackMessage({super.key, required this.text}); @override AnimatedFeedbackMessageState createState() => AnimatedFeedbackMessageState(); diff --git a/lib/components/truncated_address.dart b/lib/components/truncated_address.dart index f01bf7eca2..acb1e56a78 100644 --- a/lib/components/truncated_address.dart +++ b/lib/components/truncated_address.dart @@ -10,12 +10,12 @@ class TruncatedAddress extends StatelessWidget { final int offsetEnd; const TruncatedAddress({ - Key? key, + super.key, required this.walletAddress, this.fontSize, this.offsetStart = 6, this.offsetEnd = 5, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/truncated_address_new.dart b/lib/components/truncated_address_new.dart index fb80cee289..337b6c0089 100644 --- a/lib/components/truncated_address_new.dart +++ b/lib/components/truncated_address_new.dart @@ -9,11 +9,11 @@ class TruncatedAddressNew extends StatelessWidget { final int offsetEnd; const TruncatedAddressNew({ - Key? key, + super.key, required this.walletAddress, this.offsetStart = 6, this.offsetEnd = 5, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/components/upload_form.dart b/lib/components/upload_form.dart index 1c744756c5..ce69a7d729 100644 --- a/lib/components/upload_form.dart +++ b/lib/components/upload_form.dart @@ -189,7 +189,7 @@ Future promptToUpload( } class UploadForm extends StatefulWidget { - const UploadForm({Key? key}) : super(key: key); + const UploadForm({super.key}); @override State createState() => _UploadFormState(); diff --git a/lib/components/wallet_switch_dialog.dart b/lib/components/wallet_switch_dialog.dart index e3c19b4e84..4f3f99bde3 100644 --- a/lib/components/wallet_switch_dialog.dart +++ b/lib/components/wallet_switch_dialog.dart @@ -12,8 +12,7 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class WalletSwitchDialog extends StatelessWidget { final bool fromAuthPage; - const WalletSwitchDialog({Key? key, this.fromAuthPage = false}) - : super(key: key); + const WalletSwitchDialog({super.key, this.fromAuthPage = false}); @override Widget build(BuildContext context) => AppDialog( dismissable: false, diff --git a/lib/core/upload/bundle_signer.dart b/lib/core/upload/bundle_signer.dart index 4de8705381..ab82c4b099 100644 --- a/lib/core/upload/bundle_signer.dart +++ b/lib/core/upload/bundle_signer.dart @@ -97,17 +97,15 @@ class SafeArConnectSigner extends BundleSigner { } class SafeArConnectBDISigner extends SafeArConnectSigner { - SafeArConnectBDISigner(BDISigner bundleSigner) : super(bundleSigner); + SafeArConnectBDISigner(BDISigner super.bundleSigner); } class SafeArConnectTransactionSigner extends SafeArConnectSigner { - SafeArConnectTransactionSigner(BundleSigner bundleSigner) - : super(bundleSigner); + SafeArConnectTransactionSigner(super.bundleSigner); } class SafeArConnectArweaveBundleTransactionSigner extends SafeArConnectSigner { SafeArConnectArweaveBundleTransactionSigner( - BundleTransactionSigner bundleSigner) - : super(bundleSigner); + BundleTransactionSigner super.bundleSigner); } diff --git a/lib/dev_tools/shortcut_handler.dart b/lib/dev_tools/shortcut_handler.dart index 928790e769..1d4f648caa 100644 --- a/lib/dev_tools/shortcut_handler.dart +++ b/lib/dev_tools/shortcut_handler.dart @@ -23,10 +23,10 @@ class ShortcutHandler extends StatefulWidget { final List shortcuts; const ShortcutHandler({ - Key? key, + super.key, required this.child, required this.shortcuts, - }) : super(key: key); + }); @override ShortcutHandlerState createState() => ShortcutHandlerState(); diff --git a/lib/entities/entity.dart b/lib/entities/entity.dart index 2d4404ae6f..b1c7c1e849 100644 --- a/lib/entities/entity.dart +++ b/lib/entities/entity.dart @@ -132,7 +132,7 @@ abstract class EntityWithCustomMetadata extends Entity { 'Bundle-Version', ]; - EntityWithCustomMetadata(ArDriveCrypto crypto) : super(crypto); + EntityWithCustomMetadata(super.crypto); @override Future asTransaction({ diff --git a/lib/main.dart b/lib/main.dart index 7b803fe68a..2d907f52f6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -148,7 +148,7 @@ Future _initializeServices() async { } class App extends StatefulWidget { - const App({Key? key}) : super(key: key); + const App({super.key}); @override AppState createState() => AppState(); diff --git a/lib/models/daos/drive_dao/drive_dao.dart b/lib/models/daos/drive_dao/drive_dao.dart index e31101f8e4..f94ee4ea8a 100644 --- a/lib/models/daos/drive_dao/drive_dao.dart +++ b/lib/models/daos/drive_dao/drive_dao.dart @@ -33,8 +33,8 @@ class DriveDao extends DatabaseAccessor with _$DriveDaoMixin { final ArDriveCrypto _crypto = ArDriveCrypto(); DriveDao( - Database db, - ) : super(db) { + super.db, + ) { initVaults(); } diff --git a/lib/models/daos/profile_dao.dart b/lib/models/daos/profile_dao.dart index 9c877764f9..da4e11766b 100644 --- a/lib/models/daos/profile_dao.dart +++ b/lib/models/daos/profile_dao.dart @@ -20,7 +20,7 @@ class ProfilePasswordIncorrectException implements UntrackedException {} @DriftAccessor(include: {'../queries/profile_queries.drift'}) class ProfileDao extends DatabaseAccessor with _$ProfileDaoMixin { - ProfileDao(Database db) : super(db); + ProfileDao(super.db); /// Loads the default profile with the provided password. /// diff --git a/lib/pages/drive_detail/components/drive_detail_breadcrumb_row.dart b/lib/pages/drive_detail/components/drive_detail_breadcrumb_row.dart index 2cd1206a8d..b24c278b14 100644 --- a/lib/pages/drive_detail/components/drive_detail_breadcrumb_row.dart +++ b/lib/pages/drive_detail/components/drive_detail_breadcrumb_row.dart @@ -5,11 +5,10 @@ class DriveDetailBreadcrumbRow extends StatelessWidget { final String driveName; DriveDetailBreadcrumbRow({ - Key? key, + super.key, required String path, required this.driveName, - }) : _pathSegments = path.split('/').where((s) => s != '').toList(), - super(key: key); + }) : _pathSegments = path.split('/').where((s) => s != '').toList(); @override Widget build(BuildContext context) { diff --git a/lib/pages/drive_detail/components/drive_detail_folder_empty_card.dart b/lib/pages/drive_detail/components/drive_detail_folder_empty_card.dart index 54a2d6f14d..7084cc4ff7 100644 --- a/lib/pages/drive_detail/components/drive_detail_folder_empty_card.dart +++ b/lib/pages/drive_detail/components/drive_detail_folder_empty_card.dart @@ -6,11 +6,11 @@ class DriveDetailFolderEmptyCard extends StatelessWidget { final String parentFolderId; const DriveDetailFolderEmptyCard({ - Key? key, + super.key, this.promptToAddFiles = false, required this.driveId, required this.parentFolderId, - }) : super(key: key); + }); @override Widget build(BuildContext context) => buildArDriveCard(context); diff --git a/lib/pages/drive_detail/components/drive_file_drop_zone.dart b/lib/pages/drive_detail/components/drive_file_drop_zone.dart index acd060f2e5..78d9c53450 100644 --- a/lib/pages/drive_detail/components/drive_file_drop_zone.dart +++ b/lib/pages/drive_detail/components/drive_file_drop_zone.dart @@ -13,10 +13,10 @@ class DriveFileDropZone extends StatefulWidget { final String folderId; const DriveFileDropZone({ - Key? key, + super.key, required this.driveId, required this.folderId, - }) : super(key: key); + }); @override DriveFileDropZoneState createState() => DriveFileDropZoneState(); diff --git a/lib/pages/drive_detail/components/dropdown_item.dart b/lib/pages/drive_detail/components/dropdown_item.dart index b561788de8..f2d82d60a5 100644 --- a/lib/pages/drive_detail/components/dropdown_item.dart +++ b/lib/pages/drive_detail/components/dropdown_item.dart @@ -14,13 +14,13 @@ class ArDriveDropdownItemTile extends StatelessWidget { final ArDriveArDriveDropdownItemTileIconAlignment iconAlignment; const ArDriveDropdownItemTile({ - Key? key, + super.key, required this.name, this.icon, this.isDisabled = false, this.fontStyle, this.iconAlignment = ArDriveArDriveDropdownItemTileIconAlignment.left, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pages/drive_detail/components/file_icon.dart b/lib/pages/drive_detail/components/file_icon.dart index fd3a67734d..98e2c25e79 100644 --- a/lib/pages/drive_detail/components/file_icon.dart +++ b/lib/pages/drive_detail/components/file_icon.dart @@ -9,11 +9,11 @@ class ArDriveFileIcon extends StatelessWidget { final double size; const ArDriveFileIcon({ - Key? key, + super.key, required this.contentType, this.fileStatus, this.size = 30, - }) : super(key: key); + }); @override Widget build(BuildContext context) { diff --git a/lib/pages/drive_detail/components/fs_entry_preview_widget.dart b/lib/pages/drive_detail/components/fs_entry_preview_widget.dart index 9812965aac..18961873fd 100644 --- a/lib/pages/drive_detail/components/fs_entry_preview_widget.dart +++ b/lib/pages/drive_detail/components/fs_entry_preview_widget.dart @@ -11,14 +11,14 @@ class FsEntryPreviewWidget extends StatefulWidget { final FsEntryPreviewCubit previewCubit; const FsEntryPreviewWidget({ - Key? key, + super.key, required this.state, required this.isSharePage, this.onPreviousImageNavigation, this.onNextImageNavigation, required this.canNavigateThroughImages, required this.previewCubit, - }) : super(key: key); + }); @override State createState() => _FsEntryPreviewWidgetState(); @@ -29,13 +29,13 @@ class _FsEntryPreviewWidgetState extends State { Widget build(BuildContext context) { final stateType = widget.state.runtimeType; switch (stateType) { - case FsEntryPreviewUnavailable: + case const (FsEntryPreviewUnavailable): return const Center( child: Text('Preview unavailable'), ); - case FsEntryPreviewLoading: - case FsEntryPreviewInitial: + case const (FsEntryPreviewLoading): + case const (FsEntryPreviewInitial): return const Center( child: SizedBox( height: 24, @@ -44,7 +44,7 @@ class _FsEntryPreviewWidgetState extends State { ), ); - case FsEntryPreviewImage: + case const (FsEntryPreviewImage): return ImagePreviewWidget( isSharePage: widget.isSharePage, isFullScreen: false, @@ -54,7 +54,7 @@ class _FsEntryPreviewWidgetState extends State { previewCubit: widget.previewCubit, ); - case FsEntryPreviewAudio: + case const (FsEntryPreviewAudio): return AudioPlayerWidget( filename: (widget.state as FsEntryPreviewAudio).filename, audioUrl: (widget.state as FsEntryPreviewAudio).previewUrl, @@ -100,11 +100,11 @@ class VideoPlayerWidget extends StatefulWidget { final bool isSharePage; const VideoPlayerWidget({ - Key? key, + super.key, required this.filename, required this.videoUrl, required this.isSharePage, - }) : super(key: key); + }); @override // ignore: library_private_types_in_public_api @@ -647,7 +647,7 @@ class FullScreenVideoPlayerWidget extends StatefulWidget { final bool isSharePage; const FullScreenVideoPlayerWidget({ - Key? key, + super.key, required this.filename, required this.videoUrl, required this.initialPosition, @@ -655,7 +655,7 @@ class FullScreenVideoPlayerWidget extends StatefulWidget { required this.initialVolume, required this.onClose, required this.isSharePage, - }) : super(key: key); + }); @override // ignore: library_private_types_in_public_api @@ -1698,11 +1698,11 @@ class AudioPlayerWidget extends StatefulWidget { final bool isSharePage; const AudioPlayerWidget({ - Key? key, + super.key, required this.filename, required this.audioUrl, required this.isSharePage, - }) : super(key: key); + }); @override // ignore: library_private_types_in_public_api @@ -2016,12 +2016,12 @@ class _AudioPlayerWidgetState extends State class VolumeSliderWidget extends StatefulWidget { const VolumeSliderWidget({ - Key? key, + super.key, required this.volume, required this.setVolume, required this.sliderVisible, required this.setSliderVisible, - }) : super(key: key); + }); final double volume; final Function(double) setVolume; diff --git a/lib/pages/drive_detail/components/unpreviewable_content.dart b/lib/pages/drive_detail/components/unpreviewable_content.dart index 0542cb7c51..1016d4d7c2 100644 --- a/lib/pages/drive_detail/components/unpreviewable_content.dart +++ b/lib/pages/drive_detail/components/unpreviewable_content.dart @@ -3,7 +3,7 @@ import 'package:ardrive_ui/ardrive_ui.dart'; import 'package:flutter/material.dart'; class UnpreviewableContent extends StatelessWidget { - const UnpreviewableContent({Key? key}) : super(key: key); + const UnpreviewableContent({super.key}); @override Widget build(BuildContext context) { diff --git a/lib/pages/drive_detail/drive_detail_page.dart b/lib/pages/drive_detail/drive_detail_page.dart index 0293d94956..30973c2d67 100644 --- a/lib/pages/drive_detail/drive_detail_page.dart +++ b/lib/pages/drive_detail/drive_detail_page.dart @@ -72,9 +72,9 @@ class DriveDetailPage extends StatefulWidget { const DriveDetailPage({ required this.context, - Key? key, + super.key, required this.anonymouslyShowDriveDetail, - }) : super(key: key); + }); @override State createState() => _DriveDetailPageState(); diff --git a/lib/pages/no_drives/no_drives_page.dart b/lib/pages/no_drives/no_drives_page.dart index 310bddd3c9..705d114222 100644 --- a/lib/pages/no_drives/no_drives_page.dart +++ b/lib/pages/no_drives/no_drives_page.dart @@ -17,9 +17,9 @@ class NoDrivesPage extends StatelessWidget { final bool anonymouslyShowDriveDetail; NoDrivesPage({ - Key? key, + super.key, required this.anonymouslyShowDriveDetail, - }) : super(key: key) { + }) { if (anonymouslyShowDriveDetail) { PlausibleEventTracker.trackPageview( page: PlausiblePageView.fileExplorerNonLoggedInUser, diff --git a/lib/pages/shared_file/shared_file_page.dart b/lib/pages/shared_file/shared_file_page.dart index da11ad44b6..eb77ebab98 100644 --- a/lib/pages/shared_file/shared_file_page.dart +++ b/lib/pages/shared_file/shared_file_page.dart @@ -22,7 +22,7 @@ import '../drive_detail/components/drive_explorer_item_tile.dart'; class SharedFilePage extends StatelessWidget { final _fileKeyController = TextEditingController(); - SharedFilePage({Key? key}) : super(key: key) { + SharedFilePage({super.key}) { PlausibleEventTracker.trackPageview(page: PlausiblePageView.sharedFilePage); } diff --git a/lib/services/arweave/error/gateway_error.dart b/lib/services/arweave/error/gateway_error.dart index 7c9f473301..1d373c1fd3 100644 --- a/lib/services/arweave/error/gateway_error.dart +++ b/lib/services/arweave/error/gateway_error.dart @@ -41,11 +41,9 @@ abstract class GatewayError extends Equatable implements Exception { class UnexpectedRedirection extends GatewayError { const UnexpectedRedirection( - {required String reasonPhrase, String? requestUrl}) + {required super.reasonPhrase, super.requestUrl}) : super( - statusCode: UNEXPECTED_REDIRECTION, - reasonPhrase: reasonPhrase, - requestUrl: requestUrl); + statusCode: UNEXPECTED_REDIRECTION); @override List get props => [statusCode, reasonPhrase, requestUrl]; @@ -54,25 +52,19 @@ class UnexpectedRedirection extends GatewayError { /// 5xx Errors class ServerError extends GatewayError { const ServerError( - {required int statusCode, - required String reasonPhrase, - String? requestUrl}) - : assert(statusCode >= 500), - super( - reasonPhrase: reasonPhrase, - statusCode: statusCode, - requestUrl: requestUrl); + {required super.statusCode, + required super.reasonPhrase, + super.requestUrl}) + : assert(statusCode >= 500); @override List get props => [statusCode, reasonPhrase, requestUrl]; } /// 429s Errors class RateLimitError extends GatewayError { - const RateLimitError({required String reasonPhrase, String? requestUrl}) + const RateLimitError({required super.reasonPhrase, super.requestUrl}) : super( - reasonPhrase: reasonPhrase, - statusCode: RATE_LIMIT_ERROR, - requestUrl: requestUrl); + statusCode: RATE_LIMIT_ERROR); @override List get props => [statusCode, reasonPhrase, requestUrl]; @@ -80,13 +72,9 @@ class RateLimitError extends GatewayError { class UnknownNetworkError extends GatewayError { const UnknownNetworkError( - {required int statusCode, - required String reasonPhrase, - String? requestUrl}) - : super( - reasonPhrase: reasonPhrase, - statusCode: statusCode, - requestUrl: requestUrl); + {required super.statusCode, + required super.reasonPhrase, + super.requestUrl}); @override List get props => [statusCode, reasonPhrase, requestUrl]; diff --git a/lib/sync/domain/repositories/sync_repository.dart b/lib/sync/domain/repositories/sync_repository.dart index 4cefb53b44..04744cfd80 100644 --- a/lib/sync/domain/repositories/sync_repository.dart +++ b/lib/sync/domain/repositories/sync_repository.dart @@ -1225,7 +1225,7 @@ Future> _generateFsEntryPaths({ } // Update paths of files whose parent folders were not updated. final staleOrphanFiles = filesByIdMap.values - .where((f) => !foldersByIdMap.containsKey(f.parentFolderId)); + .where((f) => !foldersByIdMap.containsKey(f.parentFolderId.value)); for (final staleOrphanFile in staleOrphanFiles) { if (staleOrphanFile.parentFolderId.value.isNotEmpty) { final parentPath = await driveDao diff --git a/lib/turbo/models/payment_user_information.dart b/lib/turbo/models/payment_user_information.dart index a3af0e5f68..c20285c360 100644 --- a/lib/turbo/models/payment_user_information.dart +++ b/lib/turbo/models/payment_user_information.dart @@ -37,16 +37,11 @@ abstract class PaymentUserInformation extends Equatable { class _PaymentUserInformation extends PaymentUserInformation { const _PaymentUserInformation({ - String? email, - required String country, - required String name, - required bool userAcceptedToReceiveEmails, - }) : super( - email: email, - name: name, - country: country, - userAcceptedToReceiveEmails: userAcceptedToReceiveEmails, - ); + super.email, + required super.country, + required super.name, + required super.userAcceptedToReceiveEmails, + }); @override List get props => [ diff --git a/lib/turbo/topup/components/turbo_balance_widget.dart b/lib/turbo/topup/components/turbo_balance_widget.dart index ac8ba82118..1dd342f00c 100644 --- a/lib/turbo/topup/components/turbo_balance_widget.dart +++ b/lib/turbo/topup/components/turbo_balance_widget.dart @@ -15,11 +15,11 @@ import 'package:flutter_bloc/flutter_bloc.dart'; class TurboBalance extends StatefulWidget { const TurboBalance({ - Key? key, + super.key, required this.paymentService, required this.wallet, this.onTapAddButton, - }) : super(key: key); + }); final Wallet wallet; final PaymentService paymentService; diff --git a/lib/turbo/topup/views/topup_payment_form.dart b/lib/turbo/topup/views/topup_payment_form.dart index 0111efe559..dedcb32029 100644 --- a/lib/turbo/topup/views/topup_payment_form.dart +++ b/lib/turbo/topup/views/topup_payment_form.dart @@ -1130,22 +1130,16 @@ class CountryItem implements InputDropdownItem { class CountryInputDropdown extends InputDropdownMenu { CountryInputDropdown({ - Key? key, - required List items, - required Widget Function(CountryItem?) buildSelectedItem, + super.key, + required super.items, + required super.buildSelectedItem, required ArDriveTextFieldTheme theme, - CountryItem? selectedItem, - required Function(CountryItem) onChanged, - Function()? onClick, + super.selectedItem, + required Function(CountryItem) super.onChanged, + super.onClick, required BuildContext context, }) : super( - key: key, - items: items, - onClick: onClick, - selectedItem: selectedItem, - buildSelectedItem: buildSelectedItem, label: '${appLocalizationsOf(context).country} *', - onChanged: onChanged, itemsTextStyle: theme.inputTextStyle, backgroundColor: theme.inputBackgroundColor, ); diff --git a/test/sync/utils/batch_processor_test.dart b/test/sync/utils/batch_processor_test.dart index f55a2489ef..263172951a 100644 --- a/test/sync/utils/batch_processor_test.dart +++ b/test/sync/utils/batch_processor_test.dart @@ -22,7 +22,7 @@ void main() { final processor = BatchProcessor(); expect( processor.batchProcess( - list: [], endOfBatchCallback: mockCallback, batchSize: 5), + list: [], endOfBatchCallback: mockCallback.call, batchSize: 5), emitsDone); }); @@ -33,7 +33,7 @@ void main() { expect( processor.batchProcess( list: list, - endOfBatchCallback: mockCallback, + endOfBatchCallback: mockCallback.call, batchSize: batchSize), emitsInOrder([1.0, emitsDone])); }); @@ -48,7 +48,7 @@ void main() { expect( processor.batchProcess( list: list, - endOfBatchCallback: mockCallback, + endOfBatchCallback: mockCallback.call, batchSize: batchSize), emitsInOrder([1.0, 1.0, 1.0, 1.0, 1.0, emitsDone])); }); @@ -61,7 +61,7 @@ void main() { expect( processor.batchProcess( list: list, - endOfBatchCallback: mockCallback, + endOfBatchCallback: mockCallback.call, batchSize: batchSize), emitsInOrder([1.0, 1.0, emitsDone])); }); @@ -74,7 +74,7 @@ void main() { expect( processor.batchProcess( list: list, - endOfBatchCallback: mockCallback, + endOfBatchCallback: mockCallback.call, batchSize: batchSize), emitsInOrder([1.0, 1.0, 1.0, emitsDone])); }); @@ -86,7 +86,7 @@ void main() { expect( processor.batchProcess( - list: list, endOfBatchCallback: mockCallback, batchSize: batchSize), + list: list, endOfBatchCallback: mockCallback.call, batchSize: batchSize), emitsError( isA(), ), From 9fdb3e7bd09d5b6bf632f584919385c7f40afd41 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Tue, 16 Apr 2024 08:31:39 -0300 Subject: [PATCH 09/21] fix stripe credit card field --- lib/turbo/topup/views/topup_modal.dart | 17 +++++++++++++++-- .../src/components/data_table/data_table.dart | 1 - 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/turbo/topup/views/topup_modal.dart b/lib/turbo/topup/views/topup_modal.dart index cfe80d63e7..75616d40c8 100644 --- a/lib/turbo/topup/views/topup_modal.dart +++ b/lib/turbo/topup/views/topup_modal.dart @@ -263,12 +263,25 @@ class _TurboModalState extends State with TickerProviderStateMixin { _previousState = state; + final animation = Tween( + begin: 0.01, + end: 1.0, + ).animate( + CurvedAnimation(parent: _opacityController, curve: Curves.easeInOut), + ); + return Container( color: ArDriveTheme.of(context).themeData.colors.themeBgCanvas, child: AnimatedSize( duration: const Duration(milliseconds: 300), - child: FadeTransition( - opacity: _opacityController, + child: AnimatedBuilder( + animation: animation, + builder: (context, child) { + return Opacity( + opacity: isOpacityTransitionDelayed ? animation.value : 1, + child: child, + ); + }, child: view, ), ), diff --git a/packages/ardrive_ui/lib/src/components/data_table/data_table.dart b/packages/ardrive_ui/lib/src/components/data_table/data_table.dart index 94cc29127f..25ab874854 100644 --- a/packages/ardrive_ui/lib/src/components/data_table/data_table.dart +++ b/packages/ardrive_ui/lib/src/components/data_table/data_table.dart @@ -302,7 +302,6 @@ class _ArDriveDataTableState _isCtrlPressed = HardwareKeyboard.instance.isMetaPressed; widget.onChangeMultiSelecting!(_isMultiSelecting); }); - return true; } } return false; From f22d82126d08d02736cb2dbc7d49e44a17fccec2 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Tue, 16 Apr 2024 08:36:18 -0300 Subject: [PATCH 10/21] fix lints - added isDark and isLight api for theme - added todos - fixed lint --- .../login/views/tiles/tiles_view.dart | 1 + lib/components/details_panel.dart | 1 + lib/components/side_bar.dart | 1 + lib/pages/shared_file/shared_file_page.dart | 2 ++ .../ardrive_ui/lib/src/styles/theme/themes.dart | 15 +++++++++++++-- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/authentication/login/views/tiles/tiles_view.dart b/lib/authentication/login/views/tiles/tiles_view.dart index 8b4132117a..5ec9029807 100644 --- a/lib/authentication/login/views/tiles/tiles_view.dart +++ b/lib/authentication/login/views/tiles/tiles_view.dart @@ -160,6 +160,7 @@ class TilesView extends StatelessWidget { class _MilitaryGradeEncryption extends StatelessWidget { @override Widget build(BuildContext context) { + // TODO: replace with ArDriveTheme .isLight method final isLightMode = ArDriveTheme.of(context).themeData.name == 'light'; return ClipRRect( borderRadius: const BorderRadius.only( diff --git a/lib/components/details_panel.dart b/lib/components/details_panel.dart index ed5393d339..40a3a07843 100644 --- a/lib/components/details_panel.dart +++ b/lib/components/details_panel.dart @@ -257,6 +257,7 @@ class _DetailsPanelState extends State { children: [ ArDriveImage( image: AssetImage( + // TODO: replace with ArDriveTheme .isLight method ArDriveTheme.of(context).themeData.name == 'light' ? Resources.images.brand.blackLogo2 : Resources.images.brand.whiteLogo2, diff --git a/lib/components/side_bar.dart b/lib/components/side_bar.dart index 20237e4f9d..4a9f392fa8 100644 --- a/lib/components/side_bar.dart +++ b/lib/components/side_bar.dart @@ -261,6 +261,7 @@ class _AppSideBarState extends State { ? Padding( padding: EdgeInsets.all(isMobile ? 0 : 16.0), child: Image.asset( + // TODO: replace with ArDriveTheme .isLight method ArDriveTheme.of(context).themeData.name == 'light' ? Resources.images.brand.blackLogo1 : Resources.images.brand.whiteLogo1, diff --git a/lib/pages/shared_file/shared_file_page.dart b/lib/pages/shared_file/shared_file_page.dart index eb77ebab98..1bdd1f643f 100644 --- a/lib/pages/shared_file/shared_file_page.dart +++ b/lib/pages/shared_file/shared_file_page.dart @@ -117,6 +117,7 @@ class SharedFilePage extends StatelessWidget { children: [ ArDriveImage( image: AssetImage( + // TODO: replace with ArDriveTheme .isLight method ArDriveTheme.of(context).themeData.name == 'light' ? Resources.images.brand.blackLogo2 : Resources.images.brand.whiteLogo2, @@ -131,6 +132,7 @@ class SharedFilePage extends StatelessWidget { children: [ ArDriveImage( image: AssetImage( + // TODO: replace with ArDriveTheme .isLight method ArDriveTheme.of(context).themeData.name == 'light' ? Resources.images.brand.blackLogo2 : Resources.images.brand.whiteLogo2, diff --git a/packages/ardrive_ui/lib/src/styles/theme/themes.dart b/packages/ardrive_ui/lib/src/styles/theme/themes.dart index 22fe22f436..1e2efeec8f 100644 --- a/packages/ardrive_ui/lib/src/styles/theme/themes.dart +++ b/packages/ardrive_ui/lib/src/styles/theme/themes.dart @@ -158,7 +158,7 @@ class ArDriveThemeData { this.backgroundColor = backgroundColor ?? const Color(0xff010905); this.primaryColor = primaryColor ?? this.colors.themeAccentBrand; this.materialThemeData = materialThemeData ?? darkMaterialTheme(); - this.name = name ?? 'dark'; + this.name = name ?? _darkTheme; } late Color backgroundColor; @@ -243,7 +243,7 @@ ArDriveThemeData lightTheme() { hoverColor: const Color(0xffF1EFF0), ), materialThemeData: lightMaterialTheme(), - name: 'light', + name: _lightTheme, colorTokens: ArDriveColorTokens.lightMode()); } @@ -272,6 +272,14 @@ class ArDriveTheme extends InheritedWidget { throw Exception('Not found a ArDriveTheme in the widget tree'); } + + bool isDark() { + return themeData.name == _darkTheme; + } + + bool isLight() { + return themeData.name == _lightTheme; + } } class ArDriveToggleTheme { @@ -338,3 +346,6 @@ ThemeData darkMaterialTheme() { } const _fontFamily = 'packages/ardrive_ui/Wavehaus'; + +const _lightTheme = 'light'; +const _darkTheme = 'dark'; From 16528f1a37a86ecf3fb87307196577822ed06af5 Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Tue, 16 Apr 2024 08:39:25 -0300 Subject: [PATCH 11/21] regenerate pubspec lock --- pubspec.lock | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 531e5574eb..867b085823 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -152,8 +152,8 @@ packages: dependency: "direct main" description: path: "." - ref: PE-5747-ethareum-login - resolved-ref: "79701f70103e93c38d718bfd8a0ecf16ddf31c1f" + ref: "v3.9.0" + resolved-ref: ed5f497ef264e8591317d4a48fda9740ac90d1a2 url: "https://github.com/ardriveapp/arweave-dart.git" source: git version: "3.9.0" @@ -834,10 +834,10 @@ packages: dependency: "direct main" description: name: flutter_email_sender - sha256: "5001e9158f91a8799140fb30a11ad89cd587244f30b4f848d87085985c49b60f" + sha256: fb515d4e073d238d0daf1d765e5318487b6396d46b96e0ae9745dbc9a133f97a url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.0.3" flutter_hooks: dependency: "direct main" description: @@ -1177,10 +1177,10 @@ packages: dependency: transitive description: name: image_picker_for_web - sha256: "6a1704fdd75022272e7e7a897a9068e9c2ff3cd6a66820bf3ded810633eac954" + sha256: "5d6eb13048cd47b60dbf1a5495424dea226c5faf3950e20bf8120a58efb5b5f3" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.4" image_picker_ios: dependency: transitive description: @@ -1398,10 +1398,10 @@ packages: dependency: transitive description: name: local_auth_android - sha256: "3bcd732dda7c75fcb7ddaef12e131230f53dcc8c00790d0d6efb3aa0fbbeda57" + sha256: e0e5b1ea247c5a0951c13a7ee13dc1beae69750e6a2e1910d1ed6a3cd4d56943 url: "https://pub.dev" source: hosted - version: "1.0.37" + version: "1.0.38" local_auth_darwin: dependency: transitive description: @@ -1694,17 +1694,10 @@ packages: dependency: transitive description: name: pointycastle -<<<<<<< HEAD - sha256: "70fe966348fe08c34bf929582f1d8247d9d9408130723206472b4687227e4333" - url: "https://pub.dev" - source: hosted - version: "3.8.0" -======= sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted version: "3.7.4" ->>>>>>> dev pool: dependency: transitive description: @@ -2283,10 +2276,10 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d" + sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.1" url_launcher_windows: dependency: transitive description: @@ -2323,10 +2316,10 @@ packages: dependency: transitive description: name: video_player_android - sha256: "821cff3446bbde255e8d03c12fe1f9810c69fee2c26c394545b13d824ba63c2e" + sha256: "134e1ad410d67e18a19486ed9512c72dfc6d8ffb284d0e8f2e99e903d1ba8fa3" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.14" video_player_avfoundation: dependency: transitive description: From f4802f3050716374c657f120315537b2d4c85d1a Mon Sep 17 00:00:00 2001 From: Thiago Carvalho Date: Tue, 16 Apr 2024 09:55:07 -0300 Subject: [PATCH 12/21] fix lint and upgrade deps - upgraded flutter_svg, this is required to upgrade the linter - upgraded eqatuable that flutter_svg depends on - fixed lint errors --- .../login/views/wallet_created_view.dart | 2 + lib/utils/pre_cache_assets.dart | 9 +- packages/arconnect/pubspec.yaml | 2 +- packages/ardrive_crypto/pubspec.yaml | 2 +- packages/ardrive_logger/pubspec.yaml | 2 +- .../lib/src/components/accordion.dart | 4 +- .../lib/src/components/drop_area.dart | 4 +- .../lib/src/components/feedback_message.dart | 4 +- .../lib/src/components/overlay.dart | 4 +- .../lib/src/components/tab_view.dart | 4 +- .../lib/src/components/text_field.dart | 6 +- .../lib/src/components/text_field_new.dart | 6 +- .../lib/src/components/toggle_switch.dart | 3 +- .../styles/icons/ar_drive_icons_icons.dart | 1 + packages/ardrive_ui/pubspec.yaml | 9 +- packages/ardrive_ui/storybook/pubspec.lock | 2 +- packages/ardrive_ui/storybook/pubspec.yaml | 2 +- .../Flutter/GeneratedPluginRegistrant.swift | 2 + .../ardrive_uploader/example/pubspec.yaml | 2 +- .../flutter/generated_plugin_registrant.cc | 3 + .../windows/flutter/generated_plugins.cmake | 1 + packages/ardrive_utils/pubspec.yaml | 2 +- packages/arfs/pubspec.yaml | 2 +- packages/pst/pubspec.lock | 18 ++-- packages/pst/pubspec.yaml | 3 +- pubspec.lock | 96 ++++++++++++++++++- pubspec.yaml | 4 +- web/index.html | 5 + 28 files changed, 153 insertions(+), 51 deletions(-) diff --git a/lib/authentication/login/views/wallet_created_view.dart b/lib/authentication/login/views/wallet_created_view.dart index 012edf11d5..9d0aaca4a8 100644 --- a/lib/authentication/login/views/wallet_created_view.dart +++ b/lib/authentication/login/views/wallet_created_view.dart @@ -1,3 +1,5 @@ +// ignore_for_file: deprecated_member_use + import 'dart:ui'; import 'package:ardrive/authentication/components/breakpoint_layout_builder.dart'; diff --git a/lib/utils/pre_cache_assets.dart b/lib/utils/pre_cache_assets.dart index 11e4e9ad29..0795d16cd8 100644 --- a/lib/utils/pre_cache_assets.dart +++ b/lib/utils/pre_cache_assets.dart @@ -1,7 +1,7 @@ import 'package:ardrive/misc/resources.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_svg/svg.dart'; void preCacheLoginAssets(BuildContext context) { List assetPaths = [ @@ -34,10 +34,9 @@ void preCacheLoginAssets(BuildContext context) { if (kIsWeb) { for (String svgAsset in svgAssets) { - precachePicture( - ExactAssetPicture(SvgPicture.svgStringDecoderBuilder, svgAsset), - context, - ); + final loader = SvgAssetLoader(svgAsset); + svg.cache + .putIfAbsent(loader.cacheKey(null), () => loader.loadBytes(null)); } } } diff --git a/packages/arconnect/pubspec.yaml b/packages/arconnect/pubspec.yaml index 404a7bf72a..dc3a5e1145 100644 --- a/packages/arconnect/pubspec.yaml +++ b/packages/arconnect/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the diff --git a/packages/ardrive_crypto/pubspec.yaml b/packages/ardrive_crypto/pubspec.yaml index cd7971eb16..42ee54b97c 100644 --- a/packages/ardrive_crypto/pubspec.yaml +++ b/packages/ardrive_crypto/pubspec.yaml @@ -25,7 +25,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the diff --git a/packages/ardrive_logger/pubspec.yaml b/packages/ardrive_logger/pubspec.yaml index 7d5e285f3c..38dbca0377 100644 --- a/packages/ardrive_logger/pubspec.yaml +++ b/packages/ardrive_logger/pubspec.yaml @@ -24,7 +24,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/ardrive_ui/lib/src/components/accordion.dart b/packages/ardrive_ui/lib/src/components/accordion.dart index 3b162e910c..23f87b3dcb 100644 --- a/packages/ardrive_ui/lib/src/components/accordion.dart +++ b/packages/ardrive_ui/lib/src/components/accordion.dart @@ -24,11 +24,11 @@ class ArDriveAccordion extends StatefulWidget { final EdgeInsetsGeometry? contentPadding; const ArDriveAccordion({ - Key? key, + super.key, required this.children, this.backgroundColor, this.contentPadding, - }) : super(key: key); + }); @override State createState() => _ArDriveAccordionState(); diff --git a/packages/ardrive_ui/lib/src/components/drop_area.dart b/packages/ardrive_ui/lib/src/components/drop_area.dart index 938db20768..467cec9b67 100644 --- a/packages/ardrive_ui/lib/src/components/drop_area.dart +++ b/packages/ardrive_ui/lib/src/components/drop_area.dart @@ -89,7 +89,7 @@ class _ArDriveDropZoneState extends State { /// class ArDriveDropAreaSingleInput extends StatefulWidget { const ArDriveDropAreaSingleInput({ - Key? key, + super.key, this.height, this.width, required this.dragAndDropDescription, @@ -99,7 +99,7 @@ class ArDriveDropAreaSingleInput extends StatefulWidget { this.platformSupportsDragAndDrop = true, this.keepButtonVisible = false, required this.controller, - }) : super(key: key); + }); final double? height; final double? width; diff --git a/packages/ardrive_ui/lib/src/components/feedback_message.dart b/packages/ardrive_ui/lib/src/components/feedback_message.dart index c0d20b4529..3baf6db63b 100644 --- a/packages/ardrive_ui/lib/src/components/feedback_message.dart +++ b/packages/ardrive_ui/lib/src/components/feedback_message.dart @@ -5,7 +5,7 @@ enum ArrowSide { left, right, bottomLeft } class FeedbackMessage extends StatelessWidget { const FeedbackMessage({ - Key? key, + super.key, required this.text, this.textStyle, this.backgroundColor, @@ -13,7 +13,7 @@ class FeedbackMessage extends StatelessWidget { this.width, this.height = 50, this.arrowSide = ArrowSide.left, - }) : super(key: key); + }); final String text; final TextStyle? textStyle; diff --git a/packages/ardrive_ui/lib/src/components/overlay.dart b/packages/ardrive_ui/lib/src/components/overlay.dart index b970bf06f7..dce54a1bd1 100644 --- a/packages/ardrive_ui/lib/src/components/overlay.dart +++ b/packages/ardrive_ui/lib/src/components/overlay.dart @@ -322,11 +322,11 @@ class _ArDriveOverlayState extends State { class Barrier extends StatelessWidget { const Barrier({ - Key? key, + super.key, required this.onClose, required this.visible, required this.child, - }) : super(key: key); + }); final Widget child; final VoidCallback onClose; diff --git a/packages/ardrive_ui/lib/src/components/tab_view.dart b/packages/ardrive_ui/lib/src/components/tab_view.dart index 76eaf86806..2dfd0f9afe 100644 --- a/packages/ardrive_ui/lib/src/components/tab_view.dart +++ b/packages/ardrive_ui/lib/src/components/tab_view.dart @@ -12,14 +12,14 @@ class ArDriveTabView extends StatefulWidget { final Color? unselectedTabColor; const ArDriveTabView({ - Key? key, + super.key, required this.tabs, this.backgroundColor, this.selectedLabelColor, this.unselectedLabelColor, this.selectedTabColor, this.unselectedTabColor, - }) : super(key: key); + }); @override State createState() => _ArDriveTabViewState(); diff --git a/packages/ardrive_ui/lib/src/components/text_field.dart b/packages/ardrive_ui/lib/src/components/text_field.dart index 92f25afbba..b44f7a5d57 100644 --- a/packages/ardrive_ui/lib/src/components/text_field.dart +++ b/packages/ardrive_ui/lib/src/components/text_field.dart @@ -14,9 +14,9 @@ class ArDriveForm extends StatefulWidget { /// /// The [child] argument must not be null. const ArDriveForm({ - Key? key, + super.key, required this.child, - }) : super(key: key); + }); @override State createState() => ArDriveFormState(); @@ -125,7 +125,7 @@ class ArDriveMultlineObscureTextController extends TextEditingController { bool _showLastCharacter = false; Timer? _timer; - ArDriveMultlineObscureTextController({String? text}) : super(text: text); + ArDriveMultlineObscureTextController({super.text}); // use same default obscuring character as EditableText final obscuringCharacter = '\u2022'; diff --git a/packages/ardrive_ui/lib/src/components/text_field_new.dart b/packages/ardrive_ui/lib/src/components/text_field_new.dart index dd2ae8b6ee..2891e76e80 100644 --- a/packages/ardrive_ui/lib/src/components/text_field_new.dart +++ b/packages/ardrive_ui/lib/src/components/text_field_new.dart @@ -14,9 +14,9 @@ class ArDriveFormNew extends StatefulWidget { /// /// The [child] argument must not be null. const ArDriveFormNew({ - Key? key, + super.key, required this.child, - }) : super(key: key); + }); @override State createState() => ArDriveFormNewState(); @@ -126,7 +126,7 @@ class ArDriveMultilineObscureTextControllerNew extends TextEditingController { bool _showLastCharacter = false; Timer? _timer; - ArDriveMultilineObscureTextControllerNew({String? text}) : super(text: text); + ArDriveMultilineObscureTextControllerNew({super.text}); // use same default obscuring character as EditableText final obscuringCharacter = '\u2022'; diff --git a/packages/ardrive_ui/lib/src/components/toggle_switch.dart b/packages/ardrive_ui/lib/src/components/toggle_switch.dart index dd797622ba..4b1c90eaaa 100644 --- a/packages/ardrive_ui/lib/src/components/toggle_switch.dart +++ b/packages/ardrive_ui/lib/src/components/toggle_switch.dart @@ -182,10 +182,9 @@ class ArDriveToggleSwitchState extends State { class _ToggleCircle extends StatefulWidget { const _ToggleCircle({ - Key? key, required this.color, required this.checked, - }) : super(key: key); + }); final Color color; final bool checked; diff --git a/packages/ardrive_ui/lib/src/styles/icons/ar_drive_icons_icons.dart b/packages/ardrive_ui/lib/src/styles/icons/ar_drive_icons_icons.dart index 96d05c0926..44df5f7b86 100644 --- a/packages/ardrive_ui/lib/src/styles/icons/ar_drive_icons_icons.dart +++ b/packages/ardrive_ui/lib/src/styles/icons/ar_drive_icons_icons.dart @@ -13,6 +13,7 @@ /// /// /// +library; // ignore_for_file: constant_identifier_names import 'package:flutter/widgets.dart'; diff --git a/packages/ardrive_ui/pubspec.yaml b/packages/ardrive_ui/pubspec.yaml index bcd8400709..d994d218d8 100644 --- a/packages/ardrive_ui/pubspec.yaml +++ b/packages/ardrive_ui/pubspec.yaml @@ -7,7 +7,8 @@ publish_to: "none" environment: sdk: ">=3.0.2 <4.0.0" - flutter: 3.13.6 + flutter: 3.19.5 + dependencies: ardrive_io: @@ -20,16 +21,16 @@ dependencies: flutter: sdk: flutter flutter_portal: ^1.1.2 - flutter_svg: ^1.1.6 + flutter_svg: ^2.0.10+1 percent_indicator: ^4.2.2 - flutter_svg_image: 1.0.0 + flutter_svg_image: ^1.1.0+1 provider: ^6.0.5 equatable: ^2.0.5 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 flutter: assets: diff --git a/packages/ardrive_ui/storybook/pubspec.lock b/packages/ardrive_ui/storybook/pubspec.lock index 258ad7640c..068d8ebf4a 100644 --- a/packages/ardrive_ui/storybook/pubspec.lock +++ b/packages/ardrive_ui/storybook/pubspec.lock @@ -921,4 +921,4 @@ packages: version: "6.3.0" sdks: dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.13.6" + flutter: ">=3.19.5" diff --git a/packages/ardrive_ui/storybook/pubspec.yaml b/packages/ardrive_ui/storybook/pubspec.yaml index 145391d44f..fcb232ac16 100644 --- a/packages/ardrive_ui/storybook/pubspec.yaml +++ b/packages/ardrive_ui/storybook/pubspec.yaml @@ -25,7 +25,7 @@ dependency_overrides: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 flutter: uses-material-design: true diff --git a/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift index 51713b9b7c..dd517499b2 100644 --- a/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/packages/ardrive_uploader/example/macos/Flutter/GeneratedPluginRegistrant.swift @@ -12,6 +12,7 @@ import package_info_plus import path_provider_foundation import sentry_flutter import share_plus +import webcrypto func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) @@ -21,4 +22,5 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) + WebcryptoPlugin.register(with: registry.registrar(forPlugin: "WebcryptoPlugin")) } diff --git a/packages/ardrive_uploader/example/pubspec.yaml b/packages/ardrive_uploader/example/pubspec.yaml index af80ee0d99..72bbe9db0f 100644 --- a/packages/ardrive_uploader/example/pubspec.yaml +++ b/packages/ardrive_uploader/example/pubspec.yaml @@ -62,7 +62,7 @@ dependency_overrides: # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc b/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc index 5fceedd660..e2d048391d 100644 --- a/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/ardrive_uploader/example/windows/flutter/generated_plugin_registrant.cc @@ -12,6 +12,7 @@ #include #include #include +#include void RegisterPlugins(flutter::PluginRegistry* registry) { FileSaverPluginRegisterWithRegistrar( @@ -26,4 +27,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( registry->GetRegistrarForPlugin("UrlLauncherWindows")); + WebcryptoPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("WebcryptoPlugin")); } diff --git a/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake b/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake index 40cb204ddc..a71ed9ee44 100644 --- a/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake +++ b/packages/ardrive_uploader/example/windows/flutter/generated_plugins.cmake @@ -9,6 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST sentry_flutter share_plus url_launcher_windows + webcrypto ) list(APPEND FLUTTER_FFI_PLUGIN_LIST diff --git a/packages/ardrive_utils/pubspec.yaml b/packages/ardrive_utils/pubspec.yaml index 8e5ffa4ddb..9f1b348e99 100644 --- a/packages/ardrive_utils/pubspec.yaml +++ b/packages/ardrive_utils/pubspec.yaml @@ -29,7 +29,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/arfs/pubspec.yaml b/packages/arfs/pubspec.yaml index 35124bccbd..9619197606 100644 --- a/packages/arfs/pubspec.yaml +++ b/packages/arfs/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/packages/pst/pubspec.lock b/packages/pst/pubspec.lock index 61428ce402..9b3227d25a 100644 --- a/packages/pst/pubspec.lock +++ b/packages/pst/pubspec.lock @@ -21,11 +21,11 @@ packages: dependency: "direct main" description: path: "." - ref: "v3.8.3" - resolved-ref: "41d590687cecafc316b3c83da20274a29d3e2833" + ref: "v3.9.0" + resolved-ref: ed5f497ef264e8591317d4a48fda9740ac90d1a2 url: "https://github.com/ardriveapp/arweave-dart.git" source: git - version: "3.8.3" + version: "3.9.0" async: dependency: transitive description: @@ -244,10 +244,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04 + sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "3.0.2" flutter_test: dependency: "direct dev" description: flutter @@ -374,10 +374,10 @@ packages: dependency: transitive description: name: lints - sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452" + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "3.0.0" matcher: dependency: transitive description: @@ -462,10 +462,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.7.4" retry: dependency: "direct main" description: diff --git a/packages/pst/pubspec.yaml b/packages/pst/pubspec.yaml index 19c20df7bc..4cc49398ae 100644 --- a/packages/pst/pubspec.yaml +++ b/packages/pst/pubspec.yaml @@ -29,6 +29,7 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 + flutter: diff --git a/pubspec.lock b/pubspec.lock index 867b085823..b4545f1573 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -846,6 +846,70 @@ packages: url: "https://pub.dev" source: hosted version: "0.20.5" + flutter_image_compress: + dependency: transitive + description: + name: flutter_image_compress + sha256: "37f1b26399098e5f97b74c1483f534855e7dff68ead6ddaccf747029fb03f29f" + url: "https://pub.dev" + source: hosted + version: "1.1.3" + flutter_inappwebview: + dependency: transitive + description: + name: flutter_inappwebview + sha256: "3e9a443a18ecef966fb930c3a76ca5ab6a7aafc0c7b5e14a4a850cf107b09959" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_inappwebview_android: + dependency: transitive + description: + name: flutter_inappwebview_android + sha256: d247f6ed417f1f8c364612fa05a2ecba7f775c8d0c044c1d3b9ee33a6515c421 + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_internal_annotations: + dependency: transitive + description: + name: flutter_inappwebview_internal_annotations + sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter_inappwebview_ios: + dependency: transitive + description: + name: flutter_inappwebview_ios + sha256: f363577208b97b10b319cd0c428555cd8493e88b468019a8c5635a0e4312bd0f + url: "https://pub.dev" + source: hosted + version: "1.0.13" + flutter_inappwebview_macos: + dependency: transitive + description: + name: flutter_inappwebview_macos + sha256: b55b9e506c549ce88e26580351d2c71d54f4825901666bd6cfa4be9415bb2636 + url: "https://pub.dev" + source: hosted + version: "1.0.11" + flutter_inappwebview_platform_interface: + dependency: transitive + description: + name: flutter_inappwebview_platform_interface + sha256: "545fd4c25a07d2775f7d5af05a979b2cac4fbf79393b0a7f5d33ba39ba4f6187" + url: "https://pub.dev" + source: hosted + version: "1.0.10" + flutter_inappwebview_web: + dependency: transitive + description: + name: flutter_inappwebview_web + sha256: d8c680abfb6fec71609a700199635d38a744df0febd5544c5a020bd73de8ee07 + url: "https://pub.dev" + source: hosted + version: "1.0.8" flutter_launcher_icons: dependency: "direct main" description: @@ -970,18 +1034,18 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2" + sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "2.0.10+1" flutter_svg_image: dependency: transitive description: name: flutter_svg_image - sha256: "8f50ace0234d5d2d349cafe1224379933990f3e4145b9f02f22ba977131396d0" + sha256: "32d5970cbcba9a3436f614a34450c14bc91806d561776aec0b5b7ccbe21467cd" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0+1" flutter_test: dependency: "direct dev" description: flutter @@ -2296,6 +2360,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.4.0" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + url: "https://pub.dev" + source: hosted + version: "1.1.11+1" vector_math: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8ca6bc0a0b..1aa5e84ec3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -85,11 +85,11 @@ dependencies: retry: ^3.1.0 shared_preferences: ^2.0.15 flutter_launcher_icons: ^0.13.1 - equatable: ^2.0.3 + equatable: ^2.0.5 http: ^1.1.0 stash: ^5.1.0 path: ^1.8.1 - flutter_svg: ^1.1.3 + flutter_svg: ^2.0.10+1 sqlite3_flutter_libs: ^0.5.9 app_settings: ^4.1.8 firebase_crashlytics: ^3.0.4 diff --git a/web/index.html b/web/index.html index 4588a2b844..314187769c 100644 --- a/web/index.html +++ b/web/index.html @@ -31,6 +31,11 @@ +