diff --git a/android/build.gradle b/android/build.gradle index 378bae1dc2b693b60602991e2b6d32a67c7f96d9..6dbe22371f0dd293a45665aacedd24f003dc77b9 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ allprojects { rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" - afterEvaluate { android { compileSdkVersion 34 } } + afterEvaluate { android { compileSdkVersion 35 } } } subprojects { project.evaluationDependsOn(':app') diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 464fa8e7e6e96bbe4b82e34af29e2117e347314d..ec046f3897dc55d41ed621b67dc17303189e3bba 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -14,6 +14,7 @@ import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/v2s_datapod.dart'; import 'package:gecko/widgets/bubble_speak.dart'; +import 'package:gecko/widgets/buttons/home_settings_button.dart'; import 'package:gecko/widgets/commons/animated_text.dart'; import 'package:gecko/widgets/commons/common_elements.dart'; import 'package:gecko/screens/myWallets/restore_chest.dart'; @@ -138,17 +139,7 @@ Widget geckHome(context) { Positioned( top: statusBarHeight + scaleSize(10), left: scaleSize(15), - child: Builder( - builder: (context) => IconButton( - key: keyDrawerMenu, - icon: Icon( - Icons.menu, - color: Colors.black, - size: scaleSize(35), - ), - onPressed: () => Scaffold.of(context).openDrawer(), - ), - ), + child: IconHomeSettings(), ), Align( child: Image(image: const AssetImage('assets/home/header.png'), height: scaleSize(165)), @@ -196,7 +187,7 @@ Widget geckHome(context) { end: Alignment.bottomCenter, colors: [ Colors.transparent, - Colors.black.withOpacity(0.9), + Colors.black.withValues(alpha: 0.9), ], ), ), @@ -222,17 +213,7 @@ Widget welcomeHome(context) { Positioned( top: statusBarHeight + scaleSize(10), left: scaleSize(15), - child: Builder( - builder: (context) => IconButton( - key: keyDrawerMenu, - icon: Icon( - Icons.menu, - color: Colors.black, - size: scaleSize(35), - ), - onPressed: () => Scaffold.of(context).openDrawer(), - ), - ), + child: IconHomeSettings(), ), Align( child: Image(image: const AssetImage('assets/home/header.png'), height: scaleSize(165)), @@ -273,7 +254,7 @@ Widget welcomeHome(context) { end: Alignment.bottomCenter, colors: [ Colors.transparent, - Colors.black.withOpacity(0.9), + Colors.black.withValues(alpha: 0.9), ], ), ), @@ -307,16 +288,28 @@ Widget welcomeHome(context) { key: keyOnboardingNewChest, style: ElevatedButton.styleFrom( foregroundColor: Colors.white, - elevation: 4, backgroundColor: orangeC, + elevation: 0, + padding: EdgeInsets.symmetric(vertical: scaleSize(12)), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ).copyWith( + elevation: WidgetStateProperty.resolveWith<double>( + (Set<WidgetState> states) { + if (states.contains(WidgetState.pressed)) return 0; + return 8; + }, + ), + shadowColor: WidgetStateProperty.all( + Colors.black.withValues(alpha: 0.2), + ), ), onPressed: () { Navigator.push( context, MaterialPageRoute( - builder: (context) { - return const OnboardingStepOne(); - }, + builder: (context) => const OnboardingStepOne(), ), ); }, @@ -332,14 +325,29 @@ Widget welcomeHome(context) { height: 60, child: OutlinedButton( key: keyRestoreChest, - style: OutlinedButton.styleFrom(side: BorderSide(width: scaleSize(4), color: orangeC)), + style: OutlinedButton.styleFrom( + side: BorderSide(width: scaleSize(4), color: orangeC), + padding: EdgeInsets.symmetric(vertical: scaleSize(12)), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + backgroundColor: Colors.white.withValues(alpha: 0.1), + ).copyWith( + elevation: WidgetStateProperty.resolveWith<double>( + (Set<WidgetState> states) { + if (states.contains(WidgetState.pressed)) return 0; + return 4; + }, + ), + shadowColor: WidgetStateProperty.all( + Colors.black.withValues(alpha: 0.15), + ), + ), onPressed: () { Navigator.push( context, MaterialPageRoute( - builder: (context) { - return const RestoreChest(); - }, + builder: (context) => const RestoreChest(), ), ); }, diff --git a/lib/screens/myWallets/choose_chest.dart b/lib/screens/myWallets/choose_chest.dart index 04275b2f23e784a47c0a382633fc051a8635a44e..fa1b7d9b5c1cdbe9818fbaa2bcae8d7daba972dd 100644 --- a/lib/screens/myWallets/choose_chest.dart +++ b/lib/screens/myWallets/choose_chest.dart @@ -86,12 +86,10 @@ class _ChooseChestState extends State<ChooseChest> { vertical: 8.0, horizontal: 4.0), decoration: BoxDecoration( shape: BoxShape.circle, - color: - (Theme.of(context).brightness == Brightness.dark - ? Colors.white - : Colors.black) - .withOpacity( - currentChest == entry.key ? 0.9 : 0.4)), + color: (Theme.of(context).brightness == Brightness.dark + ? Colors.white + : Colors.black) + .withValues(alpha: currentChest == entry.key ? 0.9 : 0.4)), ), ); }).toList(), diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart index 6359c3c4478ac820eeb130a56a6894e4424f01e5..d1d7d3df22122c0150bf4b477153b2568da6077a 100644 --- a/lib/screens/myWallets/restore_chest.dart +++ b/lib/screens/myWallets/restore_chest.dart @@ -45,34 +45,27 @@ class RestoreChest extends StatelessWidget { bubbleSpeak('toRestoreEnterMnemonic'.tr()), ScaledSizedBox(height: isTall ? 20 : 5), Column(children: <Widget>[ - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: <Widget>[ - arrayCell(context, genW.cellController0), - arrayCell(context, genW.cellController1), - arrayCell(context, genW.cellController2), - arrayCell(context, genW.cellController3), - ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ + arrayCell(context, genW.cellController0), + arrayCell(context, genW.cellController1), + arrayCell(context, genW.cellController2), + arrayCell(context, genW.cellController3), + ]), ScaledSizedBox(height: isTall ? 10 : 3), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: <Widget>[ - arrayCell(context, genW.cellController4), - arrayCell(context, genW.cellController5), - arrayCell(context, genW.cellController6), - arrayCell(context, genW.cellController7), - ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ + arrayCell(context, genW.cellController4), + arrayCell(context, genW.cellController5), + arrayCell(context, genW.cellController6), + arrayCell(context, genW.cellController7), + ]), ScaledSizedBox(height: isTall ? 10 : 3), - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: <Widget>[ - arrayCell(context, genW.cellController8), - arrayCell(context, genW.cellController9), - arrayCell(context, genW.cellController10), - arrayCell(context, genW.cellController11), - ]), + Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ + arrayCell(context, genW.cellController8), + arrayCell(context, genW.cellController9), + arrayCell(context, genW.cellController10), + arrayCell(context, genW.cellController11), + ]), ]), - // const Spacer(), if (genW.isSentenceComplete(context)) Expanded( child: Align( @@ -84,21 +77,30 @@ class RestoreChest extends StatelessWidget { key: keyGoNext, style: ElevatedButton.styleFrom( foregroundColor: Colors.white, - elevation: 4, backgroundColor: orangeC, + elevation: 0, + padding: EdgeInsets.symmetric(vertical: scaleSize(12)), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ).copyWith( + elevation: WidgetStateProperty.resolveWith<double>( + (Set<WidgetState> states) { + if (states.contains(WidgetState.pressed)) return 0; + return 8; + }, + ), + shadowColor: WidgetStateProperty.all( + Colors.black.withValues(alpha: 0.2), + ), ), onPressed: () async { - if (await sub - .isMnemonicValid(genW.generatedMnemonic!)) { + if (await sub.isMnemonicValid(genW.generatedMnemonic!)) { genW.resetImportView(); await Navigator.push( context, FaderTransition( - page: skipIntro - ? const OnboardingStepNine( - scanDerivation: true) - : const OnboardingStepSeven( - scanDerivation: true), + page: skipIntro ? const OnboardingStepNine(scanDerivation: true) : const OnboardingStepSeven(scanDerivation: true), isFast: true), ); } else { @@ -107,27 +109,40 @@ class RestoreChest extends StatelessWidget { }, child: Text( 'restoreThisChest'.tr(), - style: scaledTextStyle( - fontSize: 18, - fontWeight: FontWeight.w600, - color: Colors.white), + style: scaledTextStyle(fontSize: 18, fontWeight: FontWeight.w600, color: Colors.white), ), ), ), - // SizedBox(height: isTall ? 80 : 80), )) else Column(children: [ ScaledSizedBox(height: 20), ScaledSizedBox( - width: 210, - height: 55, + width: 180, + height: 50, child: ElevatedButton( key: keyPastMnemonic, style: ElevatedButton.styleFrom( foregroundColor: Colors.black, - elevation: 4, backgroundColor: yellowC, + elevation: 0, + padding: EdgeInsets.symmetric( + vertical: scaleSize(8), + horizontal: scaleSize(16), + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ).copyWith( + elevation: WidgetStateProperty.resolveWith<double>( + (Set<WidgetState> states) { + if (states.contains(WidgetState.pressed)) return 0; + return 4; + }, + ), + shadowColor: WidgetStateProperty.all( + Colors.black.withValues(alpha: 0.15), + ), ), onPressed: () { genW.pasteMnemonic(context); @@ -137,13 +152,17 @@ class RestoreChest extends StatelessWidget { children: [ Icon( Icons.content_paste_go, - size: scaleSize(28), + size: scaleSize(24), + color: Colors.black.withValues(alpha: 0.7), ), Text( 'pasteFromClipboard'.tr(), textAlign: TextAlign.center, style: scaledTextStyle( - fontSize: 15, fontWeight: FontWeight.w400), + fontSize: 15, + fontWeight: FontWeight.w400, + height: 1.2, + ), ), ], )), @@ -169,37 +188,33 @@ class RestoreChest extends StatelessWidget { text, key: keyBubbleSpeak, textAlign: TextAlign.justify, - style: scaledTextStyle( - color: Colors.black, fontSize: 16, fontWeight: FontWeight.w400), + style: scaledTextStyle(color: Colors.black, fontSize: 16, fontWeight: FontWeight.w400), ), ); } - Widget arrayCell(BuildContext context, final cellCtl) { - final generateWalletProvider = - Provider.of<GenerateWalletsProvider>(context); + Widget arrayCell(BuildContext context, TextEditingController cellCtl) { + final generateWalletProvider = Provider.of<GenerateWalletsProvider>(context); return Container( width: scaleSize(87), height: scaleSize(37), - // ), decoration: BoxDecoration( border: Border.all(color: Colors.grey), color: Colors.white, borderRadius: BorderRadius.circular(3), ), - // child: RawKeyboardListener( - // focusNode: FocusNode(), // or FocusNode() - // onKey: (event) { - // if (event.logicalKey == LogicalKeyboardKey.space) { - // FocusScope.of(context).nextFocus(); - // } - // }, - child: TextField( autofocus: true, controller: cellCtl, textInputAction: TextInputAction.next, + decoration: InputDecoration( + border: InputBorder.none, + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: orangeC), + ), + contentPadding: EdgeInsets.zero, + ), onChanged: (v) { if (v.contains(' ')) { cellCtl.text = cellCtl.text.replaceAll(' ', ''); @@ -224,8 +239,7 @@ class RestoreChest extends StatelessWidget { builder: (BuildContext context) { return AlertDialog( title: const Text('Phrase incorrecte'), - content: const Text( - 'Votre phrase de restauration semble incorrecte, les mots ne sont pas dans le bon ordre.\nVeuillez la corriger.'), + content: const Text('Votre phrase de restauration semble incorrecte, les mots ne sont pas dans le bon ordre.\nVeuillez la corriger.'), actions: <Widget>[ TextButton( child: const Text("OK"), diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index f83611c8280c0d4eadab22106d08d2f9ee4fb656..7066cbb70d8bfaba1df5b323fb7ec4bf2d9b2319 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -117,10 +117,18 @@ class WalletOptions extends StatelessWidget { color: Colors.white, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), - blurRadius: 10, + // Soft ambient shadow + color: Colors.black.withValues(alpha: 0.03), + blurRadius: 8, + spreadRadius: 2, offset: const Offset(0, 2), ), + BoxShadow( + // Sharper direct shadow + color: Colors.black.withValues(alpha: 0.05), + blurRadius: 4, + offset: const Offset(0, 1), + ), ], ), child: ClipOval( @@ -178,7 +186,7 @@ class WalletOptions extends StatelessWidget { Image.asset( 'assets/walletOptions/clock.png', height: scaleSize(24), - color: const Color(0xFF4A90E2).withOpacity(0.8), + color: const Color(0xFF4A90E2).withValues(alpha: 0.8), ), ScaledSizedBox(width: 16), Text( @@ -341,7 +349,7 @@ class WalletOptions extends StatelessWidget { Icon( Icons.check_circle_outline, size: scaleSize(24), - color: walletProvider.isDefaultWallet ? Colors.grey[400] : const Color(0xFF4CAF50).withOpacity(0.8), + color: walletProvider.isDefaultWallet ? Colors.grey[400] : const Color(0xFF4CAF50).withValues(alpha: 0.8), ), ScaledSizedBox(width: 16), Text( @@ -444,7 +452,7 @@ Widget aloneWalletOptions() { Icon( Icons.add_circle_outline, size: scaleSize(24), - color: sub.nodeConnected ? Color(0xFF4CAF50).withOpacity(0.8) : Colors.grey[400], + color: sub.nodeConnected ? Color(0xFF4CAF50).withValues(alpha: 0.8) : Colors.grey[400], ), ScaledSizedBox(width: 16), Text( diff --git a/lib/screens/onBoarding/11_congratulations.dart b/lib/screens/onBoarding/11_congratulations.dart index 2818b87092ceb86c7c1b1ce65577750cfcb1743e..bfb919c92352666ce5dbdc5010a0a9a71a9c445a 100644 --- a/lib/screens/onBoarding/11_congratulations.dart +++ b/lib/screens/onBoarding/11_congratulations.dart @@ -15,8 +15,7 @@ class OnboardingStepEleven extends StatelessWidget { @override Widget build(BuildContext context) { - final conffetiController = - ConfettiController(duration: const Duration(milliseconds: 500)); + final conffetiController = ConfettiController(duration: const Duration(milliseconds: 500)); conffetiController.play(); return PopScope( canPop: false, @@ -27,17 +26,14 @@ class OnboardingStepEleven extends StatelessWidget { child: Stack(children: [ Column(children: <Widget>[ ScaledSizedBox(height: isTall ? 25 : 5), - BuildText( - text: "yourChestAndWalletWereCreatedSuccessfully".tr()), + BuildText(text: "yourChestAndWalletWereCreatedSuccessfully".tr()), ScaledSizedBox(height: isTall ? 15 : 5), Image.asset( 'assets/onBoarding/gecko-clin.gif', height: scaleSize(isTall ? 330 : 280), ), Expanded( - child: Align( - alignment: Alignment.bottomCenter, - child: finishButton(context)), + child: Align(alignment: Alignment.bottomCenter, child: finishButton(context)), ), ScaledSizedBox(height: isTall ? 40 : 5), ]), @@ -45,26 +41,64 @@ class OnboardingStepEleven extends StatelessWidget { alignment: Alignment.topLeft, child: ConfettiWidget( confettiController: conffetiController, - blastDirection: pi * 0.1, - maxBlastForce: 10, - minBlastForce: 1, - emissionFrequency: 0.01, - numberOfParticles: 7, - shouldLoop: false, - gravity: 0.2, + blastDirection: pi * 0.15, + maxBlastForce: 15, + minBlastForce: 3, + emissionFrequency: 0.04, + numberOfParticles: 8, + shouldLoop: true, + gravity: 0.15, + particleDrag: 0.1, + minimumSize: const Size(8, 8), + maximumSize: const Size(12, 12), ), ), Align( alignment: Alignment.topRight, child: ConfettiWidget( confettiController: conffetiController, - blastDirection: pi * 0.9, - maxBlastForce: 10, - minBlastForce: 1, - emissionFrequency: 0.01, - numberOfParticles: 7, - shouldLoop: false, - gravity: 0.2, + blastDirection: pi * 0.85, + maxBlastForce: 15, + minBlastForce: 3, + emissionFrequency: 0.04, + numberOfParticles: 8, + shouldLoop: true, + gravity: 0.15, + particleDrag: 0.1, + minimumSize: const Size(8, 8), + maximumSize: const Size(12, 12), + ), + ), + Align( + alignment: const Alignment(-0.3, -0.2), + child: ConfettiWidget( + confettiController: conffetiController, + blastDirection: pi * 0.3, + maxBlastForce: 15, + minBlastForce: 3, + emissionFrequency: 0.04, + numberOfParticles: 6, + shouldLoop: true, + gravity: 0.15, + particleDrag: 0.1, + minimumSize: const Size(8, 8), + maximumSize: const Size(12, 12), + ), + ), + Align( + alignment: const Alignment(0.3, -0.2), + child: ConfettiWidget( + confettiController: conffetiController, + blastDirection: pi * 0.7, + maxBlastForce: 15, + minBlastForce: 3, + emissionFrequency: 0.04, + numberOfParticles: 6, + shouldLoop: true, + gravity: 0.15, + particleDrag: 0.1, + minimumSize: const Size(8, 8), + maximumSize: const Size(12, 12), ), ), ]), @@ -85,13 +119,11 @@ Widget finishButton(BuildContext context) { backgroundColor: orangeC, ), onPressed: () { - Navigator.pushNamedAndRemoveUntil( - context, '/mywallets', ModalRoute.withName('/')); + Navigator.pushNamedAndRemoveUntil(context, '/mywallets', ModalRoute.withName('/')); }, child: Text( "accessMyChest".tr(), - style: scaledTextStyle( - fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white), + style: scaledTextStyle(fontSize: 20, fontWeight: FontWeight.w600, color: Colors.white), ), ), ); diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart index 24922c5b33e194f73efbfa31b4420cac7de4764d..b5a414a1c66e88805696bce951bacd9d5f4dfd95 100644 --- a/lib/screens/search_result.dart +++ b/lib/screens/search_result.dart @@ -17,8 +17,7 @@ class SearchResultScreen extends StatelessWidget { @override Widget build(BuildContext context) { final searchProvider = Provider.of<SearchProvider>(context, listen: false); - final walletsProfilesClass = - Provider.of<WalletsProfilesProvider>(context, listen: false); + final walletsProfilesClass = Provider.of<WalletsProfilesProvider>(context, listen: false); final duniterIndexer = Provider.of<DuniterIndexer>(context, listen: false); final avatarSize = scaleSize(37); @@ -31,48 +30,30 @@ class SearchResultScreen extends StatelessWidget { child: Stack(children: [ Padding( padding: const EdgeInsets.only(left: 15, right: 10), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: <Widget>[ - ScaledSizedBox(height: 20), - Center( - child: Column( - children: <Widget>[ - Text( - "resultsFor".tr(), - style: scaledTextStyle( - color: Colors.grey[600], fontSize: 15), - ), - Text( - '"${searchProvider.searchController.text}"', - style: scaledTextStyle( - fontStyle: FontStyle.italic, fontSize: 17), - ) - ], + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ + ScaledSizedBox(height: 20), + Center( + child: Column( + children: <Widget>[ + Text( + "resultsFor".tr(), + style: scaledTextStyle(color: Colors.grey[600], fontSize: 15), ), - ), - // ScaledSizedBox(height: 40), - // Text( - // 'Dans mes contacts'.tr(args: [currencyName]), - // style: scaledTextStyle(fontSize: 19), - // ), - // ContactsList( - // myContacts: myContacts, - // avatarSize: avatarSize, - // walletsProfilesClass: walletsProfilesClass, - // duniterIndexer: duniterIndexer), - ScaledSizedBox(height: 22), - Text( - 'inBlockchainResult'.tr(args: [currencyName]), - style: scaledTextStyle(fontSize: 15), - ), - ScaledSizedBox(height: 13), - SearchResult( - searchProvider: searchProvider, - duniterIndexer: duniterIndexer, - avatarSize: avatarSize, - walletsProfilesClass: walletsProfilesClass), - ]), + Text( + '"${searchProvider.searchController.text}"', + style: scaledTextStyle(fontStyle: FontStyle.italic, fontSize: 17), + ) + ], + ), + ), + ScaledSizedBox(height: 22), + Text( + 'inBlockchainResult'.tr(args: [currencyName]), + style: scaledTextStyle(fontSize: 15), + ), + ScaledSizedBox(height: 13), + SearchResult(searchProvider: searchProvider, duniterIndexer: duniterIndexer, avatarSize: avatarSize, walletsProfilesClass: walletsProfilesClass), + ]), ), const OfflineInfo(), ]), diff --git a/lib/screens/transaction_in_progress.dart b/lib/screens/transaction_in_progress.dart index 0a45881aafd28b1c74254cd3004f4bb6190d4a00..3810e4231d076f897e1e728594cbd9391169b42e 100644 --- a/lib/screens/transaction_in_progress.dart +++ b/lib/screens/transaction_in_progress.dart @@ -150,7 +150,7 @@ class _TransactionInProgressState extends State<TransactionInProgress> { padding: EdgeInsets.symmetric(vertical: scaleSize(8)), child: Container( height: 1, - color: Colors.black.withOpacity(0.06), + color: Colors.black.withValues(alpha: 0.06), ), ), Text( diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index 206981ec84394d75057cfb32e66452182c0b05c6..324dd4ccb2600429b8b6d76708a0fc9fd3761e78 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -118,7 +118,7 @@ class WalletViewScreen extends StatelessWidget { shape: BoxShape.circle, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.1), + color: Colors.black.withValues(alpha: 0.1), blurRadius: 4, offset: const Offset(0, 2), ), @@ -162,7 +162,7 @@ class WalletViewScreen extends StatelessWidget { shape: BoxShape.circle, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.15), + color: Colors.black.withValues(alpha: 0.15), blurRadius: 6, offset: const Offset(0, 3), ), diff --git a/lib/widgets/bottom_app_bar.dart b/lib/widgets/bottom_app_bar.dart index 5a1488d4f351c3a39a9212b00255fcceb03c3557..9abe1496714818eac94faa3220fdde4806adc67f 100644 --- a/lib/widgets/bottom_app_bar.dart +++ b/lib/widgets/bottom_app_bar.dart @@ -31,7 +31,7 @@ class GeckoBottomAppBar extends StatelessWidget { color: const Color(0xFFFFFBF2), boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.08), + color: Colors.black.withValues(alpha: 0.08), offset: const Offset(0, -4), blurRadius: 10, ), @@ -104,7 +104,7 @@ class GeckoBottomAppBar extends StatelessWidget { padding: EdgeInsets.all(scaleSize(12)), decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), - color: isSelected ? yellowC.withOpacity(0.5) : Colors.transparent, + color: isSelected ? yellowC.withValues(alpha: 0.5) : Colors.transparent, ), child: icon != null ? Icon( diff --git a/lib/widgets/buttons/add_new_derivation_button.dart b/lib/widgets/buttons/add_new_derivation_button.dart index abad0e2edfeba8bd851eaac7aa0f5bcf37536f17..0e621f350697e7a117dd6f03c13e96276e6d42db 100644 --- a/lib/widgets/buttons/add_new_derivation_button.dart +++ b/lib/widgets/buttons/add_new_derivation_button.dart @@ -26,7 +26,7 @@ class AddNewDerivationButton extends StatelessWidget { color: Colors.white, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), + color: Colors.black.withValues(alpha: 0.05), blurRadius: 10, offset: const Offset(0, 2), ), diff --git a/lib/widgets/buttons/home_buttons.dart b/lib/widgets/buttons/home_buttons.dart index 226ea38f82e916f8976574d2a46252a1be201df0..16826844cf8a8523ebd97e02e1bf343cd0843aa6 100644 --- a/lib/widgets/buttons/home_buttons.dart +++ b/lib/widgets/buttons/home_buttons.dart @@ -29,33 +29,45 @@ class HomeButtons extends StatelessWidget { Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Column(children: <Widget>[ Container( - decoration: const BoxDecoration( + decoration: BoxDecoration( shape: BoxShape.circle, - color: Colors.black, + color: Colors.black.withValues(alpha: 0.1), boxShadow: [ BoxShadow( - blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5) + color: Colors.black.withValues(alpha: 0.2), + blurRadius: 8, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + BoxShadow( + color: Colors.black.withValues(alpha: 0.1), + blurRadius: 1, + offset: const Offset(0, 1), + ), ], ), child: ClipOval( child: Material( color: orangeC, child: InkWell( - key: keyOpenSearch, - child: Padding( - padding: EdgeInsets.all(scaleSize(15)), - child: Image( - image: const AssetImage('assets/home/loupe.png'), - height: scaleSize(58)), + splashColor: Colors.white.withValues(alpha: 0.2), + highlightColor: Colors.white.withValues(alpha: 0.1), + child: Padding( + padding: EdgeInsets.all(scaleSize(15)), + child: Image( + image: const AssetImage('assets/home/loupe.png'), + height: scaleSize(58), ), - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) { - return const SearchScreen(); - }), - ); - }), + ), + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return const SearchScreen(); + }), + ); + }, + ), ), ), ), @@ -64,41 +76,54 @@ class HomeButtons extends StatelessWidget { "searchWallet".tr(), textAlign: TextAlign.center, style: scaledTextStyle( - color: Colors.white, - fontSize: 12.5, - fontWeight: FontWeight.w500), + color: Colors.white, + fontSize: 12.5, + fontWeight: FontWeight.w500, + shadows: [ + Shadow( + color: Colors.black.withValues(alpha: 0.3), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), ) ]), ScaledSizedBox(width: 95), Column(children: <Widget>[ Container( - decoration: const BoxDecoration( + decoration: BoxDecoration( shape: BoxShape.circle, - color: Colors.black, + color: Colors.black.withValues(alpha: 0.1), boxShadow: [ BoxShadow( - blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5) + color: Colors.black.withValues(alpha: 0.2), + blurRadius: 8, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + BoxShadow( + color: Colors.black.withValues(alpha: 0.1), + blurRadius: 1, + offset: const Offset(0, 1), + ), ], ), child: ClipOval( key: keyOpenWalletsHomme, child: Material( - color: homeProvider.isWalletBoxInit - ? orangeC - : Colors.grey[500], // button color + color: homeProvider.isWalletBoxInit ? orangeC : Colors.grey[500], // button color child: InkWell( onTap: !homeProvider.isWalletBoxInit ? null : () async { - WalletData? defaultWallet = - myWalletProvider.getDefaultWallet(); + WalletData? defaultWallet = myWalletProvider.getDefaultWallet(); if (myWalletProvider.pinCode == '') { await Navigator.push( context, MaterialPageRoute( builder: (homeContext) { - return UnlockingWallet( - wallet: defaultWallet); + return UnlockingWallet(wallet: defaultWallet); }, ), ); @@ -107,10 +132,7 @@ class HomeButtons extends StatelessWidget { Navigator.pushNamed(context, '/mywallets'); }, child: Padding( - padding: EdgeInsets.all(scaleSize(14.5)), - child: Image( - image: const AssetImage('assets/home/wallet.png'), - height: scaleSize(61)))), + padding: EdgeInsets.all(scaleSize(14.5)), child: Image(image: const AssetImage('assets/home/wallet.png'), height: scaleSize(61)))), ), ), ), @@ -118,25 +140,30 @@ class HomeButtons extends StatelessWidget { Text( "manageWallets".tr(), textAlign: TextAlign.center, - style: scaledTextStyle( - color: Colors.white, - fontSize: 12.5, - fontWeight: FontWeight.w500), + style: scaledTextStyle(color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.w500), ) ]) ]), Padding( padding: EdgeInsets.only(top: scaleSize(30)), - child: - Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ + child: Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Column(children: <Widget>[ Container( - decoration: const BoxDecoration( + decoration: BoxDecoration( shape: BoxShape.circle, - color: Colors.black, + color: Colors.black.withValues(alpha: 0.1), boxShadow: [ BoxShadow( - blurRadius: 2, offset: Offset(1, 1.5), spreadRadius: 0.5) + color: Colors.black.withValues(alpha: 0.2), + blurRadius: 8, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + BoxShadow( + color: Colors.black.withValues(alpha: 0.1), + blurRadius: 1, + offset: const Offset(0, 1), + ), ], ), child: ClipOval( @@ -144,10 +171,7 @@ class HomeButtons extends StatelessWidget { color: orangeC, // button color child: InkWell( child: Padding( - padding: EdgeInsets.all(scaleSize(14)), - child: Image( - image: const AssetImage('assets/home/qrcode.png'), - height: scaleSize(62))), + padding: EdgeInsets.all(scaleSize(14)), child: Image(image: const AssetImage('assets/home/qrcode.png'), height: scaleSize(62))), onTap: () async { await historyProvider.scan(context); }), @@ -158,10 +182,7 @@ class HomeButtons extends StatelessWidget { Text( "scanQRCode".tr(), textAlign: TextAlign.center, - style: scaledTextStyle( - color: Colors.white, - fontSize: 12.5, - fontWeight: FontWeight.w500), + style: scaledTextStyle(color: Colors.white, fontSize: 12.5, fontWeight: FontWeight.w500), ) ]) ]), diff --git a/lib/widgets/buttons/home_settings_button.dart b/lib/widgets/buttons/home_settings_button.dart new file mode 100644 index 0000000000000000000000000000000000000000..69fb0616f42885605eacecc26e9b7aeca716f1a7 --- /dev/null +++ b/lib/widgets/buttons/home_settings_button.dart @@ -0,0 +1,48 @@ +import 'package:flutter/material.dart'; +import 'package:gecko/models/scale_functions.dart'; +import 'package:gecko/models/widgets_keys.dart'; + +class IconHomeSettings extends StatelessWidget { + const IconHomeSettings({ + super.key, + }); + + @override + Widget build(BuildContext context) { + const shadowColor = Colors.grey; + const shadowBlurRadius = 0.8; + return Builder( + builder: (context) => IconButton( + key: keyDrawerMenu, + icon: Icon( + Icons.menu, + color: Colors.black, + size: scaleSize(36), + shadows: [ + const Shadow( + color: shadowColor, + blurRadius: shadowBlurRadius, + offset: Offset(0.8, 0), + ), + const Shadow( + color: shadowColor, + blurRadius: shadowBlurRadius, + offset: Offset(-0.8, 0), + ), + const Shadow( + color: shadowColor, + blurRadius: shadowBlurRadius, + offset: Offset(0, 0.8), + ), + const Shadow( + color: shadowColor, + blurRadius: shadowBlurRadius, + offset: Offset(0, -0.8), + ), + ], + ), + onPressed: () => Scaffold.of(context).openDrawer(), + ), + ); + } +} diff --git a/lib/widgets/buttons/manage_membership_button.dart b/lib/widgets/buttons/manage_membership_button.dart index 6b1e16441ae4ce4a58bc403cf8a8c2006617f6f4..dd68d3c8bf7ceb3e8aaf76680ed0a68662b6fef7 100644 --- a/lib/widgets/buttons/manage_membership_button.dart +++ b/lib/widgets/buttons/manage_membership_button.dart @@ -26,7 +26,7 @@ class ManageMembershipButton extends StatelessWidget { Icon( Icons.workspace_premium_outlined, size: scaleSize(24), - color: const Color(0xFFFF9800).withOpacity(0.8), + color: const Color(0xFFFF9800).withValues(alpha: 0.8), ), ScaledSizedBox(width: 16), Text( diff --git a/lib/widgets/certify/wait_to_cert.dart b/lib/widgets/certify/wait_to_cert.dart index 5dad74868657f9ee9a77d101649c47e70c668ed3..fbdade2a7da89dd6b900f39a56a0544c35e64c05 100644 --- a/lib/widgets/certify/wait_to_cert.dart +++ b/lib/widgets/certify/wait_to_cert.dart @@ -15,11 +15,13 @@ class WaitToCertWidget extends StatelessWidget { return Column(children: <Widget>[ ScaledSizedBox( height: buttonSize, - child: Image( - image: const AssetImage('assets/gecko_certify.png'), - color: backgroundColor, - colorBlendMode: BlendMode.saturation, - opacity: const AlwaysStoppedAnimation<double>(0.5), + child: Opacity( + opacity: 0.4, + child: Image( + image: const AssetImage('assets/gecko_certify.png'), + color: backgroundColor, + colorBlendMode: BlendMode.saturation, + ), ), ), Text( diff --git a/lib/widgets/payment_popup.dart b/lib/widgets/payment_popup.dart index d2440c1ee8effcbd936b2be947bd975c025b42b6..1783cfbc2b7ca86e2d4d495619666a0361e58471 100644 --- a/lib/widgets/payment_popup.dart +++ b/lib/widgets/payment_popup.dart @@ -379,7 +379,7 @@ void paymentPopup(BuildContext context, String toAddress, String? username) { hintText: 'optionalComment'.tr(), hintStyle: TextStyle(color: Colors.grey[400]), filled: true, - fillColor: Colors.white.withOpacity(0.5), + fillColor: Colors.white.withValues(alpha: 0.5), contentPadding: EdgeInsets.symmetric( horizontal: scaleSize(8), vertical: scaleSize(4), diff --git a/lib/widgets/transaction_status_icon.dart b/lib/widgets/transaction_status_icon.dart index c759b19b6078f61b49203748ad6d7291032a8c73..446dc36d0c61827f726ac30604140513f0c694e7 100644 --- a/lib/widgets/transaction_status_icon.dart +++ b/lib/widgets/transaction_status_icon.dart @@ -4,41 +4,29 @@ import 'package:gecko/widgets/commons/loading.dart'; import 'package:gecko/widgets/transaction_status.dart'; class TransactionStatusIcon extends StatelessWidget { - const TransactionStatusIcon(this.status, - {super.key, this.size = 32, this.stroke = 3}); + const TransactionStatusIcon(this.status, {super.key, this.size = 32, this.stroke = 3}); final TransactionStatus status; final double size; final double stroke; @override - Widget build(BuildContext context) { - switch (status) { - case TransactionStatus.sending: - case TransactionStatus.propagation: - case TransactionStatus.validating: - return Loading(size: size, stroke: stroke); - case TransactionStatus.success: - return Icon( - Icons.done, - size: scaleSize(size), - color: Colors.green, - ); - case TransactionStatus.finalized: - return Icon( - Icons.done_all, - size: scaleSize(size), - color: Colors.green, - ); - case TransactionStatus.failed: - case TransactionStatus.timeout: - return Icon( - Icons.close, - size: scaleSize(size), - color: Colors.red, - ); - case TransactionStatus.none: - default: - return ScaledSizedBox(height: size, width: size); - } - } + Widget build(BuildContext context) => switch (status) { + TransactionStatus.sending || TransactionStatus.propagation || TransactionStatus.validating => Loading(size: size, stroke: stroke), + TransactionStatus.success => Icon( + Icons.done, + size: scaleSize(size), + color: Colors.green, + ), + TransactionStatus.finalized => Icon( + Icons.done_all, + size: scaleSize(size), + color: Colors.green, + ), + TransactionStatus.failed || TransactionStatus.timeout => Icon( + Icons.close, + size: scaleSize(size), + color: Colors.red, + ), + TransactionStatus.none => ScaledSizedBox(height: size, width: size) + }; } diff --git a/lib/widgets/transaction_tile.dart b/lib/widgets/transaction_tile.dart index 3d48015e550f6f73111f7f8dbd98d47d0b32f336..989ec0ed43359b879240a6fe415baf9c396b6b18 100644 --- a/lib/widgets/transaction_tile.dart +++ b/lib/widgets/transaction_tile.dart @@ -43,10 +43,18 @@ class TransactionTile extends StatelessWidget { borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), - blurRadius: 4, + // Soft ambient shadow + color: Colors.black.withValues(alpha: 0.04), + blurRadius: 6, + spreadRadius: 2, offset: const Offset(0, 2), ), + BoxShadow( + // Sharper direct shadow + color: Colors.black.withValues(alpha: 0.08), + blurRadius: 1, + offset: const Offset(0, 1), + ), ], ), child: ListTile( @@ -59,7 +67,7 @@ class TransactionTile extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: Colors.grey.withOpacity(0.2), + color: Colors.grey.withValues(alpha: 0.6), width: 1, ), ), diff --git a/lib/widgets/wallet_header.dart b/lib/widgets/wallet_header.dart index 46dcec4cd3f2f092fa3a6f44fcc8cf70cddf6af9..9f600235e67b1b0863853c22fa69ee2c4c305351 100644 --- a/lib/widgets/wallet_header.dart +++ b/lib/widgets/wallet_header.dart @@ -56,7 +56,7 @@ class WalletHeader extends StatelessWidget { color: Colors.white, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), + color: Colors.black.withValues(alpha: 0.1), blurRadius: 10, offset: const Offset(0, 2), ), @@ -113,7 +113,7 @@ class WalletHeader extends StatelessWidget { icon: Icon( Icons.copy, size: scaleSize(20), - color: orangeC.withOpacity(0.8), + color: orangeC.withValues(alpha: 0.5), ), onPressed: () { Clipboard.setData(ClipboardData(text: address)); @@ -166,7 +166,7 @@ class WalletHeader extends StatelessWidget { Icon( Icons.chevron_right, size: scaleSize(15), - color: orangeC.withOpacity(0.8), + color: orangeC.withValues(alpha: 0.5), ), ], ), diff --git a/lib/widgets/wallet_tile.dart b/lib/widgets/wallet_tile.dart index 6bc49334be5753a052ec1be4ba0bc7b3e63567bc..ab7ff3e9693e5a910f574285ab98ec556861e6c4 100644 --- a/lib/widgets/wallet_tile.dart +++ b/lib/widgets/wallet_tile.dart @@ -46,7 +46,7 @@ class WalletTile extends StatelessWidget { color: Colors.white, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), + color: Colors.black.withValues(alpha: 0.05), blurRadius: 10, offset: const Offset(0, 2), ), @@ -70,7 +70,7 @@ class WalletTile extends StatelessWidget { end: Alignment.bottomCenter, colors: [ const Color(0xFFFFFFF0), - yellowC.withOpacity(0.3), + yellowC.withValues(alpha: 0.3), ], ), ), @@ -100,7 +100,7 @@ class WalletTile extends StatelessWidget { ), Container( decoration: BoxDecoration( - color: isDefault ? orangeC.withOpacity(0.9) : yellowC.withOpacity(0.9), + color: isDefault ? orangeC.withValues(alpha: 0.9) : yellowC.withValues(alpha: 0.9), borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(12), bottomRight: Radius.circular(12), diff --git a/lib/widgets/wallet_tile_membre.dart b/lib/widgets/wallet_tile_membre.dart index bbacb916481a23bb01bfd928a1fac64f60aaa611..ca90ff2c272b2484cef92bf3ea26a834d4ae2496 100644 --- a/lib/widgets/wallet_tile_membre.dart +++ b/lib/widgets/wallet_tile_membre.dart @@ -45,7 +45,7 @@ class WalletTileMembre extends StatelessWidget { color: Colors.white, boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.05), + color: Colors.black.withValues(alpha: 0.05), blurRadius: 10, offset: const Offset(0, 2), ), @@ -71,7 +71,7 @@ class WalletTileMembre extends StatelessWidget { end: Alignment.bottomCenter, colors: [ const Color(0xFFFFFFF0), - yellowC.withOpacity(0.3), + yellowC.withValues(alpha: 0.3), ], ), ), @@ -103,7 +103,7 @@ class WalletTileMembre extends StatelessWidget { top: scaleSize(16), child: Image.asset( 'assets/medal.png', - color: orangeC.withOpacity(0.8), + color: orangeC.withValues(alpha: 0.8), height: scaleSize(28), ), ), @@ -112,7 +112,7 @@ class WalletTileMembre extends StatelessWidget { ), Container( decoration: BoxDecoration( - color: isDefault ? orangeC.withOpacity(0.9) : yellowC.withOpacity(0.9), + color: isDefault ? orangeC.withValues(alpha: 0.9) : yellowC.withValues(alpha: 0.9), borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(12), bottomRight: Radius.circular(12), diff --git a/pubspec.lock b/pubspec.lock index a795268aed9824e9e923b28fe47e465e04f4dd0b..7687bced2a1de17898f7cec3fcff9fa3b8adaccf 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,15 +5,15 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _macros: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" accordion: dependency: "direct main" description: @@ -26,10 +26,10 @@ packages: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" archive: dependency: transitive description: @@ -122,50 +122,50 @@ packages: dependency: transitive description: name: build - sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" build_config: dependency: transitive description: name: build_config - sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" build_daemon: dependency: transitive description: name: build_daemon - sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + sha256: "294a2edaf4814a378725bfe6358210196f5ea37af89ecd81bfa32960113d4948" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.3" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + sha256: "99d3980049739a985cf9b21f30881f46db3ebc62c5b8d5e60e27440876b1ba1e" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + sha256: "74691599a5bc750dc96a6b4bfd48f7d9d66453eab04c7f4063134800d6a5c573" url: "https://pub.dev" source: hosted - version: "2.4.13" + version: "2.4.14" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021" url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "8.0.0" built_collection: dependency: transitive description: @@ -178,10 +178,10 @@ packages: dependency: transitive description: name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + sha256: "28a712df2576b63c6c005c465989a348604960c0958d28be5303ba9baa841ac2" url: "https://pub.dev" source: hosted - version: "8.9.2" + version: "8.9.3" carousel_slider: dependency: "direct main" description: @@ -226,10 +226,10 @@ packages: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" confetti: dependency: "direct main" description: @@ -242,10 +242,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "876849631b0c7dc20f8b471a2a03142841b482438e3b707955464f5ffca3e4c3" + sha256: e0817759ec6d2d8e57eb234e6e57d2173931367a865850c7acea40d4b4f9c27d url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.1.1" connectivity_plus_platform_interface: dependency: transitive description: @@ -554,10 +554,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398" + sha256: "615a505aef59b151b46bbeef55b36ce2b6ed299d160c51d84281946f0aa0ce0e" url: "https://pub.dev" source: hosted - version: "2.0.23" + version: "2.0.24" flutter_secure_storage: dependency: transitive description: @@ -721,18 +721,18 @@ packages: dependency: transitive description: name: graphql - sha256: b90f3faa525fed0d8b57f528af913cf1363e1d77f287004d3a15ce699fa866ee + sha256: c715080993c8481087ce77b7929224222551823769fb150f5816f9bbbee9e589 url: "https://pub.dev" source: hosted - version: "5.2.0-beta.9" + version: "5.2.0-beta.10" graphql_flutter: dependency: "direct main" description: name: graphql_flutter - sha256: "2423b394465e7d83a5e708cd2f5b37b54e7ae9900abfbf0948d512fa46961acb" + sha256: fad0c3bad7e4aeec9a2eee11de8e4d305e0fbce260a24351b6c688911aea5fc8 url: "https://pub.dev" source: hosted - version: "5.2.0-beta.7" + version: "5.2.0-beta.8" graphs: dependency: transitive description: @@ -785,18 +785,18 @@ packages: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "76d306a1c3afb33fe82e2bbacad62a61f409b5634c915fceb0d799de1a913360" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.1" icons_launcher: dependency: "direct dev" description: @@ -817,10 +817,10 @@ packages: dependency: "direct main" description: name: image_cropper - sha256: fe37d9a129411486e0d93089b61bd326d05b89e78ad4981de54b560725bf5bd5 + sha256: "266760ed426d7121f0ada02c672bfe5c1b5c714e908328716aee756f045709dc" url: "https://pub.dev" source: hosted - version: "8.0.2" + version: "8.1.0" image_cropper_for_web: dependency: transitive description: @@ -849,10 +849,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e + sha256: aa6f1280b670861ac45220cc95adc59bb6ae130259d36f980ccb62220dc5e59f url: "https://pub.dev" source: hosted - version: "0.8.12+18" + version: "0.8.12+19" image_picker_for_web: dependency: transitive description: @@ -918,10 +918,10 @@ packages: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" jdenticon_dart: dependency: "direct main" description: @@ -958,18 +958,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -982,10 +982,10 @@ packages: dependency: transitive description: name: lints - sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413" + sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7 url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.1.1" logger: dependency: "direct main" description: @@ -1006,10 +1006,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" markdown: dependency: transitive description: @@ -1054,10 +1054,10 @@ packages: dependency: transitive description: name: mobx - sha256: "1f01a429529ac55e5e80c0fcad62c60112fb91df3dec11a9113d71cf0c2e2c4c" + sha256: bf1a90e5bcfd2851fc6984e20eef69557c65d9e4d0a88f5be4cf72c9819ce6b0 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.5.0" nested: dependency: transitive description: @@ -1078,34 +1078,34 @@ packages: dependency: transitive description: name: normalize - sha256: "8a60e37de5b608eeaf9b839273370c71ebba445e9f73b08eee7725e0d92dbc43" + sha256: f78bf0552b9640c76369253f0b8fdabad4f3fbfc06bdae9359e71bee9a5b071b url: "https://pub.dev" source: hosted - version: "0.8.2+1" + version: "0.9.1" package_config: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" package_info_plus: dependency: "direct main" description: name: package_info_plus - sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce + sha256: "70c421fe9d9cc1a9a7f3b05ae56befd469fe4f8daa3b484823141a55442d858d" url: "https://pub.dev" source: hosted - version: "8.1.1" + version: "8.1.2" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface - sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + sha256: a5ef9986efc7bf772f2696183a3992615baa76c1ffb1189318dd8803778fb05b url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" path: dependency: transitive description: @@ -1134,18 +1134,18 @@ packages: dependency: transitive description: name: path_provider_android - sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7" + sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" url: "https://pub.dev" source: hosted - version: "2.2.14" + version: "2.2.15" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -1335,18 +1335,18 @@ packages: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" qr: dependency: transitive description: @@ -1383,10 +1383,10 @@ packages: dependency: "direct main" description: name: screen_brightness - sha256: a43fdbccd5b90044f68057412dde7715cd7499a4c24f5d5da7e01ed4cf41e0af + sha256: a9a98666045ad4ea0d82bca09fe5f007b8440e315075dc948c1507a9b72ee41f url: "https://pub.dev" source: hosted - version: "2.0.0+2" + version: "2.0.1" screen_brightness_android: dependency: transitive description: @@ -1423,10 +1423,10 @@ packages: dependency: transitive description: name: screen_brightness_windows - sha256: fa97ae838c42f762f04d2d70adb3d957350d6a84e3598ec800e269e7c466eedd + sha256: "5edbfb1dcaedf960f6858efac8ca45d6c18faae17df86e2c03137d3a563ea155" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" scroll_to_index: dependency: transitive description: @@ -1447,42 +1447,42 @@ packages: dependency: transitive description: name: sentry - sha256: "2440763ae96fa8fd1bcdfc224f5232e1b7a09af76a72f4e626ee313a261faf6f" + sha256: "576ad83415102ba2060142a6701611abc6e67a55af1d7ab339cedd3ba1b0f84c" url: "https://pub.dev" source: hosted - version: "8.10.1" + version: "8.12.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "3b30038b3b9303540a8b2c8b1c8f0bb93a207f8e4b25691c59d969ddeb4734fd" + sha256: dc3761e8659839cc67a18432d9f12e5531affb7ff68e196dbb56846909b5dfdc url: "https://pub.dev" source: hosted - version: "8.10.1" + version: "8.12.0" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" + sha256: "3c7e73920c694a436afaf65ab60ce3453d91f84208d761fbd83fc21182134d93" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.4" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab" + sha256: "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -1519,10 +1519,10 @@ packages: dependency: transitive description: name: shelf - sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" shelf_web_socket: dependency: transitive description: @@ -1535,7 +1535,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_gen: dependency: transitive description: @@ -1548,10 +1548,10 @@ packages: dependency: transitive description: name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" source_span: dependency: transitive description: @@ -1572,10 +1572,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -1588,18 +1588,18 @@ packages: dependency: transitive description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" sync_http: dependency: transitive description: @@ -1620,18 +1620,18 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" timing: dependency: transitive description: name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" truncate: dependency: "direct main" description: @@ -1692,10 +1692,10 @@ packages: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: @@ -1708,10 +1708,10 @@ packages: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1780,10 +1780,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" wallet: dependency: transitive description: @@ -1796,10 +1796,10 @@ packages: dependency: transitive description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web: dependency: transitive description: @@ -1816,22 +1816,30 @@ packages: url: "https://pub.dev" source: hosted version: "2.7.3" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "3.0.1" webdriver: dependency: transitive description: name: webdriver - sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" + sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.4" webview_flutter: dependency: transitive description: @@ -1844,10 +1852,10 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: "285cedfd9441267f6cca8843458620b5fda1af75b04f5818d0441acda5d7df19" + sha256: "3d535126f7244871542b2f0b0fcf94629c9a14883250461f9abe1a6644c1c379" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.0" webview_flutter_platform_interface: dependency: transitive description: @@ -1892,10 +1900,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: - dart: ">=3.5.3 <4.0.0" + dart: ">=3.6.0 <4.0.0" flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 27885c5f7f50c0d84df6827c21eaa8c3b8c732b3..39a29733ff6c3921656374d7ffc65395aedf8300 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: gecko description: Pay with G1. publish_to: "none" -version: 0.1.18+90 +version: 0.1.19+91 environment: sdk: ^3.5.3 @@ -12,7 +12,7 @@ dependencies: sdk: flutter bubble: ^1.2.1 carousel_slider: ^5.0.0 - graphql_flutter: ^5.2.0-beta.7 + graphql_flutter: ^5.2.0-beta.8 hive_flutter: ^1.1.0 image_picker: ^1.1.2 jdenticon_dart: ^2.0.0 @@ -26,12 +26,12 @@ dependencies: barcode_scan2: ^4.3.3 qr_flutter: ^4.1.0 responsive_framework: ^1.5.1 - sentry_flutter: ^8.10.1 + sentry_flutter: ^8.12.0 truncate: ^3.0.1 unorm_dart: ^0.3.0 dio: ^5.7.0 durt: ^0.1.9 - package_info_plus: ^8.1.1 + package_info_plus: ^8.1.2 polkawallet_sdk: #^0.5.2 # path: ../substrate_sdk git: @@ -41,8 +41,8 @@ dependencies: # # ref: gecko-fixes-4 ref: 04ebfd0af1781d336126498534e3b656355d5927 dots_indicator: ^3.0.0 - connectivity_plus: ^6.1.0 - image_cropper: ^8.0.2 + connectivity_plus: ^6.1.1 + image_cropper: ^8.1.0 easy_localization: ^3.0.7 flutter_markdown: ^0.7.4+3 pointycastle: ^3.9.1 @@ -55,7 +55,7 @@ dependencies: confetti: ^0.8.0 url_launcher: ^6.3.1 crypto: ^3.0.6 - screen_brightness: ^2.0.0+2 + screen_brightness: ^2.0.1 uuid: ^4.5.1 fade_and_translate: ^0.1.3 # durt2: @@ -68,7 +68,7 @@ dependency_overrides: dev_dependencies: icons_launcher: ^3.0.0 - build_runner: ^2.4.13 + build_runner: ^2.4.14 hive_generator: ^2.0.1 flutter_lints: ^5.0.0 flutter_test: