diff --git a/lib/pages/monkey/monkey_view.dart b/lib/pages/monkey/monkey_view.dart index 85ee8d5f2..ebc18843c 100644 --- a/lib/pages/monkey/monkey_view.dart +++ b/lib/pages/monkey/monkey_view.dart @@ -66,6 +66,8 @@ class _MonkeyViewState extends ConsumerState { } } + String _monkeyPath = ""; + Future _saveMonKeyToFile({ required Uint8List bytes, bool isPNG = false, @@ -96,6 +98,7 @@ class _MonkeyViewState extends ConsumerState { } await imgFile.writeAsBytes(bytes); + _monkeyPath = filePath; } @override @@ -369,7 +372,8 @@ class _MonkeyViewState extends ConsumerState { if (!didError && mounted) { await showFloatingFlushBar( type: FlushBarType.success, - message: "SVG MonKey image saved", + message: + "SVG MonKey image saved to $_monkeyPath", context: context, ); } @@ -421,7 +425,8 @@ class _MonkeyViewState extends ConsumerState { if (!didError && mounted) { await showFloatingFlushBar( type: FlushBarType.success, - message: "PNG MonKey image saved", + message: + "PNG MonKey image saved to $_monkeyPath", context: context, ); } diff --git a/lib/pages/ordinals/ordinal_details_view.dart b/lib/pages/ordinals/ordinal_details_view.dart index 2057c91db..041401767 100644 --- a/lib/pages/ordinals/ordinal_details_view.dart +++ b/lib/pages/ordinals/ordinal_details_view.dart @@ -229,7 +229,7 @@ class _OrdinalImageGroup extends StatelessWidget { static const _spacing = 12.0; - Future _savePngToFile() async { + Future _savePngToFile() async { final response = await get(Uri.parse(ordinal.content)); if (response.statusCode != 200) { @@ -257,6 +257,7 @@ class _OrdinalImageGroup extends StatelessWidget { } await imgFile.writeAsBytes(bytes); + return filePath; } @override @@ -309,11 +310,8 @@ class _OrdinalImageGroup extends StatelessWidget { iconSpacing: 4, onPressed: () async { bool didError = false; - await showLoading( - whileFuture: Future.wait([ - _savePngToFile(), - Future.delayed(const Duration(seconds: 2)), - ]), + final filePath = await showLoading( + whileFuture: _savePngToFile(), context: context, isDesktop: true, message: "Saving ordinal image", @@ -334,7 +332,7 @@ class _OrdinalImageGroup extends StatelessWidget { if (!didError && context.mounted) { await showFloatingFlushBar( type: FlushBarType.success, - message: "Image saved", + message: "Image saved to $filePath", context: context, ); } diff --git a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart index 003c735b2..a43b9eca3 100644 --- a/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart +++ b/lib/pages_desktop_specific/my_stack_view/wallet_view/desktop_wallet_view.dart @@ -10,6 +10,7 @@ import 'dart:async'; import 'dart:io'; +import 'dart:typed_data'; import 'package:event_bus/event_bus.dart'; import 'package:flutter/material.dart'; @@ -28,6 +29,7 @@ import 'package:stackwallet/pages_desktop_specific/my_stack_view/wallet_view/sub import 'package:stackwallet/providers/global/auto_swb_service_provider.dart'; import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/ui/transaction_filter_provider.dart'; +import 'package:stackwallet/services/coins/banano/banano_wallet.dart'; import 'package:stackwallet/services/event_bus/events/global/wallet_sync_status_changed_event.dart'; import 'package:stackwallet/services/event_bus/global_event_bus.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart'; @@ -153,6 +155,10 @@ class _DesktopWalletViewState extends ConsumerState { final managerProvider = ref.watch(walletsChangeNotifierProvider .select((value) => value.getManagerProvider(widget.walletId))); + final monke = coin == Coin.banano + ? (manager.wallet as BananoWallet).getMonkeyImageBytes() + : null; + return ConditionalParent( condition: _rescanningOnOpen, builder: (child) { @@ -334,13 +340,20 @@ class _DesktopWalletViewState extends ConsumerState { padding: const EdgeInsets.all(20), child: Row( children: [ - SvgPicture.file( - File( - ref.watch(coinIconProvider(coin)), + if (monke != null) + SvgPicture.memory( + Uint8List.fromList(monke!), + width: 60, + height: 60, + ), + if (monke == null) + SvgPicture.file( + File( + ref.watch(coinIconProvider(coin)), + ), + width: 40, + height: 40, ), - width: 40, - height: 40, - ), const SizedBox( width: 10, ), diff --git a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart index 0ec19a19f..b0225f286 100644 --- a/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart +++ b/lib/pages_desktop_specific/ordinals/desktop_ordinal_details_view.dart @@ -49,7 +49,7 @@ class _DesktopOrdinalDetailsViewState late final UTXO? utxo; - Future _savePngToFile() async { + Future _savePngToFile() async { final response = await get(Uri.parse(widget.ordinal.content)); if (response.statusCode != 200) { @@ -77,6 +77,7 @@ class _DesktopOrdinalDetailsViewState } await imgFile.writeAsBytes(bytes); + return filePath; } @override @@ -224,12 +225,8 @@ class _DesktopOrdinalDetailsViewState iconSpacing: 8, onPressed: () async { bool didError = false; - await showLoading( - whileFuture: Future.wait([ - _savePngToFile(), - Future.delayed( - const Duration(seconds: 2)), - ]), + final path = await showLoading( + whileFuture: _savePngToFile(), context: context, isDesktop: true, message: "Saving ordinal image", @@ -251,7 +248,7 @@ class _DesktopOrdinalDetailsViewState if (!didError && mounted) { await showFloatingFlushBar( type: FlushBarType.success, - message: "Image saved", + message: "Image saved to $path", context: context, ); }