diff --git a/lib/palette.dart b/lib/palette.dart index 6f4526e67..46e2e8165 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -15,6 +15,9 @@ class Palette { static const Color nightBlue = Color.fromRGBO(46, 57, 96, 1.0); static const Color moderateOrangeYellow = Color.fromRGBO(245, 134, 82, 1.0); static const Color moderateOrange = Color.fromRGBO(235, 117, 63, 1.0); + static const Color moneroOrange = Color.fromRGBO(255, 102, 0, 1.0); + static const Color moneroLightOrange = Color.fromRGBO(250, 240, 246, 1.0); + static const Color bitcoinOrange = Color.fromRGBO(242, 169, 0, 1.0); static const Color shineGreen = Color.fromRGBO(76, 189, 87, 1.0); static const Color moderateGreen = Color.fromRGBO(45, 158, 56, 1.0); static const Color cornflower = Color.fromRGBO(85, 147, 240, 1.0); @@ -48,6 +51,7 @@ class Palette { static const Color paleCornflowerBlue = Color.fromRGBO(185, 196, 237, 1.0); static const Color manatee = Color.fromRGBO(153, 161, 176, 1.0); static const Color stateGray = Color.fromRGBO(68, 74, 89, 1.0); + static const Color highContrastGray = Color.fromRGBO(76, 76, 76, 1.0); static const Color frostySky = Color.fromRGBO(0, 184, 250, 1.0); } @@ -90,4 +94,7 @@ class PaletteDark { static const Color lightPurpleBlue = Color.fromRGBO(120, 133, 170, 1.0); static const Color indicatorVioletBlue = Color.fromRGBO(59, 72, 119, 1.0); static const Color granite = Color.fromRGBO(48, 51, 60, 1.0); -} \ No newline at end of file + static const Color matrixGreen = Color.fromRGBO(18, 229, 90, 1.0); + static const Color moneroOrange = Color.fromRGBO(255, 102, 0, 1.0); + static const Color moneroCard = Color.fromRGBO(20, 21, 24, 1.0); +} diff --git a/lib/src/screens/base_page.dart b/lib/src/screens/base_page.dart index 6f0246a8f..eca57b516 100644 --- a/lib/src/screens/base_page.dart +++ b/lib/src/screens/base_page.dart @@ -1,4 +1,3 @@ -import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -22,10 +21,10 @@ abstract class BasePage extends StatelessWidget { Color? get backgroundDarkColor => null; - Color? get titleColor => null; - bool get gradientBackground => false; + bool get gradientAll => false; + bool get resizeToAvoidBottomInset => true; bool get extendBodyBehindAppBar => false; @@ -50,11 +49,13 @@ abstract class BasePage extends StatelessWidget { ? Colors.transparent : Theme.of(context).colorScheme.background); - Color? pageIconColor(BuildContext context) => - titleColor ?? - (gradientBackground - ? Theme.of(context).extension()!.titleColor - : Theme.of(context).extension()!.titleColor); + Color titleColor(BuildContext context) => + (gradientBackground && currentTheme.type == ThemeType.bright) || + (gradientAll && currentTheme.brightness == Brightness.light) + ? Colors.white + : Theme.of(context).appBarTheme.titleTextStyle!.color!; + + Color? pageIconColor(BuildContext context) => titleColor(context); Widget closeButton(BuildContext context) => Image.asset( currentTheme.type == ThemeType.dark @@ -106,8 +107,7 @@ abstract class BasePage extends StatelessWidget { fontSize: 18.0, fontWeight: FontWeight.bold, fontFamily: 'Lato', - color: titleColor ?? - Theme.of(context).extension()!.titleColor), + color: titleColor(context)), ); } diff --git a/lib/src/screens/buy/buy_webview_page.dart b/lib/src/screens/buy/buy_webview_page.dart index b19a112fc..a6ea2ab7b 100644 --- a/lib/src/screens/buy/buy_webview_page.dart +++ b/lib/src/screens/buy/buy_webview_page.dart @@ -24,9 +24,6 @@ class BuyWebViewPage extends BasePage { @override Color get backgroundDarkColor => Colors.white; - @override - Color get titleColor => Palette.darkBlueCraiola; - @override Widget body(BuildContext context) => BuyWebViewPageBody(buyViewModel, ordersStore: ordersStore, url: url); diff --git a/lib/src/screens/buy/pre_order_page.dart b/lib/src/screens/buy/pre_order_page.dart index a23a234c8..67b9a18a1 100644 --- a/lib/src/screens/buy/pre_order_page.dart +++ b/lib/src/screens/buy/pre_order_page.dart @@ -62,9 +62,6 @@ class PreOrderPage extends BasePage { @override String get title => S.current.buy + ' ' + walletTypeToString(buyViewModel.wallet.type); - @override - Color get titleColor => Colors.white; - @override bool get resizeToAvoidBottomInset => false; diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index fae42f6e9..d290282b9 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -91,7 +91,7 @@ class _DashboardPageView extends BasePage { @override Widget trailing(BuildContext context) { final menuButton = Image.asset('assets/images/menu.png', - color: Theme.of(context).extension()!.textColor); + color: Theme.of(context).extension()!.pageTitleTextColor); return Container( alignment: Alignment.centerRight, @@ -156,8 +156,8 @@ class _DashboardPageView extends BasePage { radius: 6.0, dotWidth: 6.0, dotHeight: 6.0, - dotColor: Theme.of(context).extension()!.indicatorDotTheme!.indicatorColor, - activeDotColor: Theme.of(context).extension()!.indicatorDotTheme!.activeIndicatorColor), + dotColor: Theme.of(context).extension()!.indicatorDotTheme.indicatorColor, + activeDotColor: Theme.of(context).extension()!.indicatorDotTheme.activeIndicatorColor), ), ); } @@ -170,9 +170,7 @@ class _DashboardPageView extends BasePage { decoration: BoxDecoration( borderRadius: BorderRadius.circular(50.0), border: Border.all( - color: currentTheme.type == ThemeType.bright - ? Color.fromRGBO(255, 255, 255, 0.2) - : Colors.transparent, + color: Theme.of(context).extension()!.cardBorderColor, width: 1, ), color: Theme.of(context).extension()!.syncedBackgroundColor, @@ -195,8 +193,8 @@ class _DashboardPageView extends BasePage { color: action.isEnabled?.call( dashboardViewModel) ?? true - ? Theme.of(context).extension()!.textColor - : Theme.of(context).extension()!.textColor), + ? Theme.of(context).extension()!.mainActionsIconColor + : Theme.of(context).extension()!.labelTextColor), title: action.name(context), onClick: () async => await action.onTap( context, dashboardViewModel), @@ -204,7 +202,7 @@ class _DashboardPageView extends BasePage { ?.call(dashboardViewModel) ?? true ? null - : Theme.of(context).extension()!.textColor, + : Theme.of(context).extension()!.labelTextColor, ), )) .toList(), diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_action_button.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_action_button.dart index 67dc288c2..7e9b2b23d 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_action_button.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_action_button.dart @@ -45,7 +45,7 @@ class DesktopActionButton extends StatelessWidget { width: 30, color: isEnabled ? Theme.of(context).extension()!.textColor - : Theme.of(context).extension()!.textColor, + : Theme.of(context).extension()!.labelTextColor, ), const SizedBox(width: 10), AutoSizeText( diff --git a/lib/src/screens/dashboard/widgets/address_page.dart b/lib/src/screens/dashboard/widgets/address_page.dart index dc869f042..7074b0fe2 100644 --- a/lib/src/screens/dashboard/widgets/address_page.dart +++ b/lib/src/screens/dashboard/widgets/address_page.dart @@ -56,10 +56,6 @@ class AddressPage extends BasePage { @override bool get gradientBackground => true; - @override - Color? get titleColor => - currentTheme.themeData.extension()!.textColor; - @override bool get resizeToAvoidBottomInset => false; @@ -93,8 +89,8 @@ class AddressPage extends BasePage { @override Widget middle(BuildContext context) => PresentReceiveOptionPicker( - receiveOptionViewModel: receiveOptionViewModel, - gradientBackground: gradientBackground); + color: titleColor(context), + receiveOptionViewModel: receiveOptionViewModel); @override Widget Function(BuildContext, Widget) get rootWrapper => @@ -219,7 +215,7 @@ class AddressPage extends BasePage { textAlign: TextAlign.center, style: TextStyle( fontSize: 15, - color: Theme.of(context).extension()!.textColor)); + color: Theme.of(context).extension()!.labelTextColor)); }) ], ), diff --git a/lib/src/screens/dashboard/widgets/balance_page.dart b/lib/src/screens/dashboard/widgets/balance_page.dart index 76f9859d0..2b7384259 100644 --- a/lib/src/screens/dashboard/widgets/balance_page.dart +++ b/lib/src/screens/dashboard/widgets/balance_page.dart @@ -1,7 +1,6 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; -import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -17,9 +16,6 @@ class BalancePage extends StatelessWidget { final DashboardViewModel dashboardViewModel; final SettingsStore settingsStore; - @override - bool get gradientBackground => true; - @override Widget build(BuildContext context) { return GestureDetector( @@ -38,7 +34,7 @@ class BalancePage extends StatelessWidget { fontSize: 24, fontFamily: 'Lato', fontWeight: FontWeight.w600, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.pageTitleTextColor, height: 1), maxLines: 1, textAlign: TextAlign.center); @@ -48,9 +44,7 @@ class BalancePage extends StatelessWidget { return IntroducingCard( title: S.of(context).introducing_cake_pay, subTitle: S.of(context).cake_pay_learn_more, - borderColor: settingsStore.currentTheme.type == ThemeType.bright - ? Color.fromRGBO(255, 255, 255, 0.2) - : Colors.transparent, + borderColor: Theme.of(context).extension()!.cardBorderColor, closeCard: dashboardViewModel.balanceViewModel.disableIntroCakePayCard); } return Container(); @@ -96,9 +90,7 @@ class BalancePage extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(30.0), border: Border.all( - color: settingsStore.currentTheme.type == ThemeType.bright - ? Color.fromRGBO(255, 255, 255, 0.2) - : Colors.transparent, + color: Theme.of(context).extension()!.cardBorderColor, width: 1, ), color: Theme.of(context).extension()!.syncedBackgroundColor), @@ -114,7 +106,7 @@ class BalancePage extends StatelessWidget { fontSize: 12, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.labelTextColor, height: 1)), SizedBox(height: 5), Row( @@ -125,7 +117,7 @@ class BalancePage extends StatelessWidget { fontSize: 24, fontFamily: 'Lato', fontWeight: FontWeight.w900, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.balanceAmountColor, height: 1), maxLines: 1, textAlign: TextAlign.start), @@ -135,7 +127,7 @@ class BalancePage extends StatelessWidget { fontSize: 28, fontFamily: 'Lato', fontWeight: FontWeight.w800, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.assetTitleColor, height: 1)), ]), SizedBox( @@ -158,7 +150,7 @@ class BalancePage extends StatelessWidget { fontSize: 12, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.labelTextColor, height: 1)), SizedBox(height: 8), AutoSizeText(frozenBalance, @@ -166,7 +158,7 @@ class BalancePage extends StatelessWidget { fontSize: 20, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.balanceAmountColor, height: 1), maxLines: 1, textAlign: TextAlign.center), @@ -189,7 +181,7 @@ class BalancePage extends StatelessWidget { fontSize: 12, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.labelTextColor, height: 1)), SizedBox(height: 8), AutoSizeText(additionalBalance, @@ -197,7 +189,7 @@ class BalancePage extends StatelessWidget { fontSize: 20, fontFamily: 'Lato', fontWeight: FontWeight.w400, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.balanceAmountColor, height: 1), maxLines: 1, textAlign: TextAlign.center), diff --git a/lib/src/screens/dashboard/widgets/header_row.dart b/lib/src/screens/dashboard/widgets/header_row.dart index 168a58a54..79b7b3fe6 100644 --- a/lib/src/screens/dashboard/widgets/header_row.dart +++ b/lib/src/screens/dashboard/widgets/header_row.dart @@ -29,7 +29,7 @@ class HeaderRow extends StatelessWidget { style: TextStyle( fontSize: 20, fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.textColor), + color: Theme.of(context).extension()!.pageTitleTextColor), ), GestureDetector( onTap: () { diff --git a/lib/src/screens/dashboard/widgets/market_place_page.dart b/lib/src/screens/dashboard/widgets/market_place_page.dart index f133386c8..f9a0dd433 100644 --- a/lib/src/screens/dashboard/widgets/market_place_page.dart +++ b/lib/src/screens/dashboard/widgets/market_place_page.dart @@ -41,7 +41,7 @@ class MarketPlacePage extends StatelessWidget { style: TextStyle( fontSize: 24, fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.pageTitleTextColor, ), ), Expanded( diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart index 3ab5ba01c..b17d78a0a 100644 --- a/lib/src/screens/dashboard/widgets/menu_widget.dart +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -85,9 +85,9 @@ class MenuWidgetState extends State { final itemCount = SettingActions.all.length; moneroIcon = Image.asset('assets/images/monero_menu.png', - color: Theme.of(context).extension()!.subnameTextColor); + color: Theme.of(context).extension()!.iconColor); bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png', - color: Theme.of(context).extension()!.subnameTextColor); + color: Theme.of(context).extension()!.iconColor); litecoinIcon = Image.asset('assets/images/litecoin_menu.png'); havenIcon = Image.asset('assets/images/haven_menu.png'); diff --git a/lib/src/screens/dashboard/widgets/present_receive_option_picker.dart b/lib/src/screens/dashboard/widgets/present_receive_option_picker.dart index b5ec34cd3..b8d64a3f0 100644 --- a/lib/src/screens/dashboard/widgets/present_receive_option_picker.dart +++ b/lib/src/screens/dashboard/widgets/present_receive_option_picker.dart @@ -8,23 +8,19 @@ import 'package:cake_wallet/view_model/dashboard/receive_option_view_model.dart' import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; class PresentReceiveOptionPicker extends StatelessWidget { PresentReceiveOptionPicker( - {required this.receiveOptionViewModel, this.gradientBackground = false}); + {required this.receiveOptionViewModel, required this.color}); final ReceiveOptionViewModel receiveOptionViewModel; - final bool gradientBackground; + final Color color; @override Widget build(BuildContext context) { - final textIconTheme = gradientBackground - ? Theme.of(context).extension()!.textColor - : Colors.white; final arrowBottom = Image.asset( 'assets/images/arrow_bottom_purple_icon.png', - color: textIconTheme, + color: color, height: 6, ); @@ -50,14 +46,14 @@ class PresentReceiveOptionPicker extends StatelessWidget { fontSize: 18.0, fontWeight: FontWeight.bold, fontFamily: 'Lato', - color: textIconTheme), + color: color), ), Observer( builder: (_) => Text(receiveOptionViewModel.selectedReceiveOption.toString(), style: TextStyle( fontSize: 10.0, fontWeight: FontWeight.w500, - color: textIconTheme))) + color: color))) ], ), SizedBox(width: 5), diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index da34ca060..c89737212 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -78,7 +78,10 @@ class ExchangePage extends BasePage { String get title => S.current.exchange; @override - Color get titleColor => Colors.white; + bool get gradientBackground => true; + + @override + bool get gradientAll => true; @override bool get resizeToAvoidBottomInset => false; @@ -113,7 +116,7 @@ class ExchangePage extends BasePage { @override Widget? leading(BuildContext context) { final _backButton = Icon(Icons.arrow_back_ios, - color: titleColor, + color: titleColor(context), size: 16, ); final _closeButton = currentTheme.type == ThemeType.dark diff --git a/lib/src/screens/exchange/exchange_template_page.dart b/lib/src/screens/exchange/exchange_template_page.dart index 57bb56911..b273cbf80 100644 --- a/lib/src/screens/exchange/exchange_template_page.dart +++ b/lib/src/screens/exchange/exchange_template_page.dart @@ -33,9 +33,6 @@ class ExchangeTemplatePage extends BasePage { @override String get title => S.current.exchange_new_template; - @override - Color get titleColor => Colors.white; - @override bool get extendBodyBehindAppBar => true; diff --git a/lib/src/screens/ionia/cards/ionia_buy_gift_card.dart b/lib/src/screens/ionia/cards/ionia_buy_gift_card.dart index 6e6bf8534..ba5b4fbbd 100644 --- a/lib/src/screens/ionia/cards/ionia_buy_gift_card.dart +++ b/lib/src/screens/ionia/cards/ionia_buy_gift_card.dart @@ -32,9 +32,6 @@ class IoniaBuyGiftCardPage extends BasePage { @override String get title => S.current.enter_amount; - @override - Color get titleColor => Colors.white; - @override bool get extendBodyBehindAppBar => true; diff --git a/lib/src/screens/ionia/cards/ionia_custom_redeem_page.dart b/lib/src/screens/ionia/cards/ionia_custom_redeem_page.dart index e224a88bf..7cc4d1f0c 100644 --- a/lib/src/screens/ionia/cards/ionia_custom_redeem_page.dart +++ b/lib/src/screens/ionia/cards/ionia_custom_redeem_page.dart @@ -31,9 +31,6 @@ class IoniaCustomRedeemPage extends BasePage { @override String get title => S.current.custom_redeem_amount; - @override - Color get titleColor => Colors.white; - @override bool get extendBodyBehindAppBar => true; diff --git a/lib/src/screens/ionia/cards/ionia_custom_tip_page.dart b/lib/src/screens/ionia/cards/ionia_custom_tip_page.dart index 7c4202f2b..eced01e96 100644 --- a/lib/src/screens/ionia/cards/ionia_custom_tip_page.dart +++ b/lib/src/screens/ionia/cards/ionia_custom_tip_page.dart @@ -32,9 +32,6 @@ class IoniaCustomTipPage extends BasePage { @override String get title => S.current.enter_amount; - @override - Color get titleColor => Colors.white; - @override bool get extendBodyBehindAppBar => true; diff --git a/lib/src/screens/ionia/cards/ionia_manage_cards_page.dart b/lib/src/screens/ionia/cards/ionia_manage_cards_page.dart index db373a6ca..a7097118a 100644 --- a/lib/src/screens/ionia/cards/ionia_manage_cards_page.dart +++ b/lib/src/screens/ionia/cards/ionia_manage_cards_page.dart @@ -44,9 +44,6 @@ class IoniaManageCardsPage extends BasePage { @override bool get gradientBackground => true; - @override - Color get titleColor => currentTheme.type == ThemeType.bright ? Colors.white : Colors.black; - @override Widget Function(BuildContext, Widget) get rootWrapper => (BuildContext context, Widget scaffold) => @@ -228,7 +225,7 @@ class _IoniaManageCardsPageBodyState extends State { subTitle: merchant.avaibilityStatus, backgroundColor: Theme.of(context).extension()!.syncedBackgroundColor, titleColor: Theme.of(context).extension()!.textColor, - subtitleColor: Theme.of(context).extension()!.textColor, + subtitleColor: Theme.of(context).extension()!.labelTextColor, discount: merchant.discount, ); }, @@ -288,7 +285,7 @@ class _SearchWidget extends StatelessWidget { fillColor: Theme.of(context).extension()!.syncedBackgroundColor, hintText: S.of(context).search, hintStyle: TextStyle( - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.labelTextColor, ), alignLabelWithHint: true, floatingLabelBehavior: FloatingLabelBehavior.never, diff --git a/lib/src/screens/receive/anonpay_invoice_page.dart b/lib/src/screens/receive/anonpay_invoice_page.dart index 7e267e3c5..ed7d1e42a 100644 --- a/lib/src/screens/receive/anonpay_invoice_page.dart +++ b/lib/src/screens/receive/anonpay_invoice_page.dart @@ -43,8 +43,6 @@ class AnonPayInvoicePage extends BasePage { final _formKey = GlobalKey(); bool effectsInstalled = false; - @override - Color get titleColor => Colors.white; @override bool get resizeToAvoidBottomInset => false; @@ -61,8 +59,9 @@ class AnonPayInvoicePage extends BasePage { } @override - Widget middle(BuildContext context) => - PresentReceiveOptionPicker(receiveOptionViewModel: receiveOptionViewModel); + Widget middle(BuildContext context) => PresentReceiveOptionPicker( + receiveOptionViewModel: receiveOptionViewModel, + color: titleColor(context)); @override Widget trailing(BuildContext context) => TrailButton( diff --git a/lib/src/screens/receive/receive_page.dart b/lib/src/screens/receive/receive_page.dart index 005f32896..24e1f7385 100644 --- a/lib/src/screens/receive/receive_page.dart +++ b/lib/src/screens/receive/receive_page.dart @@ -52,10 +52,6 @@ class ReceivePage extends BasePage { final FocusNode _cryptoAmountFocus; - @override - Color? get titleColor => - currentTheme.type == ThemeType.bright ? Colors.white : null; - @override Widget middle(BuildContext context) { return Text( @@ -219,7 +215,7 @@ class ReceivePage extends BasePage { textAlign: TextAlign.center, style: TextStyle( fontSize: 15, - color: Theme.of(context).extension()!.textColor)), + color: Theme.of(context).extension()!.labelTextColor)), ], ), ); diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index e5d3df1fe..10b5a521d 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -94,8 +94,7 @@ class WalletRestorePage extends BasePage { fontSize: 18.0, fontWeight: FontWeight.bold, fontFamily: 'Lato', - color: titleColor ?? - Theme.of(context).extension()!.titleColor), + color: titleColor(context)), )); final WalletRestoreViewModel walletRestoreViewModel; diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index c0a71f43b..22ef27b11 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -47,7 +47,7 @@ class SendPage extends BasePage { String get title => S.current.send; @override - Color get titleColor => Colors.white; + bool get gradientAll => true; @override bool get resizeToAvoidBottomInset => false; @@ -58,7 +58,7 @@ class SendPage extends BasePage { @override Widget? leading(BuildContext context) { final _backButton = Icon(Icons.arrow_back_ios, - color: titleColor, + color: titleColor(context), size: 16, ); final _closeButton = currentTheme.type == ThemeType.dark diff --git a/lib/src/screens/send/send_template_page.dart b/lib/src/screens/send/send_template_page.dart index 1b618a57c..d570d9f85 100644 --- a/lib/src/screens/send/send_template_page.dart +++ b/lib/src/screens/send/send_template_page.dart @@ -36,9 +36,6 @@ class SendTemplatePage extends BasePage { @override String get title => S.current.exchange_new_template; - @override - Color get titleColor => Colors.white; - @override bool get extendBodyBehindAppBar => true; diff --git a/lib/src/screens/yat_emoji_id.dart b/lib/src/screens/yat_emoji_id.dart index 95cc9bb54..944331285 100644 --- a/lib/src/screens/yat_emoji_id.dart +++ b/lib/src/screens/yat_emoji_id.dart @@ -105,7 +105,7 @@ class YatEmojiId extends StatelessWidget { fontSize: 18, fontWeight: FontWeight.normal, fontFamily: 'Lato', - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.labelTextColor, decoration: TextDecoration.none, ) ) diff --git a/lib/src/widgets/market_place_item.dart b/lib/src/widgets/market_place_item.dart index b41304eec..ad7a5955e 100644 --- a/lib/src/widgets/market_place_item.dart +++ b/lib/src/widgets/market_place_item.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; @@ -31,7 +32,7 @@ class MarketPlaceItem extends StatelessWidget { color: Theme.of(context).extension()!.syncedBackgroundColor, borderRadius: BorderRadius.circular(20), border: Border.all( - color: Colors.white.withOpacity(0.20), + color: Theme.of(context).extension()!.cardBorderColor, ), ), child: diff --git a/lib/src/widgets/setting_action_button.dart b/lib/src/widgets/setting_action_button.dart index 6bdccc89a..a9174bb28 100644 --- a/lib/src/widgets/setting_action_button.dart +++ b/lib/src/widgets/setting_action_button.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/extensions/menu_theme.dart'; import 'package:cake_wallet/themes/extensions/receive_page_theme.dart'; import 'package:flutter/material.dart'; @@ -55,7 +56,7 @@ class SettingActionButton extends StatelessWidget { image, height: 16, width: 16, - color: Palette.darkBlue, + color: Theme.of(context).extension()!.settingActionsIconColor, ), SizedBox(width: 16), Expanded( diff --git a/lib/src/widgets/standard_checkbox.dart b/lib/src/widgets/standard_checkbox.dart index d5d66e35c..045204e54 100644 --- a/lib/src/widgets/standard_checkbox.dart +++ b/lib/src/widgets/standard_checkbox.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/filter_theme.dart'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -23,8 +24,8 @@ class StandardCheckbox extends StatelessWidget { @override Widget build(BuildContext context) { final baseGradient = LinearGradient(colors: [ - Theme.of(context).extension()!.firstGradientColor, - Theme.of(context).extension()!.secondGradientColor, + Theme.of(context).extension()!.checkboxFirstGradientColor, + Theme.of(context).extension()!.checkboxSecondGradientColor, ], begin: Alignment.centerLeft, end: Alignment.centerRight); final boxBorder = Border.all( diff --git a/lib/src/widgets/standard_list.dart b/lib/src/widgets/standard_list.dart index 2ea874d52..2c1969c5b 100644 --- a/lib/src/widgets/standard_list.dart +++ b/lib/src/widgets/standard_list.dart @@ -54,7 +54,7 @@ class StandardListRow extends StatelessWidget { Widget? buildTrailing(BuildContext context) => null; Color titleColor(BuildContext context) => isSelected - ? Palette.blueCraiola + ? Theme.of(context).primaryColor : Theme.of(context).extension()!.titleColor; } diff --git a/lib/themes/bitcoin_dark_theme.dart b/lib/themes/bitcoin_dark_theme.dart new file mode 100644 index 000000000..f8b842ae8 --- /dev/null +++ b/lib/themes/bitcoin_dark_theme.dart @@ -0,0 +1,14 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:flutter/material.dart'; + +class BitcoinDarkTheme extends MoneroDarkTheme { + BitcoinDarkTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.bitcoin_dark_theme; + @override + Color get primaryColor => Palette.bitcoinOrange; +} + diff --git a/lib/themes/bitcoin_light_theme.dart b/lib/themes/bitcoin_light_theme.dart new file mode 100644 index 000000000..14a694221 --- /dev/null +++ b/lib/themes/bitcoin_light_theme.dart @@ -0,0 +1,13 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_light_theme.dart'; +import 'package:flutter/material.dart'; + +class BitcoinLightTheme extends MoneroLightTheme { + BitcoinLightTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.bitcoin_light_theme; + @override + Color get primaryColor => Palette.bitcoinOrange; +} diff --git a/lib/themes/bright_theme.dart b/lib/themes/bright_theme.dart index c049438ab..5c9bbb8e2 100644 --- a/lib/themes/bright_theme.dart +++ b/lib/themes/bright_theme.dart @@ -38,6 +38,8 @@ class BrightTheme extends LightTheme { firstGradientBackgroundColor: Palette.blueCraiola, secondGradientBackgroundColor: Palette.pinkFlamingo, thirdGradientBackgroundColor: Palette.redHat, + pageTitleTextColor: Colors.white, + mainActionsIconColor: Colors.white, textColor: Colors.white, indicatorDotTheme: IndicatorDotTheme( indicatorColor: Colors.white.withOpacity(0.5), @@ -58,24 +60,24 @@ class BrightTheme extends LightTheme { firstGradientTopPanelColor: Palette.blueCraiola); @override - NewWalletTheme get newWalletTheme => NewWalletTheme( + NewWalletTheme get newWalletTheme => super.newWalletTheme.copyWith( hintTextColor: Palette.darkGray, underlineColor: Palette.periwinkleCraiola); @override - BalancePageTheme get balancePageTheme => - BalancePageTheme(textColor: Colors.white.withOpacity(0.5)); + BalancePageTheme get balancePageTheme => super + .balancePageTheme + .copyWith(labelTextColor: Colors.white.withOpacity(0.5)); @override - CakeMenuTheme get menuTheme => super.menuTheme.copyWith( - headerSecondGradientColor: Palette.pinkFlamingo, - iconColor: PaletteDark.pigeonBlue); + CakeMenuTheme get menuTheme => + super.menuTheme.copyWith(headerSecondGradientColor: Palette.pinkFlamingo); @override FilterTheme get filterTheme => super.filterTheme.copyWith( + checkboxSecondGradientColor: Palette.pinkFlamingo, checkboxBackgroundColor: Colors.white, - buttonColor: Colors.white.withOpacity(0.2), - iconColor: Colors.white); + buttonColor: Colors.white.withOpacity(0.2)); @override WalletListTheme get walletListTheme => super.walletListTheme.copyWith( @@ -117,10 +119,4 @@ class BrightTheme extends LightTheme { CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith( addressButtonBorderColor: Colors.white.withOpacity(0.4), dateSectionRowColor: Colors.white.withOpacity(0.5)); - - @override - ThemeData get themeData => super.themeData.copyWith( - indicatorColor: Colors.white.withOpacity(0.5), // page indicator - dividerColor: Palette.paleBlue, - hintColor: Palette.gray); } diff --git a/lib/themes/dark_theme.dart b/lib/themes/dark_theme.dart index 61c05bf6c..9d70dd5f9 100644 --- a/lib/themes/dark_theme.dart +++ b/lib/themes/dark_theme.dart @@ -93,10 +93,6 @@ class DarkTheme extends ThemeBase { hintTextColor: PaletteDark.cyanBlue, underlineColor: PaletteDark.darkGrey); - @override - BalancePageTheme get balancePageTheme => - BalancePageTheme(textColor: PaletteDark.cyanBlue); - @override AddressTheme get addressTheme => AddressTheme(actionButtonColor: PaletteDark.nightBlue); @@ -108,6 +104,11 @@ class DarkTheme extends ThemeBase { indicatorColor: PaletteDark.cyanBlue, activeIndicatorColor: Colors.white)); + @override + BalancePageTheme get balancePageTheme => BalancePageTheme( + textColor: dashboardPageTheme.textColor, + labelTextColor: PaletteDark.cyanBlue); + @override CakeMenuTheme get menuTheme => CakeMenuTheme( headerFirstGradientColor: PaletteDark.deepPurpleBlue, @@ -115,10 +116,13 @@ class DarkTheme extends ThemeBase { backgroundColor: PaletteDark.deepPurpleBlue, subnameTextColor: PaletteDark.darkCyanBlue, dividerColor: PaletteDark.darkOceanBlue, - iconColor: PaletteDark.pigeonBlue); + settingActionsIconColor: PaletteDark.pigeonBlue, + iconColor: PaletteDark.darkCyanBlue); @override FilterTheme get filterTheme => FilterTheme( + checkboxFirstGradientColor: PaletteDark.darkNightBlue, + checkboxSecondGradientColor: PaletteDark.darkNightBlue, checkboxBoundsColor: PaletteDark.wildVioletBlue, checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3), titlesColor: Colors.white, @@ -202,7 +206,6 @@ class DarkTheme extends ThemeBase { @override ThemeData get themeData => super.themeData.copyWith( - indicatorColor: PaletteDark.cyanBlue, dividerColor: PaletteDark.dividerColor, hintColor: PaletteDark.pigeonBlue, disabledColor: PaletteDark.deepVioletBlue, diff --git a/lib/themes/extensions/balance_page_theme.dart b/lib/themes/extensions/balance_page_theme.dart index 47a50a9ef..508514f93 100644 --- a/lib/themes/extensions/balance_page_theme.dart +++ b/lib/themes/extensions/balance_page_theme.dart @@ -2,12 +2,33 @@ import 'package:flutter/material.dart'; class BalancePageTheme extends ThemeExtension { final Color textColor; + final Color labelTextColor; + final Color balanceAmountColor; + final Color assetTitleColor; + final Color cardBorderColor; - BalancePageTheme({required this.textColor}); + BalancePageTheme( + {required this.labelTextColor, + required this.textColor, + Color? balanceAmountColor, + Color? assetTitleColor, + this.cardBorderColor = Colors.transparent}) + : this.balanceAmountColor = balanceAmountColor ?? textColor, + this.assetTitleColor = assetTitleColor ?? textColor; @override - BalancePageTheme copyWith({Color? textColor}) => - BalancePageTheme(textColor: textColor ?? this.textColor); + BalancePageTheme copyWith( + {Color? textColor, + Color? labelTextColor, + Color? balanceAmountColor, + Color? assetTitleColor, + Color? cardBorderColor}) => + BalancePageTheme( + textColor: textColor ?? this.textColor, + labelTextColor: labelTextColor ?? this.labelTextColor, + balanceAmountColor: balanceAmountColor ?? this.balanceAmountColor, + assetTitleColor: assetTitleColor ?? this.assetTitleColor, + cardBorderColor: cardBorderColor ?? this.cardBorderColor); @override BalancePageTheme lerp(ThemeExtension? other, double t) { @@ -16,7 +37,17 @@ class BalancePageTheme extends ThemeExtension { } return BalancePageTheme( - textColor: Color.lerp(textColor, other.textColor, t) ?? textColor, - ); + textColor: Color.lerp(textColor, other.textColor, t) ?? textColor, + labelTextColor: Color.lerp(labelTextColor, other.labelTextColor, t) ?? + labelTextColor, + balanceAmountColor: + Color.lerp(balanceAmountColor, other.balanceAmountColor, t) ?? + balanceAmountColor, + assetTitleColor: + Color.lerp(assetTitleColor, other.assetTitleColor, t) ?? + assetTitleColor, + cardBorderColor: + Color.lerp(cardBorderColor, other.cardBorderColor, t) ?? + cardBorderColor); } } diff --git a/lib/themes/extensions/dashboard_page_theme.dart b/lib/themes/extensions/dashboard_page_theme.dart index 039d76db1..6022e60c9 100644 --- a/lib/themes/extensions/dashboard_page_theme.dart +++ b/lib/themes/extensions/dashboard_page_theme.dart @@ -6,15 +6,21 @@ class DashboardPageTheme extends ThemeExtension { final Color secondGradientBackgroundColor; final Color thirdGradientBackgroundColor; final Color textColor; + final Color pageTitleTextColor; + final Color mainActionsIconColor; - final IndicatorDotTheme? indicatorDotTheme; + final IndicatorDotTheme indicatorDotTheme; DashboardPageTheme( {required this.firstGradientBackgroundColor, required this.secondGradientBackgroundColor, required this.thirdGradientBackgroundColor, required this.textColor, - this.indicatorDotTheme}); + required this.indicatorDotTheme, + Color? mainActionsIconColor, + Color? pageTitleTextColor}) + : pageTitleTextColor = pageTitleTextColor ?? textColor, + mainActionsIconColor = mainActionsIconColor ?? textColor; @override DashboardPageTheme copyWith( @@ -22,7 +28,9 @@ class DashboardPageTheme extends ThemeExtension { Color? secondGradientBackgroundColor, Color? thirdGradientBackgroundColor, Color? textColor, - IndicatorDotTheme? indicatorDotTheme}) => + IndicatorDotTheme? indicatorDotTheme, + Color? pageTitleTextColor, + Color? mainActionsIconColor}) => DashboardPageTheme( firstGradientBackgroundColor: firstGradientBackgroundColor ?? this.firstGradientBackgroundColor, @@ -31,7 +39,10 @@ class DashboardPageTheme extends ThemeExtension { thirdGradientBackgroundColor: thirdGradientBackgroundColor ?? this.thirdGradientBackgroundColor, textColor: textColor ?? this.textColor, - indicatorDotTheme: indicatorDotTheme ?? this.indicatorDotTheme); + indicatorDotTheme: indicatorDotTheme ?? this.indicatorDotTheme, + pageTitleTextColor: pageTitleTextColor ?? this.pageTitleTextColor, + mainActionsIconColor: + mainActionsIconColor ?? this.mainActionsIconColor); @override DashboardPageTheme lerp(ThemeExtension? other, double t) { @@ -50,6 +61,12 @@ class DashboardPageTheme extends ThemeExtension { other.thirdGradientBackgroundColor, t) ?? thirdGradientBackgroundColor, textColor: Color.lerp(textColor, other.textColor, t) ?? textColor, - indicatorDotTheme: indicatorDotTheme?.lerp(other.indicatorDotTheme, t)); + indicatorDotTheme: indicatorDotTheme.lerp(other.indicatorDotTheme, t), + pageTitleTextColor: + Color.lerp(pageTitleTextColor, other.pageTitleTextColor, t) ?? + pageTitleTextColor, + mainActionsIconColor: + Color.lerp(mainActionsIconColor, other.mainActionsIconColor, t) ?? + mainActionsIconColor); } } diff --git a/lib/themes/extensions/filter_theme.dart b/lib/themes/extensions/filter_theme.dart index ec96c432d..a2106f648 100644 --- a/lib/themes/extensions/filter_theme.dart +++ b/lib/themes/extensions/filter_theme.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; class FilterTheme extends ThemeExtension { + final Color checkboxFirstGradientColor; + final Color checkboxSecondGradientColor; final Color checkboxBoundsColor; final Color checkboxBackgroundColor; final Color titlesColor; @@ -8,7 +10,9 @@ class FilterTheme extends ThemeExtension { final Color iconColor; FilterTheme( - {required this.checkboxBoundsColor, + {required this.checkboxFirstGradientColor, + required this.checkboxSecondGradientColor, + required this.checkboxBoundsColor, required this.checkboxBackgroundColor, required this.titlesColor, required this.buttonColor, @@ -16,6 +20,8 @@ class FilterTheme extends ThemeExtension { @override FilterTheme copyWith({ + Color? checkboxFirstGradientColor, + Color? checkboxSecondGradientColor, Color? checkboxBoundsColor, Color? checkboxBackgroundColor, Color? titlesColor, @@ -23,13 +29,16 @@ class FilterTheme extends ThemeExtension { Color? iconColor, }) => FilterTheme( - checkboxBoundsColor: checkboxBoundsColor ?? this.checkboxBoundsColor, - checkboxBackgroundColor: - checkboxBackgroundColor ?? this.checkboxBackgroundColor, - titlesColor: titlesColor ?? this.titlesColor, - buttonColor: buttonColor ?? this.buttonColor, - iconColor: iconColor ?? this.iconColor, - ); + checkboxFirstGradientColor: + checkboxFirstGradientColor ?? this.checkboxFirstGradientColor, + checkboxSecondGradientColor: + checkboxSecondGradientColor ?? this.checkboxSecondGradientColor, + checkboxBoundsColor: checkboxBoundsColor ?? this.checkboxBoundsColor, + checkboxBackgroundColor: + checkboxBackgroundColor ?? this.checkboxBackgroundColor, + titlesColor: titlesColor ?? this.titlesColor, + buttonColor: buttonColor ?? this.buttonColor, + iconColor: iconColor ?? this.iconColor); @override FilterTheme lerp(ThemeExtension? other, double t) { @@ -38,6 +47,12 @@ class FilterTheme extends ThemeExtension { } return FilterTheme( + checkboxFirstGradientColor: Color.lerp(checkboxFirstGradientColor, + other.checkboxFirstGradientColor, t) ?? + this.checkboxFirstGradientColor, + checkboxSecondGradientColor: Color.lerp(checkboxSecondGradientColor, + other.checkboxSecondGradientColor, t) ?? + this.checkboxSecondGradientColor, checkboxBoundsColor: Color.lerp(checkboxBoundsColor, other.checkboxBoundsColor, t) ?? this.checkboxBoundsColor, diff --git a/lib/themes/extensions/menu_theme.dart b/lib/themes/extensions/menu_theme.dart index 3f4c0c03f..8723bf698 100644 --- a/lib/themes/extensions/menu_theme.dart +++ b/lib/themes/extensions/menu_theme.dart @@ -7,6 +7,7 @@ class CakeMenuTheme extends ThemeExtension { final Color dividerColor; final Color backgroundColor; final Color iconColor; + final Color settingActionsIconColor; CakeMenuTheme( {required this.headerFirstGradientColor, @@ -14,7 +15,8 @@ class CakeMenuTheme extends ThemeExtension { required this.backgroundColor, required this.subnameTextColor, required this.dividerColor, - required this.iconColor}); + required this.iconColor, + required this.settingActionsIconColor}); @override CakeMenuTheme copyWith( @@ -23,7 +25,8 @@ class CakeMenuTheme extends ThemeExtension { Color? backgroundColor, Color? subnameTextColor, Color? dividerColor, - Color? iconColor}) => + Color? iconColor, + Color? settingActionsIconColor}) => CakeMenuTheme( headerFirstGradientColor: headerFirstGradientColor ?? this.headerFirstGradientColor, @@ -32,7 +35,9 @@ class CakeMenuTheme extends ThemeExtension { backgroundColor: backgroundColor ?? this.backgroundColor, subnameTextColor: subnameTextColor ?? this.subnameTextColor, dividerColor: dividerColor ?? this.dividerColor, - iconColor: iconColor ?? this.iconColor); + iconColor: iconColor ?? this.iconColor, + settingActionsIconColor: + settingActionsIconColor ?? this.settingActionsIconColor); @override CakeMenuTheme lerp(ThemeExtension? other, double t) { @@ -55,6 +60,9 @@ class CakeMenuTheme extends ThemeExtension { subnameTextColor, dividerColor: Color.lerp(dividerColor, other.dividerColor, t) ?? dividerColor, - iconColor: Color.lerp(iconColor, other.iconColor, t) ?? iconColor); + iconColor: Color.lerp(iconColor, other.iconColor, t) ?? iconColor, + settingActionsIconColor: Color.lerp( + settingActionsIconColor, other.settingActionsIconColor, t) ?? + settingActionsIconColor); } } diff --git a/lib/themes/high_contrast_theme.dart b/lib/themes/high_contrast_theme.dart new file mode 100644 index 000000000..7ba01f354 --- /dev/null +++ b/lib/themes/high_contrast_theme.dart @@ -0,0 +1,53 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart'; +import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; +import 'package:cake_wallet/themes/monero_light_theme.dart'; +import 'package:flutter/material.dart'; + +class HighContrastTheme extends MoneroLightTheme { + HighContrastTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.high_contrast_theme; + @override + Color get primaryColor => Colors.black; + @override + Color get containerColor => Palette.highContrastGray; + + @override + ColorScheme get colorScheme => ColorScheme.fromSwatch( + primarySwatch: Colors.grey, + accentColor: primaryColor, + backgroundColor: Colors.white, + cardColor: containerColor, + brightness: Brightness.light); + + @override + Color get primaryTextColor => colorScheme.onBackground; + + @override + SyncIndicatorTheme get syncIndicatorStyle => + super.syncIndicatorStyle.copyWith( + textColor: colorScheme.background, + syncedBackgroundColor: containerColor); + + @override + BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith( + textColor: Colors.white, + labelTextColor: Colors.grey, + assetTitleColor: Colors.white, + balanceAmountColor: Colors.white); + + @override + DashboardPageTheme get dashboardPageTheme => + super.dashboardPageTheme.copyWith( + // textColor: Colors.white, + mainActionsIconColor: Colors.white, + indicatorDotTheme: IndicatorDotTheme( + indicatorColor: + super.dashboardPageTheme.indicatorDotTheme.indicatorColor, + activeIndicatorColor: primaryColor)); +} diff --git a/lib/themes/light_theme.dart b/lib/themes/light_theme.dart index f00d88515..4e12018a1 100644 --- a/lib/themes/light_theme.dart +++ b/lib/themes/light_theme.dart @@ -93,10 +93,6 @@ class LightTheme extends ThemeBase { hintTextColor: Palette.darkGray, underlineColor: Palette.periwinkleCraiola); - @override - BalancePageTheme get balancePageTheme => - BalancePageTheme(textColor: Palette.darkBlueCraiola.withOpacity(0.67)); - @override AddressTheme get addressTheme => AddressTheme(actionButtonColor: Palette.shadowWhite); @@ -108,6 +104,11 @@ class LightTheme extends ThemeBase { indicatorColor: PaletteDark.darkCyanBlue.withOpacity(0.67), activeIndicatorColor: PaletteDark.darkNightBlue)); + @override + BalancePageTheme get balancePageTheme => BalancePageTheme( + textColor: dashboardPageTheme.textColor, + labelTextColor: Palette.darkBlueCraiola.withOpacity(0.67)); + @override CakeMenuTheme get menuTheme => CakeMenuTheme( headerFirstGradientColor: Palette.blueCraiola, @@ -115,10 +116,13 @@ class LightTheme extends ThemeBase { backgroundColor: Colors.white, subnameTextColor: Colors.white, dividerColor: Palette.wildLavender, - iconColor: Palette.gray); + iconColor: Colors.white, + settingActionsIconColor: Palette.gray); @override FilterTheme get filterTheme => FilterTheme( + checkboxFirstGradientColor: Palette.blueCraiola, + checkboxSecondGradientColor: Palette.blueGreyCraiola, checkboxBoundsColor: Palette.wildPeriwinkle, checkboxBackgroundColor: Colors.white, titlesColor: Palette.darkGray, @@ -201,8 +205,6 @@ class LightTheme extends ThemeBase { @override ThemeData get themeData => super.themeData.copyWith( - indicatorColor: - PaletteDark.darkCyanBlue.withOpacity(0.67), // page indicator dividerColor: Palette.paleBlue, hintColor: Palette.gray, disabledColor: Palette.darkGray, diff --git a/lib/themes/matrix_green_theme.dart b/lib/themes/matrix_green_theme.dart new file mode 100644 index 000000000..30e294415 --- /dev/null +++ b/lib/themes/matrix_green_theme.dart @@ -0,0 +1,14 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:flutter/material.dart'; + +class MatrixGreenTheme extends MoneroDarkTheme { + MatrixGreenTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.matrix_green_dark_theme; + @override + Color get primaryColor => PaletteDark.matrixGreen; +} + diff --git a/lib/themes/monero_dark_theme.dart b/lib/themes/monero_dark_theme.dart new file mode 100644 index 000000000..231753ad8 --- /dev/null +++ b/lib/themes/monero_dark_theme.dart @@ -0,0 +1,185 @@ +import 'package:cake_wallet/themes/dark_theme.dart'; +import 'package:cake_wallet/themes/extensions/account_list_theme.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; +import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/filter_theme.dart'; +import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart'; +import 'package:cake_wallet/themes/extensions/info_theme.dart'; +import 'package:cake_wallet/themes/extensions/menu_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; +import 'package:cake_wallet/themes/extensions/picker_theme.dart'; +import 'package:cake_wallet/themes/extensions/pin_code_theme.dart'; +import 'package:cake_wallet/themes/extensions/qr_code_theme.dart'; +import 'package:cake_wallet/themes/extensions/receive_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart'; +import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; +import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; +import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:flutter/material.dart'; + +class MoneroDarkTheme extends DarkTheme { + MoneroDarkTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.monero_dark_theme; + @override + Color get backgroundColor => Colors.black; + @override + Color get primaryColor => PaletteDark.moneroOrange; + @override + Color get containerColor => PaletteDark.moneroCard; + @override + Color get dialogBackgroundColor => containerColor; + + @override + CakeScrollbarTheme get scrollbarTheme => + super.scrollbarTheme.copyWith(thumbColor: Colors.grey); + + @override + SyncIndicatorTheme get syncIndicatorStyle => + super.syncIndicatorStyle.copyWith( + textColor: Colors.white, + notSyncedBackgroundColor: Colors.grey.withOpacity(0.2), + syncedBackgroundColor: containerColor); + + @override + PinCodeTheme get pinCodeTheme => super + .pinCodeTheme + .copyWith(indicatorsColor: primaryColor, switchColor: Colors.grey); + + @override + ExchangePageTheme get exchangePageTheme => super.exchangePageTheme.copyWith( + hintTextColor: Colors.grey, + qrCodeColor: primaryTextColor, + buttonBackgroundColor: colorScheme.surfaceVariant, + textFieldButtonColor: colorScheme.onInverseSurface, + textFieldBorderBottomPanelColor: colorScheme.surfaceVariant, + textFieldBorderTopPanelColor: colorScheme.surfaceVariant, + secondGradientBottomPanelColor: containerColor, + firstGradientBottomPanelColor: containerColor, + secondGradientTopPanelColor: colorScheme.surface, + firstGradientTopPanelColor: colorScheme.surface, + receiveAmountColor: colorScheme.surfaceVariant); + + @override + NewWalletTheme get newWalletTheme => super + .newWalletTheme + .copyWith(hintTextColor: Colors.grey, underlineColor: Colors.grey); + + @override + AddressTheme get addressTheme => + super.addressTheme.copyWith(actionButtonColor: containerColor); + + @override + DashboardPageTheme get dashboardPageTheme => + super.dashboardPageTheme.copyWith( + pageTitleTextColor: primaryColor, + mainActionsIconColor: primaryColor, + indicatorDotTheme: IndicatorDotTheme( + indicatorColor: colorScheme.secondaryContainer, + activeIndicatorColor: colorScheme.inversePrimary)); + @override + BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith( + cardBorderColor: primaryColor.withOpacity(0.2), + labelTextColor: Colors.grey, + balanceAmountColor: primaryColor, + assetTitleColor: primaryColor); + + @override + CakeMenuTheme get menuTheme => super.menuTheme.copyWith( + headerFirstGradientColor: containerColor, + headerSecondGradientColor: containerColor, + backgroundColor: containerColor, + subnameTextColor: Colors.grey, + dividerColor: colorScheme.secondaryContainer, + iconColor: colorScheme.secondaryContainer, + settingActionsIconColor: colorScheme.secondaryContainer); + + @override + FilterTheme get filterTheme => super.filterTheme.copyWith( + checkboxFirstGradientColor: colorScheme.secondaryContainer, + checkboxSecondGradientColor: colorScheme.inversePrimary, + checkboxBoundsColor: PaletteDark.wildVioletBlue, + checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3), + buttonColor: containerColor, + iconColor: Colors.grey); + + @override + WalletListTheme get walletListTheme => super.walletListTheme.copyWith( + restoreWalletButtonTextColor: Colors.white, + createNewWalletButtonBackgroundColor: primaryColor); + + @override + InfoTheme get infoTheme => super.infoTheme.copyWith(textColor: Colors.grey); + + @override + PickerTheme get pickerTheme => + super.pickerTheme.copyWith(dividerColor: Colors.grey.withOpacity(0.5)); + + @override + SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith( + templateNewTextColor: + dashboardPageTheme.indicatorDotTheme.activeIndicatorColor, + templateDottedBorderColor: colorScheme.primaryContainer, + textFieldButtonIconColor: colorScheme.inverseSurface, + textFieldButtonColor: colorScheme.onInverseSurface, + textFieldHintColor: Colors.grey.withOpacity(0.5), + textFieldBorderColor: Colors.grey.withOpacity(0.5), + secondGradientColor: containerColor, + firstGradientColor: containerColor, + indicatorDotColor: dashboardPageTheme.indicatorDotTheme.indicatorColor); + + @override + SeedWidgetTheme get seedWidgetTheme => + super.seedWidgetTheme.copyWith(hintTextColor: Colors.grey); + + @override + TransactionTradeTheme get transactionTradeTheme => + super.transactionTradeTheme.copyWith( + detailsTitlesColor: Colors.grey, rowsColor: containerColor); + + @override + CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith( + secondaryTextColor: Colors.grey, + addressButtonBorderColor: primaryColor.withOpacity(0.2), + dateSectionRowColor: Colors.grey, + textfieldUnderlineColor: Colors.grey.withOpacity(0.5)); + + @override + AccountListTheme get accountListTheme => + super.accountListTheme.copyWith(tilesBackgroundColor: containerColor); + + @override + ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith( + currentTileBackgroundColor: primaryColor, + currentTileTextColor: Colors.white, + tilesBackgroundColor: containerColor, + iconsBackgroundColor: colorScheme.onInverseSurface, + iconsColor: colorScheme.inverseSurface, + amountBottomBorderColor: Colors.grey, + amountHintTextColor: Colors.grey); + + @override + QRCodeTheme get qrCodeTheme => QRCodeTheme( + qrCodeColor: Colors.grey, qrWidgetCopyButtonColor: Colors.grey); + + @override + ThemeData get themeData => super.themeData.copyWith( + dividerColor: pickerTheme.dividerColor, + hintColor: Colors.grey, + dialogTheme: + super.themeData.dialogTheme.copyWith(backgroundColor: containerColor), + appBarTheme: super.themeData.appBarTheme.copyWith( + titleTextStyle: super + .themeData + .appBarTheme + .titleTextStyle! + .copyWith(color: primaryColor))); +} diff --git a/lib/themes/monero_light_theme.dart b/lib/themes/monero_light_theme.dart new file mode 100644 index 000000000..5600e171f --- /dev/null +++ b/lib/themes/monero_light_theme.dart @@ -0,0 +1,153 @@ +import 'package:cake_wallet/themes/extensions/account_list_theme.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; +import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/filter_theme.dart'; +import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart'; +import 'package:cake_wallet/themes/extensions/menu_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; +import 'package:cake_wallet/themes/extensions/qr_code_theme.dart'; +import 'package:cake_wallet/themes/extensions/receive_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart'; +import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; +import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; +import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; +import 'package:cake_wallet/themes/light_theme.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:flutter/material.dart'; + +class MoneroLightTheme extends LightTheme { + MoneroLightTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.monero_light_theme; + @override + Color get primaryColor => Palette.moneroOrange; + @override + Color get containerColor => Palette.moneroLightOrange; + @override + Color get primaryTextColor => colorScheme.onPrimaryContainer; + @override + Color get dialogBackgroundColor => containerColor; + + @override + SyncIndicatorTheme get syncIndicatorStyle => + super.syncIndicatorStyle.copyWith( + textColor: primaryTextColor, + syncedBackgroundColor: colorScheme.primaryContainer, + notSyncedBackgroundColor: containerColor.withOpacity(0.75)); + + @override + ExchangePageTheme get exchangePageTheme => super.exchangePageTheme.copyWith( + qrCodeColor: primaryTextColor, + buttonBackgroundColor: containerColor, + secondGradientBottomPanelColor: primaryColor.withOpacity(0.7), + firstGradientBottomPanelColor: colorScheme.primary.withOpacity(0.7), + secondGradientTopPanelColor: primaryColor, + firstGradientTopPanelColor: colorScheme.primary, + textFieldBorderBottomPanelColor: colorScheme.surfaceVariant, + textFieldBorderTopPanelColor: colorScheme.surfaceVariant, + receiveAmountColor: colorScheme.surfaceVariant); + + @override + NewWalletTheme get newWalletTheme => super.newWalletTheme.copyWith( + hintTextColor: colorScheme.secondary, + underlineColor: colorScheme.secondary); + + @override + AddressTheme get addressTheme => + super.addressTheme.copyWith(actionButtonColor: containerColor); + + @override + DashboardPageTheme get dashboardPageTheme => + super.dashboardPageTheme.copyWith( + indicatorDotTheme: IndicatorDotTheme( + indicatorColor: colorScheme.secondaryContainer, + activeIndicatorColor: colorScheme.inversePrimary)); + @override + BalancePageTheme get balancePageTheme => super.balancePageTheme.copyWith( + textColor: primaryTextColor.withOpacity(0.67), + labelTextColor: colorScheme.secondary); + + @override + CakeMenuTheme get menuTheme => super.menuTheme.copyWith( + headerFirstGradientColor: colorScheme.primary, + headerSecondGradientColor: primaryColor, + dividerColor: colorScheme.secondaryContainer, + iconColor: colorScheme.secondaryContainer, + settingActionsIconColor: colorScheme.secondary); + + @override + FilterTheme get filterTheme => super.filterTheme.copyWith( + checkboxFirstGradientColor: colorScheme.secondaryContainer, + checkboxSecondGradientColor: colorScheme.inversePrimary, + checkboxBoundsColor: PaletteDark.wildVioletBlue, + checkboxBackgroundColor: PaletteDark.wildVioletBlue.withOpacity(0.3), + buttonColor: containerColor, + iconColor: colorScheme.secondary); + + @override + WalletListTheme get walletListTheme => super.walletListTheme.copyWith( + restoreWalletButtonTextColor: Colors.white, + createNewWalletButtonBackgroundColor: primaryColor); + + @override + SendPageTheme get sendPageTheme => super.sendPageTheme.copyWith( + templateTitleColor: primaryTextColor, + templateBackgroundColor: containerColor, + templateNewTextColor: primaryTextColor, + templateDottedBorderColor: colorScheme.primaryContainer, + secondGradientColor: primaryColor, + firstGradientColor: colorScheme.primary, + indicatorDotColor: dashboardPageTheme.indicatorDotTheme.indicatorColor); + + @override + SeedWidgetTheme get seedWidgetTheme => + super.seedWidgetTheme.copyWith(hintTextColor: colorScheme.secondary); + + @override + TransactionTradeTheme get transactionTradeTheme => + super.transactionTradeTheme.copyWith( + detailsTitlesColor: colorScheme.secondary, rowsColor: containerColor); + + @override + CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith( + titleColor: primaryTextColor, + secondaryTextColor: colorScheme.secondary, + addressButtonBorderColor: primaryColor.withOpacity(0.2), + dateSectionRowColor: colorScheme.secondary, + textfieldUnderlineColor: colorScheme.secondary.withOpacity(0.5)); + + @override + AccountListTheme get accountListTheme => + super.accountListTheme.copyWith(tilesBackgroundColor: containerColor); + + @override + ReceivePageTheme get receivePageTheme => super.receivePageTheme.copyWith( + currentTileBackgroundColor: primaryColor, + tilesBackgroundColor: containerColor, + tilesTextColor: primaryTextColor, + iconsBackgroundColor: colorScheme.surfaceVariant, + iconsColor: colorScheme.onSurfaceVariant, + amountBottomBorderColor: primaryTextColor, + amountHintTextColor: primaryTextColor, + currentTileTextColor: Colors.white); + + @override + QRCodeTheme get qrCodeTheme => super + .qrCodeTheme + .copyWith(qrWidgetCopyButtonColor: colorScheme.secondary); + + @override + ThemeData get themeData => super.themeData.copyWith( + dividerColor: pickerTheme.dividerColor, + hintColor: colorScheme.secondary, + dialogTheme: super + .themeData + .dialogTheme + .copyWith(backgroundColor: containerColor)); +} diff --git a/lib/themes/theme_base.dart b/lib/themes/theme_base.dart index fa1ad675b..9920a4275 100644 --- a/lib/themes/theme_base.dart +++ b/lib/themes/theme_base.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; import 'package:cake_wallet/themes/extensions/filter_theme.dart'; +import 'package:cake_wallet/themes/extensions/indicator_dot_theme.dart'; import 'package:cake_wallet/themes/extensions/info_theme.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/themes/extensions/menu_theme.dart'; @@ -59,7 +60,9 @@ abstract class ThemeBase { firstGradientBackgroundColor: backgroundColor, secondGradientBackgroundColor: backgroundColor, thirdGradientBackgroundColor: backgroundColor, - textColor: primaryTextColor); + textColor: primaryTextColor, + indicatorDotTheme: IndicatorDotTheme( + indicatorColor: primaryColor, activeIndicatorColor: backgroundColor)); CakeScrollbarTheme get scrollbarTheme; @@ -140,11 +143,13 @@ abstract class ThemeBase { receivePageTheme, qrCodeTheme, ], - scrollbarTheme: ScrollbarThemeData( + scrollbarTheme: generatedThemeData.scrollbarTheme.copyWith( thumbColor: MaterialStateProperty.all(scrollbarTheme.thumbColor), trackColor: MaterialStateProperty.all(scrollbarTheme.trackColor), radius: Radius.circular(3), thickness: MaterialStateProperty.all(6), thumbVisibility: MaterialStateProperty.all(true), - crossAxisMargin: 6)); + crossAxisMargin: 6), + appBarTheme: generatedThemeData.appBarTheme.copyWith( + titleTextStyle: TextStyle(color: cakeTextTheme.titleColor))); } diff --git a/lib/themes/theme_list.dart b/lib/themes/theme_list.dart index 941e23f82..dcc80435a 100644 --- a/lib/themes/theme_list.dart +++ b/lib/themes/theme_list.dart @@ -1,25 +1,60 @@ import 'package:cake_wallet/themes/bright_theme.dart'; import 'package:cake_wallet/themes/dark_theme.dart'; import 'package:cake_wallet/themes/light_theme.dart'; +import 'package:cake_wallet/themes/monero_light_theme.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:cake_wallet/themes/matrix_green_theme.dart'; +import 'package:cake_wallet/themes/bitcoin_dark_theme.dart'; +import 'package:cake_wallet/themes/bitcoin_light_theme.dart'; +import 'package:cake_wallet/themes/high_contrast_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; class ThemeList { - static final all = [brightTheme, lightTheme, darkTheme]; + static final all = [ + brightTheme, + lightTheme, + darkTheme, + moneroDarkTheme, + moneroLightTheme, + matrixGreenTheme, + bitcoinDarkTheme, + bitcoinLightTheme, + highContrastTheme + ]; - static final lightTheme = LightTheme(raw: 0); - static final brightTheme = BrightTheme(raw: 1); + static final brightTheme = BrightTheme(raw: 0); + static final lightTheme = LightTheme(raw: 1); static final darkTheme = DarkTheme(raw: 2); + static final moneroDarkTheme = MoneroDarkTheme(raw: 3); + static final moneroLightTheme = MoneroLightTheme(raw: 4); + static final matrixGreenTheme = MatrixGreenTheme(raw: 5); + static final bitcoinDarkTheme = BitcoinDarkTheme(raw: 6); + static final bitcoinLightTheme = BitcoinLightTheme(raw: 7); + static final highContrastTheme = HighContrastTheme(raw: 8); static ThemeBase deserialize({required int raw}) { switch (raw) { case 0: - return lightTheme; - case 1: return brightTheme; + case 1: + return lightTheme; case 2: return darkTheme; + case 3: + return moneroDarkTheme; + case 4: + return moneroLightTheme; + case 5: + return matrixGreenTheme; + case 6: + return bitcoinDarkTheme; + case 7: + return bitcoinLightTheme; + case 8: + return highContrastTheme; default: - throw Exception('Unexpected token raw: $raw for deserialization of ThemeBase'); + throw Exception( + 'Unexpected token raw: $raw for deserialization of ThemeBase'); } } } \ No newline at end of file diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 8145374e3..d76dd37be 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -725,5 +725,11 @@ "setup_2fa_text": "كعكة 2FA ليست آمنة مثل التخزين البارد. تحمي 2FA من الأنواع الأساسية للهجمات ، مثل قيام صديقك بتقديم بصمة إصبعك أثناء نومك. لا تحمي Cake 2FA من جهاز مخترق من قِبل مهاجم متطور. إذا فقدت الوصول إلى رموز 2FA الخاصة بك ، ستفقد إمكانية الوصول إلى هذه المحفظة. سوف تحتاج إلى استعادة محفظتك من بذرة ذاكري. يجب عليك بالتالي الاحتفاظ بنسخة احتياطية من بذور الذاكرة الخاصة بك! علاوة على ذلك ، سيتمكن أي شخص لديه حق الوصول إلى بذرة (بذور) ذاكري من سرقة أموالك ، متجاوزًا Cake 2FA. لن يتمكن فريق دعم الكيك من مساعدتك إذا فقدت الوصول إلى بذرتك ، نظرًا لأن Cake هي المحفظة غير الحافظة.", "setup_totp_recommended": "إعداد TOTP (موصى به)", "disable_buy": "تعطيل إجراء الشراء", - "disable_sell": "قم بتعطيل إجراء البيع" + "disable_sell": "قم بتعطيل إجراء البيع", + "monero_dark_theme": "موضوع مونيرو الظلام", + "bitcoin_dark_theme": "موضوع البيتكوين الظلام", + "bitcoin_light_theme": "موضوع البيتكوين الخفيفة", + "high_contrast_theme": "موضوع عالي التباين", + "matrix_green_dark_theme": "موضوع ماتريكس الأخضر الداكن", + "monero_light_theme": " ضوء مونيرو" } diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index f78159548..44e450a2a 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -721,5 +721,11 @@ "setup_2fa_text": "Тортата 2FA НЕ е толкова сигурна, колкото хладилното съхранение. 2FA защитава срещу основни видове атаки, като например вашият приятел да предостави вашия пръстов отпечатък, докато спите.\n\n Cake 2FA НЕ защитава срещу компрометирано устройство от сложен хакер.\n\n Ако загубите достъп до своите 2FA кодове , ЩЕ ЗАГУБИТЕ ДОСТЪП ДО ТОЗИ ПОРТФЕЙЛ. Ще трябва да възстановите портфейла си от мнемонично семе. ЗАТОВА ТРЯБВА ДА НАПРАВИТЕ РЕЗЕРВНО КОПИЕ НА ВАШИТЕ МНЕМОНИЧНИ СЕМЕНА! Освен това, някой с достъп до вашите мнемонични начални точки ще може да открадне вашите средства, заобикаляйки Cake 2FA.\n\n Персоналът по поддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите мнемонични начални стойности, тъй като Cake е портфейл без попечителство.", "setup_totp_recommended": "Настройка на TOTP (препоръчително)", "disable_buy": "Деактивирайте действието за покупка", - "disable_sell": "Деактивирайте действието за продажба" + "disable_sell": "Деактивирайте действието за продажба", + "monero_dark_theme": "Тъмна тема Monero", + "bitcoin_dark_theme": "Тъмна тема за биткойн", + "bitcoin_light_theme": "Лека биткойн тема", + "high_contrast_theme": "Тема с висок контраст", + "matrix_green_dark_theme": "Зелена тъмна тема Matrix", + "monero_light_theme": "Лека тема Monero" } diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 5de87671d..8282c9b0a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -721,5 +721,11 @@ "setup_2fa_text": "Cake 2FA NENÍ tak bezpečný jako skladování v chladu. 2FA chrání před základními typy útoků, jako je váš přítel, který vám poskytne otisk prstu, když spíte.\n\n Cake 2FA nechrání před napadením zařízení sofistikovaným útočníkem.\n\n Pokud ztratíte přístup ke svým kódům 2FA , ZTRÁTÍTE PŘÍSTUP K TÉTO PENĚŽENCE. Budete muset obnovit svou peněženku z mnemotechnického semínka. MUSÍTE TEDY ZÁLOHOVAT SVÉ MNEMONICKÉ SEMÉNKY! Kromě toho někdo s přístupem k vašemu mnemotechnickému semenu bude moci ukrást vaše finanční prostředky a obejít Cake 2FA.\n\n Pracovníci podpory Cake vám nebudou schopni pomoci, pokud ztratíte přístup k vašemu mnemotechnickému semenu, protože Cake je nevazební peněženka.", "setup_totp_recommended": "Nastavit TOTP (doporučeno)", "disable_buy": "Zakázat akci nákupu", - "disable_sell": "Zakázat akci prodeje" + "disable_sell": "Zakázat akci prodeje", + "monero_dark_theme": "Tmavé téma Monero", + "bitcoin_dark_theme": "Tmavé téma bitcoinů", + "bitcoin_light_theme": "Světlé téma bitcoinů", + "high_contrast_theme": "Téma s vysokým kontrastem", + "matrix_green_dark_theme": "Tmavé téma Matrix Green", + "monero_light_theme": "Světlé téma Monero" } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 5267f4e96..7c5fd7d44 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA ist NICHT so sicher wie eine Kühllagerung. 2FA schützt vor grundlegenden Arten von Angriffen, z. B. wenn Ihr Freund Ihren Fingerabdruck bereitstellt, während Sie schlafen.\n\n Cake 2FA schützt NICHT vor einem kompromittierten Gerät durch einen raffinierten Angreifer.\n\n Wenn Sie den Zugriff auf Ihre 2FA-Codes verlieren , VERLIEREN SIE DEN ZUGANG ZU DIESEM WALLET. Sie müssen Ihre Brieftasche aus mnemonic Seed wiederherstellen. SIE MÜSSEN DESHALB IHRE MNEMONISCHEN SEEDS SICHERN! Außerdem kann jemand mit Zugriff auf Ihre mnemonischen Seed(s) Ihr Geld stehlen und Cake 2FA umgehen.\n\n Cake-Supportmitarbeiter können Ihnen nicht helfen, wenn Sie den Zugriff auf Ihre mnemonischen Seed(s) verlieren, da Cake ein Brieftasche ohne Verwahrung.", "setup_totp_recommended": "TOTP einrichten (empfohlen)", "disable_buy": "Kaufaktion deaktivieren", - "disable_sell": "Verkaufsaktion deaktivieren" + "disable_sell": "Verkaufsaktion deaktivieren", + "monero_dark_theme": "Dunkles Monero-Thema", + "bitcoin_dark_theme": "Dunkles Bitcoin-Thema", + "bitcoin_light_theme": "Bitcoin Light-Thema", + "high_contrast_theme": "Kontrastreiches Thema", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "monero_light_theme": "Monero Light-Thema" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 687fe5bb4..8a5ea4705 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA is NOT as secure as cold storage. 2FA protects against basic types of attacks, such as your friend providing your fingerprint while you are sleeping.\n\n Cake 2FA does NOT protect against a compromised device by a sophisticated attacker.\n\n If you lose access to your 2FA codes, YOU WILL LOSE ACCESS TO THIS WALLET. You will need to restore your wallet from mnemonic seed. YOU MUST THEREFORE BACK UP YOUR MNEMONIC SEEDS! Further, someone with access to your mnemonic seed(s) will be able to steal your funds, bypassing Cake 2FA.\n\n Cake support staff will be unable to assist you if you lose access to your mnemonic seed, since Cake is a noncustodial wallet.", "setup_totp_recommended": "Set up TOTP (Recommended)", "disable_buy": "Disable buy action", - "disable_sell": "Disable sell action" + "disable_sell": "Disable sell action", + "monero_dark_theme": "Monero Dark Theme", + "bitcoin_dark_theme": "Bitcoin Dark Theme", + "bitcoin_light_theme": "Bitcoin Light Theme", + "high_contrast_theme": "High Contrast Theme", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "monero_light_theme": "Monero Light Theme" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index e4b5f4da7..6113c1a9c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA NO es tan seguro como el almacenamiento en frío. 2FA protege contra tipos básicos de ataques, como cuando un amigo proporciona su huella digital mientras usted duerme.\n\n Cake 2FA NO protege contra un dispositivo comprometido por un atacante sofisticado.\n\n Si pierde el acceso a sus códigos 2FA , PERDERÁS EL ACCESO A ESTA BILLETERA. Deberá restaurar su billetera desde la semilla mnemotécnica. ¡POR LO TANTO, DEBE HACER UNA COPIA DE SEGURIDAD DE SUS SEMILLAS MNEMÓNICAS! Además, alguien con acceso a sus semillas mnemotécnicas podrá robar sus fondos, sin pasar por Cake 2FA.\n\n El personal de soporte de Cake no podrá ayudarlo si pierde el acceso a su semilla mnemotécnica, ya que Cake es un billetera sin custodia.", "setup_totp_recommended": "Configurar TOTP (Recomendado)", "disable_buy": "Desactivar acción de compra", - "disable_sell": "Desactivar acción de venta" + "disable_sell": "Desactivar acción de venta", + "monero_dark_theme": "Tema oscuro de Monero", + "bitcoin_dark_theme": "Tema oscuro de Bitcoin", + "bitcoin_light_theme": "Tema de la luz de Bitcoin", + "high_contrast_theme": "Tema de alto contraste", + "matrix_green_dark_theme": "Matrix verde oscuro tema", + "monero_light_theme": "Tema ligero de Monero" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 4eee4f18e..06c270778 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA (Authentification à 2 Facteurs) n'est PAS aussi sûr que le stockage à froid. Cake 2FA protège contre les attaques basiques, comme un ami fournissant votre empreinte digitale pendant que vous dormez.\n\n Cake 2FA ne protège PAS contre un appareil compromis par un attaquant sophistiqué.\n\n Si vous perdez l'accès à vos codes 2FA , VOUS PERDREZ L'ACCÈS À CE PORTEFEUILLE (WALLET). Vous devrez restaurer votre portefeuille à partir de sa phrase secrète (seed). VOUS DEVEZ DONC SAUVEGARDER VOTRE PHRASE SECRÈTE ! De plus, quelqu'un ayant accès à votre phrase secrète pourra voler vos fonds, en contournant Cake 2FA.\n\n Le personnel d'assistance de Cake ne pourra pas vous aider si vous perdez l'accès à votre phrase secrète, puisque Cake est un portefeuille non dépositaire (non custodial).", "setup_totp_recommended": "Configurer TOTP (recommandé)", "disable_buy": "Désactiver l'action d'achat", - "disable_sell": "Désactiver l'action de vente" + "disable_sell": "Désactiver l'action de vente", + "monero_dark_theme": "Thème sombre Monero", + "bitcoin_dark_theme": "Thème sombre Bitcoin", + "bitcoin_light_theme": "Thème léger Bitcoin", + "high_contrast_theme": "Thème à contraste élevé", + "matrix_green_dark_theme": "Thème Matrix Green Dark", + "monero_light_theme": "Thème de lumière Monero" } diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 14493fced..48caa69f3 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -710,5 +710,11 @@ "show_market_place" :"Nuna dan kasuwa", "prevent_screenshots": "Fada lambobi da jarrabobi na kayan lambobi", "disable_buy": "Kashe alama", - "disable_sell": "Kashe karbuwa" + "disable_sell": "Kashe karbuwa", + "monero_dark_theme": "Monero Dark Jigo", + "bitcoin_dark_theme": "Bitcoin Dark Jigo", + "bitcoin_light_theme": "Jigon Hasken Bitcoin", + "high_contrast_theme": "Babban Jigon Kwatance", + "matrix_green_dark_theme": "Matrix Green Dark Jigo", + "monero_light_theme": "Jigon Hasken Monero" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 9fa4d4f5e..2b40c4138 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "केक 2FA कोल्ड स्टोरेज जितना सुरक्षित नहीं है। 2FA बुनियादी प्रकार के हमलों से बचाता है, जैसे कि आपका मित्र सोते समय आपको अपना फ़िंगरप्रिंट प्रदान करता है।\n\n Cake 2FA परिष्कृत हमलावर द्वारा किसी डिवाइस से छेड़छाड़ से रक्षा नहीं करता है।\n\n यदि आप अपने 2FA कोड तक पहुंच खो देते हैं , आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरणीय बीज से पुनर्स्थापित करने की आवश्यकता होगी। इसलिए आपको अपने स्मरणीय बीजों का बैकअप लेना चाहिए! इसके अलावा, आपके स्मरक बीज (बीजों) तक पहुंच रखने वाला कोई व्यक्ति केक 2FA को दरकिनार कर आपके धन की चोरी करने में सक्षम होगा। अप्रबंधित बटुआ।", "setup_totp_recommended": "टीओटीपी सेट अप करें (अनुशंसित)", "disable_buy": "खरीद कार्रवाई अक्षम करें", - "disable_sell": "बेचने की कार्रवाई अक्षम करें" + "disable_sell": "बेचने की कार्रवाई अक्षम करें", + "monero_dark_theme": "मोनेरो डार्क थीम", + "bitcoin_dark_theme": "बिटकॉइन डार्क थीम", + "bitcoin_light_theme": "बिटकॉइन लाइट थीम", + "high_contrast_theme": "उच्च कंट्रास्ट थीम", + "matrix_green_dark_theme": "मैट्रिक्स ग्रीन डार्क थीम", + "monero_light_theme": "मोनेरो लाइट थीम" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 141d911f8..d78b9dd57 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -727,7 +727,13 @@ "setup_2fa_text": "Torta 2FA NIJE sigurna kao hladno skladište. 2FA štiti od osnovnih vrsta napada, kao što je vaš prijatelj koji vam daje otisak prsta dok spavate.\n\n Cake 2FA NE štiti od kompromitiranog uređaja od strane sofisticiranog napadača.\n\n Ako izgubite pristup svojim 2FA kodovima , IZGUBIT ĆETE PRISTUP OVOM NOVČANIKU. Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena. STOGA MORATE NAPRAVITI SIGURNOSNE KOPIJE SVOJIH MNEMONIČKIH SJEMENA! Nadalje, netko tko ima pristup vašem mnemoničkom seedu(ima) moći će ukrasti vaša sredstva, zaobilazeći Cake 2FA.\n\n Cake osoblje za podršku neće vam moći pomoći ako izgubite pristup svom mnemoničkom seedu, budući da je Cake neskrbnički novčanik.", "setup_totp_recommended": "Postavite TOTP (preporučeno)", "disable_buy": "Onemogući kupnju", - "disable_sell": "Onemogući akciju prodaje" + "disable_sell": "Onemogući akciju prodaje", + "monero_dark_theme": "Monero tamna tema", + "bitcoin_dark_theme": "Bitcoin Tamna tema", + "bitcoin_light_theme": "Bitcoin Light Theme", + "high_contrast_theme": "Tema visokog kontrasta", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "monero_light_theme": "Monero lagana tema" } diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 00b954cd7..9e66b77a1 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -703,7 +703,13 @@ "setup_2fa_text": "Cake 2FA TIDAK seaman cold storage. 2FA melindungi dari jenis serangan dasar, seperti teman Anda memberikan sidik jari saat Anda sedang tidur.\n\n Cake 2FA TIDAK melindungi dari perangkat yang disusupi oleh penyerang canggih.\n\n Jika Anda kehilangan akses ke kode 2FA , ANDA AKAN KEHILANGAN AKSES KE DOMPET INI. Anda perlu memulihkan dompet Anda dari benih mnemonik. OLEH KARENA ITU, ANDA HARUS MENYIMPAN BIJI MNEMONIK ANDA! Selanjutnya, seseorang yang memiliki akses ke benih mnemonik Anda akan dapat mencuri dana Anda, melewati Cake 2FA.\n\n Staf pendukung Cake tidak akan dapat membantu Anda jika Anda kehilangan akses ke benih mnemonik Anda, karena Cake adalah dompet tanpa hak asuh.", "setup_totp_recommended": "Siapkan TOTP (Disarankan)", "disable_buy": "Nonaktifkan tindakan beli", - "disable_sell": "Nonaktifkan aksi jual" + "disable_sell": "Nonaktifkan aksi jual", + "monero_dark_theme": "Tema Gelap Monero", + "bitcoin_dark_theme": "Tema Gelap Bitcoin", + "bitcoin_light_theme": "Tema Cahaya Bitcoin", + "high_contrast_theme": "Tema Kontras Tinggi", + "matrix_green_dark_theme": "Tema Matrix Green Dark", + "monero_light_theme": "Tema Cahaya Monero" } diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 1fc10a4c4..147cb3298 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA NON è sicuro come la cella frigorifera. 2FA protegge da tipi di attacchi di base, come il tuo amico che fornisce la tua impronta digitale mentre dormi.\n\n Cake 2FA NON protegge da un dispositivo compromesso da un aggressore sofisticato.\n\n Se perdi l'accesso ai tuoi codici 2FA , PERDERAI L'ACCESSO A QUESTO PORTAFOGLIO. Dovrai ripristinare il tuo portafoglio dal seme mnemonico. DOVETE QUINDI SOSTITUIRE I VOSTRI SEMI MNEMONICI! Inoltre, qualcuno con accesso ai tuoi seed mnemonici sarà in grado di rubare i tuoi fondi, aggirando Cake 2FA.\n\n Il personale di supporto di Cake non sarà in grado di aiutarti se perdi l'accesso al tuo seed mnemonico, poiché Cake è un portafoglio non detentivo.", "setup_totp_recommended": "Imposta TOTP (consigliato)", "disable_buy": "Disabilita l'azione di acquisto", - "disable_sell": "Disabilita l'azione di vendita" + "disable_sell": "Disabilita l'azione di vendita", + "monero_dark_theme": "Tema scuro di Monero", + "bitcoin_dark_theme": "Tema oscuro di Bitcoin", + "bitcoin_light_theme": "Tema luce Bitcoin", + "high_contrast_theme": "Tema ad alto contrasto", + "matrix_green_dark_theme": "Tema Matrix verde scuro", + "monero_light_theme": "Tema leggero Monero" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 9f85a3a15..bc455a05b 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA は、コールド ストレージほど安全ではありません。 2FA は、あなたが寝ているときに友人が指紋を提供するなどの基本的なタイプの攻撃から保護します。\n\n Cake 2FA は、巧妙な攻撃者による侵害されたデバイスから保護しません。\n\n 2FA コードにアクセスできなくなった場合、このウォレットにアクセスできなくなります。ニーモニック シードからウォレットを復元する必要があります。したがって、ニーモニック シードをバックアップする必要があります。さらに、あなたのニーモニック シードにアクセスできる誰かが、Cake 2FA をバイパスして、あなたの資金を盗むことができます。\n\n Cake は無印の財布。", "setup_totp_recommended": "TOTP を設定する (推奨)", "disable_buy": "購入アクションを無効にする", - "disable_sell": "販売アクションを無効にする" + "disable_sell": "販売アクションを無効にする", + "monero_dark_theme": "モネロダークテーマ", + "bitcoin_dark_theme": "ビットコインダークテーマ", + "bitcoin_light_theme": "ビットコインライトテーマ", + "high_contrast_theme": "ハイコントラストテーマ", + "matrix_green_dark_theme": "マトリックスグリーンダークテーマ", + "monero_light_theme": "モネロ ライト テーマ" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index eb4792a75..d33165875 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "케이크 2FA는 냉장 보관만큼 안전하지 않습니다. 2FA는 당신이 잠자는 동안 친구가 지문을 제공하는 것과 같은 기본적인 유형의 공격으로부터 보호합니다.\n\n Cake 2FA는 정교한 공격자에 의해 손상된 장치로부터 보호하지 않습니다.\n\n 2FA 코드에 대한 액세스 권한을 잃으면 , 이 지갑에 대한 액세스 권한을 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다. 따라서 니모닉 시드를 백업해야 합니다! 또한 니모닉 시드에 액세스할 수 있는 사람이 Cake 2FA를 우회하여 자금을 훔칠 수 있습니다.\n\n 니모닉 시드에 대한 액세스 권한을 잃으면 Cake 지원 직원이 도와줄 수 없습니다. 비수탁 지갑.", "setup_totp_recommended": "TOTP 설정(권장)", "disable_buy": "구매 행동 비활성화", - "disable_sell": "판매 조치 비활성화" + "disable_sell": "판매 조치 비활성화", + "monero_dark_theme": "모네로 다크 테마", + "bitcoin_dark_theme": "비트코인 다크 테마", + "bitcoin_light_theme": "비트코인 라이트 테마", + "high_contrast_theme": "고대비 테마", + "matrix_green_dark_theme": "매트릭스 그린 다크 테마", + "monero_light_theme": "모네로 라이트 테마" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index a402644e0..0f16fc588 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -727,7 +727,13 @@ "setup_2fa_text": "ကိတ်မုန့် 2FA သည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။ 2FA သည် သင်အိပ်နေစဉ်တွင် သင့်သူငယ်ချင်းသည် သင့်လက်ဗွေရာကို ပေးဆောင်ခြင်းကဲ့သို့သော အခြေခံတိုက်ခိုက်မှုအမျိုးအစားများကို ကာကွယ်ပေးပါသည်။\n\n Cake 2FA သည် ခေတ်မီဆန်းပြားသော တိုက်ခိုက်သူ၏ အန္တရာယ်ပြုသည့်စက်ပစ္စည်းကို မကာကွယ်ပါ။\n\n သင်၏ 2FA ကုဒ်များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက၊ ဤပိုက်ဆံအိတ်ကို သင်ဝင်ရောက်ခွင့်ဆုံးရှုံးလိမ့်မည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။ ထို့ကြောင့် သင်၏ MNEMONIC မျိုးစေ့များကို အရန်သိမ်းထားရပါမည်။ ထို့အပြင်၊ သင်၏ mnemonic မျိုးစေ့(များ) ကို အသုံးပြုခွင့်ရှိသူတစ်ဦးက Cake 2FA ကိုကျော်ဖြတ်ကာ သင့်ရန်ပုံငွေများကို ခိုးယူနိုင်ပါမည်။\n\n ကိတ်မုန့်သည် သင့် mnemonic မျိုးစေ့သို့ ဝင်ရောက်ခွင့်ဆုံးရှုံးသွားပါက သင့်အား ကူညီပေးနိုင်မည်မဟုတ်ပါ၊ အထိန်းအချုပ်မရှိသော ပိုက်ဆံအိတ်။", "setup_totp_recommended": "TOTP ကို ​​စနစ်ထည့်သွင်းပါ (အကြံပြုထားသည်)", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", - "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။" + "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "monero_dark_theme": "Monero Dark အပြင်အဆင်", + "bitcoin_dark_theme": "Bitcoin Dark Theme", + "bitcoin_light_theme": "Bitcoin Light အပြင်အဆင်", + "high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်", + "matrix_green_dark_theme": "Matrix Green Dark အပြင်အဆင်", + "monero_light_theme": "Monero Light အပြင်အဆင်" } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 9068e4f8d..30a07fe48 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA is NIET zo veilig als koude opslag. 2FA beschermt tegen basistypen aanvallen, zoals uw vriend die uw vingerafdruk geeft terwijl u slaapt.\n\n Cake 2FA biedt GEEN bescherming tegen een gecompromitteerd apparaat door een geavanceerde aanvaller.\n\n Als u de toegang tot uw 2FA-codes kwijtraakt , VERLIEST U DE TOEGANG TOT DEZE PORTEFEUILLE. U moet uw portemonnee herstellen van mnemonic seed. JE MOET DAAROM EEN BACK-UP MAKEN VAN JE MNEMONISCHE ZADEN! Verder kan iemand met toegang tot je geheugensteuntje(s) je geld stelen, waarbij Cake 2FA wordt omzeild.\n\n Het ondersteunend personeel van Cake kan je niet helpen als je de toegang tot je geheugensteuntje kwijtraakt, aangezien Cake een niet-bewaarbare portemonnee.", "setup_totp_recommended": "TOTP instellen (aanbevolen)", "disable_buy": "Koopactie uitschakelen", - "disable_sell": "Verkoopactie uitschakelen" + "disable_sell": "Verkoopactie uitschakelen", + "monero_dark_theme": "Monero donker thema", + "bitcoin_dark_theme": "Bitcoin donker thema", + "bitcoin_light_theme": "Bitcoin Light-thema", + "high_contrast_theme": "Thema met hoog contrast", + "matrix_green_dark_theme": "Matrix groen donker thema", + "monero_light_theme": "Monero Light-thema" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index cc0507083..c5cc2e7ff 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA NIE jest tak bezpieczny jak przechowywanie w chłodni. 2FA chroni przed podstawowymi typami ataków, takimi jak udostępnienie odcisku palca przez znajomego podczas snu.\n\n Cake 2FA NIE chroni przed zhakowanym urządzeniem przez wyrafinowanego atakującego.\n\n Jeśli utracisz dostęp do swoich kodów 2FA , UTRACISZ DOSTĘP DO TEGO PORTFELA. Będziesz musiał przywrócić swój portfel z mnemonicznego materiału siewnego. DLATEGO MUSISZ ZROBIĆ KOPIĘ SWOICH NASION MNEMONICZNYCH! Co więcej, ktoś z dostępem do twoich mnemonicznych nasion będzie mógł ukraść twoje fundusze, omijając Cake 2FA.\n\n Personel pomocniczy Cake nie będzie mógł ci pomóc, jeśli stracisz dostęp do swojego mnemonicznego seeda, ponieważ Cake jest portfel niezabezpieczony.", "setup_totp_recommended": "Skonfiguruj TOTP (zalecane)", "disable_buy": "Wyłącz akcję kupna", - "disable_sell": "Wyłącz akcję sprzedaży" + "disable_sell": "Wyłącz akcję sprzedaży", + "monero_dark_theme": "Ciemny motyw Monero", + "bitcoin_dark_theme": "Ciemny motyw Bitcoina", + "bitcoin_light_theme": "Lekki motyw Bitcoin", + "high_contrast_theme": "Motyw o wysokim kontraście", + "matrix_green_dark_theme": "Matrix Zielony ciemny motyw", + "monero_light_theme": "Lekki motyw Monero" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index a4272fc2c..32ea88340 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -726,5 +726,11 @@ "setup_2fa_text": "O Cake 2FA NÃO é tão seguro quanto o armazenamento a frio. O 2FA protege contra tipos básicos de ataques, como seu amigo fornecer sua impressão digital enquanto você está dormindo.\n\n O Cake 2FA NÃO protege contra um dispositivo comprometido por um invasor sofisticado.\n\n Se você perder o acesso aos seus códigos 2FA , VOCÊ PERDERÁ O ACESSO A ESTA CARTEIRA. Você precisará restaurar sua carteira da semente mnemônica. VOCÊ DEVE, PORTANTO, FAZER BACKUP DE SUAS SEMENTES MNEMÔNICAS! Além disso, alguém com acesso às suas sementes mnemônicas poderá roubar seus fundos, ignorando o Cake 2FA.\n\n A equipe de suporte do Cake não poderá ajudá-lo se você perder o acesso à sua semente mnemônica, pois o Cake é um carteira não custodial.", "setup_totp_recommended": "Configurar TOTP (recomendado)", "disable_buy": "Desativar ação de compra", - "disable_sell": "Desativar ação de venda" + "disable_sell": "Desativar ação de venda", + "monero_dark_theme": "Monero Tema Escuro", + "bitcoin_dark_theme": "Tema escuro Bitcoin", + "bitcoin_light_theme": "Tema claro de bitcoin", + "high_contrast_theme": "Tema de alto contraste", + "matrix_green_dark_theme": "Tema escuro verde matrix", + "monero_light_theme": "Monero Light Theme" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index bcb4778c8..f6db542e3 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA НЕ так безопасен, как холодное хранилище. Двухфакторная аутентификация защищает от основных типов атак, таких как отпечаток вашего друга, когда вы спите.\n\n Двухфакторная аутентификация Cake НЕ защищает от взлома устройства опытным злоумышленником.\n\n Если вы потеряете доступ к своим кодам двухфакторной аутентификации. , ВЫ ПОТЕРЯЕТЕ ДОСТУП К ЭТОМУ КОШЕЛЬКУ. Вам нужно будет восстановить свой кошелек из мнемонической семени. ПОЭТОМУ ВЫ ДОЛЖНЫ СОЗДАТЬ РЕЗЕРВНУЮ ВЕРСИЮ СВОИХ МНЕМОНИКОВ! Кроме того, кто-то, имеющий доступ к вашему мнемоническому семени, сможет украсть ваши средства, минуя Cake 2FA.\n\n Персонал службы поддержки Cake не сможет помочь вам, если вы потеряете доступ к своему мнемоническому семени, поскольку Cake — это некастодиальный кошелек.", "setup_totp_recommended": "Настроить TOTP (рекомендуется)", "disable_buy": "Отключить действие покупки", - "disable_sell": "Отключить действие продажи" + "disable_sell": "Отключить действие продажи", + "monero_dark_theme": "Темная тема Monero", + "bitcoin_dark_theme": "Биткойн Темная тема", + "bitcoin_light_theme": "Легкая биткойн-тема", + "high_contrast_theme": "Высококонтрастная тема", + "matrix_green_dark_theme": "Матрица Зеленая Темная Тема", + "monero_light_theme": "Светлая тема Monero" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 509bbad1f..d923506d1 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -725,5 +725,11 @@ "setup_2fa_text": "Cake 2FA ไม่ปลอดภัยเท่าห้องเย็น 2FA ป้องกันการโจมตีประเภทพื้นฐาน เช่น เพื่อนของคุณให้ลายนิ้วมือขณะที่คุณนอนหลับ\n\n Cake 2FA ไม่ป้องกันอุปกรณ์ที่ถูกบุกรุกโดยผู้โจมตีที่เชี่ยวชาญ\n\n หากคุณสูญเสียการเข้าถึงรหัส 2FA ของคุณ คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยจำ คุณต้องสำรองเมล็ดความจำของคุณ! นอกจากนี้ ผู้ที่สามารถเข้าถึงเมล็ดช่วยจำของคุณจะสามารถขโมยเงินของคุณ โดยผ่าน Cake 2FA\n\n เจ้าหน้าที่ช่วยเหลือของ Cake จะไม่สามารถช่วยเหลือคุณได้ หากคุณสูญเสียการเข้าถึงเมล็ดช่วยจำ เนื่องจาก Cake เป็น กระเป๋าสตางค์ที่ไม่เป็นผู้ดูแล", "setup_totp_recommended": "ตั้งค่า TOTP (แนะนำ)", "disable_buy": "ปิดการใช้งานการซื้อ", - "disable_sell": "ปิดการใช้งานการขาย" + "disable_sell": "ปิดการใช้งานการขาย", + "monero_dark_theme": "ธีมมืด Monero", + "bitcoin_dark_theme": "ธีมมืด Bitcoin", + "bitcoin_light_theme": "ธีมแสง Bitcoin", + "high_contrast_theme": "ธีมความคมชัดสูง", + "matrix_green_dark_theme": "ธีมเมทริกซ์สีเขียวเข้ม", + "monero_light_theme": "ธีมแสง Monero" } diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 4f7b58393..649fe511a 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -727,5 +727,11 @@ "setup_2fa_text": "Cake 2FA, soğuk hava deposu kadar güvenli DEĞİLDİR. 2FA, siz uyurken arkadaşınızın parmak izinizi sağlaması gibi temel saldırı türlerine karşı koruma sağlar.\n\n Cake 2FA, gelişmiş bir saldırgan tarafından güvenliği ihlal edilmiş bir cihaza karşı koruma SAĞLAMAZ.\n\n 2FA kodlarınıza erişimi kaybederseniz , BU CÜZDANA ERİŞİMİNİZİ KAYBEDECEKSİNİZ. Mnemonic seed'den cüzdanınızı geri yüklemeniz gerekecek. BU NEDENLE HATIRLAYICI TOHUMLARINIZI YEDEKLEMELİSİNİZ! Ayrıca anımsatıcı tohumlarınıza erişimi olan biri, Cake 2FA'yı atlayarak paranızı çalabilir.\n\n Cake, anımsatıcı tohumlarınıza erişimi kaybederseniz size yardımcı olamaz, çünkü Cake bir saklama dışı cüzdan.", "setup_totp_recommended": "TOTP'yi kurun (Önerilir)", "disable_buy": "Satın alma işlemini devre dışı bırak", - "disable_sell": "Satış işlemini devre dışı bırak" + "disable_sell": "Satış işlemini devre dışı bırak", + "monero_dark_theme": "Monero Koyu Tema", + "bitcoin_dark_theme": "Bitcoin Karanlık Teması", + "bitcoin_light_theme": "Bitcoin Hafif Tema", + "high_contrast_theme": "Yüksek Kontrastlı Tema", + "matrix_green_dark_theme": "Matrix Yeşil Koyu Tema", + "monero_light_theme": "Monero Hafif Tema" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 9117247d7..9e17c73d8 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -726,5 +726,11 @@ "setup_2fa_text": "Торт 2FA НЕ такий безпечний, як холодне зберігання. 2FA захищає від основних типів атак, наприклад ваш друг надає ваш відбиток пальця, поки ви спите.\n\n Cake 2FA НЕ захищає від скомпрометованого пристрою досвідченим зловмисником.\n\n Якщо ви втратите доступ до своїх кодів 2FA , ВИ ВТРАТИТЕ ДОСТУП ДО ЦЬОГО ГАМАНЦЯ. Вам потрібно буде відновити свій гаманець з мнемонічного коду. ТОМУ ВИ ПОВИННІ СТВОРИТИ РЕЗЕРВНУ КОПІЮ СВОЇХ МНЕМОНІЧНИХ НАСІН! Крім того, хтось із доступом до ваших мнемонічних початкових значень зможе викрасти ваші кошти, оминаючи Cake 2FA.\n\n Співробітники служби підтримки Cake не зможуть вам допомогти, якщо ви втратите доступ до своїх мнемонічних вихідних даних, оскільки Cake є гаманець без опіки.", "setup_totp_recommended": "Налаштувати TOTP (рекомендовано)", "disable_buy": "Вимкнути дію покупки", - "disable_sell": "Вимкнути дію продажу" + "disable_sell": "Вимкнути дію продажу", + "monero_dark_theme": "Темна тема Monero", + "bitcoin_dark_theme": "Темна тема Bitcoin", + "bitcoin_light_theme": "Світла тема Bitcoin", + "high_contrast_theme": "Тема високої контрастності", + "matrix_green_dark_theme": "Зелена темна тема Matrix", + "monero_light_theme": "Легка тема Monero" } diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index ba2003b91..28e5f4e74 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -722,5 +722,11 @@ "setup_2fa_text": "کیک 2FA کولڈ اسٹوریج کی طرح محفوظ نہیں ہے۔ 2FA بنیادی قسم کے حملوں سے حفاظت کرتا ہے، جیسے کہ آپ کا دوست آپ کے سوتے وقت آپ کے فنگر پرنٹ فراہم کرتا ہے۔\n\n کیک 2FA کسی جدید حملہ آور کے ذریعے سمجھوتہ کرنے والے آلہ سے حفاظت نہیں کرتا ہے۔\n\n اگر آپ اپنے 2FA کوڈز تک رسائی کھو دیتے ہیں ، آپ اس بٹوے تک رسائی سے محروم ہو جائیں گے۔ آپ کو یادداشت کے بیج سے اپنے بٹوے کو بحال کرنے کی ضرورت ہوگی۔ اس لیے آپ کو اپنے یادداشت کے بیجوں کا بیک اپ لینا چاہیے! اس کے علاوہ، آپ کے یادداشت کے بیج تک رسائی رکھنے والا کوئی شخص کیک 2FA کو نظرانداز کرتے ہوئے آپ کے فنڈز چرا سکے گا۔\n\n اگر آپ اپنے یادداشت کے بیج تک رسائی کھو دیتے ہیں تو کیک کا معاون عملہ آپ کی مدد نہیں کر سکے گا، کیونکہ کیک ایک ہے غیر نگہداشت پرس.", "setup_totp_recommended": "TOTP ترتیب دیں (تجویز کردہ)", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", - "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔" + "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", + "monero_dark_theme": "مونیرو ڈارک تھیم", + "bitcoin_dark_theme": "بٹ کوائن ڈارک تھیم", + "bitcoin_light_theme": "بٹ کوائن لائٹ تھیم", + "high_contrast_theme": "ہائی کنٹراسٹ تھیم", + "matrix_green_dark_theme": "میٹرکس گرین ڈارک تھیم", + "monero_light_theme": "مونیرو لائٹ تھیم" } diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index cb38a09df..b45ce395d 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -723,5 +723,11 @@ "setup_2fa_text": "Cake 2FA kii ṣe nipasẹ aisan tabi ni akoso aisan. 2FA ti ṣe pada ninu awọn iṣẹ pataki, bi atilẹyin ti o fun iṣẹ rẹ ti o ti jẹ saanu.\n\n Cake 2FA kii ṣe pada ninu atilẹyin ti o ti ba alabara kan ti o sise gidi gan.\n\n Ti o ba pọ akosile rẹ 2FA, O YOO RI ATOJU SI IWE IWE NA. O yoo nilo lati yan pẹlu iwe iwe ni o ba ṣe iṣẹ rẹ. O ni aṣẹ iru ki o gba asise akojọ iwe iwe rẹ! Nitori a ko ni aṣẹ pẹlu ohun ti o ba ṣe iṣẹ rẹ lati yan pẹlu akojọ iwe iwe rẹ, nitori Cake ni iwe iwe ti ko se iṣẹ itumọ.", "setup_totp_recommended": "Sọ TOTP (Kẹṣọdọ)", "disable_buy": "Ko iṣọrọ ọja", - "disable_sell": "Ko iṣọrọ iṣọrọ" + "disable_sell": "Ko iṣọrọ iṣọrọ", + "monero_dark_theme": "Monero Dudu Akori", + "bitcoin_dark_theme": "Bitcoin Dark Akori", + "bitcoin_light_theme": "Bitcoin Light Akori", + "high_contrast_theme": "Akori Iyatọ giga", + "matrix_green_dark_theme": "Matrix Green Dark Akori", + "monero_light_theme": "Monero Light Akori" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 8c1608f6c..c566b4a8e 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -726,5 +726,11 @@ "setup_2fa_text": "Cake 2FA 不如冷藏安全。 2FA 可防止基本类型的攻击,例如您的朋友在您睡觉时提供您的指纹。\n\n Cake 2FA 无法防止老练的攻击者破坏设备。\n\n 如果您无法访问您的 2FA 代码, 您将无法访问此钱包。您将需要从助记词种子恢复您的钱包。因此,您必须备份您的助记词种子!此外,有权访问您的助记种子的人将能够绕过 Cake 2FA 窃取您的资金。\n\n 如果您无法访问您的助记种子,Cake 支持人员将无法帮助您,因为 Cake 是一个非托管钱包。", "setup_totp_recommended": "设置 TOTP(推荐)", "disable_buy": "禁用购买操作", - "disable_sell": "禁用卖出操作" + "disable_sell": "禁用卖出操作", + "monero_dark_theme": "门罗币深色主题", + "bitcoin_dark_theme": "比特币黑暗主题", + "bitcoin_light_theme": "比特币浅色主题", + "high_contrast_theme": "高对比度主题", + "matrix_green_dark_theme": "矩阵绿暗主题", + "monero_light_theme": "门罗币浅色主题" }