From 78bb17053374904b56d2bf8513753f35f75be94c Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Mon, 26 May 2025 21:35:11 +0000 Subject: [PATCH] Fix some colors (#2293) * Fix some colors * fix(theme-updates): Modify condition for theme border style display when hasUnderlineBorder is true * fix(themes-updates): Adjust switch colors and modify payjoin hint text * fix: Crash report relating to success image display on successful exchange * fix(theme-updates): Adjust animated text max width to prevent overflows * fix(theme-updates): Adjust fee picker styling * fix(themes-updates): Remove text overflow on welcome screen animation --------- Co-authored-by: Blazebrain --- .../pages/balance/crypto_balance_widget.dart | 32 ++- .../mobile_exchange_cards_section.dart | 2 +- .../exchange_trade/exchange_trade_page.dart | 232 +++++++++--------- .../release_notes/release_notes_screen.dart | 6 +- .../widgets/settings_switcher_cell.dart | 10 +- .../widgets/unspent_coins_switch_row.dart | 48 ++-- .../welcome/create_pin_welcome_page.dart | 3 +- lib/src/widgets/animated_typing_text.dart | 84 +++---- lib/src/widgets/base_text_form_field.dart | 11 +- lib/src/widgets/blockchain_height_widget.dart | 2 +- lib/src/widgets/picker.dart | 11 +- lib/src/widgets/services_updates_widget.dart | 2 +- lib/src/widgets/standard_switch.dart | 19 +- lib/themes/theme_classes/dark_theme.dart | 4 +- lib/themes/utils/custom_theme_colors.dart | 6 +- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 +- res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_hy.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_vi.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + 43 files changed, 275 insertions(+), 227 deletions(-) diff --git a/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart b/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart index b56f06aec..ee377651b 100644 --- a/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart +++ b/lib/src/screens/dashboard/pages/balance/crypto_balance_widget.dart @@ -247,9 +247,11 @@ class CryptoBalanceWidget extends StatelessWidget { ), Padding( padding: const EdgeInsets.symmetric(horizontal: 4), - child: Icon(Icons.help_outline, - size: 16, - color: Theme.of(context).colorScheme.onSurfaceVariant), + child: Icon( + Icons.help_outline, + size: 16, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), ) ], ), @@ -257,7 +259,7 @@ class CryptoBalanceWidget extends StatelessWidget { Observer( builder: (_) => StandardSwitch( value: dashboardViewModel.silentPaymentsScanningActive, - onTaped: () => _toggleSilentPaymentsScanning(context), + onTapped: () => _toggleSilentPaymentsScanning(context), ), ) ], @@ -333,13 +335,25 @@ class CryptoBalanceWidget extends StatelessWidget { Uri.parse("https://docs.cakewallet.com/cryptos/bitcoin/#payjoin"), mode: LaunchMode.externalApplication, ), - child: Text( - S.of(context).learn_more, - style: Theme.of(context).textTheme.bodySmall?.copyWith( + child: Row( + children: [ + Text( + S.of(context).what_is_payjoin, + style: Theme.of(context).textTheme.bodySmall?.copyWith( + color: Theme.of(context).colorScheme.onSurfaceVariant, + height: 1, + ), + softWrap: true, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Icon( + Icons.help_outline, + size: 16, color: Theme.of(context).colorScheme.onSurfaceVariant, - height: 1, ), - softWrap: true, + ) + ], ), ), image: 'assets/images/payjoin.png', diff --git a/lib/src/screens/exchange/widgets/mobile_exchange_cards_section.dart b/lib/src/screens/exchange/widgets/mobile_exchange_cards_section.dart index e5492a967..e4ad5ef84 100644 --- a/lib/src/screens/exchange/widgets/mobile_exchange_cards_section.dart +++ b/lib/src/screens/exchange/widgets/mobile_exchange_cards_section.dart @@ -37,7 +37,7 @@ class MobileExchangeCardsSection extends StatelessWidget { bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24), ), - color: Theme.of(context).colorScheme.surfaceContainerLow, + color: Theme.of(context).colorScheme.surfaceContainerHighest, ), padding: EdgeInsets.fromLTRB(24, 105, 24, 24), child: Column( diff --git a/lib/src/screens/exchange_trade/exchange_trade_page.dart b/lib/src/screens/exchange_trade/exchange_trade_page.dart index bd887fe94..70e959b00 100644 --- a/lib/src/screens/exchange_trade/exchange_trade_page.dart +++ b/lib/src/screens/exchange_trade/exchange_trade_page.dart @@ -210,127 +210,133 @@ class ExchangeTradeState extends State { return; } - _exchangeStateReaction = reaction((_) => this.widget.exchangeTradeViewModel.sendViewModel.state, - (ExecutionState state) async { - if (dialogContext != null && dialogContext?.mounted == true) { - Navigator.of(dialogContext!).pop(); - } - - if (state is! IsExecutingState && - loadingBottomSheetContext != null && - loadingBottomSheetContext!.mounted) { - Navigator.of(loadingBottomSheetContext!).pop(); - } - - if (state is FailureState) { - WidgetsBinding.instance.addPostFrameCallback((_) { - showPopUp( - context: context, - builder: (BuildContext popupContext) { - return AlertWithOneAction( - key: ValueKey('exchange_trade_page_send_failure_dialog_key'), - buttonKey: ValueKey('exchange_trade_page_send_failure_dialog_button_key'), - alertTitle: S.of(popupContext).error, - alertContent: state.error, - buttonText: S.of(popupContext).ok, - buttonAction: () => Navigator.of(popupContext).pop()); - }); - }); - } - - if (state is IsExecutingState) { - // wait a bit to avoid showing the loading dialog if transaction is failed - await Future.delayed(const Duration(milliseconds: 300)); - final currentState = widget.exchangeTradeViewModel.sendViewModel.state; - if (currentState is ExecutedSuccessfullyState || currentState is FailureState) { - return; + _exchangeStateReaction = reaction( + (_) => this.widget.exchangeTradeViewModel.sendViewModel.state, + (ExecutionState state) async { + if (dialogContext != null && dialogContext?.mounted == true) { + Navigator.of(dialogContext!).pop(); } - WidgetsBinding.instance.addPostFrameCallback((_) { - if (context.mounted) { - showModalBottomSheet( - context: context, - isDismissible: false, - builder: (BuildContext context) { - loadingBottomSheetContext = context; - return LoadingBottomSheet( - titleText: S.of(context).generating_transaction, - ); - }, - ); + if (state is! IsExecutingState && + loadingBottomSheetContext != null && + loadingBottomSheetContext!.mounted) { + Navigator.of(loadingBottomSheetContext!).pop(); + } + + if (state is FailureState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + showPopUp( + context: context, + builder: (BuildContext popupContext) { + return AlertWithOneAction( + key: ValueKey('exchange_trade_page_send_failure_dialog_key'), + buttonKey: ValueKey('exchange_trade_page_send_failure_dialog_button_key'), + alertTitle: S.of(popupContext).error, + alertContent: state.error, + buttonText: S.of(popupContext).ok, + buttonAction: () => Navigator.of(popupContext).pop()); + }); + }); + } + + if (state is IsExecutingState) { + // wait a bit to avoid showing the loading dialog if transaction is failed + await Future.delayed(const Duration(milliseconds: 300)); + final currentState = widget.exchangeTradeViewModel.sendViewModel.state; + if (currentState is ExecutedSuccessfullyState || currentState is FailureState) { + return; } - }); - } - if (state is ExecutedSuccessfullyState) { - WidgetsBinding.instance.addPostFrameCallback((_) { - if (context.mounted) { - showModalBottomSheet( - context: context, - isDismissible: false, - isScrollControlled: true, - builder: (BuildContext bottomSheetContext) { - return ConfirmSendingBottomSheet( - key: ValueKey('exchange_trade_page_confirm_sending_bottom_sheet_key'), - currentTheme: widget.currentTheme, - walletType: widget.exchangeTradeViewModel.sendViewModel.walletType, - titleText: S.of(bottomSheetContext).confirm_transaction, - titleIconPath: - widget.exchangeTradeViewModel.sendViewModel.selectedCryptoCurrency.iconPath, - currency: widget.exchangeTradeViewModel.sendViewModel.selectedCryptoCurrency, - amount: S.of(bottomSheetContext).send_amount, - amountValue: widget - .exchangeTradeViewModel.sendViewModel.pendingTransaction!.amountFormatted, - fiatAmountValue: widget - .exchangeTradeViewModel.sendViewModel.pendingTransactionFiatAmountFormatted, - fee: isEVMCompatibleChain(widget.exchangeTradeViewModel.sendViewModel.walletType) - ? S.of(bottomSheetContext).send_estimated_fee - : S.of(bottomSheetContext).send_fee, - feeValue: - widget.exchangeTradeViewModel.sendViewModel.pendingTransaction!.feeFormatted, - feeFiatAmount: widget.exchangeTradeViewModel.sendViewModel - .pendingTransactionFeeFiatAmountFormatted, - outputs: widget.exchangeTradeViewModel.sendViewModel.outputs, - onSlideComplete: () async { - Navigator.of(bottomSheetContext).pop(); - widget.exchangeTradeViewModel.sendViewModel.commitTransaction(context); - }, - ); - }, - ); - } - }); - } + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + showModalBottomSheet( + context: context, + isDismissible: false, + builder: (BuildContext context) { + loadingBottomSheetContext = context; + return LoadingBottomSheet( + titleText: S.of(context).generating_transaction, + ); + }, + ); + } + }); + } - if (state is TransactionCommitted) { - WidgetsBinding.instance.addPostFrameCallback((_) async { - if (!mounted) return; + if (state is ExecutedSuccessfullyState) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + showModalBottomSheet( + context: context, + isDismissible: false, + isScrollControlled: true, + builder: (BuildContext bottomSheetContext) { + return ConfirmSendingBottomSheet( + key: ValueKey('exchange_trade_page_confirm_sending_bottom_sheet_key'), + currentTheme: widget.currentTheme, + walletType: widget.exchangeTradeViewModel.sendViewModel.walletType, + titleText: S.of(bottomSheetContext).confirm_transaction, + titleIconPath: + widget.exchangeTradeViewModel.sendViewModel.selectedCryptoCurrency.iconPath, + currency: widget.exchangeTradeViewModel.sendViewModel.selectedCryptoCurrency, + amount: S.of(bottomSheetContext).send_amount, + amountValue: widget + .exchangeTradeViewModel.sendViewModel.pendingTransaction!.amountFormatted, + fiatAmountValue: widget + .exchangeTradeViewModel.sendViewModel.pendingTransactionFiatAmountFormatted, + fee: + isEVMCompatibleChain(widget.exchangeTradeViewModel.sendViewModel.walletType) + ? S.of(bottomSheetContext).send_estimated_fee + : S.of(bottomSheetContext).send_fee, + feeValue: widget + .exchangeTradeViewModel.sendViewModel.pendingTransaction!.feeFormatted, + feeFiatAmount: widget.exchangeTradeViewModel.sendViewModel + .pendingTransactionFeeFiatAmountFormatted, + outputs: widget.exchangeTradeViewModel.sendViewModel.outputs, + onSlideComplete: () async { + Navigator.of(bottomSheetContext).pop(); + widget.exchangeTradeViewModel.sendViewModel.commitTransaction(context); + }, + ); + }, + ); + } + }); + } - await showModalBottomSheet( - context: context, - isScrollControlled: true, - builder: (BuildContext bottomSheetContext) { - return InfoBottomSheet( - currentTheme: widget.currentTheme, - titleText: S.of(bottomSheetContext).transaction_sent, - contentImage: 'assets/images/birthday_cake.svg', - actionButtonText: S.of(bottomSheetContext).close, - actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'), - actionButton: () { - Navigator.of(bottomSheetContext).pop(); - if (mounted) { - Navigator.of(context).pushNamedAndRemoveUntil( - Routes.dashboard, - (route) => false, - ); - } - RequestReviewHandler.requestReview(); - }); + if (state is TransactionCommitted) { + WidgetsBinding.instance.addPostFrameCallback( + (_) async { + if (!mounted) return; + + await showModalBottomSheet( + context: context, + isScrollControlled: true, + builder: (BuildContext bottomSheetContext) { + return InfoBottomSheet( + currentTheme: widget.currentTheme, + titleText: S.of(bottomSheetContext).transaction_sent, + contentImage: 'assets/images/birthday_cake.png', + actionButtonText: S.of(bottomSheetContext).close, + actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'), + actionButton: () { + Navigator.of(bottomSheetContext).pop(); + if (mounted) { + Navigator.of(context).pushNamedAndRemoveUntil( + Routes.dashboard, + (route) => false, + ); + } + RequestReviewHandler.requestReview(); + }, + ); + }, + ); }, ); - }); - } - }); + } + }, + ); _effectsInstalled = true; } diff --git a/lib/src/screens/release_notes/release_notes_screen.dart b/lib/src/screens/release_notes/release_notes_screen.dart index 6452f0a08..8fd37d9c0 100644 --- a/lib/src/screens/release_notes/release_notes_screen.dart +++ b/lib/src/screens/release_notes/release_notes_screen.dart @@ -33,9 +33,9 @@ class ReleaseNotesScreen extends StatelessWidget { decoration: BoxDecoration( borderRadius: BorderRadius.circular(30.0), gradient: LinearGradient(colors: [ - Theme.of(context).colorScheme.primaryContainer, - Theme.of(context).colorScheme.secondaryContainer, - ], begin: Alignment.centerLeft, end: Alignment.centerRight)), + Theme.of(context).colorScheme.surface, + Theme.of(context).colorScheme.surfaceContainer, + ], begin: Alignment.topLeft, end: Alignment.bottomRight)), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24.0), child: Stack( diff --git a/lib/src/screens/settings/widgets/settings_switcher_cell.dart b/lib/src/screens/settings/widgets/settings_switcher_cell.dart index bf77d65f8..2d97b3ca2 100644 --- a/lib/src/screens/settings/widgets/settings_switcher_cell.dart +++ b/lib/src/screens/settings/widgets/settings_switcher_cell.dart @@ -18,8 +18,10 @@ class SettingsSwitcherCell extends StandardListRow { final Widget? leading; @override - Widget buildTrailing(BuildContext context) => - StandardSwitch(value: value, onTaped: () => onValueChange?.call(context, !value)); + Widget buildTrailing(BuildContext context) => StandardSwitch( + value: value, + onTapped: () => onValueChange?.call(context, !value), + ); @override Widget build(BuildContext context) { @@ -40,8 +42,7 @@ class SettingsSwitcherCell extends StandardListRow { //backgroundColor: MaterialStateProperty.all(Theme.of(context).colorScheme.surfaceContainer), shape: WidgetStateProperty.all( RoundedRectangleBorder( - borderRadius: BorderRadius.all(Radius.circular(10) - ), + borderRadius: BorderRadius.all(Radius.circular(10)), ), ), ), @@ -57,7 +58,6 @@ class SettingsSwitcherCell extends StandardListRow { ); } - @override Widget? buildLeading(BuildContext context) => leading; } diff --git a/lib/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart b/lib/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart index 4b8c20ee4..65ab3999d 100644 --- a/lib/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart +++ b/lib/src/screens/unspent_coins/widgets/unspent_coins_switch_row.dart @@ -3,10 +3,10 @@ import 'package:flutter/material.dart'; class UnspentCoinsSwitchRow extends StatelessWidget { UnspentCoinsSwitchRow( - {required this.title, - required this.switchValue, - required this.onSwitchValueChange, - this.titleFontSize = 14}); + {required this.title, + required this.switchValue, + required this.onSwitchValueChange, + this.titleFontSize = 14}); final String title; final double titleFontSize; @@ -19,25 +19,29 @@ class UnspentCoinsSwitchRow extends StatelessWidget { width: double.infinity, color: Theme.of(context).colorScheme.surface, child: Padding( - padding: - const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24), + padding: const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(title, - style: Theme.of(context).textTheme.bodyMedium!.copyWith( - fontSize: titleFontSize, - fontWeight: FontWeight.w500, - color: Theme.of(context).colorScheme.onSurfaceVariant), - textAlign: TextAlign.left), - Padding( - padding: EdgeInsets.only(top: 12), - child: StandardSwitch( - value: switchValue, - onTaped: () => onSwitchValueChange(!switchValue)) - ) - ]), + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: Theme.of(context).textTheme.bodyMedium!.copyWith( + fontSize: titleFontSize, + fontWeight: FontWeight.w500, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + textAlign: TextAlign.left, + ), + Padding( + padding: EdgeInsets.only(top: 12), + child: StandardSwitch( + value: switchValue, + onTapped: () => onSwitchValueChange(!switchValue), + ), + ) + ], + ), ), ); } -} \ No newline at end of file +} diff --git a/lib/src/screens/welcome/create_pin_welcome_page.dart b/lib/src/screens/welcome/create_pin_welcome_page.dart index c1a6e24ed..a2b738251 100644 --- a/lib/src/screens/welcome/create_pin_welcome_page.dart +++ b/lib/src/screens/welcome/create_pin_welcome_page.dart @@ -164,6 +164,7 @@ class CreatePinWelcomePage extends BasePage { if (!isMoneroOnly) Row( mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, children: [ AnimatedTypingText( words: [S.current.payments, S.current.privacy, S.current.security], @@ -175,7 +176,7 @@ class CreatePinWelcomePage extends BasePage { cursorHeight: 24, cursorWidth: 4, ), - SizedBox(width: 8), + SizedBox(width: 4), Text( S.current.made_easy, style: Theme.of(context).textTheme.titleLarge?.copyWith( diff --git a/lib/src/widgets/animated_typing_text.dart b/lib/src/widgets/animated_typing_text.dart index 71a18f145..cc8f0f0e9 100644 --- a/lib/src/widgets/animated_typing_text.dart +++ b/lib/src/widgets/animated_typing_text.dart @@ -33,10 +33,9 @@ class _AnimatedTypingTextState extends State with TickerProv String _displayText = ''; - double _maxTextWidth = 0; int _currentWordIndex = 0; int _currentCharIndex = 0; - + bool _isTyping = true; bool _isPaused = false; bool _isWaitingForPause = false; @@ -61,10 +60,6 @@ class _AnimatedTypingTextState extends State with TickerProv ), ); - WidgetsBinding.instance.addPostFrameCallback((_) { - _calculateMaxTextWidth(); - }); - _controller.addStatusListener((status) { if (status == AnimationStatus.completed) { _updateText(); @@ -78,24 +73,6 @@ class _AnimatedTypingTextState extends State with TickerProv _controller.forward(); } - void _calculateMaxTextWidth() { - final textStyle = widget.style ?? DefaultTextStyle.of(context).style; - double maxWidth = 0; - final textPainter = TextPainter( - textDirection: TextDirection.ltr, - ); - for (final word in widget.words) { - textPainter.text = TextSpan(text: word, style: textStyle); - textPainter.layout(); - if (textPainter.width > maxWidth) { - maxWidth = textPainter.width; - } - } - setState(() { - _maxTextWidth = maxWidth; - }); - } - void _updateText() { if (_isWaitingForPause) return; @@ -157,38 +134,35 @@ class _AnimatedTypingTextState extends State with TickerProv @override Widget build(BuildContext context) { - return SizedBox( - width: _maxTextWidth + widget.cursorWidth, - child: Stack( - clipBehavior: Clip.none, - children: [ - // Fixed cursor position - Positioned( - right: 0, - child: AnimatedBuilder( - animation: _cursorAnimation, - builder: (context, child) { - return Opacity( - opacity: _cursorAnimation.value, - child: Container( - width: widget.cursorWidth, - height: widget.cursorHeight, - color: widget.cursorColor, - ), - ); - }, - ), + return Stack( + clipBehavior: Clip.none, + children: [ + // Fixed cursor position + Positioned( + right: 0, + child: AnimatedBuilder( + animation: _cursorAnimation, + builder: (context, child) { + return Opacity( + opacity: _cursorAnimation.value, + child: Container( + width: widget.cursorWidth, + height: widget.cursorHeight, + color: widget.cursorColor, + ), + ); + }, ), - // Animated text - Align( - alignment: Alignment.centerRight, - child: Text( - _displayText + ' ', - style: widget.style, - ), + ), + // Animated text + Align( + alignment: Alignment.centerRight, + child: Text( + _displayText + ' ', + style: widget.style, ), - ], - ), + ), + ], ); } -} \ No newline at end of file +} diff --git a/lib/src/widgets/base_text_form_field.dart b/lib/src/widgets/base_text_form_field.dart index ed2d55fbd..bc2f69287 100644 --- a/lib/src/widgets/base_text_form_field.dart +++ b/lib/src/widgets/base_text_form_field.dart @@ -135,6 +135,15 @@ class BaseTextFormField extends StatelessWidget { hintText: hasUnderlineBorder ? hintText : null, labelText: !hasUnderlineBorder ? hintText : null, labelStyle: !hasUnderlineBorder ? placeholderTextStyle : null, + border: hasUnderlineBorder + ? UnderlineInputBorder( + borderSide: BorderSide( + color: Theme.of(context).colorScheme.outlineVariant, + style: borderWidth == 0.0 ? BorderStyle.none : BorderStyle.solid, + width: borderWidth, + ), + ) + : null, focusedBorder: hasUnderlineBorder ? UnderlineInputBorder( borderSide: BorderSide( @@ -156,7 +165,7 @@ class BaseTextFormField extends StatelessWidget { ? UnderlineInputBorder( borderSide: BorderSide( color: Theme.of(context).colorScheme.outlineVariant, - style: borderWidth == 1 ? BorderStyle.none : BorderStyle.solid, + style: borderWidth == 0.0 ? BorderStyle.none : BorderStyle.solid, width: borderWidth, ), ) diff --git a/lib/src/widgets/blockchain_height_widget.dart b/lib/src/widgets/blockchain_height_widget.dart index 670f1b20b..cb7f71b24 100644 --- a/lib/src/widgets/blockchain_height_widget.dart +++ b/lib/src/widgets/blockchain_height_widget.dart @@ -144,7 +144,7 @@ class BlockchainHeightState extends State { padding: const EdgeInsets.only(right: 8), child: StandardSwitch( value: widget.doSingleScan, - onTaped: () => widget.toggleSingleScan?.call(), + onTapped: () => widget.toggleSingleScan?.call(), ), ) ], diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart index 65980bd95..b1fa6f5e5 100644 --- a/lib/src/widgets/picker.dart +++ b/lib/src/widgets/picker.dart @@ -4,6 +4,7 @@ import 'dart:math'; import 'package:cake_wallet/entities/seed_type.dart'; import 'package:cake_wallet/src/widgets/search_bar_widget.dart'; +import 'package:cake_wallet/themes/utils/custom_theme_colors.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:flutter/material.dart'; @@ -157,7 +158,6 @@ class _PickerState extends State> { textAlign: TextAlign.center, style: Theme.of(context).textTheme.bodyMedium!.copyWith( fontSize: 18, - fontWeight: FontWeight.bold, decoration: TextDecoration.none, color: Theme.of(context).colorScheme.onSurface, @@ -358,7 +358,6 @@ class _PickerState extends State> { tag, style: Theme.of(context).textTheme.bodyMedium!.copyWith( fontSize: 7.0, - color: Theme.of(context).colorScheme.primary, ), ), @@ -430,7 +429,6 @@ class _PickerState extends State> { softWrap: true, style: Theme.of(context).textTheme.bodyMedium!.copyWith( fontSize: 16, - fontWeight: FontWeight.w700, color: Theme.of(context).colorScheme.onSurface, decoration: TextDecoration.none, @@ -448,7 +446,6 @@ class _PickerState extends State> { tag, style: Theme.of(context).textTheme.bodyMedium!.copyWith( fontSize: 7.0, - color: Theme.of(context).colorScheme.primary, ), ), @@ -522,10 +519,16 @@ class _PickerState extends State> { } Widget buildSlider({required int index, required bool isActivated}) { + final isDarkMode = Theme.of(context).brightness == Brightness.dark; return Row( children: [ Expanded( child: Slider( + activeColor: Theme.of(context).colorScheme.primary, + inactiveColor: isDarkMode + ? CustomThemeColors.toggleColorOffStateDark + : CustomThemeColors.toggleColorOffStateLight, + thumbColor: CustomThemeColors.toggleKnobStateColorLight, value: widget.sliderValue == null || widget.sliderValue! < 1 ? 1 : widget.sliderValue!, onChanged: isActivated ? widget.onSliderChanged : null, min: widget.minValue ?? 1, diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index acf3491d9..d669dba37 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -43,7 +43,7 @@ class _ServicesUpdatesWidgetState extends State { child: SvgPicture.asset( "assets/images/notification_icon.svg", color: Theme.of(context).colorScheme.onSurface, - width: 30, + width: 20, placeholderBuilder: (_) => Icon(Icons.error), ), ); diff --git a/lib/src/widgets/standard_switch.dart b/lib/src/widgets/standard_switch.dart index 0008c48b6..8100263b7 100644 --- a/lib/src/widgets/standard_switch.dart +++ b/lib/src/widgets/standard_switch.dart @@ -1,11 +1,11 @@ -import 'package:flutter/cupertino.dart'; +import 'package:cake_wallet/themes/utils/custom_theme_colors.dart'; import 'package:flutter/material.dart'; class StandardSwitch extends StatefulWidget { - const StandardSwitch({required this.value, required this.onTaped}); + const StandardSwitch({required this.value, required this.onTapped}); final bool value; - final VoidCallback onTaped; + final VoidCallback onTapped; @override StandardSwitchState createState() => StandardSwitchState(); @@ -14,10 +14,11 @@ class StandardSwitch extends StatefulWidget { class StandardSwitchState extends State { @override Widget build(BuildContext context) { + final isDarkMode = Theme.of(context).brightness == Brightness.dark; return Semantics( toggled: widget.value, child: GestureDetector( - onTap: widget.onTaped, + onTap: widget.onTapped, child: AnimatedContainer( padding: EdgeInsets.only(left: 2.0, right: 2.0), alignment: widget.value ? Alignment.centerRight : Alignment.centerLeft, @@ -26,8 +27,10 @@ class StandardSwitchState extends State { height: 28, decoration: BoxDecoration( color: widget.value - ? Theme.of(context).colorScheme.surfaceContainerHighest - : Theme.of(context).colorScheme.surfaceContainerLowest, + ? Theme.of(context).colorScheme.primary + : isDarkMode + ? CustomThemeColors.toggleColorOffStateDark + : CustomThemeColors.toggleColorOffStateLight, borderRadius: BorderRadius.all( Radius.circular(14.0), ), @@ -36,7 +39,9 @@ class StandardSwitchState extends State { width: 24.0, height: 24.0, decoration: BoxDecoration( - color: Theme.of(context).colorScheme.primary, + color: isDarkMode + ? Theme.of(context).colorScheme.surface + : CustomThemeColors.toggleKnobStateColorLight, shape: BoxShape.circle, ), ), diff --git a/lib/themes/theme_classes/dark_theme.dart b/lib/themes/theme_classes/dark_theme.dart index 465c49d3e..911800a5c 100644 --- a/lib/themes/theme_classes/dark_theme.dart +++ b/lib/themes/theme_classes/dark_theme.dart @@ -38,8 +38,8 @@ class DarkTheme extends MaterialThemeBase { tertiaryContainer: const Color(0xFF1F2832), onTertiaryContainer: const Color(0xFFA8B3C6), error: errorColor, - onError: const Color(0xFF690005), - errorContainer: const Color(0xFFB71919), + onError: const Color(0xFFB71919), + errorContainer: const Color(0xFFC53636), onErrorContainer: const Color(0xFFFFDAD6), surface: surfaceColor, onSurface: const Color(0xFFD7E2F7), diff --git a/lib/themes/utils/custom_theme_colors.dart b/lib/themes/utils/custom_theme_colors.dart index c70651084..54f823fc7 100644 --- a/lib/themes/utils/custom_theme_colors.dart +++ b/lib/themes/utils/custom_theme_colors.dart @@ -11,9 +11,13 @@ class CustomThemeColors { static const backgroundGradientColorDark = Color(0xFF0F1A36); static const backgroundGradientColorLight = Color(0xFFE7E7FD); - + static const cardGradientColorPrimaryDark = Color(0xFF2B3A67); static const cardGradientColorPrimaryLight = Color(0xFFFFFFFF); static const cardGradientColorSecondaryDark = Color(0xFF1C2A4F); static const cardGradientColorSecondaryLight = Color(0xFFF3F3FF); + + static const toggleKnobStateColorLight = Color(0xFFFFFFFF); + static const toggleColorOffStateLight = Color(0xFFCACAE7); + static const toggleColorOffStateDark = Color(0xFF3A4F88); } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index d209a9a85..5b2e8e0eb 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "إذا كنت ترغب في البدء من جديد ، فانقر فوق إنشاء محفظة جديدة أدناه وستكون خارج السباقات.", "welcome_subtitle_restore_wallet": "إذا كان لديك محفظة موجودة تريد إحضارها إلى كعكة ، فما عليك سوى اختيار استعادة المحفظة الموجودة وسنمشيك خلال العملية.", "welcome_to_cakepay": "مرحبا بكم في Cake Pay!", + "what_is_payjoin": "ما هو Payjoin?", "what_is_silent_payments": "ما هي المدفوعات الصامتة؟", "widgets_address": "عنوان", "widgets_or": "أو", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 86540e32f..357c6d7bd 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Ако искате да стартирате свеж, докоснете Създайте нов портфейл по -долу и ще се откажете от състезанията.", "welcome_subtitle_restore_wallet": "Ако имате съществуващ портфейл, който искате да внесете в тортата, просто изберете възстановяване на съществуващия портфейл и ще ви преведем през процеса.", "welcome_to_cakepay": "Добре дошли в Cake Pay!", + "what_is_payjoin": "Какво е Payjoin ?", "what_is_silent_payments": "Какво са мълчаливи плащания?", "widgets_address": "Адрес", "widgets_or": "или", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 6d604ba05..bc5f652a7 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Pokud chcete začít čerstvě, klepněte na Vytvořit novou peněženku níže a budete na závodech.", "welcome_subtitle_restore_wallet": "Pokud máte existující peněženku, kterou chcete přinést do dortu, jednoduše si vyberte obnovení stávající peněženky a my vás projdeme procesem.", "welcome_to_cakepay": "Vítejte v Cake Pay!", + "what_is_payjoin": "Co je Payjoin ?", "what_is_silent_payments": "Co jsou tiché platby?", "widgets_address": "Adresa", "widgets_or": "nebo", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 739b0f4b0..68bd6b6d0 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -580,8 +580,8 @@ "please_choose_one": "Bitte wählen Sie einen", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", @@ -1062,6 +1062,7 @@ "welcome_subtitle_new_wallet": "Wenn Sie frisch anfangen möchten, tippen Sie unten neue Wallet und schon sind Sie bereit.", "welcome_subtitle_restore_wallet": "Wenn Sie über eine vorhandene Wallet verfügen, die Sie in Cake Wallet öffnen möchten, drücken Sie auf Vorhandene Wallet wiederherstellen und wir werden Sie durch den Prozess führen.", "welcome_to_cakepay": "Willkommen bei Cake Pay!", + "what_is_payjoin": "Was ist Payjoin ?", "what_is_silent_payments": "Was sind Silent Payments?", "widgets_address": "Adresse", "widgets_or": "oder", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 224685891..471a38df1 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "If you want to start fresh, tap Create New Wallet below and you'll be off to the races.", "welcome_subtitle_restore_wallet": "If you have an existing wallet you want to bring into Cake, simply choose Restore Existing Wallet and we'll walk you through the process.", "welcome_to_cakepay": "Welcome to Cake Pay!", + "what_is_payjoin": "What is Payjoin?", "what_is_silent_payments": "What are Silent Payments?", "widgets_address": "Address", "widgets_or": "or", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 9e0f742d9..614b5b97b 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -1061,6 +1061,7 @@ "welcome_subtitle_new_wallet": "Si desea comenzar de nuevo, toque Crear nueva billetera a continuación y se irá a las carreras.", "welcome_subtitle_restore_wallet": "Si tiene una billetera existente que desea llevar al pastel, simplemente elija Restaurar la billetera existente y lo guiaremos a través del proceso.", "welcome_to_cakepay": "¡Bienvenido a Cake Pay!", + "what_is_payjoin": "¿Qué es Payjoin ?", "what_is_silent_payments": "¿Qué son los pagos silenciosos?", "widgets_address": "Dirección", "widgets_or": "o", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index a00e8e4cf..7ba911843 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Si vous souhaitez repartir de zéro, appuyez sur Créer un nouveau portefeuille ci-dessous et vous serez prêt à commencer.", "welcome_subtitle_restore_wallet": "Si vous avez un portefeuille existant que vous souhaitez importer dans Cake, choisissez simplement Restaurer un portefeuille existant et nous vous guiderons à travers le processus.", "welcome_to_cakepay": "Bienvenue sur Cake Pay !", + "what_is_payjoin": "Qu'est-ce que Payjoin ?", "what_is_silent_payments": "Qu'est-ce que les paiements silencieux?", "widgets_address": "Adresse", "widgets_or": "ou", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index e4ca7f677..67a3231f3 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -1062,6 +1062,7 @@ "welcome_subtitle_new_wallet": "Idan kana son farawa sabo ne, matsa Newirƙiri Sabuwar Wallow a ƙasa kuma za ka tafi da tsere.", "welcome_subtitle_restore_wallet": "Idan kuna da walat ɗin da kuke son shigo da cake, kawai zaɓi a cikin walat ɗin da yake ciki kuma za mu bi ku ta hanyar aiwatarwa.", "welcome_to_cakepay": "Barka da zuwa Cake Pay!", + "what_is_payjoin": "Mene ne Payjoin ?", "what_is_silent_payments": "Menene biyan shiru?", "widgets_address": "Adireshin", "widgets_or": "ko", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 03ec07efb..d9d83832d 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -1061,6 +1061,7 @@ "welcome_subtitle_new_wallet": "यदि आप ताजा शुरू करना चाहते हैं, तो नीचे नया बटुआ बनाएं और आप दौड़ से दूर हो जाएंगे।", "welcome_subtitle_restore_wallet": "यदि आपके पास एक मौजूदा बटुआ है जिसे आप केक में लाना चाहते हैं, तो बस मौजूदा बटुए को पुनर्स्थापित करें और हम आपको प्रक्रिया के माध्यम से चलेंगे।", "welcome_to_cakepay": "केकपे में आपका स्वागत है!", + "what_is_payjoin": "Payjoin ##### क्या है", "what_is_silent_payments": "मूक भुगतान क्या है?", "widgets_address": "पता", "widgets_or": "या", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 5261db27f..36ff693b7 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Ako želite započeti svježe, dodirnite Create New Wallet u nastavku i krenite na utrke.", "welcome_subtitle_restore_wallet": "Ako imate postojeći novčanik koji želite unijeti u tortu, jednostavno odaberite Vratite postojeći novčanik i prošetat ćemo vas kroz postupak.", "welcome_to_cakepay": "Dobro došli u Cake Pay!", + "what_is_payjoin": "Što je Payjoin ?", "what_is_silent_payments": "Što je tiha plaćanja?", "widgets_address": "Adresa", "widgets_or": "ili", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index 9f37671d9..593033e63 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -1057,6 +1057,7 @@ "welcome_subtitle_new_wallet": "Եթե ​​ցանկանում եք սկսել թարմ, հպեք Ստեղծեք նոր դրամապանակ ներքեւում եւ դուրս կգաք ցեղերի:", "welcome_subtitle_restore_wallet": "Եթե ​​ունեք գոյություն ունեցող դրամապանակ, որը ցանկանում եք տորթի մեջ մտցնել, պարզապես ընտրեք վերականգնել առկա դրամապանակը, եւ մենք ձեզ քայլելու ենք գործընթացի միջոցով:", "welcome_to_cakepay": "Բարի գալուստ Cake Pay!", + "what_is_payjoin": "Ինչ է վճարումը ?", "what_is_silent_payments": "Ի՞նչ է Լուռ Վճարումները:", "widgets_address": "Հասցե", "widgets_or": "կամ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 6b1cc7286..30040304d 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -1062,6 +1062,7 @@ "welcome_subtitle_new_wallet": "Jika Anda ingin memulai segar, ketuk membuat dompet baru di bawah ini dan Anda akan pergi ke balapan.", "welcome_subtitle_restore_wallet": "Jika Anda memiliki dompet yang ada yang ingin Anda bawa ke dalam kue, cukup pilih kembalikan dompet yang ada dan kami akan memandu Anda melalui prosesnya.", "welcome_to_cakepay": "Selamat Datang di Cake Pay!", + "what_is_payjoin": "Apa itu Payjoin ?", "what_is_silent_payments": "Apa itu pembayaran diam?", "widgets_address": "Alamat", "widgets_or": "atau", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 060953123..ac109f73e 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -1062,6 +1062,7 @@ "welcome_subtitle_new_wallet": "Se vuoi ricominciare da capo, premi Crea un nuovo portafoglio qui sotto.", "welcome_subtitle_restore_wallet": "Se hai un portafoglio esistente che vuoi importare in Cake Wallet, scegli semplicemente il ripristino del portafoglio esistente e ti guideremo attraverso il processo.", "welcome_to_cakepay": "Benvenuto in Cake Pay!", + "what_is_payjoin": "Cos'è PayJoin ?", "what_is_silent_payments": "Che cos'è Silent Payments?", "widgets_address": "Indirizzo", "widgets_or": "o", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 85a4d9b3b..20ee84388 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "新鮮な開始したい場合は、以下の新しい財布を作成すると、レースに出かけることができます。", "welcome_subtitle_restore_wallet": "ケーキに持ち込みたい既存のウォレットがある場合は、既存のウォレットを復元するだけで、プロセスを説明します。", "welcome_to_cakepay": "Cake Payへようこそ!", + "what_is_payjoin": "Payjoin ?とは何ですか", "what_is_silent_payments": "サイレント支払いとは何ですか?", "widgets_address": "住所", "widgets_or": "または", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 4a6d809db..2d1fb9389 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "새로 시작하려면 아래의 새 지갑 생성을 탭하면 바로 시작할 수 있습니다.", "welcome_subtitle_restore_wallet": "Cake로 가져오려는 기존 지갑이 있는 경우 기존 지갑 복구를 선택하면 과정을 안내해 드립니다.", "welcome_to_cakepay": "Cake Pay에 오신 것을 환영합니다!", + "what_is_payjoin": "Payjoin ?이란?", "what_is_silent_payments": "사일런트 페이먼트란 무엇인가요?", "widgets_address": "주소", "widgets_or": "또는", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 710b4926e..713983e3e 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "လတ်ဆတ်စွာစတင်လိုပါကအောက်ကပိုက်ဆံအိတ်အသစ်ကိုဖန်တီးပါ။", "welcome_subtitle_restore_wallet": "အကယ်. သင့်တွင်သင်ကိတ်မုန့်ထဲသို့ယူဆောင်လိုသောလက်ရှိပိုက်ဆံအိတ်ရှိပါက Restore Lestore Wallet ကိုရွေးပါ။", "welcome_to_cakepay": "Cake Pay မှကြိုဆိုပါသည်။", + "what_is_payjoin": "Payjoin ဆိုတာဘာလဲ ?#", "what_is_silent_payments": "အသံတိတ်ငွေပေးချေမှုဆိုတာဘာလဲ", "widgets_address": "လိပ်စာ", "widgets_or": "သို့မဟုတ်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index e7a0d27ac..b9e3ffb4d 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "Als u opnieuw wilt beginnen, tikt u op de nieuwe portemonnee hieronder en u bent op weg naar de races.", "welcome_subtitle_restore_wallet": "Als je een bestaande portemonnee hebt die je in cake wilt brengen, kies dan gewoon om de bestaande portemonnee te herstellen en we zullen je door het proces leiden.", "welcome_to_cakepay": "Welkom bij Cake Pay!", + "what_is_payjoin": "Wat is Payjoin ?", "what_is_silent_payments": "Wat zijn stille betalingen?", "widgets_address": "Adres", "widgets_or": "of", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index c7994ddd1..301f249df 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Jeśli chcesz zacząć od nowa, dotknij Utwórz nowy portfel poniżej.", "welcome_subtitle_restore_wallet": "Jeśli masz istniejący portfel, który chcesz wnieść do ciasta, po prostu wybierz przywróć istniejący portfel, a my przeprowadzimy Cię przez proces.", "welcome_to_cakepay": "Witamy w Cake Pay!", + "what_is_payjoin": "Co to jest PayJoin ?", "what_is_silent_payments": "Co to Silent Payments?", "widgets_address": "Adres", "widgets_or": "lub", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 7dcd8dec1..77ccb4def 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -1062,6 +1062,7 @@ "welcome_subtitle_new_wallet": "Se você quiser começar de novo, toque em criar uma nova carteira abaixo e você estará nas corridas.", "welcome_subtitle_restore_wallet": "Se você tem uma carteira existente que deseja trazer para o bolo, basta escolher a carteira existente e nós o guiaremos pelo processo.", "welcome_to_cakepay": "Bem-vindo ao Cake Pay!", + "what_is_payjoin": "O que é Payjoin ?", "what_is_silent_payments": "O que são pagamentos silenciosos?", "widgets_address": "Endereço", "widgets_or": "ou", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 161eedde4..8de01d16c 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "Если вы хотите начать Fresh, нажмите «Создать новый кошелек» ниже, и вы отправитесь на гонки.", "welcome_subtitle_restore_wallet": "Если у вас есть существующий кошелек, который вы хотите принести в торт, просто выберите «Восстановить существующий кошелек», и мы проведем вас через процесс.", "welcome_to_cakepay": "Добро пожаловать в Cake Pay!", + "what_is_payjoin": "Что такое Payjoin ?", "what_is_silent_payments": "Что такое молчаливые платежи?", "widgets_address": "Адрес", "widgets_or": "или", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index d08fef554..53dda57e7 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "หากคุณต้องการเริ่มต้นใหม่ให้แตะสร้างกระเป๋าเงินใหม่ด้านล่างและคุณจะออกจากการแข่งขัน", "welcome_subtitle_restore_wallet": "หากคุณมีกระเป๋าเงินที่มีอยู่ที่คุณต้องการนำเข้าเค้กให้เลือกคืนกระเป๋าเงินที่มีอยู่แล้วเราจะพาคุณผ่านกระบวนการ", "welcome_to_cakepay": "ยินดีต้อนรับสู่ Cake Pay!", + "what_is_payjoin": "PayJoin ? คืออะไร", "what_is_silent_payments": "การชำระเงินเงียบคืออะไร?", "widgets_address": "ที่อยู่", "widgets_or": "หรือ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 4405c9daf..0e7b4f7f1 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Kung nais mong simulan ang sariwa, tapikin ang Lumikha ng Bagong Wallet sa ibaba at pupunta ka sa mga karera.", "welcome_subtitle_restore_wallet": "Kung mayroon kang isang umiiral na pitaka na nais mong dalhin sa cake, piliin lamang ang ibalik ang umiiral na pitaka at lalakad ka namin sa proseso.", "welcome_to_cakepay": "Maligayang pagdating sa Cake Pay!", + "what_is_payjoin": "Ano ang Payjoin ?", "what_is_silent_payments": "Ano ang tahimik na pagbabayad?", "widgets_address": "Address", "widgets_or": "o", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 8793d1170..cc9f0137c 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "Taze başlamak istiyorsanız, aşağıda yeni cüzdan oluşturun ve yarışlara gidersiniz.", "welcome_subtitle_restore_wallet": "Mevcut bir cüzdanınız varsa, kek içine getirmek istediğiniz, mevcut cüzdanı geri yüklemeyi seçin ve bu süreç boyunca size yol gösterelim.", "welcome_to_cakepay": "Cake Pay'e Hoş Geldiniz!", + "what_is_payjoin": "Payjoin nedir ?", "what_is_silent_payments": "Sessiz ödemeler nedir?", "widgets_address": "Adres", "widgets_or": "veya", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index cc8ee2f12..2f88b98e6 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "Якщо ви хочете почати спочатку, торкніться Створити новий гаманець нижче, і ви будете поза конкуренціею.", "welcome_subtitle_restore_wallet": "Якщо у вас є існуючий гаманець, який ви хочете ввести в торт, просто виберіть Відновити існуючий гаманець, і ми проведемо вас через процес.", "welcome_to_cakepay": "Ласкаво просимо до Cake Pay!", + "what_is_payjoin": "Що таке Payjoin ?", "what_is_silent_payments": "Що таке мовчазні платежі?", "widgets_address": "Адреса", "widgets_or": "або", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index e63693150..19bcd09d0 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -1061,6 +1061,7 @@ "welcome_subtitle_new_wallet": "اگر آپ تازہ شروع کرنا چاہتے ہیں تو ، نیچے نیا پرس بنائیں پر تھپتھپائیں اور آپ ریسوں پر جائیں گے۔", "welcome_subtitle_restore_wallet": "اگر آپ کے پاس موجودہ پرس ہے تو آپ کیک میں لانا چاہتے ہیں تو ، موجودہ بٹوے کو بحال کریں کا انتخاب کریں اور ہم آپ کو اس عمل میں چلیں گے۔", "welcome_to_cakepay": "Cake پے میں خوش آمدید!", + "what_is_payjoin": "پے جوائن کیا ہے ?", "what_is_silent_payments": "خاموش ادائیگی کیا ہے؟", "widgets_address": "پتہ", "widgets_or": "یا", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index ddf5a5587..59271d551 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -1056,6 +1056,7 @@ "welcome_subtitle_new_wallet": "Nếu bạn muốn bắt đầu mới, hãy nhấn Tạo ví mới bên dưới và bạn sẽ rời khỏi các cuộc đua.", "welcome_subtitle_restore_wallet": "Nếu bạn có một ví hiện có mà bạn muốn mang vào bánh, chỉ cần chọn khôi phục ví hiện có và chúng tôi sẽ hướng dẫn bạn qua quá trình này.", "welcome_to_cakepay": "Chào mừng đến với Cake Pay!", + "what_is_payjoin": "Payjoin là gì", "what_is_silent_payments": "Thanh toán im lặng là gì?", "widgets_address": "Địa chỉ", "widgets_or": "hoặc", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 18e5ba83a..28c2b113e 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -1060,6 +1060,7 @@ "welcome_subtitle_new_wallet": "Ti o ba fẹ bẹrẹ alabapade, tẹ Ṣẹda apamọwọ tuntun ni isalẹ iwọ yoo wa ni pipa si awọn ere-ije.", "welcome_subtitle_restore_wallet": "Ti o ba ni apamọwọ ti o wa tẹlẹ ti o fẹ lati mu wa sinu akara oyinbo, yan omi apamọwọ wa tẹlẹ ati pe a yoo rin ọ nipasẹ ilana naa.", "welcome_to_cakepay": "Ẹ káàbọ̀ sí Cake Pay!", + "what_is_payjoin": "Kini Payjoin?", "what_is_silent_payments": "Kini awọn sisanwo ipalọlọ?", "widgets_address": "Àdírẹ́sì", "widgets_or": "tàbí", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index a3df320ab..7b218d659 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -1059,6 +1059,7 @@ "welcome_subtitle_new_wallet": "如果您想开始新鲜,请点击下面的创建新钱包,您将参加比赛。", "welcome_subtitle_restore_wallet": "如果您有一个现有的钱包要把蛋糕带入蛋糕,只需选择还原现有的钱包,我们将带您完成整个过程。", "welcome_to_cakepay": "欢迎来到 Cake Pay!", + "what_is_payjoin": "什么是工资join?", "what_is_silent_payments": "什么是无声付款?", "widgets_address": "地址", "widgets_or": "或者",