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),