From 17525c5bcced98f4bd924db8db43f3db9f0baba6 Mon Sep 17 00:00:00 2001 From: Rafael Saes Date: Fri, 7 Jul 2023 17:25:22 -0300 Subject: [PATCH] feat: add backdropColor to alert and picker backdrop filters --- .../screens/dashboard/widgets/balance_page.dart | 6 ++---- lib/src/widgets/alert_background.dart | 6 ++++-- lib/src/widgets/base_alert_dialog.dart | 4 +++- lib/themes/dark_theme.dart | 5 +++-- lib/themes/extensions/alert_theme.dart | 13 +++++++++---- lib/themes/high_contrast_theme.dart | 17 ++++++++--------- lib/themes/light_theme.dart | 5 +++-- lib/themes/monero_dark_theme.dart | 12 +++++++++--- lib/themes/monero_light_theme.dart | 6 ++++++ 9 files changed, 47 insertions(+), 27 deletions(-) diff --git a/lib/src/screens/dashboard/widgets/balance_page.dart b/lib/src/screens/dashboard/widgets/balance_page.dart index c02e80344..766353dab 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/src/screens/exchange_trade/information_page.dart'; 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/show_pop_up.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; @@ -148,7 +147,7 @@ class BalancePage extends StatelessWidget { fontSize: 16, fontFamily: 'Lato', fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.assetTitleColor, + color: Theme.of(context).extension()!.textColor, height: 1)), ], @@ -159,8 +158,7 @@ class BalancePage extends StatelessWidget { fontSize: 28, fontFamily: 'Lato', fontWeight: FontWeight.w800, - color: Theme.of(context).extension()!.textColor, - height: 1)), + color: Theme.of(context).extension()!.assetTitleColor)), ], ), SizedBox(height: 26), diff --git a/lib/src/widgets/alert_background.dart b/lib/src/widgets/alert_background.dart index 1b72597af..0ced8ee06 100644 --- a/lib/src/widgets/alert_background.dart +++ b/lib/src/widgets/alert_background.dart @@ -1,7 +1,7 @@ import 'dart:ui'; +import 'package:cake_wallet/themes/extensions/alert_theme.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:flutter/material.dart'; -import 'package:cake_wallet/palette.dart'; class AlertBackground extends StatelessWidget { AlertBackground({required this.child}); @@ -20,7 +20,9 @@ class AlertBackground extends StatelessWidget { child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), child: Container( - decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)), + decoration: BoxDecoration( + color: + Theme.of(context).extension()!.backdropColor), child: Center( child: Container( width: ResponsiveLayoutUtil.kDesktopMaxWidthConstraint, diff --git a/lib/src/widgets/base_alert_dialog.dart b/lib/src/widgets/base_alert_dialog.dart index ebbd691ba..757ee1862 100644 --- a/lib/src/widgets/base_alert_dialog.dart +++ b/lib/src/widgets/base_alert_dialog.dart @@ -110,7 +110,9 @@ class BaseAlertDialog extends StatelessWidget { child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), child: Container( - decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)), + decoration: BoxDecoration( + color: + Theme.of(context).extension()!.backdropColor), child: Center( child: GestureDetector( onTap: () => null, diff --git a/lib/themes/dark_theme.dart b/lib/themes/dark_theme.dart index 9d70dd5f9..1011275fa 100644 --- a/lib/themes/dark_theme.dart +++ b/lib/themes/dark_theme.dart @@ -142,8 +142,9 @@ class DarkTheme extends ThemeBase { PickerTheme(dividerColor: PaletteDark.dividerColor); @override - AlertTheme get alertTheme => - AlertTheme(leftButtonTextColor: Palette.alizarinRed); + AlertTheme get alertTheme => AlertTheme( + backdropColor: PaletteDark.darkNightBlue.withOpacity(0.75), + leftButtonTextColor: Palette.alizarinRed); @override OrderTheme get orderTheme => OrderTheme(iconColor: Colors.white); diff --git a/lib/themes/extensions/alert_theme.dart b/lib/themes/extensions/alert_theme.dart index 3c3cc90a6..3794124f3 100644 --- a/lib/themes/extensions/alert_theme.dart +++ b/lib/themes/extensions/alert_theme.dart @@ -2,12 +2,15 @@ import 'package:flutter/material.dart'; class AlertTheme extends ThemeExtension { final Color leftButtonTextColor; + final Color backdropColor; - AlertTheme({required this.leftButtonTextColor}); + AlertTheme({required this.leftButtonTextColor, required this.backdropColor}); @override - AlertTheme copyWith({Color? leftButtonTextColor}) => AlertTheme( - leftButtonTextColor: leftButtonTextColor ?? this.leftButtonTextColor); + AlertTheme copyWith({Color? leftButtonTextColor, Color? backdropColor}) => + AlertTheme( + leftButtonTextColor: leftButtonTextColor ?? this.leftButtonTextColor, + backdropColor: backdropColor ?? this.backdropColor); @override AlertTheme lerp(ThemeExtension? other, double t) { @@ -18,6 +21,8 @@ class AlertTheme extends ThemeExtension { return AlertTheme( leftButtonTextColor: Color.lerp(leftButtonTextColor, other.leftButtonTextColor, t) ?? - leftButtonTextColor); + leftButtonTextColor, + backdropColor: + Color.lerp(backdropColor, other.backdropColor, t) ?? backdropColor); } } diff --git a/lib/themes/high_contrast_theme.dart b/lib/themes/high_contrast_theme.dart index 7ba01f354..b838e8233 100644 --- a/lib/themes/high_contrast_theme.dart +++ b/lib/themes/high_contrast_theme.dart @@ -8,7 +8,14 @@ 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); + HighContrastTheme({required int raw}) : super(raw: raw) { + colorScheme = ColorScheme.fromSwatch( + primarySwatch: Colors.grey, + accentColor: primaryColor, + backgroundColor: Colors.white, + cardColor: containerColor, + brightness: Brightness.light); + } @override String get title => S.current.high_contrast_theme; @@ -17,14 +24,6 @@ class HighContrastTheme extends MoneroLightTheme { @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; diff --git a/lib/themes/light_theme.dart b/lib/themes/light_theme.dart index 4e12018a1..cf1a4e7eb 100644 --- a/lib/themes/light_theme.dart +++ b/lib/themes/light_theme.dart @@ -142,8 +142,9 @@ class LightTheme extends ThemeBase { PickerTheme(dividerColor: Palette.periwinkleCraiola); @override - AlertTheme get alertTheme => - AlertTheme(leftButtonTextColor: Palette.brightOrange); + AlertTheme get alertTheme => AlertTheme( + backdropColor: PaletteDark.darkNightBlue.withOpacity(0.75), + leftButtonTextColor: Palette.brightOrange); @override OrderTheme get orderTheme => OrderTheme(iconColor: Colors.black); diff --git a/lib/themes/monero_dark_theme.dart b/lib/themes/monero_dark_theme.dart index 231753ad8..31995c8eb 100644 --- a/lib/themes/monero_dark_theme.dart +++ b/lib/themes/monero_dark_theme.dart @@ -1,6 +1,7 @@ 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/alert_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'; @@ -141,9 +142,9 @@ class MoneroDarkTheme extends DarkTheme { super.seedWidgetTheme.copyWith(hintTextColor: Colors.grey); @override - TransactionTradeTheme get transactionTradeTheme => - super.transactionTradeTheme.copyWith( - detailsTitlesColor: Colors.grey, rowsColor: containerColor); + TransactionTradeTheme get transactionTradeTheme => super + .transactionTradeTheme + .copyWith(detailsTitlesColor: Colors.grey, rowsColor: containerColor); @override CakeTextTheme get cakeTextTheme => super.cakeTextTheme.copyWith( @@ -170,6 +171,11 @@ class MoneroDarkTheme extends DarkTheme { QRCodeTheme get qrCodeTheme => QRCodeTheme( qrCodeColor: Colors.grey, qrWidgetCopyButtonColor: Colors.grey); + @override + AlertTheme get alertTheme => super + .alertTheme + .copyWith(backdropColor: colorScheme.surface.withOpacity(0.75)); + @override ThemeData get themeData => super.themeData.copyWith( dividerColor: pickerTheme.dividerColor, diff --git a/lib/themes/monero_light_theme.dart b/lib/themes/monero_light_theme.dart index 5600e171f..cf046e736 100644 --- a/lib/themes/monero_light_theme.dart +++ b/lib/themes/monero_light_theme.dart @@ -1,5 +1,6 @@ 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/alert_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'; @@ -142,6 +143,11 @@ class MoneroLightTheme extends LightTheme { .qrCodeTheme .copyWith(qrWidgetCopyButtonColor: colorScheme.secondary); + @override + AlertTheme get alertTheme => super + .alertTheme + .copyWith(backdropColor: colorScheme.inverseSurface.withOpacity(0.75)); + @override ThemeData get themeData => super.themeData.copyWith( dividerColor: pickerTheme.dividerColor,