* Add theme base v2
* Initial new theme base files
* Typos
* Fixes
* Update theme files
* feat: Migrate to Material 3 Theming
Foundation, Theme Data Refactor, and First Extension Cleanup Batch.
This commit completes the first major phase of migrating to Material 3 theming by setting up the foundations for material 3 integration and begins the initial migration, removing custom theme extensions, updating theme data, and refactoring all relevant widget and page theming to use Material 3’s built-in color and typography tokens.
These changes:
- Lays the groundwork for Material 3 theming by restructuring the app’s theme configuration to use Material 3’s ColorScheme and TextTheme as the primary sources of color and typography throughout the app.
- Refactors the core theme config files by removing legacy custom color roles ensuring all color definitions now map directly to Material 3’s role.
- Begins the first batch migration of custom theme extensions (InfoTheme, PlaceholderTheme, KeyboardTheme, PinCodeTheme) and updates all affected widgets and pages to use Material 3 color and typography tokens instead of the custom properties.
- Cleans up the codebase by deleting the files of the initial set of migrated extensions and eliminating all related imports and usages.
* feat: Migrate to Material 3 Theming.
This change:
- Updates the themes README.md file to reflect the current structure and give more information based on the first major phase that was completed.
* feat: Migrate to Material 3 Theming
Deleting previous theme extensions
* feat: Migrate to Material 3 Theming
Another batch of migrations from existing extensions
* feat: Migration to Material 3 Theming
Third Migration batch for theme extensions
* fwat: Migration to Material 3 Theming
Final Migration batch for previous theme extensions
* Update onboarding hero
* Update button radius
* Add surfaceContainer to light theme
* feat(themes): Migrate to Material 3 Theming
This change:
- Adds new set of hero images
- Modifies the core structure for the themes
- Add missing color tokens to the theme classes
- Adds a CustomThemeColor class for custom color tokens
- Modifies the themelist to have a fall back for previous theme implementation
- Adds localization for some texts
- Modifies the flow for loading the theme on app start
- Add a WidgetsBindingObserver that listens for changes in the device theme and updates the app theme when there is a change
- Registers the themeStore as a Singleton for codebase wide use
* feat(themes): Migrate to Material 3 theming
This change:
- Migrates UI flows across the app to the new themes
- Confirms styling and typography of components across the app uses the new themes
- Remove instances of Palette use
- Switch TextStyles across the app to use theme text styles
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adjusts bottomsheets styling and removes duplicate close button
- Removes more themedata extensions from the previous implementation
* - Remove outlines from cards and dock
- Update menu colors
- Update padding/divider size for cards
* - Update PIN screen
- Fix navigation dock shadow
- Update wallet screen colors
* Update border radius --skip-ci
* feat(themes): Migrate to Material 3 Theming.
This change:
- Adds gradient backgrounds to the dashbaord and balance cards.
- Migrates the input fields across the app to BaseTextFormFields.
- Removes dependence of input fields on individual styling, focusing instead on using theme defined InputDecoration styling with adjustments on individual components where needed.
- Applies new theme styling to BaseTextFormField, AddressTextField and CurrencyAmountTextField.
* - Switch some hero images to PNG
- Fix nagivation_dock shadow
- Minor fixes
* feat: Add fallback to previous underline styling in central widgets
This change:
- Adds a fallback to CurrencyAmountTextField, AddressTextField, and BaseTextFormField, allowing them use the previous theme styling.
- Adds localization for new texts
* feat(themes): Update warning box colors for dark and light themes
* feat(themes): Relaod themes when user restores from backup, ensuring the user previous theme preference is used.
* feat(themes): Handle themes logic during restore from backup
This change:
- Refactors theme loading logic to handle backup restore edgecase
- Refreshes the theme based on the user saved preference during restore from backup flow
* Fix card gradients and spacing
* Fix even more radiuses
Test new icons for navigation_dock.dart
* Update onboarding flow backgrounds
Fix swap icon clipping
Fix some text colors
Add more hero images
* Fix incorrect color for light theme
* Fix more hero images and cleanup
* Update text field icons
Fix info box CTA colors
Fix sync indicator colors
* Update toggle colors
Update dark theme colors (minor)
Update crypto_balance_widget.dart icon
* Update page transitions in router.dart
Fix some colors
* feat(themes): Display label by default for filled textfields
* feat(themes): Refactor theme handling across various components
This change:
- Fixes issue with themeMode resetting to system mode when app is restarted causing a UI glitch
- Updates theme checks from `currentTheme.type == ThemeType.dark` to `currentTheme.isDark` for consistency
- Adjusts UI components to use the theme directly from the themeStore
* feat(themes): Add animating tagline to the create pin welcome screen
* Revert text fields label temporarily, fix a couple colors, and cleanup some images
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* Initial Payjoin
* Initial Payjoin
* More payjoin stuff
* Minor fixes
* Minor fixes
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Fix minor bug causes by data inconsistency in the btc utxos
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Initial Payjoin
* Initial Payjoin
* More payjoin stuff
* Minor fixes
* Minor fixes
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Fix minor bug causes by data inconsistency in the btc utxos
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Minor cleanup
* Fix Rebase issues
* Move PJ Receiver to isolate
* Add Payjoin Setting
* Payjoin Sender are now isolated
* Added Payjoin sessions to tx overview. Fix Fee issue with payjoin
* Clean up code
* Fix taproot for payjoin
* Fix CI Errors
* Add Payjoin UI elements and details page
* Add Payjoin UI elements and details page
* Fix Translations
* feat: Detect Payjoin URIs in pasted text and show to the User sending Payjoin
* feat: rename pjUri to payjoinURI for more code clarity
* Update res/values/strings_pl.arb
Co-authored-by: cyan <cyjan@mrcyjanek.net>
* Update cw_bitcoin/lib/payjoin/manager.dart
Co-authored-by: cyan <cyjan@mrcyjanek.net>
* Update cw_bitcoin/lib/payjoin/manager.dart
Co-authored-by: cyan <cyjan@mrcyjanek.net>
* feat: Disable Payjoin per default
* feat: Disable Payjoin fully if disabled or no Inputs available
* feat: Resume Payjoin if app comes back to foreground
* chore: Revert overly aggressive code formats
* feat: show correct Payjoin amount for receivers
* feat: Improved payjoin status
* feat: Show payjoin errors on payjoin details screen
* deps: update flutter to 3.27.4
* feat: Revert localisations
* bug: Remove duplicate transaction id on payjoin details
* style: remove double await in payjoin sender
* refactor(cw_bitcoin): Refactor method signatures and convert constructor to factory
* refactor(cw_bitcoin): Refactor wallet service and PSBT signer for cleaner code
Removed unnecessary `CakeHive` dependency and refactored `BitcoinWallet` initialization to use `payjoinSessionSource`. Improved code readability in `PsbtSigner` by reformatting lines and simplifying constructor methods for `UtxoWithPrivateKey`.
* fix: Resume Payjoin Sessions and load PJUri after sleep
* feat: Add "Copy Payjoin URL button" to receive screen
* fix: Add "Payjoin enabled"-Box below QR Code on the receive screen
* fix: Set payjoin_enabled color to black independent of the theme
* refactor: Payjoin session management and cleanup unused code.
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
Co-authored-by: cyan <cyjan@mrcyjanek.net>
* feat: Add Open CryptoPay for sending
* bug: Fix sending Open CryptoPay for eth
* feat: add transaction dismissal
* style: remove print statements from OCP
* feat: add support for Monero over OCP
* bug: Hide "Add to Address Book" on OCP transactions
* style: revert code style in send_view_model.dart
* style: revert code style in send_view_model.dart
* feat: set failure state if it fails to create an OCP transaction
* Update lib/view_model/send/send_view_model.dart
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* [skip-ci] wip
* [skip-ci] styles still need updating
* working but needs style updates
* fix checkbox caption color
* sort mweb coins to be last when selecting inputs
* ui fixes
* [skip-ci] default to mweb-checkbox being off
* adaptable page view builder + workaround for keyboard actions
* Fix checkbox themeing and send card sizing
* Update lib/src/screens/send/widgets/send_card.dart
---------
Co-authored-by: tuxpizza <tuxsudo@tux.pizza>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* feat: Redesign HW Account select screen
* fix: Avoid "Bluetooth disabled" Exception on dispose of HW Connection screen
* feat: Proceed on Ledger Modal is not dismissible by tapping out
* feat: Gracefully ignore errors thrown by monero ledger keep alive function
* feat: Close a monero ledger wallet on wallet change
* fix: Leave connect screen without connecting
* automatically export outputs
* remove print statements
* update configure script
* Update logic behind import/export keyimages/outputs
* discussed changes
* replace store with just waiting for the wallet to update it's state
* Fix sending for monero ledger
* Ignore no tx keys found error
* re-add Monero to Ledger enabled wallets
* Fix No Element Exception on requireHardwareWalletConnection check
* Fix Showing connection screen again
* Maybe fix Race condition
* fix namespace
* Maybe fix Race condition and add missing pop
* Minor fixes
* Minor fixes
* Fix minor localization
* Fix minor localization
* Add Text prompt if device is not showing after 10 seconds.
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
* replace qr scanner with fast_scanner
* bump java version
* fix qr code scanning
* add flashlight and camera switch
* airgap work
* commitTransactionUR
* bump fast_scanner, fix configure script
* add option to restore wallet from NERO qr format
* fixes to the flow and logic
use gsed or otherwise it fails?
* remove Expanded() to fix URQR on release builds
* cache key to allow app updates
* rename cache key
* [skip ci] cache key.jks in cache_dependencies
* update fast_scanner to work on ios, with light mlkit dependency
* ui fixes
* error handling fix
* update fast_scanner to drop iOS dependency
* changes from review
* Update lib/entities/qr_scanner.dart
* changes from review
* remove useless commit
* don't set state multiple times
remove return Container() for non monero wallets
* return on fail
don't handle empty qr codes
* set node as trusted
display primary address in seed screen
* fix wow and haven
* migrate node to trusted
* - update trusted node for existing users
- update locales
- fix conflicts
- move menu item
---------
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Add Litecoin Hardware Wallet Creation
* Add Litecoin Hardware Wallet Creation
* Fix Bitcoin not sending on Ledger
* Fixes to sending LTC using Ledger
* CW-679 Fix merge conflicts
* CW-679 Fix merge conflicts
* CW-679 Minor fixes
* CW-679 Add derivation Path of change address
* ledger flutter plus refactoring
* ledger flutter plus refactoring
* ledger flutter plus refactoring
* Ups :|
* Ups :| I forgot USB
* Handle BT Off
* Fix Issue with A14 and USB
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Small Ledger Quality of life improvements
* Pls work
* Pls work
* Pls work
* Pls work
* Fix overpopulation
* Fix ble device detection and support for Stax and Flex
* clean up pubspec
* clean up
* MWeb merge fix
* MWeb merge fix
* Fix Merge conflicts
* Fix Requested changes
* version 4.20.0
* update build numbers
* UI updates and script fix for ios bundle identifier
* disable mweb for desktop
* change hardcoded ltc server ip address
electrum connection enhancement
* MWEB enhancements 2.0 (#1735)
* additional logging and minor fixes
* additional logging and minor fixes
* addresses pt.1
* Allow Wallet Group Names to be the same as Wallet Names (#1730)
* fix: Issues with imaging
* fix: Allow group names to be the same as wallet names
* fix: Bug with wallet grouping when a wallet is minimized
* fix: Bug with wallet grouping when a wallet is minimized
* logs of fixes and experimental changes, close wallet before opening next
* save
* fix icon
* fixes
* [skip ci] updates
* [skip ci] updates
* updates
* minor optimizations
* fix for when switching between wallets
* [skip ci] updates
* [skip ci] updates
* Update cw_bitcoin/lib/litecoin_wallet.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Update cw_bitcoin/lib/litecoin_wallet.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* mobx
* mostly logging
* stream fix pt.1 [skip ci]
* updates
* some fixes and enhancements
* [skip ci] minor
* potential partial fix for streamsink closed
* fix stream sink closed errors
* fix mweb logo colors
* save
* minor enhancements [skip ci]
* save
* experimental
* minor
* minor [skip ci]
---------
Co-authored-by: David Adegoke <64401859+Blazebrain@users.noreply.github.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* fix menu list removing from original list
* detach sync status from mwebsyncstatus
* minor
* keep sync status in sync where necessary
* minor
* wip
* appears to work?
* updates
* prevent mwebd from submitting non mweb transactions
* fix unspent coins info not persisting for mweb coins + other minor fixes
* [skip ci] minor
* Polish MWEB card UI
* make sure current chain tip is updated correctly [skip ci]
* [skip ci] review fixes
* [skip ci] detect mweb outputs more thoroughly (fix peg-in commit error)
* fix change address on send ui
* fix qr code scan issue
* get segwit address for pegout even if mweb is selected on the receive screen [skip ci]
* - Fix adding nodes twice
- Fix mempool API parsing error
* (potentially) fix duplicate tx history bug
* [skip ci] fix bc1 address
* don't show contacts prompt on pegin/out + potential unconfirmed balance fixes
* [skip ci] minor cleanup
* fix mweb input detection
* fix showing mweb address for non-mweb transactions
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
Co-authored-by: David Adegoke <64401859+Blazebrain@users.noreply.github.com>
Co-authored-by: tuxpizza <tuxsudo@tux.pizza>
* feat: Integration tests setup and tests for Disclaimer, Welcome and Setup Pin Code pages
* feat: Integration test flow from start to restoring a wallet successfully done
* test: Dashboard view test and linking to flow
* feat: Testing the Exchange flow section, selecting sending and receiving currencies
* test: Successfully create an exchange section
* feat: Implement flow up to sending section
* test: Complete Exchange flow
* fix dependency issue
* test: Final cleanups
* feat: Add CI to run automated integration tests withan android emulator
* feat: Adjust Automated integration test CI to run on ubuntu 20.04-a
* fix: Move integration test CI into PR test build CI
* ci: Add automated test ci which is a streamlined replica of pr test build ci
* ci: Re-add step to access branch name
* ci: Add KVM
* ci: Add filepath to trigger the test run from
* ci: Add required key
* ci: Add required key
* ci: Add missing secret key
* ci: Add missing secret key
* ci: Add nano secrets to workflow
* ci: Switch step to free space on runner
* ci: Remove timeout from workflow
* ci: Confirm impact that removing copy_monero_deps would have on entire workflow time
* ci: Update CI and temporarily remove cache related to emulator
* ci: Remove dynamic java version
* ci: Temporarily switch CI
* ci: Switch to 11.x jdk
* ci: Temporarily switch CI
* ci: Revert ubuntu version
* ci: Add more api levels
* ci: Add more target options
* ci: Settled on stable emulator matrix options
* ci: Add more target options
* ci: Modify flow
* ci: Streamline api levels to 28 and 29
* ci: One more trial
* ci: Switch to flutter drive
* ci: Reduce options
* ci: Remove haven from test
* ci: Check for solana in list
* ci: Adjust amounts and currencies for exchange flow
* ci: Set write response on failure to true
* ci: Split ci to funds and non funds related tests
* test: Test for Send flow scenario and minor restructuring for test folders and files
* chore: cleanup
* ci: Pause CI for now
* ci: Pause CI for now
* ci: Pause CI for now
* Fix: Add keys back to currency amount textfield widget
* fix: Switch variable name
* fix: remove automation for now
* test: Updating send page robot and also syncing branch with main
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* fix: enhance regex, fix multiline
* feat: improve scan msg, fix missing txs, use date api
* feat: node fixes, enhance send modal, TX list tag & filter, refactors
* fix: continuous scanning
* fix: missing close
* fix: resubscribe tweaks
* feat: use mempool api setting toggle
* handle any failure of height API and fallback to the old method [skip ci]
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* minor enhancement
* show camera consent at least once, even if camera permission is granted already
* minor enhancement [skip ci]
* Add taproot derivation path to electrum_derivations.dart
* remove unused import [skip ci]
* Initialize Ledger only when necessary
* Update app versions
* fix: address book addresses, bch builder, exchange all fee estimation, bch coin control
* feat: new error framework for Electrum messages
* build: cw_bitcoin.dart
* feat: error improvements, localization, fix exchange amount mismatch
* chore: misc comment & print [skip ci]
* feat: refactor & simplify sendAll vs regular tx estimation and creation
- Since there were so many conditions inside a single function to alter its behavior if sendAll or not, it is easier and more readable to have separate sendAll and estimateTx functions that behave separately
* fix: wrong LTC dust
* feat: fee rate confirmation
* fix: wrong createTrade value when isSendAll is enabled
* fix bitcoin cash address parsing [skip ci]
* fix: form no amount validator, address book with multiple entries, exchange all below min error
* fix: improve string, fix sending with dust inputs at the top
* fix: two change outputs when re-estimating
* fix: sendAll with a little dust adds fees
* chore: sanity check [skip ci]
* fix: if the fee is higher than estimated
* Minor enhancement [skip ci]
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* chore: Create cw_solana package and clean up files
* feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens
* fix: Make transactions file specific to solana only for solana transactions
* chore: Revert inject app details script
* fix: Fix issue with node and switch current node to main beta instead of testnet
* fix: Fix merge conflicts and adjust migration version
* fix: Fetch spl token error
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
* fix: Diplay and activate spl tokens bug
* fix: Review and fixes
* fix: reverted formatting for cryptocurrency class
* fix: Review comments, split sending flow into signing and sending separately, fix issues
* fix: Revert throwing unimplenented error
* chore: Fix comment
* chore: Fix comment
* fix: Errors in flow
* Update provider_types.dart [skip ci]
* fix: Issues with solana wallet
* Update solana_wallet.dart [skip ci]
* fix: Review comments
* fix: Date time config
* fix: Revert bash script for app details
* fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list
* fix: Issues with address validation when sending spl tokens and walletconnect initial setup
* fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect
* fix: Adjust imports that would affect monerocom building successfully
* fix: Refine transaction direction and continue work on walletconnect
* feat: Display SPL token transfers in the transaction history and finally settle the transaction direction
* fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions
* feat: Switch node and revert solana chain id to previous id
* fix: Remove print statement
* fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message
* chore: Code refactoring and streamlined wallet type check for solana send success message
* fix: Make timeout error for node silent and add spl token images
---------
Signed-off-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Fix White screen issue
Bypass node certificate issue
* check on Fiat currency only with fiat templates
* Add possible missing cache file android error
* Dispose exchange state reaction when page is closed
* Fix minor chinese translation
* Temp remove BCH from robinhood
* Minor fixes
* Add exception handler to fiat APIs
Increase send card size for coin control
Fix Monero.com unspent coins hive box issue
minor bug fix
* Remove EIP-1559 parameters from Eth transaction
Enhance error reporting
* Throw error if not enough monero utx outputs are selected
* Fix Search text color
* Fix Ethereum sending EIP-1559 transactions
* Add transaction data to ERC20 transactions
* Add input check in single output transactions as well
* Fix Node deletion issue
Handle user input error in anonpay
* Remove exception handler from fiat conversion since it's not working with isolates
* Require enough utxo for amount and fees; More insightful Error messages
* Add cakewallet to applinks [skip ci]
* Add cakewallet app link for iOS [skip ci]
* Add applink depending on app scheme variable
* Add applink in iOS custom to the app getting built [skip ci]
* Handle normal app links without considering them as Payment URIs
* Minor fix [skip ci]
* Fixate encrypt package version as the recent update they made has some issues [skip ci]
---------
Co-authored-by: Konstantin Ullrich <konstantinullrich12@gmail.com>