From 6b691475fdc31162c0996dee1fd6e0bae6c20a49 Mon Sep 17 00:00:00 2001 From: Rafael Saes Date: Mon, 3 Jul 2023 15:26:44 -0300 Subject: [PATCH] refactor: create NewWalletTheme for accentTextTheme.displayMedium --- .../advanced_privacy_settings_page.dart | 6 ++-- .../screens/new_wallet/new_wallet_page.dart | 16 +++------- .../screens/restore/sweeping_wallet_page.dart | 11 ++----- lib/src/screens/welcome/welcome_page.dart | 16 +++------- lib/themes/bright_theme.dart | 12 ++++---- lib/themes/dark_theme.dart | 12 ++++---- lib/themes/extensions/new_wallet_theme.dart | 30 +++++++++++++++++++ lib/themes/light_theme.dart | 12 ++++---- lib/themes/theme_base.dart | 4 +++ 9 files changed, 65 insertions(+), 54 deletions(-) create mode 100644 lib/themes/extensions/new_wallet_theme.dart diff --git a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart index 35de5bc3c..10eaedf3f 100644 --- a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart +++ b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart @@ -3,6 +3,7 @@ import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/src/screens/nodes/widgets/node_form.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_choices_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model.dart'; import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/settings/choices_list_item.dart'; @@ -121,10 +122,7 @@ class _AdvancedPrivacySettingsBodyState extends State()!.hintTextColor, ), ), ), diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index 57da0050a..e30c29fcf 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -17,6 +17,7 @@ import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_pick import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/view_model/wallet_new_vm.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; class NewWalletPage extends BasePage { NewWalletPage(this._walletNewVM); @@ -125,24 +126,15 @@ class _WalletNameFormState extends State { hintStyle: TextStyle( fontSize: 18.0, fontWeight: FontWeight.w500, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color), + color: Theme.of(context).extension()!.hintTextColor), hintText: S.of(context).wallet_name, focusedBorder: UnderlineInputBorder( borderSide: BorderSide( - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .decorationColor!, + color: Theme.of(context).extension()!.underlineColor, width: 1.0)), enabledBorder: UnderlineInputBorder( borderSide: BorderSide( - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .decorationColor!, + color: Theme.of(context).extension()!.underlineColor, width: 1.0), ), suffixIcon: Semantics( diff --git a/lib/src/screens/restore/sweeping_wallet_page.dart b/lib/src/screens/restore/sweeping_wallet_page.dart index 96887b955..1309ebfae 100644 --- a/lib/src/screens/restore/sweeping_wallet_page.dart +++ b/lib/src/screens/restore/sweeping_wallet_page.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:flutter/scheduler.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; class SweepingWalletPage extends BasePage { SweepingWalletPage(); @@ -82,10 +83,7 @@ class _SweepingWalletWidgetState extends State { style: TextStyle( fontSize: 18, fontWeight: FontWeight.w500, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color, + color: Theme.of(context).extension()!.hintTextColor, ), textAlign: TextAlign.center, ), @@ -112,10 +110,7 @@ class _SweepingWalletWidgetState extends State { style: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color, + color: Theme.of(context).extension()!.hintTextColor, ), textAlign: TextAlign.center, ), diff --git a/lib/src/screens/welcome/welcome_page.dart b/lib/src/screens/welcome/welcome_page.dart index d6b2f34ef..4b70e1012 100644 --- a/lib/src/screens/welcome/welcome_page.dart +++ b/lib/src/screens/welcome/welcome_page.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/wallet_type_utils.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; class WelcomePage extends BasePage { static const aspectRatioImage = 1.25; @@ -90,10 +91,7 @@ class WelcomePage extends BasePage { style: TextStyle( fontSize: 18, fontWeight: FontWeight.w500, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color, + color: Theme.of(context).extension()!.hintTextColor, ), textAlign: TextAlign.center, ), @@ -120,10 +118,7 @@ class WelcomePage extends BasePage { style: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color, + color: Theme.of(context).extension()!.hintTextColor, ), textAlign: TextAlign.center, ), @@ -137,10 +132,7 @@ class WelcomePage extends BasePage { style: TextStyle( fontSize: 12, fontWeight: FontWeight.normal, - color: Theme.of(context) - .accentTextTheme! - .displayMedium! - .color, + color: Theme.of(context).extension()!.hintTextColor, ), textAlign: TextAlign.center, ), diff --git a/lib/themes/bright_theme.dart b/lib/themes/bright_theme.dart index 8f83e86c7..66ab449a5 100644 --- a/lib/themes/bright_theme.dart +++ b/lib/themes/bright_theme.dart @@ -1,5 +1,6 @@ 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/new_wallet_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; import 'package:cake_wallet/themes/light_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; @@ -40,6 +41,11 @@ class BrightTheme extends LightTheme { secondGradientTopPanelColor: Palette.pinkFlamingo, firstGradientTopPanelColor: Palette.blueCraiola); + @override + NewWalletTheme get newWalletTheme => NewWalletTheme( + hintTextColor: Palette.darkGray, + underlineColor: Palette.periwinkleCraiola); + @override ThemeData get themeData => super.themeData.copyWith( indicatorColor: Colors.white.withOpacity(0.5), // page indicator @@ -206,11 +212,5 @@ class BrightTheme extends LightTheme { backgroundColor: Colors.white.withOpacity(0.5) // text on balance page ), - // display3 -> displayMedium - displayMedium: TextStyle( - color: Palette.darkGray, // hint text (new wallet page) - decorationColor: - Palette.periwinkleCraiola, // underline (new wallet page) - ), )); } diff --git a/lib/themes/dark_theme.dart b/lib/themes/dark_theme.dart index 95b331966..31c85e19c 100644 --- a/lib/themes/dark_theme.dart +++ b/lib/themes/dark_theme.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart'; import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; import 'package:cake_wallet/themes/extensions/pin_code_theme.dart'; import 'package:cake_wallet/themes/extensions/support_page_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; @@ -68,6 +69,11 @@ class DarkTheme extends ThemeBase { firstGradientTopPanelColor: PaletteDark.wildVioletBlue, receiveAmountColor: PaletteDark.darkCyanBlue); + @override + NewWalletTheme get newWalletTheme => NewWalletTheme( + hintTextColor: PaletteDark.cyanBlue, + underlineColor: PaletteDark.darkGrey); + @override ThemeData get themeData => super.themeData.copyWith( indicatorColor: PaletteDark.cyanBlue, // page indicator @@ -240,12 +246,6 @@ class DarkTheme extends ThemeBase { PaletteDark.darkCyanBlue, // hint text (seed widget) backgroundColor: PaletteDark.cyanBlue // text on balance page ), - // display3 -> displayMedium - displayMedium: TextStyle( - color: PaletteDark.cyanBlue, // hint text (new wallet page) - decorationColor: - PaletteDark.darkGrey, // underline (new wallet page) - ), ), ); } diff --git a/lib/themes/extensions/new_wallet_theme.dart b/lib/themes/extensions/new_wallet_theme.dart new file mode 100644 index 000000000..7e06818ff --- /dev/null +++ b/lib/themes/extensions/new_wallet_theme.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +class NewWalletTheme extends ThemeExtension { + final Color hintTextColor; + final Color underlineColor; + + NewWalletTheme({required this.hintTextColor, required this.underlineColor}); + + @override + Object get type => NewWalletTheme; + + @override + NewWalletTheme copyWith({Color? hintTextColor, Color? underlineColor}) => + NewWalletTheme( + hintTextColor: hintTextColor ?? this.hintTextColor, + underlineColor: underlineColor ?? this.underlineColor); + + @override + NewWalletTheme lerp(ThemeExtension? other, double t) { + if (other is! NewWalletTheme) { + return this; + } + + return NewWalletTheme( + hintTextColor: + Color.lerp(hintTextColor, other.hintTextColor, t) ?? hintTextColor, + underlineColor: Color.lerp(underlineColor, other.underlineColor, t) ?? + underlineColor); + } +} diff --git a/lib/themes/light_theme.dart b/lib/themes/light_theme.dart index e3a40250f..e81190909 100644 --- a/lib/themes/light_theme.dart +++ b/lib/themes/light_theme.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart'; import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; import 'package:cake_wallet/themes/extensions/pin_code_theme.dart'; import 'package:cake_wallet/themes/extensions/support_page_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; @@ -69,6 +70,11 @@ class LightTheme extends ThemeBase { firstGradientTopPanelColor: Palette.blueCraiola, receiveAmountColor: Palette.niagara); + @override + NewWalletTheme get newWalletTheme => NewWalletTheme( + hintTextColor: Palette.darkGray, + underlineColor: Palette.periwinkleCraiola); + @override ThemeData get themeData => super.themeData.copyWith( indicatorColor: @@ -237,12 +243,6 @@ class LightTheme extends ThemeBase { backgroundColor: Palette.darkBlueCraiola .withOpacity(0.67) // text on balance page ), - // display3 -> displayMedium - displayMedium: TextStyle( - color: Palette.darkGray, // hint text (new wallet page) - decorationColor: - Palette.periwinkleCraiola, // underline (new wallet page) - ), ), ); } diff --git a/lib/themes/theme_base.dart b/lib/themes/theme_base.dart index dde274319..80360afbd 100644 --- a/lib/themes/theme_base.dart +++ b/lib/themes/theme_base.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/themes/extensions/cake_scrollbar_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/keyboard_theme.dart'; +import 'package:cake_wallet/themes/extensions/new_wallet_theme.dart'; import 'package:cake_wallet/themes/extensions/pin_code_theme.dart'; import 'package:cake_wallet/themes/extensions/support_page_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; @@ -55,6 +56,8 @@ abstract class ThemeBase { ExchangePageTheme get exchangePageTheme; + NewWalletTheme get newWalletTheme; + ThemeData get themeData => generatedThemeData.copyWith( primaryColor: primaryColor, cardColor: containerColor, @@ -67,6 +70,7 @@ abstract class ThemeBase { pinCodeTheme, supportPageTheme, exchangePageTheme, + newWalletTheme, ], scrollbarTheme: ScrollbarThemeData( thumbColor: MaterialStateProperty.all(scrollbarTheme.thumbColor),