* Add Black theme
* Fix black theme
* Add WixMadefor Font
* feat: Enhance theme setup
This change:
- Adds support for custom themes
- Updates theme retrieval logic to ensure the right theme is used based on user preferences(especially for custom themes).
* Add black custom colors
* Add custom accent colors
* feat: Restructure custom colors handling for themes
* feat: Integrate new custom colors structure across various components - WIP
* feat: Integrate new custom colors structure across various components, black theme now ready for tests
* feat: Add new accent color themes and update theme selection UI
- Enhanced theme selection UI in display settings to support accent color choices.
- Updated theme handling logic to accommodate new accent color variants.
* Minor updates to display_settings_page.dart
* Update settings_theme_choice.dart
* Revert accidental change in display_settings_page.dart
* Revert WixMadeFor font, fix SVG colors for CakeImageWidget, and test some color changes
* Update Monero Orange
* fix: Remove unused custom colors
* Test outline
* Test spacing and colors
* Add padding
* Remove outline
* Add other accent colors
* Update display_settings_view_model.dart
* Update names and fix switch case
* Add outline and update dark_theme.dart colors
* Add gradient to option_tile.dart
* Update icons
* Update some colors
* Switch option_tile.dart to TextButton
* Add updated icons
* Fix icon resolution
* Cleanup old icons + Update pubspec_base.yaml
* Remove unused fonts
* Update more icons
* Update image paths
* Remove more icons + update some component colors
* Add back DAI icon
* Fix errors
* feat: Implement OLED mode for BlackTheme
* feat: Add OLED mode for BlackTheme and localizations
* feat: Implement OLED mode for Black Theme
* refactor: Remove unused theme parameters and set up easy access to toggleKnob custom colors
* fix: Cleanup UI and overflows
* feat: Persist black theme selection if OS theme mode while app is in system mode
* fix: OS theme change when app is in background restrict pin screen from proceed
* Fix theme picker sizing
* Update lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* refactor: Enhance theme access by introducing ThemeX extension for easier retrieval of current theme and custom colors
* refactor: Remove currentTheme parameter from GradientBackground widget and adjust across affected widgets
* refactor: Remove currentTheme parameter from StandardSwitch and SettingsSwitcherCell, using ThemeX extension for theme access
* refactor: Remove currentTheme parameter from various widgets dependent on SettingsSwitcherCell and StandardxSwitcher, using ThemeX extension for theme access
* refactor: Remove currentTheme in bottomsheets and related widgets, switching to theme extension
* refactor: Remove constructor theme access in OptionTile and related widgets, switching to theme extension
* refactor: Switch bottomsheet related widgets to use theme extension instead of constructor access
* refactor: Migrate currentTheme access from constructor based to extension base
* refactor: Switch theme access from constructor base to extension base [skip ci]
* refactor: Migrate more widgets to use extension based theme access and clean up code
* refactor: Update theme access across multiple widgets to use the new theme extension
* refactor: Clean up theme access in various widgets, moving to extension-based theme usage
* refactor: Make theme picker preview responsive
* fix: Persist saved black theme accent when app is put in background and brought back
* remove unused variables [skip ci]
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* Add user ETH and SOL tokens to exchange currency lists
* Update default_spl_tokens.dart
* fix solana token icon issue
* add user currency to Trade and update usage
* add support for user Tron and Polygon tokens in exchange
* removing the providersForCurrentPair method and related logic
* Improve currency search
* prevent crash in EVM wallets for unknown token symbols
* Improve asset lookup in XOSwap provider
* revert token enabled state for tron solana
* Move SPL and Tron token classes to cw_core
* fix updating trades for user tokens
* Improve token matching by including tag comparison
* safer currency parsing across all exchange providers
* Update edit_token_page.dart
* feat: add max decimal handling for crypto amounts and test coverage
* fix: correct decimal point handling in `withMaxDecimals` and update related test
* fix: ensure amount formatting aligns with selected currency decimals in ReceivePage
* fix: ensure amount controller syncs with ViewModel in AddressPage and ReceivePage
* feat: add support for currency decimals and streamline amount handling logic
* fix: ensure crypto and fiat amounts sync correctly in Send ViewModel
* Fix some colors
* fix(themes): Adjust background and text colors for action buttons on info bottomsheet
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* Fix some colors
* fix(theme-updates): Modify condition for theme border style display when hasUnderlineBorder is true
* fix(themes-updates): Adjust switch colors and modify payjoin hint text
* fix: Crash report relating to success image display on successful exchange
* fix(theme-updates): Adjust animated text max width to prevent overflows
* fix(theme-updates): Adjust fee picker styling
* fix(themes-updates): Remove text overflow on welcome screen animation
---------
Co-authored-by: Blazebrain <davidadegoke16@gmail.com>
* 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>
The desktop exchange screen was only showing the buy flow with no way
to switch to sell. This change adds the missing toggle to the DesktopExchangeCardsSection and links it up in the buy/sell page
* feat: Implement New Swap UI including fee items and coin control and extract common fee logic to a feeViewModel, use that in SendViewModel and ExchangeViewModel
* feat: Implement New Swap UI with fee items and coin control and extract common fee logic to a feeViewModel for use in SendViewModel and ExchangeViewModel
* Update colors
* Show warning if user choose a below default transaction priority
* fix: Add warning when user select less than default transaction priority and add condition to show extraId
* Complete Swap UI flow
* Handle edgecases for XRP
* Switch swap page button texts
* Handle edgecases for XLM
* Switch prompt text and handle edgecases
---------
Co-authored-by: tuxpizza <tuxsudo@tux.pizza>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
* 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>
* Change order of currencies in currency picker
* Disable Background sync until implemented properly
* remove ability to use device pin in bio auth
* Fix condition
* Minor fix [skip ci]
* make notifications red dot go when opened
* Update Frozen coin text color
* Update Frozen coin text color
* Fetch internal transactions for eth and polygon
* Remove debug prints [skip ci]
* Fix Camera permission on iOS [skip ci]
---------
Co-authored-by: tuxsudo <tuxsudo@tux.pizza>
* Add initial flow for ethereum
* Add initial create Eth wallet flow
* Complete Ethereum wallet creation flow
* Fix web3dart versioning issue
* Add primary receive address extracted from private key
* Implement open wallet functionality
* Implement restore wallet from seed functionality
* Fixate web3dart version as higher versions cause some issues
* Add Initial Transaction priorities for eth
Add estimated gas price
* Rename priority value to tip
* Re-order wallet types
* Change ethereum node
Fix connection issues
* Fix estimating gas for priority
* Add case for ethereum to fetch it's seeds
* Add case for ethereum to request node
* Fix Exchange screen initial pairs
* Add initial send transaction flow
* Add missing configure for ethereum class
* Add Eth address initial setup
* Fix Private key for Ethereum wallets
* Change sign/send transaction flow
* - Fix Conflicts with main
- Remove unused function from Haven configure.dart
* Add build command for ethereum package
* Add missing Node list file to pubspec
* - Fix balance display
- Fix parsing of Ethereum amount
- Add more Ethereum Nodes
* - Fix extracting Ethereum Private key from seeds
- Integrate signing/sending transaction with the send view model
* - Update and Fix Conflicts with main
* Add Balances for ERC20 tokens
* Fix conflicts with main
* Add erc20 abi json
* Add send erc20 tokens initial function
* add missing getHeightByDate in Haven
* Allow contacts and wallets from the same tag
* Add Shiba Inu icon
* Add send ERC-20 tokens initial flow
* Add missing import in generated file
* Add initial approach for transaction sending for ERC-20 tokens
* Refactor signing/sending transactions
* Add initial flow for transactions subscription
* Refactor signing/sending transactions
* Add home settings icon
* Fix conflicts with main
* Initial flow for home settings
* Add logic flow for adding erc20 tokens
* Fix initial UI
* Finalize UI for Tokens
* Integrate UI with Ethereum flow
* Add "Enable/Disable" feature for ERC20 tokens
* Add initial Erc20 tokens
* Add Sorting and Pin Native Token features
* Fix price sorting
* Sort tokens list as well when Sort criteria changes
* - Improve sorting balances flow
- Add initial add token from search bar flow
* Fix Accounts Popup UI
* Fix Pin native token
* Fix Enabling/Disabling tokens
Fix sorting by fiat once app is opened
Improve token availability mechanism
* Fix deleting token
Fix renaming tokens
* Fix issue with search
* Add more tokens
* - Fix scroll issue
- Add ERC20 tokens placeholder image in picker
* - Separate and organize default erc20 tokens
- Fix scrolling
- Add token placeholder images in picker
- Sort disabled tokens alphabetically
* Change BNB token initial availability
* Fix Conflicts with main
* Fix Conflicts with main
* Add Verse ERC20 token to the initial tokens list
* Add rename wallet to Ethereum
* Integrate EtherScan API for fetching address transactions
Generate Ethereum specific secrets in Ethereum package
* Adjust transactions fiat price for ERC20 tokens
* Free Up GitHub Actions Ubuntu Runner Disk Space
* Free Up GitHub Actions Ubuntu Runner Disk space (trial 2)
* Fix Transaction Fee display
* Save transaction history
* Enhance loading time for erc20 tokens transactions
* Minor Fixes and Enhancements
* Fix sending erc20
fix block explorer issue
* Fix int overflow
* Fix transaction amount conversions
* Minor: `slow` -> `Slow`
* Update build guide
* Fix fetching fiat rate taking a lot of time by only fetching enabled tokens only and making the API calls in parallel not sequential
* Update transactions on a periodic basis
* For fee, use ETH spot price, not ERC-20 spot price
* Add Etherscan History privacy option to enable/disable Etherscan API
* Show estimated fee amounts in the send screen
* fix send fiat fields parsing issue
* Fix transactions estimated fee less than actual fee
* handle balance sorting when balance is disabled
Handle empty transactions list
* Fix Delete Ethereum wallet
Fix balance < 0.01
* Fix Decimal place for Ethereum amount
Fix sending amount issue
* Change words count
* Remove balance hint and Full balance row from Ethereum wallets
* support changing the asset type in send templates
* Fix Templates for ERC tokens issues
* Fix conflicts in send templates
* Disable batch sending in Ethereum
* Fix Fee calculation with different priorities
* Fix Conflicts with main
* Add offline error to ignored exceptions
---------
Co-authored-by: Justin Ehrenhofer <justin.ehrenhofer@gmail.com>
* refactor(Theme): migrate accentColor
- based on the specs at https://docs.flutter.dev/release/breaking-changes/theme-data-accent-properties#migration-guide.
* refactor(Theme): all deprecated TextTheme styles
* refactor(Theme): deprecated backgroundColor for colorScheme.background
* refactor(Theme): deprecated buttonColor to use TextTheme backgroundColor instead
* refactor(Theme): deprecated isAlwaysShown to use thumbVisibility instead
* fix: Currency picker UI when keyboard is showing
* refactor: move picker logic into the common Picker widget
- CurrencyPicker uses the common Picker widget in grid mode
- SeedLanguagePicker uses the common Picker widget in grid mode
- Added logic for keyboard showing UI into Picker widget
- Added `softWrap: true` to the item text, so it doesn't overflow
* fix: remove subPickerItemsList
* fix: add final
* fix: move function out of initState()
* fix: keep build functions separate to remove boolean comparisons
* fix: remove onItemSelected from already selected item
* fix: change Expanded for Flexible widget
* Add build scripts for macOS. Add macos for cw_monero plugin. Add macos proj to the application.
* - Update Flutter secure storage to work with macos
- Enable uni links only on Mobile
- Update devcelocale to work with macos
* Add network access to mac
* Change Dashboard view on desktop size screens
* Add on Tap to desktop_action_button.dart
Remove unused functions
* Fix arch match for monero lib for darwin x86_64 -> x86-64
* Add Bundle ID in entitlements files through app config script
* Update deployment target to 10.13
* Revert back to Cake fork for secure storage
* Revert back to Cake fork for secure storage
* Revert mac os version
* Revert mac os version
* Add platform channel specific code for mac os
* Add desktop sidebar
* [skip ci] Add desktop sidebar
* [skip ci] Add desktop sidebar
* - Remove legacy migration from macos
- Remove wake lock native code and just use the ready made package
* Remove wake lock native code and just use the ready made package
* Remove unstoppable domain from macos since it's not supported
* Temporarily fetch unstoppable domains only on mobile
* refactor desktop settings sidebar
* Ignore increasing brightness for non-mobile platforms
* Add Wallet selection dropdown to dashboard desktop view
* Generate MacOS icons
* localize settings
* fix dashboard sidebar and responsive utils
* Change Mac os app name and bundle id
* Fix exchange page as fullScreenDialog
* Remove constants
* - Refactor onRamper to have a single point of modification
- Enlarge initial app size
- update Flutter and Packages
* Add pubspec.lock and Podfile.lock to gitignore
* Remove Podfile.lock from cache
* Fix bug on sidebar reset
* Fix issues from code review
* [skip ci] reformat desktop dashboard
* [skip ci] reformat desktop dashboard
* Revert removing .lock files
* Revert changes in .gitignore
* [skip ci] remove .project changes
* [skip ci] remove .project changes
* Separate Dashboard desktop view from mobile view
* constraint images and pincoded box
* Remove drawer from mac os
* - Listen to keyboard events in PIN screen
- Fix PIN buttons style
* Fix desktop nav bar UI
* Add Marketplace to dashboard view
* Update trailing icon to open transaction page
* Update widget contraints
* Add empty trailing to center page title on desktop
* Refresh desktop dashboard actions on wallet change
* Change ionia welcome page animation
* Fix Constrained width screens UI
* Refactor sidebar state management
* remove empty line
* Add max width constrain to Welcome page
* Change Exchange page UI depending on platform
* - Change design/paddings for Send page on desktop view
- Make AddTemplateButton instead of having it duplicated in send/exchange
* Fix Desktop dashboard actions background color
* Constrain primary Buttons width
* Make side menu items toggle back to dashboard
* Add padding to support page
* Add width constraints to desktop dashboard
* Fix UI issues, paddings and alignments
* Rename misleading variable
Change initial mac window size
* Fix wallet create in settings
* remove unnecessary code
* remove unnecessary code
* Remove duplicated constrains
* - Use close icon on main screens
- Minor UI fixes
* fix pageview controller reset index
* Add create and restore wallet options to dropdown menu
* Fix desktop background color and address book view issues
* Fix input field
* Add onFieldSubmitted to allow "enter" button interaction
* Fix issue from code review
* Fix Popup width constraint and add focus orders
* Fix variable name
* Fix issues from code review
* refactor dropdown items
* Fix alignment in create and restore wallet screens
* Fix dropdown change state bug
Hide scanner for desktop
* remove space
* override navbar with desktopnavbar
* Remove autofocus
* remove unused code
* Fix ionia input field alignment
* Replace removed code
* Add app lock feature on mac
* Add assertion to avoid null
* Add Nano currency image
* Enable adding contact from send screen
* Fix UI issues
Add missing translation
* pop only PIN screen after successful auth
* Add back wallet settings page to desktop settings actions
* Fix Navigation animation for settings screens
* Fixate MobX version to fix restore issue
* CW-324 Refresh current settings page if wallet changed (#811)
* Fix refresh current settings page if wallet changed
* Fix refresh current settings page if wallet changed
* Refresh Wallet Seeds/Keys List upon wallet change
---------
Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
* Remove navigation workaround for duplicate key, and fix the issue by handling creation/disposing of global key (#840)
* Cw 323 add wallet list to settings on mac (#843)
* Remove navigation workaround for duplicate key, and fix the issue by handling creation/disposing of global key
* - Register Wallet List as singleton in Desktop to be modify the same instance from settings and dropdown
- General Fixes and Enhancements
* Fix Changing/Restoring wallet from settings
* Fix Create wallet not showing seeds screens if launched from settings
* Add max width constraint for Alerts
* - Add Desktop API keys
- Fix Change back up password issue
- Fix Popup width
* Sync Mac with latest main updates
* Swap Transactions icon with lock icon
* Save backup file locally on desktop
* Sync with latest main updates
* Fix Navigation issues with anonpay
* Update macos build version
* Remove deprecated custom wake lock code for Android
* Remove Legacy CryptoSwift package from MacOS
* - Refactor Payfura page code
- Add OnRamper new configs to onramper_buy_provider.dart
- Fix Conflicts with main
* Updated device locale package
* Update android tools
* Revert changes and update only gradle version
* Downgrade android tools version
* Update gradle version
* Update package/gradle/plugin version
* - Fixate device locale version
- Downgrade gradle version
* Update kotlin version
* Update gradle version
* Trial for a custom fork from devicelocale
* Fixate shared preferences package version
* Revert gradle version
* Revert kotlin version
* Downgrade gradle version
* Downgrade gradle version
* Repair cache and clean before build
* Fixate flutter version
* update google services version
* revert google services version
* Force shared pref android version
* Override shared prefs android package version
* Override shared prefs android package [skip ci]
---------
Co-authored-by: M <m@cakewallet.com>
Co-authored-by: Godwin Asuquo <godilite@gmail.com>
Co-authored-by: Godwin Asuquo <41484542+godilite@users.noreply.github.com>
* Fix de-selecting exchange providers not getting saved
* only change field value when the amount is better than the already existing one
* Show calculated amount after getting the best value from all providers
* Catch exceptions to avoid stopping the providers calculate amount APIs
* Fix Splay map only saving the last value obtained
* Show limits for the provider with the highest rate
* Load limits on currency pair change
* Show limits for lowest min provider
* Show limits for lowest min and highest max
* Sync best rate every 10 seconds instead of calculating it on every amount change
* Fix conflicts with flutter upgrade
Add null safety to changes in exchange_view_model.dart
* Remove un-necessary checks
* Add 'Exchange provider picker'
Save user selections
* Save user's exchange providers selection
* Add text for selected providers availability
* Fix selected providers not updating
* Load limits based on highest maximum in the selected providers
* Change received and deposit amount to be the best value from the selected providers
* Add provider name next to Trade ID
Set selected provider based on amount calculated
* Grey out providers who doesn't support selected currency pair
* Fix disabled providers
* Add Provider logo in Confirm Screen
* Only choose a provider if it satisfies its limits
* Fix amount validation
* Fix typo in error message
* Add a queue of possible exchange providers sorted by the best rate to try next if one failed
* Fix string locale typo
* Add Localization for other languages
* Add Placeholder text when there are no providers selected
* Check Exchange provider availability before creating a trade
* Fix "Fixed Rate" changing unconditionally
* Enable "convert to" field regardless of the provider
* Remove "Choose one" from providers picker
* Merge Master
* Fix Conflicts with master
* Add missing isEnabled field in simple swap provider