diff --git a/lib/src/screens/contact/contact_page.dart b/lib/src/screens/contact/contact_page.dart index 88f1318a4..ebe2db4d9 100644 --- a/lib/src/screens/contact/contact_page.dart +++ b/lib/src/screens/contact/contact_page.dart @@ -17,6 +17,7 @@ import 'package:cake_wallet/src/widgets/address_text_field.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; import 'package:cake_wallet/src/widgets/base_text_form_field.dart'; import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; class ContactPage extends BasePage { ContactPage(this.contactViewModel) @@ -99,10 +100,7 @@ class ContactPage extends BasePage { AddressTextFieldOption.paste, AddressTextFieldOption.qrCode, ], - buttonColor: Theme.of(context) - .accentTextTheme! - .displaySmall! - .color!, + buttonColor: Theme.of(context).extension()!.actionButtonColor, iconColor: PaletteDark.gray, borderColor: Theme.of(context) .primaryTextTheme! diff --git a/lib/src/screens/receive/widgets/anonpay_status_section.dart b/lib/src/screens/receive/widgets/anonpay_status_section.dart index 3e0c13966..966fca382 100644 --- a/lib/src/screens/receive/widgets/anonpay_status_section.dart +++ b/lib/src/screens/receive/widgets/anonpay_status_section.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart'; import 'package:cake_wallet/typography.dart'; import 'package:flutter/material.dart'; @@ -38,10 +39,7 @@ class AnonInvoiceStatusSection extends StatelessWidget { Container( padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), decoration: BoxDecoration( - color: Theme.of(context) - .accentTextTheme! - .displaySmall! - .color!, + color: Theme.of(context).extension()!.actionButtonColor, borderRadius: BorderRadius.circular(10), ), child: Row( diff --git a/lib/src/screens/settings/widgets/settings_choices_cell.dart b/lib/src/screens/settings/widgets/settings_choices_cell.dart index 669776585..ae768b921 100644 --- a/lib/src/screens/settings/widgets/settings_choices_cell.dart +++ b/lib/src/screens/settings/widgets/settings_choices_cell.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/view_model/settings/choices_list_item.dart'; import 'package:flutter/material.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; class SettingsChoicesCell extends StatelessWidget { const SettingsChoicesCell(this.choicesListItem, {Key? key}) : super(key: key); @@ -34,10 +35,7 @@ class SettingsChoicesCell extends StatelessWidget { child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(30), - color: Theme.of(context) - .accentTextTheme! - .displaySmall! - .color!, + color: Theme.of(context).extension()!.actionButtonColor, ), child: Row( mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/src/widgets/picker.dart b/lib/src/widgets/picker.dart index b5345f884..e816f3e09 100644 --- a/lib/src/widgets/picker.dart +++ b/lib/src/widgets/picker.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:flutter/material.dart'; import 'package:cw_core/currency.dart'; import 'package:cake_wallet/src/widgets/picker_wrapper_widget.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; class Picker extends StatefulWidget { Picker({ @@ -168,10 +169,7 @@ class _PickerState extends State> { prefixIcon: Image.asset("assets/images/search_icon.png"), filled: true, - fillColor: Theme.of(context) - .accentTextTheme! - .displaySmall! - .color!, + fillColor: Theme.of(context).extension()!.actionButtonColor, alignLabelWithHint: false, contentPadding: const EdgeInsets.symmetric( vertical: 4, horizontal: 16), diff --git a/lib/src/widgets/standard_list_status_row.dart b/lib/src/widgets/standard_list_status_row.dart index 5f5970a24..ed8bbd827 100644 --- a/lib/src/widgets/standard_list_status_row.dart +++ b/lib/src/widgets/standard_list_status_row.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:cake_wallet/themes/extensions/address_theme.dart'; class StandardListStatusRow extends StatelessWidget { StandardListStatusRow({required this.title, required this.value}); @@ -30,7 +31,7 @@ class StandardListStatusRow extends StatelessWidget { padding: const EdgeInsets.only(top: 12), child: Container( decoration: BoxDecoration( - color: Theme.of(context).accentTextTheme!.displaySmall!.color!, + color: Theme.of(context).extension()!.actionButtonColor, borderRadius: BorderRadius.circular(30.0), ), child: Padding( diff --git a/lib/themes/bright_theme.dart b/lib/themes/bright_theme.dart index 17563d3cd..703ffc4a4 100644 --- a/lib/themes/bright_theme.dart +++ b/lib/themes/bright_theme.dart @@ -209,11 +209,5 @@ class BrightTheme extends LightTheme { Palette.pinkFlamingo, // second gradient color(menu header) backgroundColor: Colors.white // active dot color ), - // display2 -> displaySmall - displaySmall: TextStyle( - color: - Palette.shadowWhite, // action button color (address text field) - decorationColor: Palette.darkGray, // hint text (seed widget) - ), )); } diff --git a/lib/themes/dark_theme.dart b/lib/themes/dark_theme.dart index b387cdb91..44b434921 100644 --- a/lib/themes/dark_theme.dart +++ b/lib/themes/dark_theme.dart @@ -1,3 +1,4 @@ +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/exchange_page_theme.dart'; @@ -79,6 +80,10 @@ class DarkTheme extends ThemeBase { BalancePageTheme get balancePageTheme => BalancePageTheme(textColor: PaletteDark.cyanBlue); + @override + AddressTheme get addressTheme => + AddressTheme(actionButtonColor: PaletteDark.nightBlue); + @override ThemeData get themeData => super.themeData.copyWith( indicatorColor: PaletteDark.cyanBlue, // page indicator @@ -243,13 +248,6 @@ class DarkTheme extends ThemeBase { .deepPurpleBlue, // second gradient color(menu header) backgroundColor: Colors.white // active dot color ), - // display2 -> displaySmall - displaySmall: TextStyle( - color: PaletteDark - .nightBlue, // action button color (address text field) - decorationColor: - PaletteDark.darkCyanBlue, // hint text (seed widget) - ), ), ); } diff --git a/lib/themes/extensions/address_theme.dart b/lib/themes/extensions/address_theme.dart new file mode 100644 index 000000000..cabc8d87f --- /dev/null +++ b/lib/themes/extensions/address_theme.dart @@ -0,0 +1,24 @@ +import 'package:flutter/material.dart'; + +class AddressTheme extends ThemeExtension { + final Color actionButtonColor; + + AddressTheme({required this.actionButtonColor}); + + @override + AddressTheme copyWith({Color? actionButtonColor}) => AddressTheme( + actionButtonColor: actionButtonColor ?? this.actionButtonColor); + + @override + AddressTheme lerp(ThemeExtension? other, double t) { + if (other is! AddressTheme) { + return this; + } + + return AddressTheme( + actionButtonColor: + Color.lerp(actionButtonColor, other.actionButtonColor, t) ?? + actionButtonColor, + ); + } +} diff --git a/lib/themes/light_theme.dart b/lib/themes/light_theme.dart index 6a9238658..1b5c9ace1 100644 --- a/lib/themes/light_theme.dart +++ b/lib/themes/light_theme.dart @@ -1,3 +1,4 @@ +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/exchange_page_theme.dart'; @@ -80,6 +81,10 @@ class LightTheme extends ThemeBase { BalancePageTheme get balancePageTheme => BalancePageTheme(textColor: Palette.darkBlueCraiola.withOpacity(0.67)); + @override + AddressTheme get addressTheme => + AddressTheme(actionButtonColor: Palette.shadowWhite); + @override ThemeData get themeData => super.themeData.copyWith( indicatorColor: @@ -240,12 +245,6 @@ class LightTheme extends ThemeBase { decorationColor: Palette.blueGreyCraiola, // second gradient color(menu header) backgroundColor: PaletteDark.darkNightBlue // active dot color ), - // display2 -> displaySmall - displaySmall: TextStyle( - color: - Palette.shadowWhite, // action button color (address text field) - decorationColor: Palette.darkGray, // hint text (seed widget) - ), ), ); } diff --git a/lib/themes/theme_base.dart b/lib/themes/theme_base.dart index 27b3a625f..acaf540ba 100644 --- a/lib/themes/theme_base.dart +++ b/lib/themes/theme_base.dart @@ -1,3 +1,4 @@ +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/dashboard_page_theme.dart'; @@ -61,6 +62,8 @@ abstract class ThemeBase { BalancePageTheme get balancePageTheme; + AddressTheme get addressTheme; + ThemeData get themeData => generatedThemeData.copyWith( primaryColor: primaryColor, cardColor: containerColor, @@ -75,6 +78,7 @@ abstract class ThemeBase { exchangePageTheme, newWalletTheme, balancePageTheme, + addressTheme, ], scrollbarTheme: ScrollbarThemeData( thumbColor: MaterialStateProperty.all(scrollbarTheme.thumbColor),