clean up and fixed bugs found while porting themes to duo

This commit is contained in:
julian 2023-05-13 21:24:42 -06:00
parent b2c365797c
commit 539dec13f5
30 changed files with 265 additions and 163 deletions

View file

@ -178,9 +178,6 @@ void main() async {
} }
} }
//Add Themes directory - TODO
// await StackFileSystem.applicationThemesDirectory();
monero.onStartup(); monero.onStartup();
wownero.onStartup(); wownero.onStartup();

View file

@ -1,7 +1,14 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/models/isar/stack_theme.dart';
import 'package:stackwallet/models/notification_model.dart'; import 'package:stackwallet/models/notification_model.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/theme_providers.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/format.dart'; import 'package:stackwallet/utilities/format.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/utilities/util.dart'; import 'package:stackwallet/utilities/util.dart';
@ -9,7 +16,7 @@ import 'package:stackwallet/widgets/conditional_parent.dart';
import 'package:stackwallet/widgets/rounded_container.dart'; import 'package:stackwallet/widgets/rounded_container.dart';
import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart';
class NotificationCard extends StatelessWidget { class NotificationCard extends ConsumerWidget {
const NotificationCard({ const NotificationCard({
Key? key, Key? key,
required this.notification, required this.notification,
@ -25,8 +32,17 @@ class NotificationCard extends StatelessWidget {
static const double mobileIconSize = 24; static const double mobileIconSize = 24;
static const double desktopIconSize = 30; static const double desktopIconSize = 30;
String coinIconPath(ThemeAssets assets, WidgetRef ref) {
try {
final coin = coinFromPrettyName(notification.coinName);
return ref.read(coinIconProvider(coin));
} catch (_) {
return notification.iconAssetName;
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context, WidgetRef ref) {
final isDesktop = Util.isDesktop; final isDesktop = Util.isDesktop;
return Stack( return Stack(
@ -41,8 +57,14 @@ class NotificationCard extends StatelessWidget {
child: Row( child: Row(
children: [ children: [
notification.changeNowId == null notification.changeNowId == null
? SvgPicture.asset( ? SvgPicture.file(
notification.iconAssetName, File(
coinIconPath(
ref.watch(
themeProvider.select((value) => value.assets),
),
ref),
),
width: isDesktop ? desktopIconSize : mobileIconSize, width: isDesktop ? desktopIconSize : mobileIconSize,
height: isDesktop ? desktopIconSize : mobileIconSize, height: isDesktop ? desktopIconSize : mobileIconSize,
) )
@ -53,8 +75,14 @@ class NotificationCard extends StatelessWidget {
color: Colors.transparent, color: Colors.transparent,
borderRadius: BorderRadius.circular(24), borderRadius: BorderRadius.circular(24),
), ),
child: SvgPicture.asset( child: SvgPicture.file(
notification.iconAssetName, File(
coinIconPath(
ref.watch(
themeProvider.select((value) => value.assets),
),
ref),
),
color: Theme.of(context) color: Theme.of(context)
.extension<StackColors>()! .extension<StackColors>()!
.accentColorDark, .accentColorDark,

View file

@ -1,9 +1,11 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/providers/global/prefs_provider.dart'; import 'package:stackwallet/providers/global/prefs_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_image_provider.dart'; import 'package:stackwallet/themes/coin_image_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
@ -87,8 +89,10 @@ class CoinSelectSheet extends StatelessWidget {
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinImageProvider(coin)), File(
ref.watch(coinImageProvider(coin)),
),
height: 20, height: 20,
width: 20, width: 20,
), ),

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -13,8 +15,8 @@ import 'package:stackwallet/providers/global/address_book_service_provider.dart'
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart';
import 'package:stackwallet/services/coins/manager.dart'; import 'package:stackwallet/services/coins/manager.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
@ -334,8 +336,10 @@ class _ContactDetailsViewState extends ConsumerState<ContactDetailsView> {
padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(e.coin)), File(
ref.watch(coinIconProvider(e.coin)),
),
height: 24, height: 24,
), ),
const SizedBox( const SizedBox(

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -9,8 +11,8 @@ import 'package:stackwallet/pages/exchange_view/exchange_step_views/step_2_view.
import 'package:stackwallet/pages/send_view/send_view.dart'; import 'package:stackwallet/pages/send_view/send_view.dart';
import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/theme_providers.dart'; import 'package:stackwallet/themes/theme_providers.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart';
@ -110,11 +112,13 @@ class ContactPopUp extends ConsumerWidget {
), ),
child: contact.id == "default" child: contact.id == "default"
? Center( ? Center(
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => themeProvider.select(
value.assets.stackIcon, (value) => value
.assets.stackIcon,
),
), ),
), ),
width: 20, width: 20,
@ -211,9 +215,11 @@ class ContactPopUp extends ConsumerWidget {
const SizedBox( const SizedBox(
height: 2, height: 2,
), ),
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
coinIconProvider(e.coin), ref.watch(
coinIconProvider(e.coin),
),
), ),
height: 24, height: 24,
), ),

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -7,8 +9,8 @@ import 'package:stackwallet/pages/address_book_views/subviews/coin_select_sheet.
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
// import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart'; // import 'package:stackwallet/providers/global/should_show_lockscreen_on_resume_state_provider.dart';
import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart'; import 'package:stackwallet/providers/ui/address_book_providers/address_entry_data_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/address_utils.dart'; import 'package:stackwallet/utilities/address_utils.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart';
@ -141,8 +143,10 @@ class _NewContactAddressEntryFormState
padding: const EdgeInsets.symmetric(vertical: 4), padding: const EdgeInsets.symmetric(vertical: 4),
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
height: 24, height: 24,
width: 24, width: 24,
), ),
@ -211,15 +215,17 @@ class _NewContactAddressEntryFormState
) )
: Row( : Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
coinIconProvider( ref.watch(
ref.watch( coinIconProvider(
addressEntryDataProvider(widget.id) ref.watch(
.select( addressEntryDataProvider(widget.id)
(value) => value.coin, .select(
), (value) => value.coin,
)!, ),
)!,
),
), ),
), ),
height: 20, height: 20,

View file

@ -144,7 +144,7 @@ class _ReceiveViewState extends ConsumerState<ReceiveView> {
aspectRatio: 1, aspectRatio: 1,
child: AppBarIconButton( child: AppBarIconButton(
semanticsLabel: semanticsLabel:
"Address List Pop-up Button. Opens A Pop-up For Adress List Button.", "Address List Pop-up Button. Opens A Pop-up For Address List Button.",
key: const Key("walletNetworkSettingsAddNewNodeViewButton"), key: const Key("walletNetworkSettingsAddNewNodeViewButton"),
size: 36, size: 36,
shadows: const [], shadows: const [],

View file

@ -191,7 +191,8 @@ class GlobalSettingsView extends StatelessWidget {
title: "Appearance", title: "Appearance",
onPressed: () { onPressed: () {
Navigator.of(context).pushNamed( Navigator.of(context).pushNamed(
AppearanceSettingsView.routeName); AppearanceSettingsView.routeName,
);
}, },
), ),
if (Platform.isIOS) if (Platform.isIOS)

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -6,8 +8,8 @@ import 'package:stackwallet/pages/settings_views/global_settings_view/stack_back
import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/stack_backup_views/sub_widgets/restoring_item_card.dart';
import 'package:stackwallet/providers/stack_restore/stack_restoring_ui_state_provider.dart'; import 'package:stackwallet/providers/stack_restore/stack_restoring_ui_state_provider.dart';
import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/route_generator.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/enums/stack_restoring_status.dart'; import 'package:stackwallet/utilities/enums/stack_restoring_status.dart';
@ -81,8 +83,10 @@ class _RestoringWalletCardState extends ConsumerState<RestoringWalletCard> {
.extension<StackColors>()! .extension<StackColors>()!
.colorForCoin(coin), .colorForCoin(coin),
child: Center( child: Center(
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
height: 20, height: 20,
width: 20, width: 20,
), ),
@ -222,9 +226,11 @@ class _RestoringWalletCardState extends ConsumerState<RestoringWalletCard> {
.extension<StackColors>()! .extension<StackColors>()!
.colorForCoin(coin), .colorForCoin(coin),
child: Center( child: Center(
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
coinIconProvider(coin), ref.watch(
coinIconProvider(coin),
),
), ),
height: 20, height: 20,
width: 20, width: 20,

View file

@ -1,10 +1,12 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/startup_preferences/startup_wallet_selection_view.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/background.dart';
@ -236,22 +238,24 @@ class _StartupPreferencesViewState
.only(top: 12), .only(top: 12),
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
coinIconProvider( ref.watch(
ref coinIconProvider(
.watch( ref
walletsChangeNotifierProvider .watch(
.select( walletsChangeNotifierProvider
(value) => .select(
value.getManager( (value) =>
ref.watch( value.getManager(
prefsChangeNotifierProvider.select((value) => value.startupWalletId!), ref.watch(
prefsChangeNotifierProvider.select((value) => value.startupWalletId!),
),
), ),
), ),
), )
) .coin,
.coin, ),
), ),
), ),
), ),

View file

@ -1,9 +1,11 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
import 'package:stackwallet/widgets/background.dart'; import 'package:stackwallet/widgets/background.dart';
@ -102,9 +104,11 @@ class _StartupWalletSelectionViewState
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(4), padding: const EdgeInsets.all(4),
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
coinIconProvider(manager.coin), ref.watch(
coinIconProvider(manager.coin),
),
), ),
width: 20, width: 20,
height: 20, height: 20,

View file

@ -1,9 +1,11 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/enums/sync_type_enum.dart'; import 'package:stackwallet/utilities/enums/sync_type_enum.dart';
@ -116,9 +118,11 @@ class WalletSyncingOptionsView extends ConsumerWidget {
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.all(4), padding: const EdgeInsets.all(4),
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
coinIconProvider(manager.coin), ref.watch(
coinIconProvider(manager.coin),
),
), ),
width: 20, width: 20,
height: 20, height: 20,

View file

@ -33,7 +33,7 @@ import 'package:stackwallet/widgets/rounded_white_container.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
/// [eventBus] should only be set during testing /// [eventBus] should only be set during testing
class WalletSettingsView extends StatefulWidget { class WalletSettingsView extends ConsumerStatefulWidget {
const WalletSettingsView({ const WalletSettingsView({
Key? key, Key? key,
required this.walletId, required this.walletId,
@ -52,10 +52,10 @@ class WalletSettingsView extends StatefulWidget {
final EventBus? eventBus; final EventBus? eventBus;
@override @override
State<WalletSettingsView> createState() => _WalletSettingsViewState(); ConsumerState<WalletSettingsView> createState() => _WalletSettingsViewState();
} }
class _WalletSettingsViewState extends State<WalletSettingsView> { class _WalletSettingsViewState extends ConsumerState<WalletSettingsView> {
late final String walletId; late final String walletId;
late final Coin coin; late final Coin coin;
late String xpub; late String xpub;
@ -74,7 +74,7 @@ class _WalletSettingsViewState extends State<WalletSettingsView> {
walletId = widget.walletId; walletId = widget.walletId;
coin = widget.coin; coin = widget.coin;
xPubEnabled = xPubEnabled =
coin != Coin.monero && coin != Coin.wownero && coin != Coin.epicCash; ref.read(walletsChangeNotifierProvider).getManager(walletId).hasXPub;
xpub = ""; xpub = "";
_currentSyncStatus = widget.initialSyncStatus; _currentSyncStatus = widget.initialSyncStatus;

View file

@ -23,19 +23,6 @@ class TxIcon extends ConsumerWidget {
static const Size size = Size(32, 32); static const Size size = Size(32, 32);
// String _getBundleAssetName(
// bool isCancelled, bool isReceived, bool isPending, BuildContext context) {
// if (!isReceived && transaction.subType == TransactionSubType.mint) {
// if (isCancelled) {
// return Assets.svg.anonymizeFailed;
// }
// if (isPending) {
// return Assets.svg.anonymizePending;
// }
// return Assets.svg.anonymize;
// }
// }
String _getAssetName( String _getAssetName(
bool isCancelled, bool isReceived, bool isPending, ThemeAssets assets) { bool isCancelled, bool isReceived, bool isPending, ThemeAssets assets) {
if (!isReceived && transaction.subType == TransactionSubType.mint) { if (!isReceived && transaction.subType == TransactionSubType.mint) {

View file

@ -1,7 +1,10 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:isar/isar.dart'; import 'package:isar/isar.dart';
import 'package:stackwallet/db/isar/main_db.dart';
import 'package:stackwallet/models/contact.dart'; import 'package:stackwallet/models/contact.dart';
import 'package:stackwallet/models/isar/models/isar_models.dart'; import 'package:stackwallet/models/isar/models/isar_models.dart';
import 'package:stackwallet/pages/address_book_views/subviews/add_new_contact_address_view.dart'; import 'package:stackwallet/pages/address_book_views/subviews/add_new_contact_address_view.dart';
@ -24,8 +27,6 @@ import 'package:stackwallet/widgets/rounded_white_container.dart';
import 'package:stackwallet/widgets/transaction_card.dart'; import 'package:stackwallet/widgets/transaction_card.dart';
import 'package:tuple/tuple.dart'; import 'package:tuple/tuple.dart';
import '../../../db/isar/main_db.dart';
class DesktopContactDetails extends ConsumerStatefulWidget { class DesktopContactDetails extends ConsumerStatefulWidget {
const DesktopContactDetails({ const DesktopContactDetails({
Key? key, Key? key,
@ -119,10 +120,12 @@ class _DesktopContactDetailsState extends ConsumerState<DesktopContactDetails> {
), ),
child: contact.id == "default" child: contact.id == "default"
? Center( ? Center(
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
width: 32, width: 32,

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -6,8 +8,8 @@ import 'package:stackwallet/db/isar/main_db.dart';
import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart'; import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart';
import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart'; import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart';
import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
@ -359,8 +361,10 @@ class _DesktopCoinControlUseDialogState
color: Colors.transparent, color: Colors.transparent,
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
width: 24, width: 24,
height: 24, height: 24,
), ),

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -7,8 +9,8 @@ import 'package:stackwallet/models/isar/models/blockchain_data/utxo.dart';
import 'package:stackwallet/pages_desktop_specific/coin_control/freeze_button.dart'; import 'package:stackwallet/pages_desktop_specific/coin_control/freeze_button.dart';
import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart'; import 'package:stackwallet/pages_desktop_specific/coin_control/utxo_row.dart';
import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
@ -343,8 +345,10 @@ class _DesktopCoinControlViewState
color: Colors.transparent, color: Colors.transparent,
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
width: 24, width: 24,
height: 24, height: 24,
), ),

View file

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:decimal/decimal.dart'; import 'package:decimal/decimal.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -522,10 +523,14 @@ class _DesktopTradeRowCardState extends ConsumerState<DesktopTradeRowCard> {
borderRadius: BorderRadius.circular(32), borderRadius: BorderRadius.circular(32),
), ),
child: Center( child: Center(
child: SvgPicture.asset( child: SvgPicture.file(
_fetchIconAssetForStatus( File(
trade.status, _fetchIconAssetForStatus(
ref.watch(themeProvider.select((value) => value.assets)), trade.status,
ref.watch(
themeProvider.select((value) => value.assets),
),
),
), ),
width: 32, width: 32,
height: 32, height: 32,

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -81,28 +83,36 @@ class DesktopNotificationsIcon extends ConsumerWidget {
@override @override
Widget build(BuildContext context, WidgetRef ref) { Widget build(BuildContext context, WidgetRef ref) {
return SvgPicture.asset( return ref.watch(notificationsProvider
ref.watch(notificationsProvider .select((value) => value.hasUnreadNotifications))
.select((value) => value.hasUnreadNotifications)) ? SvgPicture.file(
? ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.bellNew, themeProvider.select(
(value) => value.assets.bellNew,
),
), ),
) ),
: Assets.svg.bell, width: 20,
width: 20, height: 20,
height: 20, )
color: ref.watch(notificationsProvider : SvgPicture.asset(
.select((value) => value.hasUnreadNotifications)) Assets.svg.bell,
? null width: 20,
: DesktopMenuItemId.notifications == height: 20,
ref.watch(currentDesktopMenuItemProvider.state).state color: ref.watch(notificationsProvider
? Theme.of(context).extension<StackColors>()!.accentColorDark .select((value) => value.hasUnreadNotifications))
: Theme.of(context) ? null
.extension<StackColors>()! : DesktopMenuItemId.notifications ==
.accentColorDark ref.watch(currentDesktopMenuItemProvider.state).state
.withOpacity(0.8), ? Theme.of(context)
); .extension<StackColors>()!
.accentColorDark
: Theme.of(context)
.extension<StackColors>()!
.accentColorDark
.withOpacity(0.8),
);
} }
} }

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -53,10 +55,12 @@ class DesktopMyStackTitle extends ConsumerWidget {
SizedBox( SizedBox(
width: 32, width: 32,
height: 32, height: 32,
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
), ),

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -10,8 +12,8 @@ import 'package:stackwallet/providers/global/price_provider.dart';
import 'package:stackwallet/providers/global/wallets_provider.dart'; import 'package:stackwallet/providers/global/wallets_provider.dart';
import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart'; import 'package:stackwallet/providers/wallet/public_private_balance_state_provider.dart';
import 'package:stackwallet/services/coins/firo/firo_wallet.dart'; import 'package:stackwallet/services/coins/firo/firo_wallet.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount.dart';
import 'package:stackwallet/utilities/barcode_scanner_interface.dart'; import 'package:stackwallet/utilities/barcode_scanner_interface.dart';
import 'package:stackwallet/utilities/clipboard_interface.dart'; import 'package:stackwallet/utilities/clipboard_interface.dart';
@ -81,8 +83,10 @@ class _DesktopPaynymSendDialogState
// Theme.of(context).extension<StackColors>()!.textSubtitle4, // Theme.of(context).extension<StackColors>()!.textSubtitle4,
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
width: 36, width: 36,
height: 36, height: 36,
), ),

View file

@ -1,10 +1,12 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/pages/wallets_view/wallets_overview.dart'; import 'package:stackwallet/pages/wallets_view/wallets_overview.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/amount/amount.dart'; import 'package:stackwallet/utilities/amount/amount.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
import 'package:stackwallet/utilities/text_styles.dart'; import 'package:stackwallet/utilities/text_styles.dart';
@ -141,8 +143,10 @@ class _DesktopWalletSummaryRowState
flex: 4, flex: 4,
child: Row( child: Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(widget.coin)), File(
ref.watch(coinIconProvider(widget.coin)),
),
width: 28, width: 28,
height: 28, height: 28,
), ),

View file

@ -94,10 +94,12 @@ class _ForgotPasswordDesktopViewState
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
width: 100, width: 100,

View file

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
@ -166,10 +167,12 @@ class _DesktopLoginViewState extends ConsumerState<DesktopLoginView> {
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
width: 100, width: 100,

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -47,10 +49,12 @@ class _ForgotPasswordDesktopViewState
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
width: 100, width: 100,

View file

@ -6,8 +6,8 @@ import 'package:flutter_svg/svg.dart';
import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart'; import 'package:stackwallet/pages/settings_views/global_settings_view/manage_nodes_views/coin_nodes_view.dart';
import 'package:stackwallet/providers/providers.dart'; import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/route_generator.dart'; import 'package:stackwallet/route_generator.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/coin_icon_provider.dart'; import 'package:stackwallet/themes/coin_icon_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
@ -250,8 +250,10 @@ class _NodesSettings extends ConsumerState<NodesSettings> {
children: [ children: [
Row( Row(
children: [ children: [
SvgPicture.asset( SvgPicture.file(
ref.watch(coinIconProvider(coin)), File(
ref.watch(coinIconProvider(coin)),
),
width: 24, width: 24,
height: 24, height: 24,
), ),

View file

@ -53,11 +53,11 @@ import 'package:uuid/uuid.dart';
const int MINIMUM_CONFIRMATIONS = 1; const int MINIMUM_CONFIRMATIONS = 1;
final Amount DUST_LIMIT = Amount( final Amount DUST_LIMIT = Amount(
rawValue: BigInt.from(294), rawValue: BigInt.from(294),
fractionDigits: Coin.particl.decimals, fractionDigits: Coin.bitcoin.decimals,
); );
final Amount DUST_LIMIT_P2PKH = Amount( final Amount DUST_LIMIT_P2PKH = Amount(
rawValue: BigInt.from(546), rawValue: BigInt.from(546),
fractionDigits: Coin.particl.decimals, fractionDigits: Coin.bitcoin.decimals,
); );
const String GENESIS_HASH_MAINNET = const String GENESIS_HASH_MAINNET =

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
@ -5,6 +7,7 @@ import 'package:stackwallet/models/contact.dart';
import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart'; import 'package:stackwallet/pages/address_book_views/subviews/contact_popup.dart';
import 'package:stackwallet/providers/global/address_book_service_provider.dart'; import 'package:stackwallet/providers/global/address_book_service_provider.dart';
import 'package:stackwallet/themes/stack_colors.dart'; import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/themes/theme_providers.dart';
import 'package:stackwallet/utilities/assets.dart'; import 'package:stackwallet/utilities/assets.dart';
import 'package:stackwallet/utilities/constants.dart'; import 'package:stackwallet/utilities/constants.dart';
import 'package:stackwallet/utilities/enums/coin_enum.dart'; import 'package:stackwallet/utilities/enums/coin_enum.dart';
@ -14,8 +17,6 @@ import 'package:stackwallet/widgets/conditional_parent.dart';
import 'package:stackwallet/widgets/expandable.dart'; import 'package:stackwallet/widgets/expandable.dart';
import 'package:stackwallet/widgets/rounded_white_container.dart'; import 'package:stackwallet/widgets/rounded_white_container.dart';
import '../themes/theme_providers.dart';
class AddressBookCard extends ConsumerStatefulWidget { class AddressBookCard extends ConsumerStatefulWidget {
const AddressBookCard({ const AddressBookCard({
Key? key, Key? key,
@ -92,10 +93,12 @@ class _AddressBookCardState extends ConsumerState<AddressBookCard> {
), ),
child: contact.id == "default" child: contact.id == "default"
? Center( ? Center(
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
width: 20, width: 20,

View file

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@ -47,10 +49,12 @@ class _LivingStackIconState extends ConsumerState<LivingStackIcon> {
child: AnimatedScale( child: AnimatedScale(
duration: const Duration(milliseconds: 200), duration: const Duration(milliseconds: 200),
scale: _hovering ? 1.2 : 1, scale: _hovering ? 1.2 : 1,
child: SvgPicture.asset( child: SvgPicture.file(
ref.watch( File(
themeProvider.select( ref.watch(
(value) => value.assets.stackIcon, themeProvider.select(
(value) => value.assets.stackIcon,
),
), ),
), ),
), ),

View file

@ -343,14 +343,9 @@ flutter:
# exchange icons # exchange icons
- assets/svg/exchange_icons/ - assets/svg/exchange_icons/
# theme selectors
# - assets/svg/dark-theme.svg
# - assets/svg/light-mode.svg
# buy # buy
- assets/svg/buy/ - assets/svg/buy/
# lottie animations # lottie animations
# basic # basic
- assets/lottie/test2.json - assets/lottie/test2.json