* 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>
Cake Wallet
Cake Wallet is an open-source, non-custodial, and private multi-currency crypto wallet for Android, iOS, macOS, and Linux.
Cake Wallet includes support for several cryptocurrencies, including:
- Monero (XMR)
- Bitcoin (BTC)
- Ethereum (ETH)
- Litecoin (LTC)
- Bitcoin Cash (BCH)
- Polygon (POL)
- Solana (SOL)
- Tron (TRX)
- Nano (XNO)
- Zano (ZANO)
- Decred (DCR)
- Wownero (WOW)
Features
App-Wide Features
- Completely noncustodial. Your keys, your coins.
- Built-in exchange for dozens of pairs
- Easily pay cryptocurrency invoices with fixed rate exchanges
- Buy cryptocurrency (BTC/LTC/XMR/ETH) with credit/debit/bank
- Sell cryptocurrency by bank transfer
- Scan QR codes for easy cryptocurrency transfers
- Create several wallets
- Select your own custom nodes/servers
- Address book
- Backup to an external location or iCloud
- Send to OpenAlias, Unstoppable Domains, Yats, and FIO Crypto Handles
- Set desired network fee level
- Store local transaction notes
- Extremely simple user experience
- Convenient exchange and sending templates for recurring payments
- Create donation links and invoices in the receive screen
- Robust privacy settings (eg: Tor-only connections)
- Robust security settings (eg: Cake 2FA)
Monero Specific Features
- The Monero view key is retained on the device for maximum privacy
- Full support for Monero subaddresses and accounts
- Specify restore height for faster syncing
- Specify multiple recipients for batch sending
- Optionally set Monero nodes as trusted for faster syncing
- Specify a proxy for Monero nodes, compatible with Tor and i2p
Bitcoin Specific Features
- Bitcoin coin control (specify specific outputs to spend)
- Automatically generate new addresses
- Specify multiple recipients for batch sending
Ethereum Specific Features
- Store ETH and all ERc-20 tokens
- Add custom tokens by contract address
- Enable or disable Etherscan for transaction history
Litecoin Specific Features
- Litecoin coin control (specify specific outputs to spend)
- Automatically generate new addresses
- Specify multiple recipients for batch sending
Monero.com by Cake Wallet for Android and iOS
Open Source Monero-Only Wallet
Exchanging to/from other assets is also supported.
Links
- Website: https://monero.com
- App Store (iOS): https://apps.apple.com/app/id1601990386
- Google Play: https://play.google.com/store/apps/details?id=com.monero.app
- F-Droid: https://fdroid.cakelabs.com
- APK: https://github.com/cake-tech/cake_wallet/releases
APK Verification
APK releases on GitHub, Accrescent, and F-Droid use the same key. They can easily be verified using apksigner or AppVerifier.
See below for Cake Wallet's SHA-256 signing certificate hash:
com.cakewallet.cake_wallet
C5:40:53:AB:0F:10:D9:54:17:62:A3:DA:76:65:AE:3D:BA:5E:7C:74:3A:B4:F1:08:A5:34:9D:62:AC:10:6E:F5
Support
We have 24/7 free support. Please contact support@cakewallet.com
We have excellent user guides, which are also open-source and open for contributions: https://guides.cakewallet.com
Build Instructions
More instructions to follow
For instructions on how to build for Android: please view file howto-build-android.md
Contributing
Improving translations
Edit the applicable strings_XX.arb file in res/values/ and open a pull request with the changes.
Current list of language files:
- English
- Spanish
- French
- German
- Italian
- Portuguese
- Dutch
- Polish
- Croatian
- Russian
- Ukrainian
- Hindi
- Japanese
- Chinese
- Korean
- Thai
- Arabic
- Turkish
- Burmese
- Urdu
- Bulgarian
- Czech
- Indonesian
- Hausa
- Yoruba
Add a new language
-
Create a new
strings_XX.arbfile inres/values/, replacing XX with the language's ISO 639-1 code. -
Edit the strings in this file, replacing XXX below with the translation for each string.
"welcome": "Welcome to", -> "welcome": "XXX",
- For strings where there is a variable, denoted by a $ symbol and braces, such as ${status}, the string in braces should not be translated. For example, when editing line 106:
"time" : "${minutes}m ${seconds}s"
The only parts to be translated, if needed, are the values m and s after the variables.
-
Add the language to
lib/entities/language_service.dartunder bothsupportedLocalesandlocaleCountryCode. Use the name of the language in the local language and in English in parentheses after forsupportedLocales. Use the ISO 3166-1 alpha-3 code forlocaleCountryCode. You must choose one country, so choose the country with the most native speakers of this language or is otherwise best associated with this language. -
Add a relevant flag to
assets/images/flags/XXXX.png, replacing XXXX with the 3 letters localeCountryCode. The image must be 42x26 pixels with 3 pixels of transparent margin on all 4 sides. You can resize the flag with paint.net to 36x20 pixels, expand the canvas to 42x26 pixels with the flag anchored in the middle, and then manually delete the 3 pixels on each side to make it transparent. Or you can use another program like Photoshop. -
Add the new language code to
tool/utils/translation/translation_constants.dart
Add a new fiat currency
-
Check with Cake Wallet support to see if the desired new fiat currency is available through our fiat API. Not all fiat currencies are.
-
If the currency is associated strongly with a specific issuing country, map the ISO 4217 currency code with the applicable ISO 3166-1 alpha-3 code in
lib/entities/fiat_currency.dart. If the currency is used in a whole region or organization, then map with a reasonable interpretation of this (eg: eur countryCode for EUR symbol). -
Add the raw mapping underneath in
lib/entities/fiat_currency.dartfollowing the same format as the others. -
Add a flag of the issuing country or organization to
assets/images/flags/XXXX.png, replacing XXXX with the ISO 3166-1 alpha-3 code used above (eg:usa.png,eur.png). Do not add this if the flag with the same name already exists. The image must be 42x26 pixels with a 3 pixels of transparent margin on all 4 sides.
Copyright (C) 2018-2023 Cake Labs LLC