Move to precompiled SVGs (#3072)

* add compile script * merge * move to CakeImageWidget * add precompiled .vec * fix double declaration * move .svg * add to ci * add svgs

malik1004x committed Mar 13, 2026 at 00:42 UTC 89e07fbba63ab773e0276820a54c38a224594ba9
467 files changed +231 -139
.github/workflows/reusable-build.yml
+4
@@ -139,6 +139,10 @@ jobs:
139 run: |
140 dart run tool/generate_localization.dart
141
142 + - name: Compile graphics
143 + run: |
144 + ./compile_graphics.sh
145 +
146 - name: Rename app
147 run: |
148 sanitized_branch_name=${BRANCH_NAME#origin/} # Remove 'origin/' prefix if it exists
assets/new-ui/3dots.svg.vec
Binary files /dev/null and b/assets/new-ui/3dots.svg.vec differ
assets/new-ui/3dots_vertical.svg.vec
Binary files /dev/null and b/assets/new-ui/3dots_vertical.svg.vec differ
assets/new-ui/account.svg.vec
Binary files /dev/null and b/assets/new-ui/account.svg.vec differ
assets/new-ui/add-label.svg.vec
Binary files /dev/null and b/assets/new-ui/add-label.svg.vec differ
assets/new-ui/addr-book.svg.vec
Binary files /dev/null and b/assets/new-ui/addr-book.svg.vec differ
assets/new-ui/address-type-picker-icons/btc_lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/btc_lightning.svg.vec differ
assets/new-ui/address-type-picker-icons/btc_standard.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/btc_standard.svg.vec differ
assets/new-ui/address-type-picker-icons/legacy.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/legacy.svg.vec differ
assets/new-ui/address-type-picker-icons/litecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/litecoin.svg.vec differ
assets/new-ui/address-type-picker-icons/mweb.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/mweb.svg.vec differ
assets/new-ui/address-type-picker-icons/payjoin.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/payjoin.svg.vec differ
assets/new-ui/address-type-picker-icons/public.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/public.svg.vec differ
assets/new-ui/address-type-picker-icons/sapling.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/sapling.svg.vec differ
assets/new-ui/address-type-picker-icons/segwit.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/segwit.svg.vec differ
assets/new-ui/address-type-picker-icons/shielded.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/shielded.svg.vec differ
assets/new-ui/address-type-picker-icons/silent.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/silent.svg.vec differ
assets/new-ui/address-type-picker-icons/taproot.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/taproot.svg.vec differ
assets/new-ui/address-type-picker-icons/transparent.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/transparent.svg.vec differ
assets/new-ui/address-type-picker-icons/unified.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/unified.svg.vec differ
assets/new-ui/address-type-picker-icons/zec/public.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/zec/public.svg.vec differ
assets/new-ui/address-type-picker-icons/zec/sapling.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/zec/sapling.svg.vec differ
assets/new-ui/address-type-picker-icons/zec/shielded.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/zec/shielded.svg.vec differ
assets/new-ui/address-type-picker-icons/zec/transparent.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/zec/transparent.svg.vec differ
assets/new-ui/address-type-picker-icons/zec/unified.svg.vec
Binary files /dev/null and b/assets/new-ui/address-type-picker-icons/zec/unified.svg.vec differ
assets/new-ui/address_hide.svg.vec
Binary files /dev/null and b/assets/new-ui/address_hide.svg.vec differ
assets/new-ui/address_set_label.svg.vec
Binary files /dev/null and b/assets/new-ui/address_set_label.svg.vec differ
assets/new-ui/app_settings.svg.vec
Binary files /dev/null and b/assets/new-ui/app_settings.svg.vec differ
assets/new-ui/apps.svg.vec
Binary files /dev/null and b/assets/new-ui/apps.svg.vec differ
assets/new-ui/arbitrum.svg.vec
Binary files /dev/null and b/assets/new-ui/arbitrum.svg.vec differ
assets/new-ui/arrow_forward.svg.vec
Binary files /dev/null and b/assets/new-ui/arrow_forward.svg.vec differ
assets/new-ui/arrow_right.svg.vec
Binary files /dev/null and b/assets/new-ui/arrow_right.svg.vec differ
assets/new-ui/backup.svg.vec
Binary files /dev/null and b/assets/new-ui/backup.svg.vec differ
assets/new-ui/balance_card_backgrounds/arbitrum.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/arbitrum.svg.vec differ
assets/new-ui/balance_card_backgrounds/base.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/base.svg.vec differ
assets/new-ui/balance_card_backgrounds/bitcoin-cash.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/bitcoin-cash.svg.vec differ
assets/new-ui/balance_card_backgrounds/bitcoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/bitcoin.svg.vec differ
assets/new-ui/balance_card_backgrounds/bnb.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/bnb.svg.vec differ
assets/new-ui/balance_card_backgrounds/decred.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/decred.svg.vec differ
assets/new-ui/balance_card_backgrounds/dogecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/dogecoin.svg.vec differ
assets/new-ui/balance_card_backgrounds/ethereum.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/ethereum.svg.vec differ
assets/new-ui/balance_card_backgrounds/lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/lightning.svg.vec differ
assets/new-ui/balance_card_backgrounds/litecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/litecoin.svg.vec differ
assets/new-ui/balance_card_backgrounds/monero.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/monero.svg.vec differ
assets/new-ui/balance_card_backgrounds/nano.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/nano.svg.vec differ
assets/new-ui/balance_card_backgrounds/polygon.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/polygon.svg.vec differ
assets/new-ui/balance_card_backgrounds/solana.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/solana.svg.vec differ
assets/new-ui/balance_card_backgrounds/tron.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/tron.svg.vec differ
assets/new-ui/balance_card_backgrounds/wownero.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/wownero.svg.vec differ
assets/new-ui/balance_card_backgrounds/zano.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/zano.svg.vec differ
assets/new-ui/balance_card_backgrounds/zcash.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_backgrounds/zcash.svg.vec differ
assets/new-ui/balance_card_icons/arbitrum.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/arbitrum.svg.vec differ
assets/new-ui/balance_card_icons/base.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/base.svg.vec differ
assets/new-ui/balance_card_icons/bitcoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/bitcoin.svg.vec differ
assets/new-ui/balance_card_icons/bitcoin_cash.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/bitcoin_cash.svg.vec differ
assets/new-ui/balance_card_icons/bnb.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/bnb.svg.vec differ
assets/new-ui/balance_card_icons/decred.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/decred.svg.vec differ
assets/new-ui/balance_card_icons/dogecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/dogecoin.svg.vec differ
assets/new-ui/balance_card_icons/ethereum.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/ethereum.svg.vec differ
assets/new-ui/balance_card_icons/lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/lightning.svg.vec differ
assets/new-ui/balance_card_icons/litecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/litecoin.svg.vec differ
assets/new-ui/balance_card_icons/monero.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/monero.svg.vec differ
assets/new-ui/balance_card_icons/nano.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/nano.svg.vec differ
assets/new-ui/balance_card_icons/polygon.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/polygon.svg.vec differ
assets/new-ui/balance_card_icons/solana.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/solana.svg.vec differ
assets/new-ui/balance_card_icons/tron.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/tron.svg.vec differ
assets/new-ui/balance_card_icons/wownero.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/wownero.svg.vec differ
assets/new-ui/balance_card_icons/zano.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/zano.svg.vec differ
assets/new-ui/balance_card_icons/zcash.svg.vec
Binary files /dev/null and b/assets/new-ui/balance_card_icons/zcash.svg.vec differ
assets/new-ui/base.svg.vec
Binary files /dev/null and b/assets/new-ui/base.svg.vec differ
assets/new-ui/bitcoin-cash.svg.vec
Binary files /dev/null and b/assets/new-ui/bitcoin-cash.svg.vec differ
assets/new-ui/bitcoin.svg.vec
Binary files /dev/null and b/assets/new-ui/bitcoin.svg.vec differ
assets/new-ui/bitcoin_cash.svg.vec
Binary files /dev/null and b/assets/new-ui/bitcoin_cash.svg.vec differ
assets/new-ui/blank.svg.vec
Binary files /dev/null and b/assets/new-ui/blank.svg.vec differ
assets/new-ui/bnb smart chain.svg.vec
Binary files /dev/null and b/assets/new-ui/bnb smart chain.svg.vec differ
assets/new-ui/bnb.svg.vec
Binary files /dev/null and b/assets/new-ui/bnb.svg.vec differ
assets/new-ui/btc_lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/btc_lightning.svg.vec differ
assets/new-ui/btc_standard.svg.vec
Binary files /dev/null and b/assets/new-ui/btc_standard.svg.vec differ
assets/new-ui/btcqr.png
Binary files a/assets/new-ui/btcqr.png and /dev/null differ
assets/new-ui/by-cakelabs.svg.vec
Binary files /dev/null and b/assets/new-ui/by-cakelabs.svg.vec differ
assets/new-ui/cake_squircle_icon.svg.vec
Binary files /dev/null and b/assets/new-ui/cake_squircle_icon.svg.vec differ
assets/new-ui/cakelabs-icon.svg.vec
Binary files /dev/null and b/assets/new-ui/cakelabs-icon.svg.vec differ
assets/new-ui/cakewallet-wordmark-light.svg.vec
Binary files /dev/null and b/assets/new-ui/cakewallet-wordmark-light.svg.vec differ
assets/new-ui/cakewallet-wordmark.svg.vec
Binary files /dev/null and b/assets/new-ui/cakewallet-wordmark.svg.vec differ
assets/new-ui/chain_badges/arbitrum.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/arbitrum.svg.vec differ
assets/new-ui/chain_badges/base.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/base.svg.vec differ
assets/new-ui/chain_badges/bnb smart chain.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/bnb smart chain.svg.vec differ
assets/new-ui/chain_badges/ethereum.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/ethereum.svg.vec differ
assets/new-ui/chain_badges/lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/lightning.svg.vec differ
assets/new-ui/chain_badges/mweb.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/mweb.svg.vec differ
assets/new-ui/chain_badges/polygon.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/polygon.svg.vec differ
assets/new-ui/chain_badges/solana.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/solana.svg.vec differ
assets/new-ui/chain_badges/tron.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/tron.svg.vec differ
assets/new-ui/chain_badges/zano.svg.vec
Binary files /dev/null and b/assets/new-ui/chain_badges/zano.svg.vec differ
assets/new-ui/chainflip.svg.vec
Binary files /dev/null and b/assets/new-ui/chainflip.svg.vec differ
assets/new-ui/changenow.svg.vec
Binary files /dev/null and b/assets/new-ui/changenow.svg.vec differ
assets/new-ui/charts.svg.vec
Binary files /dev/null and b/assets/new-ui/charts.svg.vec differ
assets/new-ui/checkmark.svg.vec
Binary files /dev/null and b/assets/new-ui/checkmark.svg.vec differ
assets/new-ui/chooser.svg.vec
Binary files /dev/null and b/assets/new-ui/chooser.svg.vec differ
assets/new-ui/coin-control.svg.vec
Binary files /dev/null and b/assets/new-ui/coin-control.svg.vec differ
assets/new-ui/connections.svg.vec
Binary files /dev/null and b/assets/new-ui/connections.svg.vec differ
assets/new-ui/contacts.svg.vec
Binary files /dev/null and b/assets/new-ui/contacts.svg.vec differ
assets/new-ui/contacts_outlined.svg.vec
Binary files /dev/null and b/assets/new-ui/contacts_outlined.svg.vec differ
assets/new-ui/copy-icon.svg.vec
Binary files /dev/null and b/assets/new-ui/copy-icon.svg.vec differ
assets/new-ui/copy.svg.vec
Binary files /dev/null and b/assets/new-ui/copy.svg.vec differ
assets/new-ui/crypto-minimal-icons/Monero.svg.vec
Binary files /dev/null and b/assets/new-ui/crypto-minimal-icons/Monero.svg.vec differ
assets/new-ui/cupcake.svg.vec
Binary files /dev/null and b/assets/new-ui/cupcake.svg.vec differ
assets/new-ui/decred.svg.vec
Binary files /dev/null and b/assets/new-ui/decred.svg.vec differ
assets/new-ui/defaults.svg.vec
Binary files /dev/null and b/assets/new-ui/defaults.svg.vec differ
assets/new-ui/display.svg.vec
Binary files /dev/null and b/assets/new-ui/display.svg.vec differ
assets/new-ui/dogecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/dogecoin.svg.vec differ
assets/new-ui/dropdown_arrow.svg.vec
Binary files /dev/null and b/assets/new-ui/dropdown_arrow.svg.vec differ
assets/new-ui/ethereum.svg.vec
Binary files /dev/null and b/assets/new-ui/ethereum.svg.vec differ
assets/new-ui/exchange.svg.vec
Binary files /dev/null and b/assets/new-ui/exchange.svg.vec differ
assets/new-ui/exchange_providers.svg.vec
Binary files /dev/null and b/assets/new-ui/exchange_providers.svg.vec differ
assets/new-ui/exolix.svg.vec
Binary files /dev/null and b/assets/new-ui/exolix.svg.vec differ
assets/new-ui/frozen.svg.vec
Binary files /dev/null and b/assets/new-ui/frozen.svg.vec differ
assets/new-ui/help.svg.vec
Binary files /dev/null and b/assets/new-ui/help.svg.vec differ
assets/new-ui/hide_keyboard.svg.vec
Binary files /dev/null and b/assets/new-ui/hide_keyboard.svg.vec differ
assets/new-ui/history-received.svg.vec
Binary files /dev/null and b/assets/new-ui/history-received.svg.vec differ
assets/new-ui/history-receiving.svg.vec
Binary files /dev/null and b/assets/new-ui/history-receiving.svg.vec differ
assets/new-ui/history-sending.svg.vec
Binary files /dev/null and b/assets/new-ui/history-sending.svg.vec differ
assets/new-ui/history-sent.svg.vec
Binary files /dev/null and b/assets/new-ui/history-sent.svg.vec differ
assets/new-ui/home.svg.vec
Binary files /dev/null and b/assets/new-ui/home.svg.vec differ
assets/new-ui/icon-accounts.svg.vec
Binary files /dev/null and b/assets/new-ui/icon-accounts.svg.vec differ
assets/new-ui/info.svg.vec
Binary files /dev/null and b/assets/new-ui/info.svg.vec differ
assets/new-ui/jupiter.svg.vec
Binary files /dev/null and b/assets/new-ui/jupiter.svg.vec differ
assets/new-ui/label.svg.vec
Binary files /dev/null and b/assets/new-ui/label.svg.vec differ
assets/new-ui/legacy.svg.vec
Binary files /dev/null and b/assets/new-ui/legacy.svg.vec differ
assets/new-ui/letsexchange.svg.vec
Binary files /dev/null and b/assets/new-ui/letsexchange.svg.vec differ
assets/new-ui/lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning.svg.vec differ
assets/new-ui/lightning_deposit_help.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning_deposit_help.svg.vec differ
assets/new-ui/lightning_username.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning_username.svg.vec differ
assets/new-ui/lightning_username_setup.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning_username_setup.svg.vec differ
assets/new-ui/lightning_username_setup_light.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning_username_setup_light.svg.vec differ
assets/new-ui/lightning_withdraw_help.svg.vec
Binary files /dev/null and b/assets/new-ui/lightning_withdraw_help.svg.vec differ
assets/new-ui/link_arrow.svg.vec
Binary files /dev/null and b/assets/new-ui/link_arrow.svg.vec differ
assets/new-ui/litecoin.svg.vec
Binary files /dev/null and b/assets/new-ui/litecoin.svg.vec differ
assets/new-ui/mask.svg.vec
Binary files /dev/null and b/assets/new-ui/mask.svg.vec differ
assets/new-ui/monero.svg.vec
Binary files /dev/null and b/assets/new-ui/monero.svg.vec differ
assets/new-ui/mweb.svg.vec
Binary files /dev/null and b/assets/new-ui/mweb.svg.vec differ
assets/new-ui/mweb_help.svg.vec
Binary files /dev/null and b/assets/new-ui/mweb_help.svg.vec differ
assets/new-ui/mweb_sync.svg.vec
Binary files /dev/null and b/assets/new-ui/mweb_sync.svg.vec differ
assets/new-ui/nano.svg.vec
Binary files /dev/null and b/assets/new-ui/nano.svg.vec differ
assets/new-ui/navbar/apps.svg.vec
Binary files /dev/null and b/assets/new-ui/navbar/apps.svg.vec differ
assets/new-ui/navbar/charts.svg.vec
Binary files /dev/null and b/assets/new-ui/navbar/charts.svg.vec differ
assets/new-ui/navbar/contacts.svg.vec
Binary files /dev/null and b/assets/new-ui/navbar/contacts.svg.vec differ
assets/new-ui/navbar/home.svg.vec
Binary files /dev/null and b/assets/new-ui/navbar/home.svg.vec differ
assets/new-ui/navbar/wallets.svg.vec
Binary files /dev/null and b/assets/new-ui/navbar/wallets.svg.vec differ
assets/new-ui/near-intents.svg.vec
Binary files /dev/null and b/assets/new-ui/near-intents.svg.vec differ
assets/new-ui/nodes.svg.vec
Binary files /dev/null and b/assets/new-ui/nodes.svg.vec differ
assets/new-ui/offline.svg.vec
Binary files /dev/null and b/assets/new-ui/offline.svg.vec differ
assets/new-ui/options.svg.vec
Binary files /dev/null and b/assets/new-ui/options.svg.vec differ
assets/new-ui/options_slider.svg.vec
Binary files /dev/null and b/assets/new-ui/options_slider.svg.vec differ
assets/new-ui/other.svg.vec
Binary files /dev/null and b/assets/new-ui/other.svg.vec differ
assets/new-ui/paste.svg.vec
Binary files /dev/null and b/assets/new-ui/paste.svg.vec differ
assets/new-ui/payjoin.svg.vec
Binary files /dev/null and b/assets/new-ui/payjoin.svg.vec differ
assets/new-ui/pjmodal_btc.svg.vec
Binary files /dev/null and b/assets/new-ui/pjmodal_btc.svg.vec differ
assets/new-ui/pjmodal_pj.svg.vec
Binary files /dev/null and b/assets/new-ui/pjmodal_pj.svg.vec differ
assets/new-ui/polygon.svg.vec
Binary files /dev/null and b/assets/new-ui/polygon.svg.vec differ
assets/new-ui/privacy.svg.vec
Binary files /dev/null and b/assets/new-ui/privacy.svg.vec differ
assets/new-ui/public.svg.vec
Binary files /dev/null and b/assets/new-ui/public.svg.vec differ
assets/new-ui/randomize.svg.vec
Binary files /dev/null and b/assets/new-ui/randomize.svg.vec differ
assets/new-ui/receive.svg.vec
Binary files /dev/null and b/assets/new-ui/receive.svg.vec differ
assets/new-ui/refund_address.svg.vec
Binary files /dev/null and b/assets/new-ui/refund_address.svg.vec differ
assets/new-ui/remove_recipient.svg.vec
Binary files /dev/null and b/assets/new-ui/remove_recipient.svg.vec differ
assets/new-ui/sapling.svg.vec
Binary files /dev/null and b/assets/new-ui/sapling.svg.vec differ
assets/new-ui/scan.svg.vec
Binary files /dev/null and b/assets/new-ui/scan.svg.vec differ
assets/new-ui/security.svg.vec
Binary files /dev/null and b/assets/new-ui/security.svg.vec differ
assets/new-ui/seed.svg.vec
Binary files /dev/null and b/assets/new-ui/seed.svg.vec differ
assets/new-ui/segwit.svg.vec
Binary files /dev/null and b/assets/new-ui/segwit.svg.vec differ
assets/new-ui/select_wallet.svg.vec
Binary files /dev/null and b/assets/new-ui/select_wallet.svg.vec differ
assets/new-ui/send.svg.vec
Binary files /dev/null and b/assets/new-ui/send.svg.vec differ
assets/new-ui/send_from_external.svg.vec
Binary files /dev/null and b/assets/new-ui/send_from_external.svg.vec differ
assets/new-ui/set-amount.svg.vec
Binary files /dev/null and b/assets/new-ui/set-amount.svg.vec differ
assets/new-ui/settings.png
Binary files a/assets/new-ui/settings.png and /dev/null differ
assets/new-ui/settings_row_icons/backup.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/backup.svg.vec differ
assets/new-ui/settings_row_icons/coin-control.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/coin-control.svg.vec differ
assets/new-ui/settings_row_icons/connections.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/connections.svg.vec differ
assets/new-ui/settings_row_icons/cupcake.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/cupcake.svg.vec differ
assets/new-ui/settings_row_icons/defaults.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/defaults.svg.vec differ
assets/new-ui/settings_row_icons/display.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/display.svg.vec differ
assets/new-ui/settings_row_icons/info.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/info.svg.vec differ
assets/new-ui/settings_row_icons/lightning_username.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/lightning_username.svg.vec differ
assets/new-ui/settings_row_icons/mweb.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/mweb.svg.vec differ
assets/new-ui/settings_row_icons/nodes.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/nodes.svg.vec differ
assets/new-ui/settings_row_icons/other.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/other.svg.vec differ
assets/new-ui/settings_row_icons/payjoin.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/payjoin.svg.vec differ
assets/new-ui/settings_row_icons/privacy.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/privacy.svg.vec differ
assets/new-ui/settings_row_icons/security.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/security.svg.vec differ
assets/new-ui/settings_row_icons/seed.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/seed.svg.vec differ
assets/new-ui/settings_row_icons/silent-payments.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/silent-payments.svg.vec differ
assets/new-ui/settings_row_icons/support.svg.vec
Binary files /dev/null and b/assets/new-ui/settings_row_icons/support.svg.vec differ
assets/new-ui/shielded.svg.vec
Binary files /dev/null and b/assets/new-ui/shielded.svg.vec differ
assets/new-ui/sideshift.svg.vec
Binary files /dev/null and b/assets/new-ui/sideshift.svg.vec differ
assets/new-ui/silent-payments.svg.vec
Binary files /dev/null and b/assets/new-ui/silent-payments.svg.vec differ
assets/new-ui/silent.svg.vec
Binary files /dev/null and b/assets/new-ui/silent.svg.vec differ
assets/new-ui/silent_sync.svg.vec
Binary files /dev/null and b/assets/new-ui/silent_sync.svg.vec differ
assets/new-ui/simpleswap.svg.vec
Binary files /dev/null and b/assets/new-ui/simpleswap.svg.vec differ
assets/new-ui/solana.svg.vec
Binary files /dev/null and b/assets/new-ui/solana.svg.vec differ
assets/new-ui/stealthex.svg.vec
Binary files /dev/null and b/assets/new-ui/stealthex.svg.vec differ
assets/new-ui/support.svg.vec
Binary files /dev/null and b/assets/new-ui/support.svg.vec differ
assets/new-ui/swap_amounts.svg.vec
Binary files /dev/null and b/assets/new-ui/swap_amounts.svg.vec differ
assets/new-ui/swaps_xyz.svg.vec
Binary files /dev/null and b/assets/new-ui/swaps_xyz.svg.vec differ
assets/new-ui/swaptrade.svg.vec
Binary files /dev/null and b/assets/new-ui/swaptrade.svg.vec differ
assets/new-ui/switch.svg.vec
Binary files /dev/null and b/assets/new-ui/switch.svg.vec differ
assets/new-ui/switcher-bitcoin.svg.vec
Binary files /dev/null and b/assets/new-ui/switcher-bitcoin.svg.vec differ
assets/new-ui/switcher-lightning.svg.vec
Binary files /dev/null and b/assets/new-ui/switcher-lightning.svg.vec differ
assets/new-ui/taproot.svg.vec
Binary files /dev/null and b/assets/new-ui/taproot.svg.vec differ
assets/new-ui/thorchain.svg.vec
Binary files /dev/null and b/assets/new-ui/thorchain.svg.vec differ
assets/new-ui/token-received.svg.vec
Binary files /dev/null and b/assets/new-ui/token-received.svg.vec differ
assets/new-ui/token-sent.svg.vec
Binary files /dev/null and b/assets/new-ui/token-sent.svg.vec differ
assets/new-ui/top-settings.svg.vec
Binary files /dev/null and b/assets/new-ui/top-settings.svg.vec differ
assets/new-ui/tor_sync.svg.vec
Binary files /dev/null and b/assets/new-ui/tor_sync.svg.vec differ
assets/new-ui/trade_providers/chainflip.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/chainflip.svg.vec differ
assets/new-ui/trade_providers/changenow.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/changenow.svg.vec differ
assets/new-ui/trade_providers/exolix.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/exolix.svg.vec differ
assets/new-ui/trade_providers/jupiter.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/jupiter.svg.vec differ
assets/new-ui/trade_providers/letsexchange.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/letsexchange.svg.vec differ
assets/new-ui/trade_providers/near-intents.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/near-intents.svg.vec differ
assets/new-ui/trade_providers/sideshift.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/sideshift.svg.vec differ
assets/new-ui/trade_providers/simpleswap.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/simpleswap.svg.vec differ
assets/new-ui/trade_providers/stealthex.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/stealthex.svg.vec differ
assets/new-ui/trade_providers/swaps_xyz.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/swaps_xyz.svg.vec differ
assets/new-ui/trade_providers/swaptrade.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/swaptrade.svg.vec differ
assets/new-ui/trade_providers/thorchain.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/thorchain.svg.vec differ
assets/new-ui/trade_providers/trocador.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/trocador.svg.vec differ
assets/new-ui/trade_providers/uniswap.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/uniswap.svg.vec differ
assets/new-ui/trade_providers/xoswap.svg.vec
Binary files /dev/null and b/assets/new-ui/trade_providers/xoswap.svg.vec differ
assets/new-ui/transparent.svg.vec
Binary files /dev/null and b/assets/new-ui/transparent.svg.vec differ
assets/new-ui/trocador.svg.vec
Binary files /dev/null and b/assets/new-ui/trocador.svg.vec differ
assets/new-ui/tron.svg.vec
Binary files /dev/null and b/assets/new-ui/tron.svg.vec differ
assets/new-ui/unified.svg.vec
Binary files /dev/null and b/assets/new-ui/unified.svg.vec differ
assets/new-ui/uniswap.svg.vec
Binary files /dev/null and b/assets/new-ui/uniswap.svg.vec differ
assets/new-ui/unmask.svg.vec
Binary files /dev/null and b/assets/new-ui/unmask.svg.vec differ
assets/new-ui/wallet-trezor.svg.vec
Binary files /dev/null and b/assets/new-ui/wallet-trezor.svg.vec differ
assets/new-ui/wallet_settings.svg.vec
Binary files /dev/null and b/assets/new-ui/wallet_settings.svg.vec differ
assets/new-ui/wallets.svg.vec
Binary files /dev/null and b/assets/new-ui/wallets.svg.vec differ
assets/new-ui/warning.svg.vec
Binary files /dev/null and b/assets/new-ui/warning.svg.vec differ
assets/new-ui/wownero.svg.vec
Binary files /dev/null and b/assets/new-ui/wownero.svg.vec differ
assets/new-ui/xoswap.svg.vec
Binary files /dev/null and b/assets/new-ui/xoswap.svg.vec differ
assets/new-ui/zano.svg.vec
Binary files /dev/null and b/assets/new-ui/zano.svg.vec differ
assets/new-ui/zcash.svg.vec
Binary files /dev/null and b/assets/new-ui/zcash.svg.vec differ
compile_graphics.sh new
+20
@@ -0,0 +1,20 @@
1 +#!/usr/bin/env bash
2 +
3 +# .svg -> .svg.vec
4 +# to add images to the app, put .svgs in res/pictures then run this.
5 +# compiled .svg.vec will be added to assets/new-ui
6 +# CakeImageWidget automatically takes care of loading the compiled .vec file
7 +# if for whatever reason you don't wanna use it, do SvgPicture(AssetBytesLoader("assets/new-ui/something.svg.vec"))
8 +
9 +src="res/pictures"
10 +dst="assets/new-ui"
11 +
12 +while read -r dir; do
13 + rel="${dir#"$src"}"
14 + outdir="$dst$rel"
15 +
16 + mkdir -p "$outdir"
17 + dart run vector_graphics_compiler --input-dir "$dir" --out-dir "$outdir" >/dev/null &
18 +done < <(find "$src" -type d)
19 +
20 +wait
\ No newline at end of file
lib/new-ui/pages/about_page.dart
+3 -2
@@ -3,6 +3,7 @@ import 'dart:math';
3 import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_regular_row.dart';
4 import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
6 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
7 import 'package:cake_wallet/src/widgets/new_list_row/new_list_section.dart';
8 import 'package:flutter/material.dart';
9 import 'package:flutter_svg/svg.dart';
@@ -67,8 +68,8 @@ class _AboutPageState extends State<AboutPage> {
68 SizedBox(),
69 GestureDetector(
70 onTap: _easterEgg,
70 - child: SvgPicture.asset(
71 - "assets/new-ui/cake_squircle_icon.svg",
71 + child: CakeImageWidget(
72 + imageUrl: "assets/new-ui/cake_squircle_icon.svg",
73 width: 128,
74 height: 128,
75 ),
lib/new-ui/pages/account_customizer.dart
+3 -2
@@ -10,6 +10,7 @@ import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
10 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
11 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
12 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
13 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
14 import 'package:cake_wallet/utils/show_pop_up.dart';
15 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
16 import 'package:cake_wallet/view_model/monero_account_list/account_list_item.dart';
@@ -447,8 +448,8 @@ class _AccountCreationModalState extends State<AccountCreationModal> {
448 decoration: BoxDecoration(
449 color: Theme.of(context).colorScheme.surfaceContainerHigh,
450 borderRadius: BorderRadius.circular(5)),
450 - child: SvgPicture.asset(
451 - "assets/new-ui/randomize.svg",
451 + child: CakeImageWidget(
452 + imageUrl: "assets/new-ui/randomize.svg",
453 colorFilter: ColorFilter.mode(
454 Theme.of(context).colorScheme.primary, BlendMode.srcIn),
455 ),
lib/new-ui/pages/addresses_page.dart
+5 -2
@@ -9,6 +9,7 @@ import 'package:cake_wallet/new-ui/widgets/coins_page/cards/balance_card.dart';
9 import 'package:cake_wallet/new-ui/widgets/long_press_menu.dart';
10 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
11 import 'package:cake_wallet/routes.dart';
12 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
13 import 'package:cake_wallet/utils/address_formatter.dart';
14 import 'package:cake_wallet/utils/show_pop_up.dart';
15 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
@@ -423,7 +424,8 @@ class AddressRow extends StatelessWidget {
424 ],
425 ),
426 ),
426 - if (selected) SvgPicture.asset("assets/new-ui/checkmark.svg")
427 + if (selected) CakeImageWidget(
428 + imageUrl: "assets/new-ui/checkmark.svg")
429 ],
430 ),
431 ),
@@ -462,7 +464,8 @@ class ShowHiddenButton extends StatelessWidget {
464 Text(S.of(context).show_hidden_addresses),
465 RotatedBox(
466 quarterTurns: 1,
465 - child: SvgPicture.asset("assets/new-ui/dropdown_arrow.svg"))
467 + child:CakeImageWidget(
468 + imageUrl: "assets/new-ui/dropdown_arrow.svg"))
469 ],
470 ),
471 ),
lib/new-ui/pages/lightning_username_page.dart
+7 -3
@@ -5,6 +5,7 @@ import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/new-ui/viewmodels/lightning_username/lightning_username_bloc.dart';
6 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
7 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
8 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
9 import 'package:cake_wallet/themes/core/theme_store.dart';
10 import 'package:cw_core/generate_name.dart';
11 import 'package:flutter/material.dart';
@@ -164,7 +165,8 @@ class LightningUsernameInfo extends StatelessWidget {
165 return Column(
166 spacing: 24,
167 children: [
167 - SvgPicture.asset(isLightMode
168 + CakeImageWidget(
169 + imageUrl: isLightMode
170 ? "assets/new-ui/lightning_username_setup_light.svg"
171 : "assets/new-ui/lightning_username_setup.svg"),
172 Row(
@@ -219,7 +221,8 @@ class LightningUsernameEditor extends StatelessWidget {
221 mainAxisSize: MainAxisSize.min,
222 spacing: 12,
223 children: [
222 - SvgPicture.asset(isLightMode
224 + CakeImageWidget(
225 + imageUrl: isLightMode
226 ? "assets/new-ui/lightning_username_setup_light.svg"
227 : "assets/new-ui/lightning_username_setup.svg"),
228 if (isSetup)
@@ -254,7 +257,8 @@ class LightningUsernameEditor extends StatelessWidget {
257 color: Colors.transparent,
258 child: InkWell(
259 onTap: onRandomizeButtonTap,
257 - child: SvgPicture.asset("assets/new-ui/randomize.svg",
260 + child: CakeImageWidget(
261 + imageUrl: "assets/new-ui/randomize.svg",
262 colorFilter: ColorFilter.mode(
263 Theme.of(context).colorScheme.primary, BlendMode.srcIn)),
264 ),
lib/new-ui/pages/send_page.dart
+4 -3
@@ -19,6 +19,7 @@ import 'package:cake_wallet/new-ui/widgets/send_page/send_confirm_sheet.dart';
19 import 'package:cake_wallet/new-ui/widgets/send_page/send_memo_input.dart';
20 import 'package:cake_wallet/reactions/wallet_connect.dart';
21 import 'package:cake_wallet/src/widgets/bottom_sheet/token_selection_bottom_sheet.dart';
22 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
23 import 'package:cake_wallet/src/widgets/new_list_row/list_item_regular_row_widget.dart';
24 import 'package:cake_wallet/src/widgets/standard_checkbox.dart';
25 import 'package:cake_wallet/store/app_store.dart';
@@ -290,7 +291,7 @@ class _NewSendPageState extends State<NewSendPage> {
291 if (widget.sendViewModel.outputs.length > 1)
292 ModernButton(
293 size: 36,
293 - icon: SvgPicture.asset(
294 + icon: CakeImageWidget(imageUrl:
295 "assets/new-ui/remove_recipient.svg",
296 colorFilter: ColorFilter.mode(
297 Theme.of(context).colorScheme.primary,
@@ -321,7 +322,7 @@ class _NewSendPageState extends State<NewSendPage> {
322 if (widget.mode.helpContent != null)
323 ModernButton(
324 size: 36,
324 - icon: SvgPicture.asset(
325 + icon: CakeImageWidget(imageUrl:
326 "assets/new-ui/help.svg",
327 colorFilter: ColorFilter.mode(
328 Theme.of(context).colorScheme.primary, BlendMode.srcIn),
@@ -1336,7 +1337,7 @@ class SendHelpPage extends StatelessWidget {
1337 mainAxisSize: MainAxisSize.max,
1338 mainAxisAlignment: MainAxisAlignment.center,
1339 children: [
1339 - SvgPicture.asset(content.imagePath),
1340 + CakeImageWidget(imageUrl:content.imagePath),
1341 Text(
1342 content.description,
1343 textAlign: TextAlign.center,
lib/new-ui/pages/swap_page.dart
+16 -17
@@ -25,6 +25,7 @@ import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker
25 import 'package:cake_wallet/src/screens/send/widgets/extract_address_from_parsed.dart';
26 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
27 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
28 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
29 import 'package:cake_wallet/src/widgets/primary_button.dart';
30 import 'package:cake_wallet/utils/debounce.dart';
31 import 'package:cake_wallet/utils/payment_request.dart';
@@ -458,7 +459,7 @@ class _NewSwapPageState extends State<NewSwapPage> {
459 title: S.of(context).swap,
460 leadingIcon: Icon(Icons.close),
461 onLeadingPressed: Navigator.of(context).maybePop,
461 - trailingIcon: SvgPicture.asset(
462 + trailingIcon: CakeImageWidget(imageUrl:
463 "assets/new-ui/options.svg",
464 colorFilter:
465 ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
@@ -737,9 +738,7 @@ class SwapProviderPreview extends StatelessWidget {
738 spacing: 12,
739 children: [
740 if (provider != null)
740 - provider.description.image.toLowerCase().endsWith("svg")
741 - ? SvgPicture.asset(provider.description.image, width: 28, height: 28)
742 - : Image.asset(provider.description.image, width: 28, height: 28),
741 + CakeImageWidget(imageUrl:provider.description.image,width:28,height:28),
742 if (provider == null) CupertinoActivityIndicator(),
743 Text(
744 provider?.title ?? "${S.of(context).finding_provider}...",
@@ -762,7 +761,7 @@ class SwapProviderPreview extends StatelessWidget {
761 fontWeight: FontWeight.w400,
762 color: Theme.of(context).colorScheme.onSurfaceVariant),
763 ),
765 - SvgPicture.asset(
764 + CakeImageWidget(imageUrl:
765 "assets/new-ui/chooser.svg",
766 colorFilter: ColorFilter.mode(
767 Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
@@ -927,17 +926,17 @@ class SwapAmountBoxState extends State<SwapAmountBox> {
926 currencyToShow,
927 textAlign: TextAlign.center,
928 ),
930 - SizedBox(width: 10),
931 - RotatedBox(
932 - quarterTurns: 2,
933 - child: SvgPicture.asset(
934 - "assets/new-ui/dropdown_arrow.svg",
935 - width: 4,
936 - height: 4,
937 - colorFilter: ColorFilter.mode(
938 - Theme.of(context).colorScheme.primary, BlendMode.srcIn),
939 - )),
940 - SizedBox(width: 4),
929 + SizedBox(width:10),
930 + RotatedBox(
931 + quarterTurns: 2,
932 + child: CakeImageWidget(imageUrl:
933 + "assets/new-ui/dropdown_arrow.svg",
934 + width: 4,
935 + height: 4,
936 + colorFilter: ColorFilter.mode(
937 + Theme.of(context).colorScheme.primary, BlendMode.srcIn),
938 + )),
939 + SizedBox(width:4),
940 ],
941 ),
942 ),
@@ -1040,7 +1039,7 @@ class SwapAmountBoxState extends State<SwapAmountBox> {
1039 ),
1040 RotatedBox(
1041 quarterTurns: 2,
1043 - child: SvgPicture.asset(
1042 + child: CakeImageWidget(imageUrl:
1043 "assets/new-ui/dropdown_arrow.svg",
1044 colorFilter: ColorFilter.mode(
1045 (addressEmpty && widget.isReceiverCard)
lib/new-ui/widgets/changelog_modal.dart
+5 -4
@@ -4,6 +4,7 @@ import 'dart:io';
4 import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
6 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
7 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
8 import 'package:flutter/material.dart';
9 import 'package:flutter/services.dart';
10 import 'package:flutter_svg/flutter_svg.dart';
@@ -144,8 +145,8 @@ class VersionNumberHeader extends StatelessWidget {
145 spacing: 8,
146 mainAxisSize: MainAxisSize.min,
147 children: [
147 - SvgPicture.asset(
148 - "assets/images/cake_logo_dark.svg",
148 + CakeImageWidget(
149 + imageUrl: "assets/images/cake_logo_dark.svg",
150 height: 32,
151 width: 32,
152 colorFilter:
@@ -174,8 +175,8 @@ class ChangelogItemWidget extends StatelessWidget {
175 spacing: 12,
176 children: [
177 if (item.iconFilename.isNotEmpty)
177 - SvgPicture.asset(
178 - "$changelogIconLocation/${item.iconFilename}.svg",
178 + CakeImageWidget(
179 + imageUrl: "$changelogIconLocation/${item.iconFilename}.svg",
180 height: 36,
181 width: 36,
182 colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
lib/new-ui/widgets/coin_control_page/coin_control_list_item.dart
+5 -4
@@ -1,4 +1,5 @@
1 import 'package:auto_size_text/auto_size_text.dart';
2 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3 import 'package:cake_wallet/src/widgets/new_list_row/new_simple_checkbox.dart';
4 import 'package:flutter/material.dart';
5 import 'package:flutter_svg/svg.dart';
@@ -63,7 +64,7 @@ class CoinControlListItem extends StatelessWidget {
64 children: [
65 Text(amount, style: TextStyle(fontSize:14,fontWeight: FontWeight.w400,color: Theme.of(context).colorScheme.onSurface),),
66 if(address.toLowerCase().contains("mweb")) // hack carried over from old ui, we really should just have a boolean in the object
66 - SvgPicture.asset(
67 + CakeImageWidget(imageUrl:
68 "assets/new-ui/address-type-picker-icons/mweb.svg",
69 width: 18,
70 height: 18,
@@ -71,7 +72,7 @@ class CoinControlListItem extends StatelessWidget {
72 Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
73 ),
74 if(isSilentPayment)
74 - SvgPicture.asset(
75 + CakeImageWidget(imageUrl:
76 "assets/new-ui/address-type-picker-icons/silent.svg",
77 width: 18,
78 height: 18,
@@ -100,7 +101,7 @@ class CoinControlListItem extends StatelessWidget {
101 fontWeight: FontWeight.w400,
102 color: Theme.of(context).colorScheme.onSurfaceVariant),
103 ),
103 - SvgPicture.asset(
104 + CakeImageWidget(imageUrl:
105 "assets/new-ui/arrow_right.svg",
106 colorFilter: ColorFilter.mode(
107 Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
@@ -119,7 +120,7 @@ class CoinControlListItem extends StatelessWidget {
120 }
121
122 if(isFrozen) {
122 - return SvgPicture.asset("assets/new-ui/frozen.svg");
123 + return CakeImageWidget(imageUrl:"assets/new-ui/frozen.svg");
124 }
125
126 return NewSimpleCheckbox(value: isSending, onChanged: (value){onCheckBoxTap?.call();});
lib/new-ui/widgets/coins_page/action_row/coin_action_button.dart
+1 -1
@@ -13,7 +13,7 @@ class CoinActionButton extends StatelessWidget {
13 required this.action,
14 });
15
16 - final SvgPicture icon;
16 + final Widget icon;
17 final String label;
18 final VoidCallback action;
19
lib/new-ui/widgets/coins_page/action_row/coin_action_row.dart
+6 -4
@@ -7,6 +7,7 @@ import 'package:cake_wallet/new-ui/modal_navigator.dart';
7 import 'package:cake_wallet/new-ui/pages/send_page.dart';
8 import 'package:cake_wallet/new-ui/pages/swap_page.dart';
9 import 'package:cake_wallet/routes.dart';
10 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
11 import 'package:cake_wallet/utils/feature_flag.dart';
12 import 'package:cake_wallet/utils/payment_request.dart';
13 import 'package:cake_wallet/view_model/send/send_view_model.dart';
@@ -38,7 +39,7 @@ class CoinActionRow extends StatelessWidget {
39 spacing: MediaQuery.of(context).size.width * 0.05,
40 children: [
41 CoinActionButton(
41 - icon: SvgPicture.asset(
42 + icon: CakeImageWidget(imageUrl:
43 "assets/new-ui/send.svg",
44 colorFilter: ColorFilter.mode(
45 Theme.of(context).colorScheme.primary,
@@ -57,6 +58,7 @@ class CoinActionRow extends StatelessWidget {
58
59 CupertinoScaffold.showCupertinoModalBottomSheet(
60 context: context,
61 + isDismissible: true,
62 barrierColor: Colors.black.withAlpha(60),
63 builder: (context) {
64 return Material(
@@ -75,7 +77,7 @@ class CoinActionRow extends StatelessWidget {
77 },
78 ),
79 CoinActionButton(
78 - icon: SvgPicture.asset(
80 + icon: CakeImageWidget(imageUrl:
81 "assets/new-ui/receive.svg",
82 colorFilter: ColorFilter.mode(
83 Theme.of(context).colorScheme.primary,
@@ -108,7 +110,7 @@ class CoinActionRow extends StatelessWidget {
110 ),
111 if (showSwap)
112 CoinActionButton(
111 - icon: SvgPicture.asset(
113 + icon: CakeImageWidget(imageUrl:
114 "assets/new-ui/exchange.svg",
115 colorFilter: ColorFilter.mode(
116 Theme.of(context).colorScheme.primary,
@@ -134,7 +136,7 @@ class CoinActionRow extends StatelessWidget {
136 },
137 ),
138 CoinActionButton(
137 - icon: SvgPicture.asset(
139 + icon: CakeImageWidget(imageUrl:
140 "assets/new-ui/scan.svg",
141 colorFilter: ColorFilter.mode(
142 Theme.of(context).colorScheme.primary,
lib/new-ui/widgets/coins_page/assets_history/asset_details_modal.dart
+2 -1
@@ -7,6 +7,7 @@ import 'package:cake_wallet/new-ui/pages/send_page.dart';
7 import 'package:cake_wallet/new-ui/pages/swap_page.dart';
8 import 'package:cake_wallet/new-ui/widgets/modern_button.dart';
9 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
10 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
11 import 'package:cake_wallet/utils/payment_request.dart';
12 import 'package:cw_core/crypto_currency.dart';
13 import 'package:cw_core/unspent_coin_type.dart';
@@ -99,7 +100,7 @@ class AssetDetailsModal extends StatelessWidget {
100 color: Colors.white),
101 child: Padding(
102 padding: const EdgeInsets.all(4.0),
102 - child: SvgPicture.asset(
103 + child: CakeImageWidget(imageUrl:
104 chainIconPath,
105 width: 18,
106 height: 18,
lib/new-ui/widgets/coins_page/assets_history/asset_tile.dart
+3 -2
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/new-ui/widgets/coins_page/assets_history/asset_details_modal.dart';
2 import 'package:cake_wallet/src/screens/wallet_connect/utils/string_parsing.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart';
5 import 'package:cw_core/crypto_currency.dart';
6 import 'package:cw_core/wallet_base.dart';
@@ -115,8 +116,8 @@ class AssetTile extends StatelessWidget {
116 color: Colors.white),
117 child: Padding(
118 padding: const EdgeInsets.all(2.0),
118 - child: SvgPicture.asset(
119 - chainIconPath,
119 + child: CakeImageWidget(
120 + imageUrl: chainIconPath,
121 width: 12,
122 height: 12,
123 colorFilter:
lib/new-ui/widgets/coins_page/assets_history/assets_top_bar.dart
+6 -2
@@ -1,6 +1,7 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/line_tab_switcher.dart';
3 import 'package:cake_wallet/routes.dart';
4 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
5 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
6 import 'package:flutter/material.dart';
7 import 'package:flutter_svg/svg.dart';
@@ -58,8 +59,11 @@ class AssetsTopBar extends StatelessWidget {
59 child: Row(
60 spacing: 4.0,
61 children: [
61 - SvgPicture.asset("assets/new-ui/options_slider.svg", colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.primary,BlendMode.srcIn)),
62 - Text(
62 + CakeImageWidget(
63 + imageUrl: "assets/new-ui/options_slider.svg",
64 + colorFilter: ColorFilter.mode(
65 + Theme.of(context).colorScheme.primary, BlendMode.srcIn)),
66 + Text(
67 S.of(context).tokens,
68 style: TextStyle(color: Theme.of(context).colorScheme.primary),
69 )
lib/new-ui/widgets/coins_page/assets_history/history_tile.dart
+4 -3
@@ -1,4 +1,5 @@
1 import 'package:cake_wallet/new-ui/widgets/coins_page/assets_history/history_tile_base.dart';
2 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3 import 'package:cw_core/crypto_currency.dart';
4 import 'package:cw_core/transaction_direction.dart';
5 import 'package:flutter/material.dart';
@@ -61,7 +62,7 @@ class HistoryTile extends StatelessWidget {
62 if (asset == CryptoCurrency.btcln) {
63 return Stack(
64 children: [
64 - SvgPicture.asset(
65 + CakeImageWidget(imageUrl:
66 "assets/images/lightning-icon.svg",
67 width: 34,
68 height: 34,
@@ -73,7 +74,7 @@ class HistoryTile extends StatelessWidget {
74 width: 16,
75 height: 16,
76 decoration: BoxDecoration(color: Theme.of(context).colorScheme.onInverseSurface, shape: BoxShape.circle),
76 - child: SvgPicture.asset(
77 + child: CakeImageWidget(imageUrl:
78 _getDirectionIconToken(),
79 colorFilter: ColorFilter.mode(
80 direction == TransactionDirection.outgoing
@@ -92,7 +93,7 @@ class HistoryTile extends StatelessWidget {
93 );
94 }
95
95 - return SvgPicture.asset(_getDirectionIcon(),
96 + return CakeImageWidget(imageUrl:_getDirectionIcon(),
97 colorFilter: ColorFilter.mode(
98 direction == TransactionDirection.outgoing
99 ? Theme.of(context).colorScheme.inverseSurface.withAlpha(175)
lib/new-ui/widgets/coins_page/cards/balance_card.dart
+9 -7
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cw_core/card_design.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter_svg/flutter_svg.dart';
@@ -81,8 +82,8 @@ class BalanceCard extends StatelessWidget {
82 ? ClipRSuperellipse(
83 borderRadius: BorderRadius.circular(borderRadius),
84 key: ValueKey(design.imagePath),
84 - child: SvgPicture.asset(
85 - design.imagePath,
85 + child: CakeImageWidget(
86 + imageUrl: design.imagePath,
87 width: width,
88 height: height,
89 fit: BoxFit.fill,
@@ -234,8 +235,8 @@ class BalanceCard extends StatelessWidget {
235 switchInCurve: Curves.easeInOut,
236 switchOutCurve: Curves.easeInOut,
237 child: design.backgroundType == CardDesignBackgroundTypes.svgIcon
237 - ? SvgPicture.asset(
238 - design.imagePath,
238 + ? CakeImageWidget(
239 + imageUrl: design.imagePath,
240 key: const ValueKey('svgIcon'),
241 height: iconWidth,
242 width: iconWidth,
@@ -262,12 +263,13 @@ class BalanceCard extends StatelessWidget {
263 child: GestureDetector(
264 behavior: HitTestBehavior.opaque,
265 onTap: onCustomizeTapped,
265 - child: SizedBox(
266 + child: Container(
267 height: 40,
268 width: 40,
269 child: Center(
269 - child: SvgPicture.asset(
270 - "assets/new-ui/3dots_vertical.svg",
270 + child: CakeImageWidget(
271 + imageUrl: "assets/new-ui/3dots_vertical.svg",
272 + alignment: Alignment.topRight,
273 colorFilter:
274 ColorFilter.mode(design.colors.textColorSecondary, BlendMode.srcIn),
275 ),
lib/new-ui/widgets/coins_page/mweb_ad.dart
+2 -1
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/routes.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
5 import 'package:flutter/material.dart';
6 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -32,7 +33,7 @@ class MwebAd extends StatelessWidget {
33 child: Row(
34 mainAxisAlignment: MainAxisAlignment.spaceBetween,
35 children: [
35 - SvgPicture.asset(
36 + CakeImageWidget(imageUrl:
37 "assets/new-ui/settings_row_icons/mweb.svg",
38 width: 24,
39 height: 24,
lib/new-ui/widgets/coins_page/top_bar_widget/chain_icon.dart
+3 -2
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -37,9 +38,9 @@ class ChainIcon extends StatelessWidget {
38 scale: done ? 1 : 0.8,
39 child: AnimatedSwitcher(
40 duration: Duration(milliseconds: 150),
40 - child: SvgPicture.asset(
41 + child: CakeImageWidget(
42 + imageUrl: iconPath,
43 key: ValueKey(progress >= 1),
42 - iconPath,
44 width: 36,
45 height: 36,
46 colorFilter: ColorFilter.mode(
lib/new-ui/widgets/coins_page/top_bar_widget/lightning_switcher.dart
+3 -4
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter/services.dart';
4 import 'package:flutter_svg/flutter_svg.dart';
@@ -47,9 +48,8 @@ class LightningSwitcher extends StatelessWidget {
48 duration: Duration(milliseconds: 150),
49 transitionBuilder: (child, animation) =>
50 FadeTransition(opacity: animation, child: child),
50 - child: SvgPicture.asset(
51 + child: CakeImageWidget(imageUrl:'assets/new-ui/switcher-bitcoin.svg',
52 key: ValueKey(lightningMode),
52 - 'assets/new-ui/switcher-bitcoin.svg',
53 width: 32,
54 height: 32,
55 colorFilter: ColorFilter.mode(
@@ -64,9 +64,8 @@ class LightningSwitcher extends StatelessWidget {
64 duration: Duration(milliseconds: 150),
65 transitionBuilder: (child, animation) =>
66 FadeTransition(opacity: animation, child: child),
67 - child: SvgPicture.asset(
67 + child: CakeImageWidget(imageUrl: 'assets/new-ui/switcher-lightning.svg',
68 key: ValueKey(lightningMode),
69 - 'assets/new-ui/switcher-lightning.svg',
69 width: 32,
70 height: 32,
71 colorFilter: ColorFilter.mode(
lib/new-ui/widgets/coins_page/top_bar_widget/sync_bar.dart
+5 -5
@@ -139,14 +139,14 @@ class SyncBar extends StatelessWidget {
139
140 Widget? _getIcon(BuildContext context, Type status) {
141 if (status == LostConnectionSyncStatus || status == FailedSyncStatus) {
142 - return SvgPicture.asset(
142 + return CakeImageWidget(imageUrl:
143 "assets/new-ui/offline.svg",
144 colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.error, BlendMode.srcIn),
145 );
146 }
147
148 if (failStatuses.contains(status)) {
149 - return SvgPicture.asset(
149 + return CakeImageWidget(imageUrl:
150 "assets/new-ui/warning.svg",
151 colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.error, BlendMode.srcIn),
152 );
@@ -155,18 +155,18 @@ class SyncBar extends StatelessWidget {
155 final List<Widget> children = [];
156
157 if (dashboardViewModel.isTorEnabled) {
158 - children.add(SvgPicture.asset("assets/new-ui/tor_sync.svg",
158 + children.add(CakeImageWidget(imageUrl:"assets/new-ui/tor_sync.svg",
159 colorFilter: ColorFilter.mode(Color(0xFF8A38F5), BlendMode.srcIn)));
160 }
161 if (dashboardViewModel.hasMweb) {
162 - children.add(SvgPicture.asset(
162 + children.add(CakeImageWidget(imageUrl:
163 "assets/new-ui/mweb_sync.svg",
164 colorFilter:
165 ColorFilter.mode(Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
166 ));
167 }
168 if (dashboardViewModel.hasSilentPayments) {
169 - children.add(SvgPicture.asset(
169 + children.add(CakeImageWidget(imageUrl:
170 "assets/new-ui/silent_sync.svg",
171 colorFilter: ColorFilter.mode(Color(0xFFEFBA5E), BlendMode.srcIn),
172 ));
lib/new-ui/widgets/coins_page/wallet_info.dart
+2 -1
@@ -1,4 +1,5 @@
1 import 'package:cake_wallet/new-ui/widgets/modern_button.dart';
2 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3 import 'package:cw_core/wallet_info.dart';
4 import 'package:flutter/material.dart';
5 import 'package:flutter/services.dart';
@@ -45,7 +46,7 @@ class WalletInfoBar extends StatelessWidget {
46 ? const SizedBox.shrink(key: ValueKey("empty"))
47 : Padding(
48 padding: const EdgeInsets.only(right: 8),
48 - child: SvgPicture.asset(
49 + child: CakeImageWidget(imageUrl:
50 hardwareWalletIcon!,
51 key: ValueKey("hardware_wallet_icon"),
52 width: 24,
lib/new-ui/widgets/dropdown_row.dart
+3 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/svg.dart';
4
@@ -36,7 +37,8 @@ class DropdownRow extends StatelessWidget {
37 duration: Duration(milliseconds: 300),
38 turns: expanded ? 0.0 : 0.5,
39 curve: Curves.easeOut,
39 - child: SvgPicture.asset(
40 + child: CakeImageWidget(
41 + imageUrl:
42 "assets/new-ui/dropdown_arrow.svg",
43 colorFilter:
44 ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
lib/new-ui/widgets/keyboard_hide_overlay.dart
+3 -1
@@ -1,5 +1,6 @@
1 import 'dart:io';
2
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:flutter/material.dart';
5 import 'package:flutter_svg/flutter_svg.dart';
6
@@ -73,7 +74,8 @@ class _KeyboardHideButtonState extends State<KeyboardHideButton> {
74 ),
75 child: Padding(
76 padding: const EdgeInsets.all(8.0),
76 - child: SvgPicture.asset(
77 + child: CakeImageWidget(
78 + imageUrl:
79 "assets/new-ui/hide_keyboard.svg",
80 colorFilter: ColorFilter.mode(
81 Theme.of(context).colorScheme.onPrimary, BlendMode.srcIn),
lib/new-ui/widgets/long_press_menu.dart
+3 -1
@@ -1,5 +1,6 @@
1 import 'dart:ui';
2
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:flutter/material.dart';
5 import 'package:flutter_svg/svg.dart';
6
@@ -74,7 +75,8 @@ class _LongPressMenuState extends State<LongPressMenu> {
75 mainAxisAlignment: MainAxisAlignment.start,
76 spacing: 8,
77 children: [
77 - SvgPicture.asset(
78 + CakeImageWidget(
79 + imageUrl:
80 item.iconPath,
81 height: 20,
82 width: 20,
lib/new-ui/widgets/modal_header.dart
+3 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/svg.dart';
4
@@ -22,7 +23,8 @@ class ModalHeader extends StatelessWidget {
23 mainAxisAlignment: MainAxisAlignment.center,
24 crossAxisAlignment: CrossAxisAlignment.center,
25 children: [
25 - SvgPicture.asset(iconPath, width: 36, height: 36),
26 + CakeImageWidget(
27 + imageUrl: iconPath, width: 36, height: 36),
28 Text(
29 title,
30 style: TextStyle(
lib/new-ui/widgets/modern_button.dart
+3 -2
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/flutter_svg.dart';
4
@@ -41,8 +42,8 @@ class ModernButton extends StatelessWidget {
42 final resolvedBackgroundColor =
43 backgroundColor ?? Theme.of(context).colorScheme.surfaceContainer;
44 final Widget resolvedIcon = svgPath != null
44 - ? SvgPicture.asset(
45 - svgPath!,
45 + ? CakeImageWidget(
46 + imageUrl: svgPath!,
47 width: resolvedIconSize,
48 height: resolvedIconSize,
49 fit: BoxFit.contain,
lib/new-ui/widgets/picker.dart
+3 -2
@@ -2,6 +2,7 @@ import 'dart:io';
2
3 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
4 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
5 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
6 import 'package:cake_wallet/src/widgets/new_list_row/new_simple_checkbox.dart';
7 import 'package:flutter/material.dart';
8 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -216,7 +217,7 @@ class PickerSliderButton<Item> extends StatelessWidget {
217 fontSize: 14,
218 color: Theme.of(context).colorScheme.onSurfaceVariant,
219 fontWeight: FontWeight.w400)),
219 - if(isSelected) SvgPicture.asset(
220 + if(isSelected) CakeImageWidget(imageUrl:
221 "assets/new-ui/arrow_right.svg",
222 colorFilter:
223 ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),)
@@ -229,7 +230,7 @@ class PickerSliderButton<Item> extends StatelessWidget {
230 ],
231 ),
232 isSelected? NewSimpleCheckbox(value: true, onChanged: (val){}):
232 - SvgPicture.asset(
233 + CakeImageWidget(imageUrl:
234 "assets/new-ui/arrow_right.svg",
235 colorFilter:
236 ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
lib/new-ui/widgets/receive_page/receive_address_type.dart
+2 -2
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_address_type_selector.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cake_wallet/view_model/dashboard/receive_option_view_model.dart';
5 import 'package:cw_core/receive_page_option.dart';
6 import 'package:flutter/material.dart';
@@ -51,10 +52,9 @@ class ReceiveAddressTypeDisplay extends StatelessWidget {
52 spacing: 12.0,
53 children: [
54 if (iconPath != null)
54 - SvgPicture.asset(
55 + CakeImageWidget(imageUrl:iconPath,
56 width: 24,
57 height: 24,
57 - iconPath!,
58 colorFilter: ColorFilter.mode(
59 Theme.of(context).colorScheme.primary,
60 BlendMode.srcIn,
lib/new-ui/widgets/receive_page/receive_address_type_selector.dart
+3 -2
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cake_wallet/src/widgets/rounded_checkbox.dart';
5 import 'package:cake_wallet/src/widgets/section_divider.dart';
6 import 'package:cake_wallet/view_model/dashboard/receive_option_view_model.dart';
@@ -159,7 +160,7 @@ class _ReceiveAddressTypeSelectorState extends State<ReceiveAddressTypeSelector>
160 ReceiveAddressTypeSelector.otherOptionsExpandDuration,
161 turns: _otherOptionsExpanded ? 0.0 : 0.5,
162 curve: Curves.easeOut,
162 - child: SvgPicture.asset("assets/new-ui/dropdown_arrow.svg"))
163 + child: CakeImageWidget(imageUrl:"assets/new-ui/dropdown_arrow.svg"))
164 ],
165 ),
166 ),
@@ -279,7 +280,7 @@ class ReceiveAddressTypeRow extends StatelessWidget {
280 Row(
281 children: [
282 if (iconPath != null)
282 - SvgPicture.asset(iconPath!, width: iconSize, height: iconSize,colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.onSurfaceVariant,BlendMode.srcIn),)
283 + CakeImageWidget(imageUrl:iconPath!, width: iconSize, height: iconSize,colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.onSurfaceVariant,BlendMode.srcIn),)
284 else
285 Container(width: iconSize, height: iconSize),
286 Padding(
lib/new-ui/widgets/receive_page/receive_amount_modal.dart
+2 -1
@@ -3,6 +3,7 @@ import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
4 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
5 import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
6 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
7 import 'package:cake_wallet/utils/show_pop_up.dart';
8 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
9 import 'package:cw_core/crypto_currency.dart';
@@ -100,7 +101,7 @@ class _ReceiveAmountModalState extends State<ReceiveAmountModal> {
101 ),
102 RotatedBox(
103 quarterTurns: 2,
103 - child: SvgPicture.asset("assets/new-ui/dropdown_arrow.svg"))
104 + child: CakeImageWidget(imageUrl:"assets/new-ui/dropdown_arrow.svg"))
105 ],
106 ),
107 ),
lib/new-ui/widgets/receive_page/receive_info_box.dart
+2 -1
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cw_core/wallet_type.dart';
5 import 'package:flutter/material.dart';
6 import 'package:flutter_svg/svg.dart';
@@ -55,7 +56,7 @@ class ReceiveInfoBox extends StatelessWidget {
56 crossAxisAlignment: CrossAxisAlignment.start,
57 spacing: 10,
58 children: [
58 - SvgPicture.asset(
59 + CakeImageWidget(imageUrl:
60 iconPath,
61 width: 16,
62 height: 16,
lib/new-ui/widgets/receive_page/receive_label_widget.dart
+2 -2
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/flutter_svg.dart';
4
@@ -22,10 +23,9 @@ class ReceiveLabelWidget extends StatelessWidget {
23 mainAxisSize: MainAxisSize.min,
24 children: [
25 ClipRect(
25 - child: SvgPicture.asset(
26 + child: CakeImageWidget(imageUrl:"assets/new-ui/label.svg",
27 width: 24,
28 height: 24,
28 - "assets/new-ui/label.svg",
29 colorFilter: ColorFilter.mode(
30 Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
31 )),
lib/new-ui/widgets/receive_page/receive_large_amount_preview.dart
+2 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/svg.dart';
4
@@ -29,7 +30,7 @@ class ReceiveLargeAmountPreview extends StatelessWidget {
30 mainAxisAlignment: MainAxisAlignment.center,
31 spacing: 12,
32 children: [
32 - SvgPicture.asset("assets/new-ui/send.svg",
33 + CakeImageWidget(imageUrl:"assets/new-ui/send.svg",
34 width: 24,
35 height: 24,
36 colorFilter: ColorFilter.mode(
lib/new-ui/widgets/receive_page/receive_qr_code.dart
+3 -2
@@ -1,5 +1,6 @@
1 import 'package:cake_wallet/di.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:cake_wallet/themes/core/theme_store.dart';
5 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
6 import 'package:cw_core/crypto_currency.dart';
@@ -35,7 +36,7 @@ class ReceiveQrCode extends StatelessWidget {
36 AnimatedOpacity(
37 duration: Duration(milliseconds: 300),
38 opacity: largeQrMode ? 1 : 0,
38 - child: SvgPicture.asset(
39 + child: CakeImageWidget(imageUrl:
40 isLightMode
41 ? "assets/new-ui/cakewallet-wordmark-light.svg"
42 : "assets/new-ui/cakewallet-wordmark.svg",
@@ -98,7 +99,7 @@ class ReceiveQrCode extends StatelessWidget {
99 mainAxisAlignment: MainAxisAlignment.center,
100 spacing: 4,
101 children: [
101 - SvgPicture.asset("assets/new-ui/payjoin.svg"),
102 + CakeImageWidget(imageUrl: "assets/new-ui/payjoin.svg"),
103 Text(S.of(context).payjoin_enabled)
104 ],
105 ),
lib/new-ui/widgets/receive_page/receive_token_display.dart
+2 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
3 import 'package:cw_core/wallet_type.dart';
4 import 'package:flutter/material.dart';
@@ -32,7 +33,7 @@ class ReceiveTokenDisplay extends StatelessWidget {
33 child: Row(
34 spacing:4,
35 children: [
35 - SvgPicture.asset(
36 + CakeImageWidget(imageUrl:
37 "assets/new-ui/chain_badges/${walletTypeToString(addressListViewModel.wallet.type).toLowerCase()}.svg",
38 width: 16,
39 height: 16,
lib/new-ui/widgets/send_page/floating_icon_button.dart
+2 -2
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter_svg/svg.dart';
4
@@ -17,9 +18,8 @@ class FloatingIconButton extends StatelessWidget {
18 onTap: onPressed,
19 child: Padding(
20 padding: const EdgeInsets.all(4.0),
20 - child: SvgPicture.asset(
21 + child: CakeImageWidget(imageUrl:iconPath,
22 width: 22, height: 22,
22 - iconPath,
23 colorFilter: ColorFilter.mode(Theme
24 .of(context)
25 .colorScheme
lib/new-ui/widgets/send_page/l2_action_wallet_selector.dart
+2 -1
@@ -7,6 +7,7 @@ import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
7 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
8 import 'package:cake_wallet/new-ui/widgets/send_page/l2_send_external_modal.dart';
9 import 'package:cake_wallet/new-ui/widgets/send_page/send_address_input.dart';
10 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
11 import 'package:cake_wallet/src/widgets/new_list_row/new_simple_checkbox.dart';
12 import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
13 import 'package:cake_wallet/view_model/send/send_view_model.dart';
@@ -251,7 +252,7 @@ class _L2ActionWalletSelectorState extends State<L2ActionWalletSelector> {
252 mainAxisAlignment: MainAxisAlignment.center,
253 spacing: 10,
254 children: [
254 - SvgPicture.asset(
255 + CakeImageWidget(imageUrl:
256 "assets/new-ui/send_from_external.svg",
257 colorFilter: ColorFilter.mode(
258 Theme.of(context).colorScheme.primary, BlendMode.srcIn),
lib/new-ui/widgets/send_page/l2_send_external_modal.dart
+2 -1
@@ -3,6 +3,7 @@ import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
4 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
5 import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
6 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
7 import 'package:cake_wallet/utils/address_formatter.dart';
8 import 'package:cake_wallet/view_model/send/send_view_model.dart';
9 import 'package:cw_core/payment_uris.dart';
@@ -65,7 +66,7 @@ class _L2SendExternalModalState extends State<L2SendExternalModal> {
66 spacing: 12,
67 children: [
68 if(widget.sendViewModel.walletType == WalletType.bitcoin)
68 - SvgPicture.asset("assets/new-ui/lightning_deposit_help.svg", height: 36),
69 + CakeImageWidget(imageUrl:"assets/new-ui/lightning_deposit_help.svg", height: 36),
70 Text(
71 S.of(context).bitcoin_lightning_deposit,
72 style: TextStyle(fontWeight: FontWeight.w500, fontSize: 20),
lib/new-ui/widgets/send_page/send_amount_input.dart
+2 -1
@@ -1,4 +1,5 @@
1 import 'package:cake_wallet/new-ui/widgets/send_page/floating_icon_button.dart';
2 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter/services.dart';
5 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -111,7 +112,7 @@ class _NewSendAmountInputState extends State<NewSendAmountInput> {
112 Image.asset(widget.currencyIconPath, width: 24, height: 24),
113 Text(widget.currency),
114 if (widget.hasPicker)
114 - SvgPicture.asset(
115 + CakeImageWidget(imageUrl:
116 "assets/new-ui/chooser.svg",
117 width: 12,
118 height: 12,
lib/new-ui/widgets/send_page/send_confirm_bottom_widget.dart
+4 -2
@@ -2,6 +2,7 @@ import 'package:cake_wallet/core/execution_state.dart';
2 import 'package:cake_wallet/generated/i18n.dart';
3 import 'package:cake_wallet/new-ui/widgets/confirm_swiper.dart';
4 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
5 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
6 import 'package:cake_wallet/view_model/send/send_view_model.dart';
7 import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
8 import 'package:cw_core/wallet_info.dart';
@@ -9,6 +10,7 @@ import 'package:flutter/cupertino.dart';
10 import 'package:flutter/material.dart';
11 import 'package:flutter_mobx/flutter_mobx.dart';
12 import 'package:flutter_svg/svg.dart';
13 +import 'package:vector_graphics/vector_graphics.dart';
14
15 class SendConfirmBottomWidget extends StatelessWidget {
16 const SendConfirmBottomWidget({super.key, required this.sendViewModel});
@@ -120,7 +122,7 @@ class TransactionErrorActions extends StatelessWidget {
122 mainAxisAlignment: MainAxisAlignment.center,
123 spacing: 8,
124 children: [
123 - SvgPicture.asset(
125 + CakeImageWidget(imageUrl:
126 "assets/new-ui/warning.svg",
127 height: 24,
128 width: 24,
@@ -191,7 +193,7 @@ class HardwareWalletConfirmationMessage extends StatelessWidget {
193 padding: const EdgeInsets.all(12.0),
194 child: Column(spacing: 8, children: [
195 if (hardwareWalletIcon != null)
194 - SvgPicture.asset(
196 + CakeImageWidget(imageUrl:
197 hardwareWalletIcon!,
198 width: 36,
199 height: 36,
lib/new-ui/widgets/send_page/send_confirm_sheet.dart
+2 -1
@@ -6,6 +6,7 @@ import 'package:cake_wallet/generated/i18n.dart';
6 import 'package:cake_wallet/new-ui/widgets/animated_dropdown.dart';
7 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
8 import 'package:cake_wallet/new-ui/widgets/send_page/send_confirm_bottom_widget.dart';
9 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
10 import 'package:cake_wallet/utils/address_formatter.dart';
11 import 'package:cake_wallet/view_model/send/send_view_model.dart';
12 import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
@@ -118,7 +119,7 @@ class SendTransactionDetails extends StatelessWidget {
119 spacing: 8,
120 children: [
121 if (resolvedIconPath.toLowerCase().endsWith(".svg"))
121 - SvgPicture.asset(
122 + CakeImageWidget(imageUrl:
123 resolvedIconPath,
124 width: 28,
125 height: 28,
lib/new-ui/widgets/swap_page/refund_address_modal.dart
+3 -2
@@ -2,6 +2,7 @@ import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
3 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
4 import 'package:cake_wallet/new-ui/widgets/send_page/send_address_input.dart';
5 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
6 import 'package:cw_core/crypto_currency.dart';
7 import 'package:flutter/material.dart';
8 import 'package:flutter_svg/flutter_svg.dart';
@@ -51,8 +52,8 @@ class _RefundAddressModalState extends State<RefundAddressModal> {
52 child: Column(
53 spacing: 24,
54 children: [
54 - SvgPicture.asset(
55 - "assets/new-ui/refund_address.svg",
55 + CakeImageWidget(
56 + imageUrl:"assets/new-ui/refund_address.svg.vec",
57 colorFilter:
58 ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
59 ),
lib/new-ui/widgets/swap_page/swap_address_selection_modal.dart
+4 -3
@@ -1,6 +1,7 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
3 import 'package:cake_wallet/new-ui/widgets/send_page/send_address_input.dart';
4 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
5 import 'package:cake_wallet/src/widgets/new_list_row/new_simple_checkbox.dart';
6 import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
7 import 'package:cw_core/currency_for_wallet_type.dart';
@@ -152,7 +153,7 @@ class _SwapAddressSelectionModalState extends State<SwapAddressSelectionModal> {
153 mainAxisAlignment: MainAxisAlignment.center,
154 spacing: 10,
155 children: [
155 - SvgPicture.asset("assets/new-ui/send_from_external.svg",
156 + CakeImageWidget(imageUrl:"assets/new-ui/send_from_external.svg",
157 colorFilter: ColorFilter.mode(
158 Theme.of(context).colorScheme.primary, BlendMode.srcIn)),
159 Text(S.of(context).send_from_external,
@@ -271,7 +272,7 @@ class _SwapAddressSelectionModalRowState extends State<SwapAddressSelectionModal
272 duration: Duration(milliseconds: 200),
273 curve: Curves.easeOutCubic,
274 turns: _isExpanded ? 0 : 0.5,
274 - child: SvgPicture.asset(
275 + child:CakeImageWidget(imageUrl:
276 "assets/new-ui/dropdown_arrow.svg",
277 colorFilter: ColorFilter.mode(
278 Theme.of(context).colorScheme.onSurfaceVariant, BlendMode.srcIn),
@@ -315,7 +316,7 @@ class _SwapAddressSelectionModalRowState extends State<SwapAddressSelectionModal
316 child: Row(
317 spacing: 12,
318 children: [
318 - SvgPicture.asset(
319 + CakeImageWidget(imageUrl:
320 "assets/new-ui/account.svg",
321 colorFilter: ColorFilter.mode(
322 Theme.of(context).colorScheme.onSurfaceVariant,
lib/new-ui/widgets/swap_page/swap_provider_initial_preference_modal.dart
+2 -1
@@ -1,6 +1,7 @@
1 import 'package:cake_wallet/generated/i18n.dart';
2 import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
3 import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
4 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
5 import 'package:flutter/material.dart';
6 import 'package:flutter_svg/svg.dart';
7
@@ -23,7 +24,7 @@ class SwapProviderInitialPreferenceModal extends StatelessWidget {
24 child: Column(
25 spacing: 12,
26 children: [
26 - SvgPicture.asset("assets/new-ui/exchange_providers.svg"),
27 + CakeImageWidget(imageUrl:"assets/new-ui/exchange_providers.svg"),
28 Text(
29 "${S.of(context).swap_provider_initial_desc} Cake Wallet.",
30 textAlign: TextAlign.center,
lib/src/screens/dashboard/widgets/new_main_navbar_widget.dart
+2 -1
@@ -1,5 +1,6 @@
1 import 'dart:io';
2 import 'dart:ui';
3 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4 import 'package:flutter/material.dart';
5 import 'package:flutter_svg/flutter_svg.dart';
6 import 'package:cake_wallet/entities/new_main_actions.dart';
@@ -214,7 +215,7 @@ class _NEWNewMainNavBarState extends State<NewMainNavBar> {
215 builder: (context, value, child) {
216 return Container(
217 height: NewMainNavBar.barHeight,
217 - child: SvgPicture.asset(
218 + child: CakeImageWidget(imageUrl:
219 visibleActions[i].image,
220 width: iconWidth,
221 height: iconHeight,
lib/src/screens/nodes/node_create_or_edit_page.dart
+2 -1
@@ -5,6 +5,7 @@ import 'package:cake_wallet/new-ui/widgets/receive_page/receive_top_bar.dart';
5 import 'package:cake_wallet/src/screens/nodes/widgets/node_form.dart';
6 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
7 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
8 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
9 import 'package:cake_wallet/src/widgets/primary_button.dart';
10 import 'package:cake_wallet/src/widgets/scrollable_with_bottom_section.dart';
11 import 'package:cake_wallet/utils/show_pop_up.dart';
@@ -89,7 +90,7 @@ class _NodeCreateOrEditPageState extends State<NodeCreateOrEditPage> {
90 title: widget.editingNode != null ? S.current.edit_node : S.current.node_new,
91 leadingIcon: Icon(Icons.arrow_back_ios_new),
92 onLeadingPressed: Navigator.of(context).pop,
92 - trailingIcon: SvgPicture.asset(
93 + trailingIcon: CakeImageWidget(imageUrl:
94 "assets/new-ui/scan.svg",width:24,height:24,
95 colorFilter: ColorFilter.mode(Theme.of(context).colorScheme.primary, BlendMode.srcIn),
96 ),
lib/src/screens/receive/widgets/qr_image.dart
+3 -1
@@ -1,3 +1,5 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 +import 'package:cw_core/utils/print_verbose.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter_svg/flutter_svg.dart';
5 import 'package:qr_flutter/qr_flutter.dart' as qr;
@@ -42,7 +44,7 @@ class QrImage extends StatelessWidget {
44 backgroundColor: backgroundColor,
45 padding: const EdgeInsets.all(12.0),
46 ),
45 - SvgPicture.asset(
47 + CakeImageWidget(imageUrl:
48 imagePath,
49 width: logoSize * 0.8,
50 height: logoSize * 0.8,
lib/src/widgets/cake_image_widget.dart
+39 -17
@@ -1,5 +1,8 @@
1 +import 'package:cw_core/utils/print_verbose.dart';
2 import 'package:flutter/material.dart';
3 +import 'package:flutter/services.dart';
4 import 'package:flutter_svg/flutter_svg.dart';
5 +import 'package:vector_graphics/vector_graphics.dart';
6
7 class CakeImageWidget extends StatelessWidget {
8 const CakeImageWidget({
@@ -11,8 +14,8 @@ class CakeImageWidget extends StatelessWidget {
14 this.loadingWidget,
15 this.errorWidget,
16 this.color,
14 - this.borderRadius = 24.0,
17 this.colorFilter,
18 + this.borderRadius = 24.0, this.alignment, this.allowDrawingOutsideViewBox,
19 });
20
21 final String? imageUrl;
@@ -22,8 +25,10 @@ class CakeImageWidget extends StatelessWidget {
25 final Widget? loadingWidget;
26 final Widget? errorWidget;
27 final Color? color;
25 - final double borderRadius;
28 final ColorFilter? colorFilter;
29 + final AlignmentGeometry? alignment;
30 + final bool? allowDrawingOutsideViewBox;
31 + final double borderRadius;
32
33 @override
34 Widget build(BuildContext context) {
@@ -38,21 +43,36 @@ class CakeImageWidget extends StatelessWidget {
43
44 Widget imageWidget;
45 if (isAsset) {
41 - imageWidget = isSvg
42 - ? SvgPicture.asset(
43 - imageUrl!,
44 - height: height,
45 - width: width,
46 - colorFilter: effectiveColorFilter,
47 - fit: fit ?? BoxFit.contain,
48 - )
49 - : Image.asset(
50 - imageUrl!,
51 - height: height,
52 - width: width,
53 - fit: fit,
54 - color: color,
55 - );
46 + if (isSvg) {
47 + imageWidget = SvgPicture(AssetBytesLoader("${imageUrl}.vec"),
48 + height: height,
49 + width: width,
50 + alignment: alignment ?? Alignment.center,
51 + allowDrawingOutsideViewBox: allowDrawingOutsideViewBox ?? false,
52 + colorFilter:
53 + effectiveColorFilter,
54 + fit: fit ?? BoxFit.contain, errorBuilder: (context, e, trace) {
55 + return SvgPicture.asset(
56 + imageUrl!,
57 + height: height,
58 + alignment: alignment ?? Alignment.center,
59 + allowDrawingOutsideViewBox: allowDrawingOutsideViewBox ?? false,
60 + width: width,
61 + errorBuilder: (_, __, ___) => SizedBox(height: height, width: width),
62 + colorFilter:
63 + effectiveColorFilter,
64 + fit: fit ?? BoxFit.contain,
65 + );
66 + });
67 + } else {
68 + imageWidget = Image.asset(
69 + imageUrl!,
70 + height: height,
71 + width: width,
72 + fit: fit,
73 + color: color,
74 + );
75 + }
76 } else {
77 imageWidget = isSvg
78 ? SvgPicture.network(
@@ -60,6 +80,8 @@ class CakeImageWidget extends StatelessWidget {
80 height: height,
81 width: width,
82 colorFilter: effectiveColorFilter,
83 + alignment: alignment ?? Alignment.center,
84 + allowDrawingOutsideViewBox: allowDrawingOutsideViewBox ?? false,
85 fit: fit ?? BoxFit.contain,
86 placeholderBuilder: (_) {
87 return loadingWidget ?? const Center(child: CircularProgressIndicator());
lib/src/widgets/new_list_row/list_item_checkbox_widget.dart
+2 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cake_wallet/src/widgets/new_list_row/list_Item_style_wrapper.dart';
3 import 'package:cake_wallet/src/widgets/new_list_row/new_simple_checkbox.dart';
4 import 'package:flutter/material.dart';
@@ -52,7 +53,7 @@ class _ListItemCheckboxWidgetState extends State<ListItemCheckboxWidget> {
53 children: [
54 if (widget.iconPath != null)
55 widget.iconPath!.toLowerCase().endsWith("svg")
55 - ? SvgPicture.asset(widget.iconPath!, height: 24, width: 24)
56 + ? CakeImageWidget(imageUrl:widget.iconPath!, height: 24, width: 24)
57 : Image.asset(
58 widget.iconPath!,
59 width: 24,
lib/src/widgets/new_list_row/list_item_regular_row_widget.dart
+4 -13
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cake_wallet/src/widgets/new_list_row/list_Item_style_wrapper.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter_svg/svg.dart';
@@ -59,17 +60,7 @@ class ListItemRegularRowWidget extends StatelessWidget {
60 if(iconPath != null)
61 Padding(
62 padding: const EdgeInsets.only(right: 12.0),
62 - child: iconPath!.split(".").last.toLowerCase() == "svg"
63 - ? SvgPicture.asset(
64 - iconPath!,
65 - width: 24,
66 - height: 24,
67 - )
68 - : Image.asset(
69 - iconPath!,
70 - width: 24,
71 - height: 24,
72 - ),
63 + child: CakeImageWidget(imageUrl: iconPath!, width: 24,height: 24,)
64 ),
65 Flexible(
66 child: Column(
@@ -100,14 +91,14 @@ class ListItemRegularRowWidget extends StatelessWidget {
91 ),
92 ),
93 if(trailingIconPath != null)
103 - SvgPicture.asset(
94 + CakeImageWidget(imageUrl:
95 trailingIconPath!,
96 height: trailingIconSize ?? 18,
97 width:trailingIconSize ?? 18,
98 colorFilter: ColorFilter.mode(foregroundColor ?? Theme.of(context).colorScheme.onSurfaceVariant,BlendMode.srcIn),
99 )
100 else if(showArrow)
110 - SvgPicture.asset(
101 + CakeImageWidget(imageUrl:
102 "assets/new-ui/arrow_forward.svg",
103 height: 14,
104 color: theme.colorScheme.onSurfaceVariant
lib/src/widgets/new_list_row/list_item_selector_widget.dart
+2 -1
@@ -1,3 +1,4 @@
1 +import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
2 import 'package:cake_wallet/src/widgets/new_list_row/list_Item_style_wrapper.dart';
3 import 'package:flutter/material.dart';
4 import 'package:flutter_svg/svg.dart';
@@ -41,7 +42,7 @@ class ListItemSelectorWidget extends StatelessWidget {
42 options[selectedIndex],
43 style: labelStyle,
44 ),
44 - SvgPicture.asset(
45 + CakeImageWidget(imageUrl:
46 "assets/new-ui/chooser.svg",
47 colorFilter:
48 ColorFilter.mode(theme.colorScheme.onSurfaceVariant, BlendMode.srcIn),
res/pictures/3dots.svg renamed
res/pictures/3dots_vertical.svg renamed
res/pictures/Contacts.svg renamed
res/pictures/account.svg renamed
res/pictures/add-label.svg renamed
res/pictures/addr-book.svg renamed
res/pictures/address-type-picker-icons/btc_lightning.svg renamed
res/pictures/address-type-picker-icons/btc_standard.svg renamed
res/pictures/address-type-picker-icons/legacy.svg renamed
res/pictures/address-type-picker-icons/litecoin.svg renamed
res/pictures/address-type-picker-icons/mweb.svg renamed
res/pictures/address-type-picker-icons/payjoin.svg renamed
res/pictures/address-type-picker-icons/segwit.svg renamed
res/pictures/address-type-picker-icons/silent.svg renamed
res/pictures/address-type-picker-icons/taproot.svg renamed
res/pictures/address-type-picker-icons/zec/public.svg renamed
res/pictures/address-type-picker-icons/zec/sapling.svg renamed
res/pictures/address-type-picker-icons/zec/shielded.svg renamed
res/pictures/address-type-picker-icons/zec/transparent.svg renamed
res/pictures/address-type-picker-icons/zec/unified.svg renamed
res/pictures/address_hide.svg renamed
res/pictures/address_set_label.svg renamed
res/pictures/app_settings.svg renamed
res/pictures/arrow_forward.svg renamed
res/pictures/arrow_right.svg renamed
res/pictures/balance_card_backgrounds/arbitrum.svg renamed
res/pictures/balance_card_backgrounds/base.svg renamed
res/pictures/balance_card_backgrounds/bitcoin-cash.svg renamed
res/pictures/balance_card_backgrounds/bitcoin.svg renamed
res/pictures/balance_card_backgrounds/bnb.svg renamed
res/pictures/balance_card_backgrounds/decred.svg renamed
res/pictures/balance_card_backgrounds/dogecoin.svg renamed
res/pictures/balance_card_backgrounds/ethereum.svg renamed
res/pictures/balance_card_backgrounds/lightning.svg renamed
res/pictures/balance_card_backgrounds/litecoin.svg renamed
res/pictures/balance_card_backgrounds/monero.svg renamed
res/pictures/balance_card_backgrounds/nano.svg renamed
res/pictures/balance_card_backgrounds/polygon.svg renamed
res/pictures/balance_card_backgrounds/solana.svg renamed
res/pictures/balance_card_backgrounds/tron.svg renamed
res/pictures/balance_card_backgrounds/wownero.svg renamed
res/pictures/balance_card_backgrounds/zano.svg renamed
res/pictures/balance_card_backgrounds/zcash.svg renamed
res/pictures/balance_card_icons/arbitrum.svg renamed
res/pictures/balance_card_icons/base.svg renamed
res/pictures/balance_card_icons/bitcoin.svg renamed
res/pictures/balance_card_icons/bitcoin_cash.svg renamed
res/pictures/balance_card_icons/bnb.svg renamed
res/pictures/balance_card_icons/decred.svg renamed
res/pictures/balance_card_icons/dogecoin.svg renamed
res/pictures/balance_card_icons/ethereum.svg renamed
res/pictures/balance_card_icons/lightning.svg renamed
res/pictures/balance_card_icons/litecoin.svg renamed
res/pictures/balance_card_icons/monero.svg renamed
res/pictures/balance_card_icons/nano.svg renamed
res/pictures/balance_card_icons/polygon.svg renamed
res/pictures/balance_card_icons/solana.svg renamed
res/pictures/balance_card_icons/tron.svg renamed
res/pictures/balance_card_icons/wownero.svg renamed
res/pictures/balance_card_icons/zano.svg renamed
res/pictures/balance_card_icons/zcash.svg renamed
res/pictures/bitcoin.svg renamed
res/pictures/blank.svg renamed
res/pictures/by-cakelabs.svg renamed
res/pictures/cake_squircle_icon.svg renamed
res/pictures/cakelabs-icon.svg renamed
res/pictures/cakewallet-wordmark-light.svg renamed
res/pictures/cakewallet-wordmark.svg renamed
res/pictures/chain_badges/arbitrum.svg renamed
res/pictures/chain_badges/base.svg renamed
res/pictures/chain_badges/bnb smart chain.svg renamed
res/pictures/chain_badges/ethereum.svg renamed
res/pictures/chain_badges/lightning.svg renamed
res/pictures/chain_badges/mweb.svg renamed
res/pictures/chain_badges/polygon.svg renamed
res/pictures/chain_badges/solana.svg renamed
res/pictures/chain_badges/tron.svg renamed
res/pictures/chain_badges/zano.svg renamed
res/pictures/checkmark.svg renamed
res/pictures/chooser.svg renamed
res/pictures/contacts_outlined.svg renamed
res/pictures/copy-icon.svg renamed
res/pictures/copy.svg renamed
res/pictures/crypto-minimal-icons/Monero.svg renamed
res/pictures/dropdown_arrow.svg renamed
res/pictures/exchange.svg renamed
res/pictures/exchange_providers.svg renamed
res/pictures/frozen.svg renamed
res/pictures/help.svg renamed
res/pictures/hide_keyboard.svg renamed
res/pictures/history-received.svg renamed
res/pictures/history-receiving.svg renamed
res/pictures/history-sending.svg renamed
res/pictures/history-sent.svg renamed
res/pictures/icon-accounts.svg renamed
res/pictures/info.svg renamed
res/pictures/label.svg renamed
res/pictures/lightning.svg renamed
res/pictures/lightning_deposit_help.svg renamed
res/pictures/lightning_username_setup.svg renamed
res/pictures/lightning_username_setup_light.svg renamed
res/pictures/lightning_withdraw_help.svg renamed
res/pictures/link_arrow.svg renamed
res/pictures/mask.svg renamed
res/pictures/mweb_help.svg renamed
res/pictures/mweb_sync.svg renamed
res/pictures/navbar/apps.svg renamed
res/pictures/navbar/charts.svg renamed
res/pictures/navbar/contacts.svg renamed
res/pictures/navbar/home.svg renamed
res/pictures/navbar/wallets.svg renamed
res/pictures/offline.svg renamed
res/pictures/options.svg renamed
res/pictures/options_slider.svg renamed
res/pictures/paste.svg renamed
res/pictures/payjoin.svg renamed
res/pictures/pjmodal_btc.svg renamed
res/pictures/pjmodal_pj.svg renamed
res/pictures/randomize.svg renamed
res/pictures/receive.svg renamed
res/pictures/refund_address.svg renamed
res/pictures/remove_recipient.svg renamed
res/pictures/scan.svg renamed
res/pictures/select_wallet.svg renamed
res/pictures/send.svg renamed
res/pictures/send_from_external.svg renamed
res/pictures/set-amount.svg renamed
res/pictures/settings_row_icons/backup.svg renamed
res/pictures/settings_row_icons/coin-control.svg renamed
res/pictures/settings_row_icons/connections.svg renamed
res/pictures/settings_row_icons/cupcake.svg renamed
res/pictures/settings_row_icons/defaults.svg renamed
res/pictures/settings_row_icons/display.svg renamed
res/pictures/settings_row_icons/info.svg renamed
res/pictures/settings_row_icons/lightning_username.svg renamed
res/pictures/settings_row_icons/mweb.svg renamed
res/pictures/settings_row_icons/nodes.svg renamed
res/pictures/settings_row_icons/other.svg renamed
res/pictures/settings_row_icons/payjoin.svg renamed
res/pictures/settings_row_icons/privacy.svg renamed
res/pictures/settings_row_icons/security.svg renamed
res/pictures/settings_row_icons/seed.svg renamed
res/pictures/settings_row_icons/silent-payments.svg renamed
res/pictures/settings_row_icons/support.svg renamed
res/pictures/silent_sync.svg renamed
res/pictures/swap_amounts.svg renamed
res/pictures/switch.svg renamed
res/pictures/switcher-bitcoin.svg renamed
res/pictures/switcher-lightning.svg renamed
res/pictures/token-received.svg renamed
res/pictures/token-sent.svg renamed
res/pictures/top-settings.svg renamed
res/pictures/tor.svg renamed
res/pictures/tor_sync.svg renamed
res/pictures/trade_providers/chainflip.svg renamed
res/pictures/trade_providers/changenow.svg renamed
res/pictures/trade_providers/exolix.svg renamed
res/pictures/trade_providers/jupiter.svg renamed
res/pictures/trade_providers/letsexchange.svg renamed
res/pictures/trade_providers/near-intents.svg renamed
res/pictures/trade_providers/sideshift.svg renamed
res/pictures/trade_providers/simpleswap.svg renamed
res/pictures/trade_providers/stealthex.svg renamed
res/pictures/trade_providers/swaps_xyz.svg renamed
res/pictures/trade_providers/swaptrade.svg renamed
res/pictures/trade_providers/thorchain.svg renamed
res/pictures/trade_providers/trocador.svg renamed
res/pictures/trade_providers/uniswap.svg renamed
res/pictures/trade_providers/xoswap.svg renamed
res/pictures/unmask.svg renamed
res/pictures/wallet-trezor.svg renamed
res/pictures/wallet_settings.svg renamed
res/pictures/warning.svg renamed