Cw 396 additional themes (#962)

* fix: SectionStandardList using BuildContext as param

* refactor: deprecated backgroundColor -> colorScheme.background

* refactor: themeBase and current themes

* refactor: accentTextTheme.titleLarge.color -> dialogTheme.backgroundColor

* refactor: gradient background

* refactor: text themes using the same color as primaryColor

* refactor: accentTextTheme.bodySmall.color -> cardColor

* refactor: text themes using same dialogBackgroundColor

* refactor: scrollbarTheme

* refactor: create SyncIndicatorTheme

* refactor: SectionDivider

* refactor: base_page improvements and simplify

* refactor: collapsible_standart_list improvements

* refactor: accentTextTheme.bodyLarge.backgroundColor -> KeyboardTheme.keyboardBarColor

* refactor: create PinCodeTheme for accentTextTheme.bodyMedium

* refactor: create SupportPageTheme for accentTextTheme.displayLarge.backgroundColor and fix cases that use it

* refactor: accentTextTheme.displayLarge.color -> disabledColor

* refactor: create ExchangePageTheme

* refactor: create DashboardPageTheme and use textColor

* refactor: create NewWalletTheme for accentTextTheme.displayMedium

* refactor: create BalancePageTheme for accentTextTheme.displaySmall.backgroundColor

* refactor: create AddressTheme for accentTextTheme.displaySmall.color

* refactor: create IndicatorDotTheme

* refactor: create CakeMenuTheme

* refactor: create FilterTheme

* refactor: create WalletListTheme

* refactor: accentTextTheme.bodySmall.decorationColor -> InfoTheme.textColor

* refactor: accentTextTheme.titleLarge.backgroundColor -> PickerTheme.dividerColor

* refactor: primaryTextTheme.bodyLarge.backgroundColor -> AlertTheme.leftButtonTextColor

* refactor: primaryTextTheme.displayLarge.backgroundColor -> OrderTheme.iconColor

* refactor: create SendPageTheme

* fix: missing migrated styles

* refactor: primaryTextTheme.labelSmall.decorationColor -> PlaceholderTheme.color

* refactor: create TransactionTradeTheme

* refactor: create CakeTextTheme

* refactor: create AccountListTheme

* refactor: create ReceivePageTheme

* refactor: create QRCodeTheme

* refactor: move remaining items to CakeTextTheme and some missing fixes

* feat(display_settings): add new theme selector

* feat: additional themes

* fix: conflict error

* fix(lag): move colorScheme initialization to constructor

* feat: add backdropColor to alert and picker backdrop filters

* fix: merge fixes

* fix: send template page missing new colors

* fix: anonpay pages title and icon colors

* fix: merge fixes

* fix: unspent coins page

* fix: also fix exchange template

* fix: missing checkbox

* fix: fixes for high contrast theme

* Merge branch 'main' into CW-396-additional-themes

* fix: merge fixes

* fix: .gitignore and rm added files

* Fix review comments

---------

Co-authored-by: OmarHatem <omarh.ismail1@gmail.com>
This commit is contained in:
Rafael Saes 2023-08-17 12:28:31 -03:00 committed by GitHub
parent 5ec930cbc6
commit 09c942564e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
229 changed files with 4089 additions and 2869 deletions

View file

@ -746,5 +746,5 @@ packages:
source: hosted
version: "3.1.1"
sdks:
dart: ">=2.19.0 <4.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -665,5 +665,5 @@ packages:
source: hosted
version: "3.1.1"
sdks:
dart: ">=2.19.0 <4.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -399,5 +399,5 @@ packages:
source: hosted
version: "0.2.0+3"
sdks:
dart: ">=2.18.1 <4.0.0"
dart: ">=2.18.1 <3.0.0"
flutter: ">=3.0.0"

View file

@ -672,5 +672,5 @@ packages:
source: hosted
version: "3.1.1"
sdks:
dart: ">=2.19.0 <4.0.0"
dart: ">=2.19.0 <3.0.0"
flutter: ">=3.0.0"

View file

@ -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);
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);
}

View file

@ -42,10 +42,9 @@ class _AnonpayDetailsPageBodyState extends State<AnonpayDetailsPageBody> {
@override
Widget build(BuildContext context) {
return SectionStandardList(
context: context,
sectionCount: 1,
itemCounter: (int _) => widget.anonpayDetailsViewModel.items.length,
itemBuilder: (_, __, index) {
itemBuilder: (__, index) {
final item = widget.anonpayDetailsViewModel.items[index];
if (item is DetailsListStatusItem) {

View file

@ -80,7 +80,7 @@ class BackupPage extends BasePage {
isLoading: backupViewModelBase.state is IsExecutingState,
onPressed: () => onExportBackup(context),
text: S.of(context).export_backup,
color: Theme.of(context).accentTextTheme.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),

View file

@ -7,6 +7,7 @@ import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/view_model/edit_backup_password_view_model.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
class EditBackupPasswordPage extends BasePage {
EditBackupPasswordPage(this.editBackupPasswordViewModel)
@ -39,19 +40,13 @@ class EditBackupPasswordPage extends BasePage {
controller: textEditingController,
style: TextStyle(
fontSize: 26,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!)))),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor)))),
Positioned(
child: Observer(
builder: (_) => PrimaryButton(
onPressed: () => onSave(context),
text: S.of(context).save,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: !editBackupPasswordViewModel.canSave)),
bottom: 24,

View file

@ -1,7 +1,6 @@
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/src/widgets/nav_bar.dart';
@ -10,22 +9,22 @@ import 'package:cake_wallet/generated/i18n.dart';
enum AppBarStyle { regular, withShadow, transparent }
abstract class BasePage extends StatelessWidget {
BasePage()
: _scaffoldKey = GlobalKey<ScaffoldState>();
BasePage() : _scaffoldKey = GlobalKey<ScaffoldState>();
final GlobalKey<ScaffoldState> _scaffoldKey;
final Image closeButtonImage =
Image.asset('assets/images/close_button.png');
final Image closeButtonImage = Image.asset('assets/images/close_button.png');
final Image closeButtonImageDarkTheme =
Image.asset('assets/images/close_button_dark_theme.png');
String? get title => null;
Color get backgroundLightColor => Colors.white;
Color? get backgroundLightColor => null;
Color get backgroundDarkColor => PaletteDark.backgroundColor;
Color? get backgroundDarkColor => null;
Color? get titleColor => null;
bool get gradientBackground => false;
bool get gradientAll => false;
bool get resizeToAvoidBottomInset => true;
@ -43,15 +42,41 @@ abstract class BasePage extends StatelessWidget {
void onClose(BuildContext context) => Navigator.of(context).pop();
Color pageBackgroundColor(BuildContext context) =>
(currentTheme.type == ThemeType.dark
? backgroundDarkColor
: backgroundLightColor) ??
(gradientBackground && currentTheme.type == ThemeType.bright
? Colors.transparent
: Theme.of(context).colorScheme.background);
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
? 'assets/images/close_button_dark_theme.png'
: 'assets/images/close_button.png',
color: pageIconColor(context),
height: 16,
);
Widget backButton(BuildContext context) => Icon(
Icons.arrow_back_ios,
color: pageIconColor(context),
size: 16,
);
Widget? leading(BuildContext context) {
if (ModalRoute.of(context)?.isFirst ?? true) {
return null;
}
final _backButton = Icon(Icons.arrow_back_ios,
color: titleColor ?? Theme.of(context).primaryTextTheme!.titleLarge!.color!,
size: 16,);
return MergeSemantics(
child: SizedBox(
height: 37,
@ -66,7 +91,7 @@ abstract class BasePage extends StatelessWidget {
(states) => Colors.transparent),
),
onPressed: () => onClose(context),
child: _backButton,
child: backButton(context),
),
),
),
@ -83,8 +108,7 @@ abstract class BasePage extends StatelessWidget {
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'Lato',
color: titleColor ??
Theme.of(context).primaryTextTheme!.titleLarge!.color!),
color: titleColor(context)),
);
}
@ -93,8 +117,7 @@ abstract class BasePage extends StatelessWidget {
Widget? floatingActionButton(BuildContext context) => null;
ObstructingPreferredSizeWidget appBar(BuildContext context) {
final appBarColor = currentTheme.type == ThemeType.dark
? backgroundDarkColor : backgroundLightColor;
final appBarColor = pageBackgroundColor(context);
switch (appBarStyle) {
case AppBarStyle.regular:
@ -139,12 +162,9 @@ abstract class BasePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final _backgroundColor = currentTheme.type == ThemeType.dark
? backgroundDarkColor : backgroundLightColor;
final root = Scaffold(
key: _scaffoldKey,
backgroundColor: _backgroundColor,
backgroundColor: pageBackgroundColor(context),
resizeToAvoidBottomInset: resizeToAvoidBottomInset,
extendBodyBehindAppBar: extendBodyBehindAppBar,
endDrawer: endDrawer,

View file

@ -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);

View file

@ -3,6 +3,10 @@ import 'package:cake_wallet/buy/buy_provider.dart';
import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart';
import 'package:cake_wallet/entities/fiat_currency.dart';
import 'package:cake_wallet/src/widgets/picker.dart';
import 'package:cake_wallet/themes/extensions/cake_text_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/send_page_theme.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:cake_wallet/src/screens/buy/widgets/buy_list_item.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
@ -58,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;
@ -80,10 +81,7 @@ class PreOrderPage extends BasePage {
return KeyboardActions(
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -104,10 +102,8 @@ class PreOrderPage extends BasePage {
bottomLeft: Radius.circular(24),
bottomRight: Radius.circular(24)),
gradient: LinearGradient(colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context)
.primaryTextTheme!.titleMedium!
.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
], begin: Alignment.topLeft, end: Alignment.bottomRight),
),
child: Padding(
@ -162,11 +158,11 @@ class PreOrderPage extends BasePage {
),
),
hintText: '0.00',
borderColor: Theme.of(context).primaryTextTheme!.bodyLarge!.decorationColor!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderBottomPanelColor,
borderWidth: 0.5,
textStyle: TextStyle(fontSize: 36, fontWeight: FontWeight.w500, color: Colors.white),
placeholderTextStyle: TextStyle(
color: Theme.of(context).primaryTextTheme!.headlineSmall!.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldHintColor,
fontWeight: FontWeight.w500,
fontSize: 36,
),
@ -181,7 +177,7 @@ class PreOrderPage extends BasePage {
S.of(context).buy_with + ':',
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context).primaryTextTheme.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
fontSize: 18,
fontWeight: FontWeight.bold
),
@ -248,7 +244,7 @@ class PreOrderPage extends BasePage {
? S.of(context).buy
: S.of(context).buy_with +
' ${buyViewModel.selectedProvider!.description.title}',
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isLoading: buyViewModel.isRunning,
isDisabled: (buyViewModel.selectedProvider == null) ||

View file

@ -1,6 +1,7 @@
import 'package:cake_wallet/core/auth_service.dart';
import 'package:cake_wallet/entities/contact_base.dart';
import 'package:cake_wallet/entities/contact_record.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
@ -32,13 +33,13 @@ class ContactListPage extends BasePage {
height: 32.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context).accentTextTheme!.bodySmall!.color!),
color: Theme.of(context).extension<ExchangePageTheme>()!.buttonBackgroundColor),
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Icon(
Icons.add,
color: Theme.of(context).primaryTextTheme.titleLarge!.color!,
color: Theme.of(context).dialogTheme.backgroundColor,
size: 22.0,
),
ButtonTheme(
@ -48,17 +49,15 @@ class ContactListPage extends BasePage {
// FIX-ME: Style
//shape: CircleBorder(),
onPressed: () async {
if (contactListViewModel
.shouldRequireTOTP2FAForAddingContacts) {
if (contactListViewModel.shouldRequireTOTP2FAForAddingContacts) {
authService.authenticateAction(
context,
route: Routes.addressBookAddContact,
conditionToDetermineIfToUse2FA: contactListViewModel
.shouldRequireTOTP2FAForAddingContacts,
conditionToDetermineIfToUse2FA:
contactListViewModel.shouldRequireTOTP2FAForAddingContacts,
);
} else {
await Navigator.of(context)
.pushNamed(Routes.addressBookAddContact);
await Navigator.of(context).pushNamed(Routes.addressBookAddContact);
}
},
child: Offstage()),
@ -77,12 +76,8 @@ class ContactListPage extends BasePage {
final contacts = contactListViewModel.contactsToShow;
final walletContacts = contactListViewModel.walletContactsToShow;
return CollapsibleSectionList(
context: context,
sectionCount: 2,
themeColor: Theme.of(context).primaryTextTheme.titleLarge!.color!,
dividerThemeColor:
Theme.of(context).primaryTextTheme.bodySmall!.decorationColor!,
sectionTitleBuilder: (_, int sectionIndex) {
sectionTitleBuilder: (int sectionIndex) {
var title = S.current.contact_list_contacts;
if (sectionIndex == 0) {
@ -95,7 +90,7 @@ class ContactListPage extends BasePage {
},
itemCounter: (int sectionIndex) =>
sectionIndex == 0 ? walletContacts.length : contacts.length,
itemBuilder: (_, sectionIndex, index) {
itemBuilder: (int sectionIndex, index) {
if (sectionIndex == 0) {
final walletInfo = walletContacts[index];
return generateRaw(context, walletInfo);
@ -128,8 +123,7 @@ class ContactListPage extends BasePage {
return;
}
final isCopied = await showNameAndAddressDialog(
context, contact.name, contact.address);
final isCopied = await showNameAndAddressDialog(context, contact.name, contact.address);
if (isCopied) {
await Clipboard.setData(ClipboardData(text: contact.address));
@ -152,7 +146,7 @@ class ContactListPage extends BasePage {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Theme.of(context).primaryTextTheme.titleLarge!.color!,
color: Theme.of(context).dialogTheme.backgroundColor,
),
),
))
@ -177,8 +171,7 @@ class ContactListPage extends BasePage {
false;
}
Future<bool> showNameAndAddressDialog(
BuildContext context, String name, String address) async {
Future<bool> showNameAndAddressDialog(BuildContext context, String name, String address) async {
return await showPopUp<bool>(
context: context,
builder: (BuildContext context) {
@ -193,8 +186,7 @@ class ContactListPage extends BasePage {
false;
}
ActionPane _actionPane(BuildContext context, ContactRecord contact) =>
ActionPane(
ActionPane _actionPane(BuildContext context, ContactRecord contact) => ActionPane(
motion: const ScrollMotion(),
extentRatio: 0.4,
children: [

View file

@ -1,5 +1,6 @@
import 'package:cake_wallet/core/address_validator.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cw_core/currency.dart';
import 'package:flutter/material.dart';
@ -17,6 +18,8 @@ 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';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
class ContactPage extends BasePage {
ContactPage(this.contactViewModel)
@ -47,7 +50,7 @@ class ContactPage extends BasePage {
@override
Widget body(BuildContext context) {
final downArrow = Image.asset('assets/images/arrow_bottom_purple_icon.png',
color: Theme.of(context).primaryTextTheme!.labelSmall!.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
height: 8);
reaction((_) => contactViewModel.state, (ExecutionState state) {
@ -99,15 +102,9 @@ class ContactPage extends BasePage {
AddressTextFieldOption.paste,
AddressTextFieldOption.qrCode,
],
buttonColor: Theme.of(context)
.accentTextTheme!
.displaySmall!
.color!,
buttonColor: Theme.of(context).extension<AddressTheme>()!.actionButtonColor,
iconColor: PaletteDark.gray,
borderColor: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.backgroundColor!,
borderColor: Theme.of(context).extension<CakeTextTheme>()!.textfieldUnderlineColor,
validator:
AddressValidator(type: contactViewModel.currency!),
),
@ -143,10 +140,7 @@ class ContactPage extends BasePage {
await contactViewModel.save();
},
text: S.of(context).save,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: !contactViewModel.isReady)))
],

View file

@ -4,6 +4,8 @@ import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/entities/main_actions.dart';
import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/market_place_page.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
import 'package:cake_wallet/utils/device_info.dart';
import 'package:cake_wallet/utils/version_comparator.dart';
import 'package:cake_wallet/view_model/dashboard/market_place_view_model.dart';
@ -29,6 +31,8 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:smooth_page_indicator/smooth_page_indicator.dart';
import 'package:cake_wallet/main.dart';
import 'package:cake_wallet/src/screens/release_notes/release_notes_screen.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
class DashboardPage extends StatelessWidget {
DashboardPage({
@ -81,28 +85,11 @@ class _DashboardPageView extends BasePage {
final BalancePage balancePage;
@override
Color get backgroundLightColor =>
currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Color get backgroundDarkColor => Colors.transparent;
bool get gradientBackground => true;
@override
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,
),
),
child: scaffold,
);
(BuildContext context, Widget scaffold) => GradientBackground(scaffold: scaffold);
@override
bool get resizeToAvoidBottomInset => false;
@ -199,8 +186,10 @@ class _DashboardPageView extends BasePage {
dotWidth: 6.0,
dotHeight: 6.0,
dotColor: Theme.of(context).indicatorColor,
activeDotColor:
Theme.of(context).accentTextTheme.headlineMedium!.backgroundColor!,
activeDotColor: Theme.of(context)
.extension<DashboardPageTheme>()!
.indicatorDotTheme
.activeIndicatorColor,
),
),
);
@ -216,12 +205,11 @@ 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<BalancePageTheme>()!.cardBorderColor,
width: 1,
),
color: Theme.of(context).textTheme.titleLarge!.backgroundColor!,
color:
Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
),
child: Container(
padding: EdgeInsets.only(left: 32, right: 32),
@ -240,13 +228,11 @@ class _DashboardPageView extends BasePage {
width: 24,
color: action.isEnabled?.call(dashboardViewModel) ?? true
? Theme.of(context)
.accentTextTheme
.displayMedium!
.backgroundColor!
.extension<DashboardPageTheme>()!
.mainActionsIconColor
: Theme.of(context)
.accentTextTheme
.displaySmall!
.backgroundColor!,
.extension<BalancePageTheme>()!
.labelTextColor,
),
title: action.name(context),
onClick: () async =>
@ -254,9 +240,8 @@ class _DashboardPageView extends BasePage {
textColor: action.isEnabled?.call(dashboardViewModel) ?? true
? null
: Theme.of(context)
.accentTextTheme
.displaySmall!
.backgroundColor!,
.extension<BalancePageTheme>()!
.labelTextColor,
),
),
)

View file

@ -1,4 +1,7 @@
import 'package:auto_size_text/auto_size_text.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/sync_indicator_theme.dart';
import 'package:flutter/material.dart';
class DesktopActionButton extends StatelessWidget {
@ -30,7 +33,7 @@ class DesktopActionButton extends StatelessWidget {
width: double.infinity,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.0),
color: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
color: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
),
child: Center(
child: Row(
@ -41,14 +44,8 @@ class DesktopActionButton extends StatelessWidget {
height: 30,
width: 30,
color: isEnabled
? Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!
: Theme.of(context)
.accentTextTheme!
.displaySmall!
.backgroundColor!,
? Theme.of(context).extension<DashboardPageTheme>()!.textColor
: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor,
),
const SizedBox(width: 10),
AutoSizeText(
@ -58,10 +55,7 @@ class DesktopActionButton extends StatelessWidget {
fontFamily: 'Lato',
fontWeight: FontWeight.bold,
color: isEnabled
? Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!
? Theme.of(context).extension<DashboardPageTheme>()!.textColor
: null,
height: 1,
),

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
class SideMenuItem extends StatelessWidget {
const SideMenuItem({
@ -16,7 +17,7 @@ class SideMenuItem extends StatelessWidget {
Color _setColor(BuildContext context) {
if (isSelected) {
return Theme.of(context).primaryTextTheme!.titleLarge!.color!;
return Theme.of(context).extension<CakeTextTheme>()!.titleColor;
} else {
return Theme.of(context).highlightColor;
}

View file

@ -1,10 +1,12 @@
import 'package:another_flushbar/flushbar.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/core/auth_service.dart';
import 'package:cake_wallet/entities/desktop_dropdown_item.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/dropdown_item_widget.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart';
@ -37,14 +39,14 @@ class _DesktopWalletSelectionDropDownState extends State<DesktopWalletSelectionD
'assets/images/new_wallet.png',
height: 12,
width: 12,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
);
Image _restoreWalletImage(BuildContext context) => Image.asset(
'assets/images/restore_wallet.png',
height: 12,
width: 12,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
);
Flushbar<void>? _progressBar;
@ -94,8 +96,8 @@ class _DesktopWalletSelectionDropDownState extends State<DesktopWalletSelectionD
onChanged: (item) {
item?.onSelected();
},
dropdownColor: themeData.textTheme!.bodyLarge?.decorationColor,
style: TextStyle(color: themeData.primaryTextTheme!.titleLarge?.color),
dropdownColor: themeData.extension<CakeMenuTheme>()!.backgroundColor,
style: TextStyle(color: themeData.extension<CakeTextTheme>()!.titleColor),
selectedItemBuilder: (context) => dropDownItems.map((item) => item.child).toList(),
value: dropDownItems.firstWhere((element) => element.isSelected),
underline: const SizedBox(),

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
class DropDownItemWidget extends StatelessWidget {
@ -23,7 +24,7 @@ class DropDownItemWidget extends StatelessWidget {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w500,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
overflow: TextOverflow.ellipsis,
maxLines: 1,

View file

@ -6,6 +6,7 @@ import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/src/widgets/checkbox_widget.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
import 'package:cake_wallet/view_model/dashboard/home_settings_view_model.dart';
import 'package:cw_core/erc20_token.dart';
import 'package:flutter/material.dart';
@ -111,7 +112,7 @@ class _EditTokenPageBodyState extends State<EditTokenPageBody> {
Container(
padding: EdgeInsets.symmetric(vertical: 16, horizontal: 28),
decoration: BoxDecoration(
color: Theme.of(context).accentTextTheme.bodySmall!.color!,
color: Theme.of(context).cardColor,
borderRadius: BorderRadius.circular(12),
),
child: Row(
@ -128,7 +129,7 @@ class _EditTokenPageBodyState extends State<EditTokenPageBody> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).primaryTextTheme.titleLarge!.color!,
color: Theme.of(context).dialogTheme.backgroundColor,
),
),
Padding(
@ -138,7 +139,7 @@ class _EditTokenPageBodyState extends State<EditTokenPageBody> {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Theme.of(context).primaryTextTheme.labelSmall!.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
),
),
),
@ -197,7 +198,7 @@ class _EditTokenPageBodyState extends State<EditTokenPageBody> {
}
},
text: S.of(context).save,
color: Theme.of(context).accentTextTheme.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),

View file

@ -7,6 +7,8 @@ import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart';
import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart';
import 'package:cake_wallet/themes/extensions/address_theme.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
import 'package:cake_wallet/view_model/dashboard/home_settings_view_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -34,7 +36,7 @@ class HomeSettingsPage extends BasePage {
onItemSelected: _homeSettingsViewModel.setSortBalanceBy,
),
),
Divider(color: Theme.of(context).primaryTextTheme.bodySmall!.decorationColor!),
Divider(color: Theme.of(context).extension<CakeMenuTheme>()!.dividerColor),
Observer(
builder: (_) => SettingsSwitcherCell(
title: S.of(context).pin_at_top(_homeSettingsViewModel.nativeToken.title),
@ -44,7 +46,7 @@ class HomeSettingsPage extends BasePage {
},
),
),
Divider(color: Theme.of(context).primaryTextTheme.bodySmall!.decorationColor!),
Divider(color: Theme.of(context).extension<CakeMenuTheme>()!.dividerColor),
const SizedBox(height: 20),
Row(
children: [
@ -53,12 +55,12 @@ class HomeSettingsPage extends BasePage {
padding: const EdgeInsetsDirectional.only(start: 16),
child: TextFormField(
controller: _searchController,
style: TextStyle(color: Theme.of(context).primaryTextTheme.titleLarge!.color!),
style: TextStyle(color: Theme.of(context).dialogTheme.backgroundColor),
decoration: InputDecoration(
hintText: S.of(context).search_add_token,
prefixIcon: Image.asset("assets/images/search_icon.png"),
filled: true,
fillColor: Theme.of(context).accentTextTheme.displaySmall!.color!,
fillColor: Theme.of(context).extension<AddressTheme>()!.actionButtonColor,
alignLabelWithHint: false,
contentPadding: const EdgeInsets.symmetric(vertical: 4, horizontal: 16),
enabledBorder: OutlineInputBorder(
@ -84,15 +86,15 @@ class HomeSettingsPage extends BasePage {
});
},
elevation: 0,
fillColor: Theme.of(context).accentTextTheme.bodySmall!.color!,
fillColor: Theme.of(context).cardColor,
child: Icon(
Icons.add,
color: Theme.of(context).primaryTextTheme.titleLarge!.color!,
color: Theme.of(context).dialogTheme.backgroundColor,
size: 22.0,
),
padding: EdgeInsets.all(12),
shape: CircleBorder(),
splashColor: Theme.of(context).accentTextTheme.bodySmall!.color!,
splashColor: Theme.of(context).cardColor,
),
],
),
@ -146,7 +148,7 @@ class HomeSettingsPage extends BasePage {
),
),
decoration: BoxDecoration(
color: Theme.of(context).accentTextTheme.bodySmall!.color!,
color: Theme.of(context).cardColor,
borderRadius: BorderRadius.circular(30),
),
);

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class ActionButton extends StatelessWidget {
ActionButton(
@ -46,10 +47,7 @@ class ActionButton extends StatelessWidget {
style: TextStyle(
fontSize: 10,
color: textColor ??
Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
Theme.of(context).extension<DashboardPageTheme>()!.cardTextColor),
)
],
),

View file

@ -1,10 +1,15 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/anonpay/anonpay_donation_link_info.dart';
import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/entities/receive_page_option.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/present_receive_option_picker.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.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:cake_wallet/utils/share_util.dart';
@ -21,6 +26,8 @@ import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:mobx/mobx.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
class AddressPage extends BasePage {
AddressPage({
@ -48,11 +55,7 @@ class AddressPage extends BasePage {
final FocusNode _cryptoAmountFocus;
@override
Color get backgroundLightColor =>
currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Color get backgroundDarkColor => Colors.transparent;
bool get gradientBackground => true;
@override
bool get resizeToAvoidBottomInset => false;
@ -84,7 +87,7 @@ class AddressPage extends BasePage {
overlayColor: MaterialStateColor.resolveWith((states) => Colors.transparent),
),
onPressed: () => onClose(context),
child: !isMobileView ? _closeButton : _backButton,
child: !isMobileView ? closeButton(context) : backButton(context),
),
),
),
@ -94,20 +97,11 @@ class AddressPage extends BasePage {
@override
Widget middle(BuildContext context) => PresentReceiveOptionPicker(
receiveOptionViewModel: receiveOptionViewModel,
hasWhiteBackground: currentTheme.type == ThemeType.light,
);
color: titleColor(context), receiveOptionViewModel: receiveOptionViewModel);
@override
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
], begin: Alignment.topRight, end: Alignment.bottomLeft)),
child: scaffold);
(BuildContext context, Widget scaffold) => GradientBackground(scaffold: scaffold);
@override
Widget? trailing(BuildContext context) {
@ -201,8 +195,13 @@ class AddressPage extends BasePage {
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(25)),
border: Border.all(
color: Theme.of(context).textTheme.titleMedium!.color!, width: 1),
color: Theme.of(context).textTheme.titleLarge!.backgroundColor!),
color: Theme.of(context)
.extension<ReceivePageTheme>()!
.iconsBackgroundColor,
width: 1),
color: Theme.of(context)
.extension<SyncIndicatorTheme>()!
.syncedBackgroundColor),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -215,15 +214,13 @@ class AddressPage extends BasePage {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme.displayMedium!
.backgroundColor!),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor),
)),
Icon(
Icons.arrow_forward_ios,
size: 14,
color:
Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
Theme.of(context).extension<DashboardPageTheme>()!.textColor,
)
],
),
@ -234,8 +231,7 @@ class AddressPage extends BasePage {
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 15,
color:
Theme.of(context).accentTextTheme.displaySmall!.backgroundColor!));
color: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor));
} else {
return const SizedBox();
}

View file

@ -1,4 +1,6 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class AnonpayTransactionRow extends StatelessWidget {
AnonpayTransactionRow({
@ -37,19 +39,19 @@ class AnonpayTransactionRow extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!)),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor)),
Text(amount + ' ' + currency,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!))
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor))
]),
SizedBox(height: 5),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: <Widget>[
Text(createdAt,
style: TextStyle(
fontSize: 14,
color: Theme.of(context).textTheme!.labelSmall!.backgroundColor!))
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor))
])
],
))

View file

@ -1,6 +1,7 @@
import 'package:cake_wallet/routes.dart';
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/feature_flag.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
@ -10,6 +11,8 @@ import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:auto_size_text/auto_size_text.dart';
import 'package:cake_wallet/src/widgets/introducing_card.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
class BalancePage extends StatelessWidget {
BalancePage({required this.dashboardViewModel, required this.settingsStore});
@ -41,7 +44,8 @@ class BalancePage extends StatelessWidget {
fontSize: 24,
fontFamily: 'Lato',
fontWeight: FontWeight.w600,
color: Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color:
Theme.of(context).extension<DashboardPageTheme>()!.pageTitleTextColor,
height: 1,
),
maxLines: 1,
@ -55,8 +59,9 @@ class BalancePage extends StatelessWidget {
padding: const EdgeInsets.all(8.0),
child: Image.asset(
'assets/images/home_screen_settings_icon.png',
color:
Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color: Theme.of(context)
.extension<DashboardPageTheme>()!
.pageTitleTextColor,
),
),
),
@ -139,7 +144,7 @@ class BalancePage extends StatelessWidget {
: Colors.transparent,
width: 1,
),
color: Theme.of(context).textTheme.titleLarge!.backgroundColor!,
color: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
),
child: Container(
margin: const EdgeInsets.only(top: 16, left: 24, right: 24, bottom: 24),
@ -164,9 +169,8 @@ class BalancePage extends StatelessWidget {
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context)
.accentTextTheme!
.displaySmall!
.backgroundColor!,
.extension<BalancePageTheme>()!
.labelTextColor,
height: 1)),
if (hasAdditionalBalance)
Padding(
@ -174,9 +178,8 @@ class BalancePage extends StatelessWidget {
child: Icon(Icons.help_outline,
size: 16,
color: Theme.of(context)
.accentTextTheme!
.displaySmall!
.backgroundColor!),
.extension<BalancePageTheme>()!
.labelTextColor),
),
],
),
@ -187,9 +190,8 @@ class BalancePage extends StatelessWidget {
fontFamily: 'Lato',
fontWeight: FontWeight.w900,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
.extension<BalancePageTheme>()!
.balanceAmountColor,
height: 1),
maxLines: 1,
textAlign: TextAlign.start),
@ -200,10 +202,7 @@ class BalancePage extends StatelessWidget {
fontSize: 16,
fontFamily: 'Lato',
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<BalancePageTheme>()!.textColor,
height: 1)),
],
),
@ -213,7 +212,7 @@ class BalancePage extends StatelessWidget {
fontSize: 28,
fontFamily: 'Lato',
fontWeight: FontWeight.w800,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<BalancePageTheme>()!.assetTitleColor,
height: 1)),
],
),
@ -229,7 +228,7 @@ class BalancePage extends StatelessWidget {
fontSize: 12,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displaySmall!.backgroundColor!,
color: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor,
height: 1,
),
),
@ -240,7 +239,7 @@ class BalancePage extends StatelessWidget {
fontSize: 20,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
height: 1,
),
maxLines: 1,
@ -254,7 +253,7 @@ class BalancePage extends StatelessWidget {
fontSize: 12,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
height: 1,
),
),
@ -272,7 +271,7 @@ class BalancePage extends StatelessWidget {
fontSize: 12,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displaySmall!.backgroundColor!,
color: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor,
height: 1,
),
),
@ -283,7 +282,7 @@ class BalancePage extends StatelessWidget {
fontSize: 20,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
height: 1,
),
maxLines: 1,
@ -297,7 +296,7 @@ class BalancePage extends StatelessWidget {
fontSize: 12,
fontFamily: 'Lato',
fontWeight: FontWeight.w400,
color: Theme.of(context).accentTextTheme.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
height: 1,
),
),

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:intl/intl.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/utils/date_formatter.dart';
@ -36,9 +37,6 @@ class DateSectionRaw extends StatelessWidget {
child: Text(title,
style: TextStyle(
fontSize: 12,
color: Theme.of(context)
.textTheme!
.labelSmall!
.backgroundColor!)));
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor)));
}
}

View file

@ -1,12 +1,15 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_tile.dart';
import 'package:cake_wallet/src/widgets/section_divider.dart';
import 'package:cake_wallet/src/widgets/standard_checkbox.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/widgets/picker_wrapper_widget.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
//import 'package:date_range_picker/date_range_picker.dart' as date_rage_picker;
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class FilterWidget extends StatelessWidget {
FilterWidget({required this.dashboardViewModel});
@ -15,7 +18,7 @@ class FilterWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
const sectionDivider = const SectionDivider();
const sectionDivider = const HorizontalSectionDivider();
return PickerWrapperWidget(
children: [
Padding(
@ -23,7 +26,7 @@ class FilterWidget extends StatelessWidget {
child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(24)),
child: Container(
color: Theme.of(context).textTheme!.bodyLarge!.decorationColor!,
color: Theme.of(context).extension<CakeMenuTheme>()!.backgroundColor,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -32,10 +35,7 @@ class FilterWidget extends StatelessWidget {
child: Text(
S.of(context).filter_by,
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.labelSmall!
.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
fontSize: 16,
fontFamily: 'Lato',
decoration: TextDecoration.none,
@ -63,10 +63,7 @@ class FilterWidget extends StatelessWidget {
child: Text(
title,
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
fontSize: 16,
fontFamily: 'Lato',
fontWeight: FontWeight.bold,

View file

@ -1,8 +1,10 @@
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_widget.dart';
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class HeaderRow extends StatelessWidget {
HeaderRow({required this.dashboardViewModel});
@ -12,7 +14,7 @@ class HeaderRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
final filterIcon = Image.asset('assets/images/filter_icon.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!);
color: Theme.of(context).extension<FilterTheme>()!.iconColor);
return Container(
height: 52,
@ -27,10 +29,7 @@ class HeaderRow extends StatelessWidget {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
color: Theme.of(context).extension<DashboardPageTheme>()!.pageTitleTextColor),
),
GestureDetector(
onTap: () {
@ -45,7 +44,7 @@ class HeaderRow extends StatelessWidget {
width: 36,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context).textTheme!.labelSmall!.color!),
color: Theme.of(context).extension<FilterTheme>()!.buttonColor),
child: filterIcon,
),
)

View file

@ -8,6 +8,7 @@ import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class MarketPlacePage extends StatelessWidget {
MarketPlacePage({
@ -40,10 +41,7 @@ class MarketPlacePage extends StatelessWidget {
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.pageTitleTextColor,
),
),
Expanded(

View file

@ -1,13 +1,12 @@
import 'package:cake_wallet/src/widgets/setting_action_button.dart';
import 'package:cake_wallet/src/widgets/setting_actions.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
// FIXME: terrible design.
class MenuWidget extends StatefulWidget {
MenuWidget(this.dashboardViewModel);
@ -86,15 +85,9 @@ class MenuWidgetState extends State<MenuWidget> {
final itemCount = SettingActions.all.length;
moneroIcon = Image.asset('assets/images/monero_menu.png',
color: Theme.of(context)
.accentTextTheme
.labelSmall!
.decorationColor!);
color: Theme.of(context).extension<CakeMenuTheme>()!.iconColor);
bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png',
color: Theme.of(context)
.accentTextTheme
.labelSmall!
.decorationColor!);
color: Theme.of(context).extension<CakeMenuTheme>()!.iconColor);
return Row(
mainAxisSize: MainAxisSize.max,
@ -107,15 +100,15 @@ class MenuWidgetState extends State<MenuWidget> {
width: 4,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(2)), color: PaletteDark.gray),
)),
),
),
SizedBox(width: 12),
Expanded(
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(24), bottomLeft: Radius.circular(24)),
borderRadius:
BorderRadius.only(topLeft: Radius.circular(24), bottomLeft: Radius.circular(24)),
child: Container(
color:
Theme.of(context).textTheme!.bodyLarge!.decorationColor!,
color: Theme.of(context).extension<CakeMenuTheme>()!.backgroundColor,
child: ListView.separated(
padding: EdgeInsets.only(top: 0),
itemBuilder: (_, index) {
@ -124,14 +117,9 @@ class MenuWidgetState extends State<MenuWidget> {
height: headerHeight,
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Theme.of(context)
.accentTextTheme!
.headlineMedium!
.color!,
Theme.of(context)
.accentTextTheme!
.headlineMedium!
.decorationColor!, ], begin: Alignment.topLeft, end: Alignment.bottomRight),
Theme.of(context).extension<CakeMenuTheme>()!.headerFirstGradientColor,
Theme.of(context).extension<CakeMenuTheme>()!.headerSecondGradientColor,
], begin: Alignment.topLeft, end: Alignment.bottomRight),
),
padding: EdgeInsets.only(
left: 24, top: fromTopEdge, right: 24, bottom: fromBottomEdge),
@ -161,15 +149,16 @@ class MenuWidgetState extends State<MenuWidget> {
widget.dashboardViewModel.subname,
style: TextStyle(
color: Theme.of(context)
.accentTextTheme!
.labelSmall!
.decorationColor!,
.extension<CakeMenuTheme>()!
.subnameTextColor,
fontWeight: FontWeight.w500,
fontSize: 12),
))
),
),
],
),
))
),
),
],
),
);
@ -194,13 +183,13 @@ class MenuWidgetState extends State<MenuWidget> {
},
separatorBuilder: (_, index) => Container(
height: 1,
color: Theme.of(context)
.primaryTextTheme!
.bodySmall!
.decorationColor!,
color: Theme.of(context).extension<CakeMenuTheme>()!.dividerColor,
),
itemCount: itemCount + 1,
),
),
),
),
itemCount: itemCount + 1),
)))
],
);
}

View file

@ -1,6 +1,9 @@
import 'package:cake_wallet/buy/buy_provider_description.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/buy/get_buy_provider_icon.dart';
import 'package:cake_wallet/themes/extensions/order_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class OrderRow extends StatelessWidget {
OrderRow({
@ -20,7 +23,7 @@ class OrderRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
final iconColor =
Theme.of(context).primaryTextTheme!.displayLarge!.backgroundColor!;
Theme.of(context).extension<OrderTheme>()!.iconColor;
final providerIcon = getBuyProviderIcon(provider, iconColor: iconColor);
@ -48,14 +51,14 @@ class OrderRow extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor
)),
formattedAmount != null
? Text(formattedAmount! + ' ' + to,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor
))
: Container()
]),
@ -66,10 +69,7 @@ class OrderRow extends StatelessWidget {
Text(createdAtFormattedDate,
style: TextStyle(
fontSize: 14,
color: Theme.of(context)
.textTheme!
.labelSmall!
.backgroundColor!))
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor))
])
],
)

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/rounded_checkbox.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
@ -10,22 +11,16 @@ import 'package:cake_wallet/generated/i18n.dart';
class PresentReceiveOptionPicker extends StatelessWidget {
PresentReceiveOptionPicker(
{required this.receiveOptionViewModel, this.hasWhiteBackground = false});
{required this.receiveOptionViewModel, required this.color});
final ReceiveOptionViewModel receiveOptionViewModel;
final bool hasWhiteBackground;
final Color color;
@override
Widget build(BuildContext context) {
final textIconTheme = hasWhiteBackground
? Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!
: Colors.white;
final arrowBottom = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: textIconTheme,
color: color,
height: 6,
);
@ -51,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),
@ -113,10 +108,7 @@ class PresentReceiveOptionPicker extends StatelessWidget {
Text(option.toString(),
textAlign: TextAlign.left,
style: textSmall(
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
).copyWith(
fontWeight:
value == option ? FontWeight.w800 : FontWeight.w500,

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
import 'package:cake_wallet/core/sync_status_title.dart';
@ -32,7 +33,7 @@ class SyncIndicator extends StatelessWidget {
child: Container(
height: 30,
width: syncIndicatorWidth,
color: Theme.of(context).textTheme!.titleLarge!.decorationColor!,
color: Theme.of(context).extension<SyncIndicatorTheme>()!.notSyncedBackgroundColor,
child: Stack(
alignment: Alignment.center,
children: <Widget>[
@ -44,7 +45,7 @@ class SyncIndicator extends StatelessWidget {
child: Container(
width: indicatorWidth,
height: 30,
color: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
color: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
)
)
: Offstage(),
@ -66,7 +67,7 @@ class SyncIndicator extends StatelessWidget {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w500,
color: Theme.of(context).textTheme!.titleLarge!.color!
color: Theme.of(context).extension<SyncIndicatorTheme>()!.textColor
),
),
)

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
@ -26,7 +28,7 @@ class SyncIndicatorIcon extends StatelessWidget {
if (boolMode) {
indicatorColor = isSynced
? PaletteDark.brightGreen
: Theme.of(context).textTheme!.bodySmall!.color!;
: Theme.of(context).extension<SyncIndicatorTheme>()!.notSyncedIconColor;
} else {
switch (value.toLowerCase()) {
case waiting:
@ -34,7 +36,7 @@ class SyncIndicatorIcon extends StatelessWidget {
break;
case actionRequired:
indicatorColor =
Theme.of(context).textTheme!.displayMedium!.decorationColor!;
Theme.of(context).extension<ReceivePageTheme>()!.currentTileBackgroundColor;
break;
case created:
indicatorColor = PaletteDark.brightGreen;

View file

@ -1,6 +1,8 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:cake_wallet/exchange/exchange_provider_description.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class TradeRow extends StatelessWidget {
TradeRow({
@ -43,14 +45,14 @@ class TradeRow extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!)),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor)),
formattedAmount != null
? Text(formattedAmount! + ' ' + amountCrypto,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color:
Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!))
Theme.of(context).extension<DashboardPageTheme>()!.textColor))
: Container()
]),
SizedBox(height: 5),
@ -59,7 +61,7 @@ class TradeRow extends StatelessWidget {
Text(createdAtFormattedDate!,
style: TextStyle(
fontSize: 14,
color: Theme.of(context).textTheme!.labelSmall!.backgroundColor!))
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor))
])
],
))

View file

@ -1,5 +1,8 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
import 'package:cw_core/transaction_direction.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class TransactionRow extends StatelessWidget {
TransactionRow(
@ -35,7 +38,7 @@ class TransactionRow extends StatelessWidget {
width: 36,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context).textTheme!.labelSmall!.decorationColor!
color: Theme.of(context).extension<TransactionTradeTheme>()!.rowsColor
),
child: Image.asset(
direction == TransactionDirection.incoming
@ -54,14 +57,12 @@ class TransactionRow extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!
.displayMedium!.backgroundColor!)),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor)),
Text(formattedAmount,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).accentTextTheme!
.displayMedium!.backgroundColor!))
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor))
]),
SizedBox(height: 5),
Row(
@ -70,17 +71,11 @@ class TransactionRow extends StatelessWidget {
Text(formattedDate,
style: TextStyle(
fontSize: 14,
color: Theme.of(context)
.textTheme!
.labelSmall!
.backgroundColor!)),
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor)),
Text(formattedFiatAmount,
style: TextStyle(
fontSize: 14,
color: Theme.of(context)
.textTheme!
.labelSmall!
.backgroundColor!))
color: Theme.of(context).extension<CakeTextTheme>()!.dateSectionRowColor))
])
],
)

View file

@ -1,5 +1,6 @@
import 'package:cake_wallet/src/screens/dashboard/widgets/anonpay_transaction_row.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/order_row.dart';
import 'package:cake_wallet/themes/extensions/placeholder_theme.dart';
import 'package:cake_wallet/src/widgets/dashboard_card_widget.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/view_model/dashboard/anonpay_transaction_list_item.dart';
@ -155,10 +156,7 @@ class TransactionsPage extends StatelessWidget {
S.of(context).placeholder_transactions,
style: TextStyle(
fontSize: 14,
color: Theme.of(context)
.primaryTextTheme
.labelSmall!
.decorationColor!),
color: Theme.of(context).extension<PlaceholderTheme>()!.color),
),
);
}))

View file

@ -1,6 +1,8 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'dart:ui';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
@ -87,10 +89,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
)
],
@ -107,10 +106,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
)
],
@ -126,10 +122,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.normal,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
))
],
),
@ -146,10 +139,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
)
],
@ -167,7 +157,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
changenowUrl,
textAlign: TextAlign.left,
style: TextStyle(
color: Palette.blueCraiola,
color: Theme.of(context).primaryColor,
fontSize: 14.0,
fontWeight: FontWeight.normal,
decoration: TextDecoration.underline),
@ -193,7 +183,8 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
gradient: LinearGradient(
colors: [
Theme.of(context)
.backgroundColor
.colorScheme
.background
.withOpacity(0.0),
Theme.of(context).colorScheme.background,
],
@ -232,10 +223,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
),
decoration: BoxDecoration(
border: Border.all(
color: Theme.of(context)
.primaryTextTheme!
.bodySmall!
.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.secondaryTextColor,
width: 1.0),
borderRadius: BorderRadius.all(
Radius.circular(8.0)),
@ -253,10 +241,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
)
],
),
@ -273,14 +258,8 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
.popAndPushNamed(Routes.welcome)
: null,
text: 'Accept',
color: Theme.of(context)
.accentTextTheme!
.titleSmall!
.decorationColor!,
textColor: Theme.of(context)
.accentTextTheme!
.headlineSmall!
.decorationColor!),
color: Theme.of(context).extension<WalletListTheme>()!.createNewWalletButtonBackgroundColor,
textColor: Theme.of(context).extension<WalletListTheme>()!.restoreWalletButtonTextColor),
),
],
],

View file

@ -1,8 +1,11 @@
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/core/auth_service.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/src/screens/exchange/widgets/desktop_exchange_cards_section.dart';
import 'package:cake_wallet/src/screens/exchange/widgets/mobile_exchange_cards_section.dart';
import 'package:cake_wallet/src/widgets/add_template_button.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/debounce.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
@ -78,7 +81,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;
@ -115,7 +121,7 @@ class ExchangePage extends BasePage {
Widget? leading(BuildContext context) {
final _backButton = Icon(
Icons.arrow_back_ios,
color: titleColor,
color: titleColor(context),
size: 16,
);
final _closeButton =
@ -152,7 +158,7 @@ class ExchangePage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context).accentTextTheme.bodyLarge!.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -205,8 +211,8 @@ class ExchangePage extends BasePage {
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme.displayLarge!
.decorationColor!,
.extension<ExchangePageTheme>()!
.receiveAmountColor,
fontWeight: FontWeight.w500,
fontSize: 12),
),
@ -625,7 +631,7 @@ class ExchangePage extends BasePage {
imageArrow: arrowBottomPurple,
currencyButtonColor: Colors.transparent,
addressButtonsColor: Theme.of(context).focusColor,
borderColor: Theme.of(context).primaryTextTheme.bodyLarge!.color!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderTopPanelColor,
currencyValueValidator: (value) {
return !exchangeViewModel.isFixedRateMode
? AmountValidator(
@ -673,7 +679,7 @@ class ExchangePage extends BasePage {
imageArrow: arrowBottomCakeGreen,
currencyButtonColor: Colors.transparent,
addressButtonsColor: Theme.of(context).focusColor,
borderColor: Theme.of(context).primaryTextTheme.bodyLarge!.decorationColor!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderBottomPanelColor,
currencyValueValidator: (value) {
return exchangeViewModel.isFixedRateMode
? AmountValidator(

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/exchange/exchange_provider.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
@ -29,10 +31,10 @@ class ExchangeTemplatePage extends BasePage {
var _isReactionsSet = false;
@override
String get title => S.current.exchange_new_template;
bool get gradientAll => true;
@override
Color get titleColor => Colors.white;
String get title => S.current.exchange_new_template;
@override
bool get extendBodyBehindAppBar => true;
@ -73,10 +75,7 @@ class ExchangeTemplatePage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -101,8 +100,8 @@ class ExchangeTemplatePage extends BasePage {
),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.bodyMedium!.color!,
Theme.of(context).primaryTextTheme!.bodyMedium!.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientBottomPanelColor,
Theme.of(context).extension<ExchangePageTheme>()!.secondGradientBottomPanelColor,
],
stops: [0.35, 1.0],
begin: Alignment.topLeft,
@ -120,12 +119,8 @@ class ExchangeTemplatePage extends BasePage {
),
gradient: LinearGradient(
colors: [
Theme.of(context)
.primaryTextTheme!.titleSmall!
.color!,
Theme.of(context)
.primaryTextTheme!.titleSmall!
.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientTopPanelColor,
Theme.of(context).extension<ExchangePageTheme>()!.secondGradientTopPanelColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight),
@ -157,10 +152,8 @@ class ExchangeTemplatePage extends BasePage {
imageArrow: arrowBottomPurple,
currencyButtonColor: Colors.transparent,
addressButtonsColor:
Theme.of(context).focusColor,
borderColor: Theme.of(context)
.primaryTextTheme!.bodyLarge!
.color!,
Theme.of(context).extension<ExchangePageTheme>()!.textFieldButtonColor,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderBottomPanelColor,
currencyValueValidator: AmountValidator(
currency: exchangeViewModel.depositCurrency),
//addressTextFieldValidator: AddressValidator(
@ -197,10 +190,8 @@ class ExchangeTemplatePage extends BasePage {
imageArrow: arrowBottomCakeGreen,
currencyButtonColor: Colors.transparent,
addressButtonsColor:
Theme.of(context).focusColor,
borderColor: Theme.of(context)
.primaryTextTheme!.bodyLarge!
.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.textFieldButtonColor,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderBottomPanelColor,
currencyValueValidator: AmountValidator(
currency: exchangeViewModel.receiveCurrency),
//addressTextFieldValidator: AddressValidator(
@ -226,9 +217,7 @@ class ExchangeTemplatePage extends BasePage {
description,
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.receiveAmountColor,
fontWeight: FontWeight.w500,
fontSize: 12),
),
@ -256,7 +245,7 @@ class ExchangeTemplatePage extends BasePage {
}
},
text: S.of(context).save,
color: Colors.green,
color: Theme.of(context).primaryColor,
textColor: Colors.white),
]),
))

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
@ -20,10 +22,7 @@ class PickerItemWidget extends StatelessWidget {
return GestureDetector(
onTap: onTap,
child: Container(
color: Theme.of(context)
.accentTextTheme!
.titleLarge!
.color!,
color: Theme.of(context).dialogTheme.backgroundColor,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 24),
child: Row(
@ -44,10 +43,7 @@ class PickerItemWidget extends StatelessWidget {
style: TextStyle(
color: isSelected
? Palette.blueCraiola
: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!,
: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
fontSize: isSelected ? 16 : 14.0,
fontFamily: 'Lato',
fontWeight: FontWeight.w600,
@ -65,19 +61,13 @@ class PickerItemWidget extends StatelessWidget {
style: TextStyle(
fontSize: 7.0,
fontFamily: 'Lato',
color: Theme.of(context)
.textTheme!
.bodyMedium!
.color!),
color: Theme.of(context).extension<CakeScrollbarTheme>()!.thumbColor),
),
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
//border: Border.all(color: ),
color: Theme.of(context)
.textTheme!
.bodyMedium!
.decorationColor!,
color: Theme.of(context).extension<CakeScrollbarTheme>()!.trackColor,
),
),
),
@ -86,10 +76,7 @@ class PickerItemWidget extends StatelessWidget {
),
if (isSelected)
Icon(Icons.check_circle,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!)
color: Theme.of(context).primaryColor)
],
),
),

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
import 'package:cw_core/currency.dart';
import 'package:flutter/material.dart';
import 'currency_picker_item_widget.dart';
@ -20,10 +21,7 @@ class CurrencyPickerWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Theme.of(context)
.accentTextTheme!
.titleLarge!
.backgroundColor!,
color: Theme.of(context).extension<PickerTheme>()!.dividerColor,
child: Scrollbar(
controller: _scrollController,
child: GridView.builder(

View file

@ -1,6 +1,8 @@
import 'package:cake_wallet/entities/contact_base.dart';
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/utils/payment_request.dart';
@ -12,6 +14,7 @@ import 'package:cw_core/crypto_currency.dart';
import 'package:cake_wallet/src/widgets/address_text_field.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/send_page_theme.dart';
class ExchangeCard extends StatefulWidget {
ExchangeCard(
@ -160,7 +163,7 @@ class ExchangeCardState extends State<ExchangeCard> {
final copyImage = Image.asset('assets/images/copy_content.png',
height: 16,
width: 16,
color: Theme.of(context).primaryTextTheme!.displaySmall!.color!);
color: Theme.of(context).extension<SendPageTheme>()!.estimatedFeeColor);
return Container(
width: double.infinity,
@ -175,7 +178,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: Theme.of(context).textTheme!.headlineSmall!.color!),
color: Theme.of(context).extension<QRCodeTheme>()!.qrCodeColor),
)
],
),
@ -211,10 +214,7 @@ class ExchangeCardState extends State<ExchangeCard> {
height: 32,
decoration: BoxDecoration(
color: widget.addressButtonsColor ??
Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.color!,
Theme.of(context).extension<SendPageTheme>()!.textFieldButtonColor,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Center(
@ -224,10 +224,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!)),
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor)),
),
),
),
@ -268,10 +265,7 @@ class ExchangeCardState extends State<ExchangeCard> {
placeholderTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor),
validator: _isAmountEditable
? widget.currencyValueValidator
: null),
@ -282,10 +276,7 @@ class ExchangeCardState extends State<ExchangeCard> {
height: 32,
width: 32,
decoration: BoxDecoration(
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonColor,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: InkWell(
@ -296,10 +287,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!)),
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor)),
),
),
)
@ -310,10 +298,7 @@ class ExchangeCardState extends State<ExchangeCard> {
)),
Divider(
height: 1,
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.decorationColor!),
color: Theme.of(context).extension<SendPageTheme>()!.textFieldHintColor),
Padding(
padding: EdgeInsets.only(top: 5),
child: Container(
@ -329,10 +314,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 10,
height: 1.2,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor),
)
: Offstage(),
_min != null ? SizedBox(width: 10) : Offstage(),
@ -344,10 +326,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 10,
height: 1.2,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!))
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor))
: Offstage(),
])),
),
@ -359,10 +338,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor),
))
: Offstage(),
_isAddressEditable
@ -400,10 +376,7 @@ class ExchangeCardState extends State<ExchangeCard> {
hintStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor),
buttonColor: widget.addressButtonsColor,
validator: widget.addressTextFieldValidator,
onPushPasteButton: widget.onPushPasteButton,
@ -472,10 +445,7 @@ class ExchangeCardState extends State<ExchangeCard> {
6))),
child: Image.asset(
'assets/images/open_book.png',
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
)),
)),
),

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:flutter/material.dart';
class MobileExchangeCardsSection extends StatelessWidget {
@ -21,8 +22,8 @@ class MobileExchangeCardsSection extends StatelessWidget {
),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.bodyMedium!.color!,
Theme.of(context).primaryTextTheme!.bodyMedium!.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientBottomPanelColor,
Theme.of(context).extension<ExchangePageTheme>()!.secondGradientBottomPanelColor,
],
stops: [0.35, 1.0],
begin: Alignment.topLeft,
@ -37,11 +38,8 @@ class MobileExchangeCardsSection extends StatelessWidget {
bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleSmall!.color!,
Theme.of(context)
.primaryTextTheme!
.titleSmall!
.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientTopPanelColor,
Theme.of(context).extension<ExchangePageTheme>()!.secondGradientTopPanelColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
import 'package:cake_wallet/src/widgets/check_box_picker.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
@ -49,10 +50,7 @@ class PresentProviderPicker extends StatelessWidget {
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.textTheme!
.headlineSmall!
.color!)))
color: Theme.of(context).extension<QRCodeTheme>()!.qrCodeColor)))
],
),
SizedBox(width: 5),

View file

@ -1,5 +1,7 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/exchange/exchange_provider_description.dart';
import 'package:cake_wallet/store/dashboard/trades_store.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
@ -9,6 +11,7 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/exchange/trade.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class ExchangeConfirmPage extends BasePage {
ExchangeConfirmPage({required this.tradesStore}) : trade = tradesStore.trade!;
@ -36,10 +39,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
)),
Container(
@ -48,14 +48,8 @@ class ExchangeConfirmPage extends BasePage {
borderRadius: BorderRadius.all(Radius.circular(30)),
border: Border.all(
width: 1,
color: Theme.of(context)
.accentTextTheme!
.bodySmall!
.color!),
color: Theme.of(context)
.accentTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).cardColor),
color: Theme.of(context).dialogTheme.backgroundColor),
child: Column(
children: <Widget>[
Expanded(
@ -70,10 +64,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.labelSmall!
.color!),
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor),
),
Text(
trade.id,
@ -82,10 +73,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
],
),
@ -100,14 +88,8 @@ class ExchangeConfirmPage extends BasePage {
context, S.of(context).copied_to_clipboard);
},
text: S.of(context).copy_id,
color: Theme.of(context)
.accentTextTheme!
.bodySmall!
.backgroundColor!,
textColor: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<ExchangePageTheme>()!.buttonBackgroundColor,
textColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
)
],
@ -136,10 +118,7 @@ class ExchangeConfirmPage extends BasePage {
onPressed: () => Navigator.of(context)
.pushReplacementNamed(Routes.exchangeTrade),
text: S.of(context).saved_the_trade_id,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white)
],
),

View file

@ -1,4 +1,6 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'dart:ui';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/utils/request_review_handler.dart';
import 'package:mobx/mobx.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -20,6 +22,7 @@ import 'package:cake_wallet/src/screens/exchange_trade/widgets/timer_widget.dart
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
void showInformation(
ExchangeTradeViewModel exchangeTradeViewModel, BuildContext context) {
@ -51,7 +54,7 @@ class ExchangeTradePage extends BasePage {
@override
Widget trailing(BuildContext context) {
final questionImage = Image.asset('assets/images/question_mark.png',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!);
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor);
return SizedBox(
height: 20.0,
@ -111,7 +114,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
final copyImage = Image.asset('assets/images/copy_content.png',
height: 16,
width: 16,
color: Theme.of(context).primaryTextTheme!.labelSmall!.color!);
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor);
_setEffects();
@ -133,17 +136,11 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.labelSmall!
.color!),
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor),
),
if (trade.expiredAt != null)
TimerWidget(trade.expiredAt!,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!)
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor)
])
: Offstage(),
Padding(
@ -160,10 +157,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
decoration: BoxDecoration(
border: Border.all(
width: 3,
color: Theme.of(context)
.accentTextTheme!
.titleSmall!
.color!
color: Theme.of(context).extension<ExchangePageTheme>()!.qrCodeColor
)
),
child: QrImage(data: trade.inputAddress ?? fetchingLabel),
@ -179,10 +173,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
itemCount: widget.exchangeTradeViewModel.items.length,
separatorBuilder: (context, index) => Container(
height: 1,
color: Theme.of(context)
.accentTextTheme!
.titleSmall!
.backgroundColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.dividerCodeColor,
),
itemBuilder: (context, index) {
final item = widget.exchangeTradeViewModel.items[index];
@ -228,10 +219,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
onPressed: () =>
widget.exchangeTradeViewModel.confirmSending(),
text: S.of(context).confirm,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white)
: Offstage();
})),
@ -321,7 +309,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
return Stack(
children: <Widget>[
Container(
color: Theme.of(popupContext).backgroundColor,
color: Theme.of(popupContext).colorScheme.background,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
@ -341,10 +329,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(popupContext)
.primaryTextTheme!
.titleLarge!
.color,
color: Theme.of(popupContext).extension<CakeTextTheme>()!.titleColor,
decoration: TextDecoration.none,
),
),
@ -360,10 +345,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
RequestReviewHandler.requestReview();
},
text: S.of(popupContext).got_it,
color: Theme.of(popupContext)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(popupContext).primaryColor,
textColor: Colors.white))
],
);
@ -372,7 +354,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
return Stack(
children: <Widget>[
Container(
color: Theme.of(popupContext).backgroundColor,
color: Theme.of(popupContext).colorScheme.background,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
@ -384,7 +366,8 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
child: Container(
decoration: BoxDecoration(
color: Theme.of(popupContext)
.backgroundColor
.colorScheme
.background
.withOpacity(0.25)),
child: Center(
child: Padding(
@ -395,10 +378,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Theme.of(popupContext)
.primaryTextTheme!
.titleLarge!
.color!,
color: Theme.of(popupContext).extension<CakeTextTheme>()!.titleColor,
decoration: TextDecoration.none,
),
),

View file

@ -1,9 +1,13 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'dart:ui';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/info_theme.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
class InformationPage extends StatelessWidget {
InformationPage({required this.information});
@ -21,7 +25,7 @@ class InformationPage extends StatelessWidget {
),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(30)),
color: Theme.of(context).textTheme!.bodyLarge!.decorationColor!
color: Theme.of(context).extension<CakeMenuTheme>()!.backgroundColor
),
child: Column(
mainAxisSize: MainAxisSize.min,
@ -36,7 +40,7 @@ class InformationPage extends StatelessWidget {
fontWeight: FontWeight.normal,
fontFamily: 'Lato',
decoration: TextDecoration.none,
color: Theme.of(context).accentTextTheme!.bodySmall!.decorationColor!
color: Theme.of(context).extension<InfoTheme>()!.textColor
),
),
),
@ -45,8 +49,8 @@ class InformationPage extends StatelessWidget {
child: PrimaryButton(
onPressed: () => Navigator.of(context).pop(),
text: S.of(context).got_it,
color: Theme.of(context).accentTextTheme!.bodySmall!.backgroundColor!,
textColor: Theme.of(context).primaryTextTheme!.titleLarge!.color!
color: Theme.of(context).extension<ExchangePageTheme>()!.buttonBackgroundColor,
textColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor
),
)
],

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
@ -26,12 +27,12 @@ class FAQItemState extends State<FAQItem> {
@override
Widget build(BuildContext context) {
final addIcon = Icon(Icons.add,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!);
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor);
final removeIcon = Icon(Icons.remove, color: Palette.blueCraiola);
final icon = isActive ? removeIcon : addIcon;
final color = isActive
? Palette.blueCraiola
: Theme.of(context).primaryTextTheme!.titleLarge!.color!;
: Theme.of(context).extension<CakeTextTheme>()!.titleColor;
return ListTileTheme(
contentPadding: EdgeInsets.fromLTRB(0, 6, 24, 6),
@ -54,7 +55,7 @@ class FAQItemState extends State<FAQItem> {
fontSize: 14,
fontWeight: FontWeight.normal,
color:
Theme.of(context).primaryTextTheme!.titleLarge!.color!),
Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
))
])

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/core/email_validator.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/routes.dart';
@ -40,10 +41,7 @@ class IoniaCreateAccountPage extends BasePage {
return Text(
S.current.sign_up,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -84,10 +82,7 @@ class IoniaCreateAccountPage extends BasePage {
onPressed: _createAccount,
isLoading:
_authViewModel.createUserState is IoniaCreateStateLoading,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),
@ -107,10 +102,7 @@ class IoniaCreateAccountPage extends BasePage {
TextSpan(
text: S.of(context).settings_terms_and_conditions,
style: TextStyle(
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
fontWeight: FontWeight.w700,
),
recognizer: TapGestureRecognizer()
@ -122,10 +114,7 @@ class IoniaCreateAccountPage extends BasePage {
TextSpan(
text: S.of(context).privacy_policy,
style: TextStyle(
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
fontWeight: FontWeight.w700,
),
recognizer: TapGestureRecognizer()

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/core/email_validator.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
@ -33,10 +34,7 @@ class IoniaLoginPage extends BasePage {
return Text(
S.current.login,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -74,10 +72,7 @@ class IoniaLoginPage extends BasePage {
text: S.of(context).login,
onPressed: _login,
isLoading: _authViewModel.signInState is IoniaCreateStateLoading,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/routes.dart';
@ -41,10 +43,7 @@ class IoniaVerifyIoniaOtp extends BasePage {
return Text(
S.current.verification,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -65,10 +64,7 @@ class IoniaVerifyIoniaOtp extends BasePage {
return KeyboardActions(
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -126,10 +122,7 @@ class IoniaVerifyIoniaOtp extends BasePage {
onPressed: _verify,
isDisabled: _authViewModel.otpState is IoniaOtpSendDisabled,
isLoading: _authViewModel.otpState is IoniaOtpValidating,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
@ -14,10 +15,7 @@ class IoniaWelcomePage extends BasePage {
return Text(
S.current.welcome_to_cakepay,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -38,7 +36,7 @@ class IoniaWelcomePage extends BasePage {
fontSize: 18,
fontWeight: FontWeight.w400,
fontFamily: 'Lato',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
SizedBox(height: 20),
@ -48,7 +46,7 @@ class IoniaWelcomePage extends BasePage {
fontSize: 18,
fontWeight: FontWeight.w400,
fontFamily: 'Lato',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
],
@ -59,10 +57,7 @@ class IoniaWelcomePage extends BasePage {
PrimaryButton(
text: S.of(context).create_account,
onPressed: () => Navigator.of(context).pushNamed(Routes.ioniaCreateAccountPage),
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
SizedBox(
@ -74,7 +69,7 @@ class IoniaWelcomePage extends BasePage {
fontSize: 15,
fontWeight: FontWeight.w500,
fontFamily: 'Lato',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
SizedBox(height: 8),

View file

@ -1,14 +1,19 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/ionia/ionia_gift_card.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_item.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/order_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/view_model/ionia/ionia_account_view_model.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class IoniaAccountCardsPage extends BasePage {
IoniaAccountCardsPage(this.ioniaAccountViewModel);
@ -20,10 +25,7 @@ class IoniaAccountCardsPage extends BasePage {
return Text(
S.of(context).cards,
style: textLargeSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -72,10 +74,7 @@ class _IoniaCardTabsState extends State<_IoniaCardTabs> with SingleTickerProvide
width: 230,
padding: EdgeInsets.all(5),
decoration: BoxDecoration(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor
.withOpacity(0.1),
borderRadius: BorderRadius.circular(
25.0,
@ -89,17 +88,11 @@ class _IoniaCardTabsState extends State<_IoniaCardTabs> with SingleTickerProvide
borderRadius: BorderRadius.circular(
25.0,
),
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
),
labelColor: Theme.of(context)
.primaryTextTheme!
.displayLarge!
.backgroundColor!,
labelColor: Theme.of(context).extension<OrderTheme>()!.iconColor,
unselectedLabelColor:
Theme.of(context).primaryTextTheme!.titleLarge!.color!,
Theme.of(context).extension<CakeTextTheme>()!.titleColor,
tabs: [
Tab(
text: S.of(context).active,
@ -169,12 +162,9 @@ class _IoniaCardListView extends StatelessWidget {
if(isLoading){
return Center(
child: CircularProgressIndicator(
backgroundColor: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
backgroundColor: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
valueColor: AlwaysStoppedAnimation<Color>(
Theme.of(context).primaryTextTheme!.bodyMedium!.color!),
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientBottomPanelColor),
),
);
}
@ -184,7 +174,7 @@ class _IoniaCardListView extends StatelessWidget {
emptyText,
textAlign: TextAlign.center,
style: textSmall(
color: Theme.of(context).primaryTextTheme!.labelSmall!.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
),
),
)
@ -197,18 +187,12 @@ class _IoniaCardListView extends StatelessWidget {
child: CardItem(
onTap: () => onTap?.call(merchant),
title: merchant.legalName,
backgroundColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!
backgroundColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor
.withOpacity(0.1),
discount: 0,
hideBorder: true,
discountBackground: AssetImage('assets/images/red_badge_discount.png'),
titleColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
titleColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
subtitleColor: Theme.of(context).hintColor,
subTitle: '',
logoUrl: merchant.logoUrl,

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/generated/i18n.dart';
@ -8,6 +9,7 @@ import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/view_model/ionia/ionia_account_view_model.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class IoniaAccountPage extends BasePage {
IoniaAccountPage(this.ioniaAccountViewModel);
@ -19,10 +21,7 @@ class IoniaAccountPage extends BasePage {
return Text(
S.current.account,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -136,10 +135,7 @@ class IoniaAccountPage extends BasePage {
bottomSection: Column(
children: [
PrimaryButton(
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
text: S.of(context).logout,
onPressed: () {
@ -170,8 +166,8 @@ class _GradiantContainer extends StatelessWidget {
borderRadius: BorderRadius.circular(15),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.decorationColor!,
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,

View file

@ -1,3 +1,4 @@
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
@ -23,10 +24,7 @@ class IoniaActivateDebitCardPage extends BasePage {
return Text(
S.current.debit_card,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -79,10 +77,7 @@ class IoniaActivateDebitCardPage extends BasePage {
},
isLoading: _cardsListViewModel.createCardState is IoniaCreateCardLoading,
text: S.of(context).agree_and_continue,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
);

View file

@ -1,4 +1,6 @@
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_merchant.dart';
import 'package:cake_wallet/ionia/ionia_tip.dart';
import 'package:cake_wallet/palette.dart';
@ -9,6 +11,7 @@ import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
import 'package:cake_wallet/src/widgets/discount_badge.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/ionia/ionia_purchase_merch_view_model.dart';
@ -18,6 +21,8 @@ import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class IoniaBuyGiftCardDetailPage extends BasePage {
IoniaBuyGiftCardDetailPage(this.ioniaPurchaseViewModel);
@ -28,7 +33,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
Widget middle(BuildContext context) {
return Text(
ioniaPurchaseViewModel.ioniaMerchant.legalName,
style: textMediumSemiBold(color: Theme.of(context).accentTextTheme!.displayLarge!.backgroundColor!),
style: textMediumSemiBold(color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
);
}
@ -96,8 +101,8 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
borderRadius: BorderRadius.circular(20),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context).primaryTextTheme!.titleMedium!.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
@ -163,7 +168,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
Text(
S.of(context).tip,
style: TextStyle(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
fontWeight: FontWeight.w700,
fontSize: 14,
),
@ -202,7 +207,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
ioniaPurchaseViewModel.invoiceCommittingState is IsExecutingState,
onPressed: () => purchaseCard(context),
text: S.of(context).purchase_gift_card,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
);
}),
@ -212,7 +217,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
onTap: () => _showTermsAndCondition(context),
child: Text(S.of(context).settings_terms_and_conditions,
style: textMediumSemiBold(
color: Theme.of(context).primaryTextTheme.bodyMedium!.color!,
color: Theme.of(context).extension<ExchangePageTheme>()!.firstGradientBottomPanelColor,
).copyWith(fontSize: 12)),
),
SizedBox(height: 16)
@ -232,7 +237,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
child: Text(
ioniaPurchaseViewModel.ioniaMerchant.termsAndConditions,
style: textMedium(
color: Theme.of(context).textTheme!.displaySmall!.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
),
),
@ -270,13 +275,13 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
child: Text(
instruction.header,
style: textLargeSemiBold(
color: Theme.of(context).textTheme!.displaySmall!.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
)),
Text(
instruction.body,
style: textMedium(
color: Theme.of(context).textTheme!.displaySmall!.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
)
];
@ -323,7 +328,7 @@ class IoniaBuyGiftCardDetailPage extends BasePage {
alertLeftActionButtonTextColor: Colors.white,
alertRightActionButtonTextColor: Colors.white,
alertLeftActionButtonColor: Palette.brightOrange,
alertRightActionButtonColor: Theme.of(context).textTheme!.titleSmall!.color,
alertRightActionButtonColor: Theme.of(context).primaryColor,
actionRightButton: () async {
Navigator.of(context).pop();
await ioniaPurchaseViewModel.commitPaymentInvoice();
@ -399,34 +404,34 @@ class TipButton extends StatelessWidget {
Color captionTextColor(BuildContext context) {
if (isDark(context)) {
return Theme.of(context).primaryTextTheme!.titleLarge!.color!;
return Theme.of(context).extension<CakeTextTheme>()!.titleColor;
}
return isSelected
? Theme.of(context).accentTextTheme!.titleLarge!.color!
: Theme.of(context).primaryTextTheme!.titleLarge!.color!;
? Theme.of(context).dialogTheme.backgroundColor!
: Theme.of(context).extension<CakeTextTheme>()!.titleColor;
}
Color subTitleTextColor(BuildContext context) {
if (isDark(context)) {
return Theme.of(context).primaryTextTheme!.titleLarge!.color!;
return Theme.of(context).extension<CakeTextTheme>()!.titleColor;
}
return isSelected
? Theme.of(context).accentTextTheme!.titleLarge!.color!
: Theme.of(context).primaryTextTheme!.labelSmall!.color!;
? Theme.of(context).dialogTheme.backgroundColor!
: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor;
}
Color? backgroundColor(BuildContext context) {
if (isDark(context)) {
return isSelected
? null
: Theme.of(context).accentTextTheme!.displayLarge!.backgroundColor!.withOpacity(0.01);
: Theme.of(context).extension<CakeTextTheme>()!.titleColor.withOpacity(0.01);
}
return isSelected
? null
: Theme.of(context).accentTextTheme!.displayLarge!.backgroundColor!.withOpacity(0.1);
: Theme.of(context).extension<CakeTextTheme>()!.titleColor.withOpacity(0.1);
}
@override
@ -459,8 +464,8 @@ class TipButton extends StatelessWidget {
gradient: isSelected
? LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context).primaryTextTheme!.titleMedium!.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_item.dart';
@ -13,6 +15,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class IoniaBuyGiftCardPage extends BasePage {
IoniaBuyGiftCardPage(
@ -29,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;
@ -50,10 +50,7 @@ class IoniaBuyGiftCardPage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -75,11 +72,8 @@ class IoniaBuyGiftCardPage extends BasePage {
bottomRight: Radius.circular(24),
),
gradient: LinearGradient(colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context)
.primaryTextTheme!
.titleMedium!
.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
], begin: Alignment.topLeft, end: Alignment.bottomRight),
),
child: Column(
@ -101,10 +95,7 @@ class IoniaBuyGiftCardPage extends BasePage {
],
hintText: '1000',
placeholderTextStyle: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
fontWeight: FontWeight.w600,
fontSize: 36,
),
@ -124,10 +115,7 @@ class IoniaBuyGiftCardPage extends BasePage {
),
),
Divider(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
height: 1,
),
SizedBox(height: 8),
@ -138,19 +126,13 @@ class IoniaBuyGiftCardPage extends BasePage {
Text(
S.of(context).min_amount(merchant.minimumCardPurchase.toStringAsFixed(2)),
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
),
),
Text(
S.of(context).max_amount(merchant.maximumCardPurchase.toStringAsFixed(2)),
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
),
),
],
@ -163,16 +145,10 @@ class IoniaBuyGiftCardPage extends BasePage {
padding: const EdgeInsets.all(24.0),
child: CardItem(
title: merchant.legalName,
backgroundColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!
backgroundColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor
.withOpacity(0.1),
discount: merchant.discount,
titleColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
titleColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
subtitleColor: Theme.of(context).hintColor,
subTitle: merchant.avaibilityStatus,
logoUrl: merchant.logoUrl,
@ -195,10 +171,7 @@ class IoniaBuyGiftCardPage extends BasePage {
),
text: S.of(context).continue_text,
isDisabled: !ioniaBuyCardViewModel.isEnablePurchase,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
);

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_item.dart';
@ -12,6 +14,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class IoniaCustomRedeemPage extends BasePage {
IoniaCustomRedeemPage(
@ -28,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;
@ -50,10 +50,7 @@ class IoniaCustomRedeemPage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -73,11 +70,8 @@ class IoniaCustomRedeemPage extends BasePage {
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)),
gradient: LinearGradient(colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context)
.primaryTextTheme!
.titleMedium!
.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
], begin: Alignment.topLeft, end: Alignment.bottomRight),
),
child: Column(
@ -92,17 +86,11 @@ class IoniaCustomRedeemPage extends BasePage {
inputFormatters: [FilteringTextInputFormatter.deny(RegExp('[\-|\ ]'))],
hintText: '1000',
placeholderTextStyle: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
fontWeight: FontWeight.w500,
fontSize: 36,
),
borderColor: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
borderColor: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
textColor: Colors.white,
textStyle: TextStyle(
color: Colors.white,
@ -133,10 +121,7 @@ class IoniaCustomRedeemPage extends BasePage {
child: Text(
'\$${giftCard.remainingAmount} - \$${ioniaCustomRedeemViewModel.amount} = \$${ioniaCustomRedeemViewModel.formattedRemaining} ${S.of(context).remaining}',
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
),
),
)
@ -150,18 +135,12 @@ class IoniaCustomRedeemPage extends BasePage {
padding: const EdgeInsets.all(24.0),
child: CardItem(
title: giftCard.legalName,
backgroundColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!
backgroundColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor
.withOpacity(0.1),
discount: giftCard.remainingAmount,
isAmount: true,
discountBackground: AssetImage('assets/images/red_badge_discount.png'),
titleColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
titleColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
subtitleColor: Theme.of(context).hintColor,
subTitle: S.of(context).online,
logoUrl: giftCard.logoUrl,
@ -178,10 +157,7 @@ class IoniaCustomRedeemPage extends BasePage {
isLoading: ioniaCustomRedeemViewModel.redeemState is IsExecutingState,
isDisabled: ioniaCustomRedeemViewModel.disableRedeem,
text: S.of(context).add_custom_redemption,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
onPressed: () => ioniaCustomRedeemViewModel.addCustomRedeem().then((value) {
Navigator.of(context).pop(ioniaCustomRedeemViewModel.remaining.toString());

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_merchant.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_item.dart';
@ -12,6 +14,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class IoniaCustomTipPage extends BasePage {
IoniaCustomTipPage(
@ -29,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;
@ -51,10 +51,7 @@ class IoniaCustomTipPage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -73,11 +70,8 @@ class IoniaCustomTipPage extends BasePage {
decoration: BoxDecoration(
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)),
gradient: LinearGradient(colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context)
.primaryTextTheme!
.titleMedium!
.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
], begin: Alignment.topLeft, end: Alignment.bottomRight),
),
child: Column(
@ -92,17 +86,11 @@ class IoniaCustomTipPage extends BasePage {
inputFormatters: [FilteringTextInputFormatter.deny(RegExp('[\-|\ ]'))],
hintText: '1000',
placeholderTextStyle: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
fontWeight: FontWeight.w500,
fontSize: 36,
),
borderColor: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
borderColor: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
textColor: Colors.white,
textStyle: TextStyle(
color: Colors.white,
@ -137,10 +125,7 @@ class IoniaCustomTipPage extends BasePage {
text: TextSpan(
text: '\$${_amountController.text}',
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.headlineSmall!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
),
children: [
TextSpan(text: ' ${S.of(context).is_percentage} '),
@ -158,16 +143,10 @@ class IoniaCustomTipPage extends BasePage {
padding: const EdgeInsets.all(24.0),
child: CardItem(
title: merchant.legalName,
backgroundColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!
backgroundColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor
.withOpacity(0.1),
discount: 0.0,
titleColor: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
titleColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
subtitleColor: Theme.of(context).hintColor,
subTitle: merchant.isOnline ? S.of(context).online : S.of(context).offline,
logoUrl: merchant.logoUrl,
@ -184,10 +163,7 @@ class IoniaCustomTipPage extends BasePage {
Navigator.of(context).pop(customTipViewModel.customTip);
},
text: S.of(context).add_tip,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
),

View file

@ -1,4 +1,6 @@
import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_virtual_card.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
@ -6,12 +8,14 @@ import 'package:cake_wallet/src/screens/ionia/widgets/text_icon_button.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class IoniaDebitCardPage extends BasePage {
final IoniaGiftCardsListViewModel _cardsListViewModel;
@ -23,10 +27,7 @@ class IoniaDebitCardPage extends BasePage {
return Text(
S.current.debit_card,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -55,10 +56,7 @@ class IoniaDebitCardPage extends BasePage {
child: Text(
S.of(context).billing_address_info,
style: textSmall(
color: Theme.of(context)
.textTheme!
.headlineMedium!
.color!),
color: Theme.of(context).extension<ReceivePageTheme>()!.iconsColor),
textAlign: TextAlign.center,
),
),
@ -67,16 +65,13 @@ class IoniaDebitCardPage extends BasePage {
text: S.of(context).order_physical_card,
onPressed: () {},
color: Color(0xffE9F2FC),
textColor: Theme.of(context).textTheme!.displaySmall!.color!,
textColor: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
SizedBox(height: 8),
PrimaryButton(
text: S.of(context).add_value,
onPressed: () {},
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
SizedBox(height: 16)
@ -124,15 +119,12 @@ class IoniaDebitCardPage extends BasePage {
text: S.of(context).get_a,
style: textMedium(
color:
Theme.of(context).textTheme!.displaySmall!.color!),
Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor),
children: [
TextSpan(
text: S.of(context).digital_and_physical_card,
style: textMediumBold(
color: Theme.of(context)
.textTheme!
.displaySmall!
.color!),
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor),
),
TextSpan(
text: S.of(context).get_card_note,
@ -150,10 +142,7 @@ class IoniaDebitCardPage extends BasePage {
bottomSection: PrimaryButton(
text: S.of(context).activate,
onPressed: () => _showHowToUseCard(context, activate: true),
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
);
@ -185,7 +174,7 @@ class IoniaDebitCardPage extends BasePage {
S.of(context).how_to_use_card,
style: textLargeSemiBold(
color:
Theme.of(context).textTheme!.bodyMedium!.color!,
Theme.of(context).extension<CakeScrollbarTheme>()!.thumbColor,
),
),
SizedBox(height: 24),
@ -194,10 +183,7 @@ class IoniaDebitCardPage extends BasePage {
child: Text(
S.of(context).signup_for_card_accept_terms,
style: textSmallSemiBold(
color: Theme.of(context)
.textTheme!
.displaySmall!
.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
),
),
@ -219,7 +205,7 @@ class IoniaDebitCardPage extends BasePage {
text: S.of(context).got_it,
color: Color.fromRGBO(233, 242, 252, 1),
textColor:
Theme.of(context).textTheme!.displaySmall!.color!,
Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
SizedBox(height: 21),
],
@ -283,8 +269,8 @@ class _IoniaDebitCardState extends State<_IoniaDebitCard> {
borderRadius: BorderRadius.circular(24),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleMedium!.color!,
Theme.of(context).primaryTextTheme!.titleMedium!.decorationColor!,
Theme.of(context).extension<SendPageTheme>()!.firstGradientColor,
Theme.of(context).extension<SendPageTheme>()!.secondGradientColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
@ -393,13 +379,13 @@ class _TitleSubtitleTile extends StatelessWidget {
Text(
title,
style: textSmallSemiBold(
color: Theme.of(context).textTheme!.displaySmall!.color!),
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor),
),
SizedBox(height: 4),
Text(
subtitle,
style: textSmall(
color: Theme.of(context).textTheme!.displaySmall!.color!),
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor),
),
],
);

View file

@ -1,4 +1,6 @@
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/ionia/ionia_gift_card.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
@ -33,7 +35,7 @@ class IoniaGiftCardDetailPage extends BasePage {
final _backButton = Icon(
Icons.arrow_back_ios,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
size: 16,
);
return Padding(
@ -60,10 +62,7 @@ class IoniaGiftCardDetailPage extends BasePage {
return Text(
viewModel.giftCard.legalName,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
);
}
@ -145,8 +144,8 @@ class IoniaGiftCardDetailPage extends BasePage {
viewModel.refeshCard();
},
text: S.of(context).more_options,
color: Theme.of(context).accentTextTheme!.bodySmall!.color!,
textColor: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).cardColor,
textColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
SizedBox(height: 12),
LoadingPrimaryButton(
@ -158,7 +157,7 @@ class IoniaGiftCardDetailPage extends BasePage {
},
),
text: S.of(context).mark_as_redeemed,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
],
@ -201,13 +200,13 @@ class IoniaGiftCardDetailPage extends BasePage {
child: Text(
instruction.header,
style: textLargeSemiBold(
color: Theme.of(context).textTheme!.displaySmall!.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
)),
Text(
instruction.body,
style: textMedium(
color: Theme.of(context).textTheme!.displaySmall!.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor,
),
)
];

View file

@ -2,10 +2,13 @@ import 'package:cake_wallet/ionia/ionia_create_state.dart';
import 'package:cake_wallet/ionia/ionia_merchant.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_item.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/card_menu.dart';
import 'package:cake_wallet/src/screens/ionia/widgets/ionia_filter_modal.dart';
import 'package:cake_wallet/src/widgets/cake_scrollbar.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/debounce.dart';
import 'package:cake_wallet/typography.dart';
@ -15,6 +18,9 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
class IoniaManageCardsPage extends BasePage {
IoniaManageCardsPage(this._cardsListViewModel): searchFocusNode = FocusNode() {
@ -36,29 +42,12 @@ class IoniaManageCardsPage extends BasePage {
final _searchController = TextEditingController();
@override
Color get backgroundLightColor => currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
bool get gradientBackground => true;
@override
Color get backgroundDarkColor => Colors.transparent;
@override
Color get titleColor => currentTheme.type == ThemeType.bright ? Colors.white : Colors.black;
@override
Widget Function(BuildContext, Widget) get rootWrapper => (BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,
),
),
child: scaffold,
);
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) =>
GradientBackground(scaffold: scaffold);
@override
bool get resizeToAvoidBottomInset => false;
@ -71,10 +60,7 @@ class IoniaManageCardsPage extends BasePage {
return Text(
S.of(context).gift_cards,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
);
}
@ -100,7 +86,7 @@ class IoniaManageCardsPage extends BasePage {
width: 32,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
color: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
border: Border.all(
color: Colors.white.withOpacity(0.2),
),
@ -108,7 +94,7 @@ class IoniaManageCardsPage extends BasePage {
),
child: Image.asset(
'assets/images/filter.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
color: Theme.of(context).extension<FilterTheme>()!.iconColor,
),
)),
);
@ -208,9 +194,9 @@ class _IoniaManageCardsPageBodyState extends State<IoniaManageCardsPageBody> {
},
title: merchant.legalName,
subTitle: merchant.avaibilityStatus,
backgroundColor: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
titleColor: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
subtitleColor: Theme.of(context).accentTextTheme!.displaySmall!.backgroundColor!,
backgroundColor: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
titleColor: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
subtitleColor: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor,
discount: merchant.discount,
);
},
@ -221,8 +207,8 @@ class _IoniaManageCardsPageBodyState extends State<IoniaManageCardsPageBody> {
thumbHeight: thumbHeight,
rightOffset: 1,
width: 3,
backgroundColor: Theme.of(context).textTheme!.bodySmall!.decorationColor!.withOpacity(0.05),
thumbColor: Theme.of(context).textTheme!.bodySmall!.decorationColor!.withOpacity(0.5),
backgroundColor: Theme.of(context).extension<FilterTheme>()!.iconColor.withOpacity(0.05),
thumbColor: Theme.of(context).extension<FilterTheme>()!.iconColor.withOpacity(0.5),
fromTop: widget.cardsListViewModel.scrollOffsetFromTop,
)
: Offstage()
@ -230,8 +216,8 @@ class _IoniaManageCardsPageBodyState extends State<IoniaManageCardsPageBody> {
}
return Center(
child: CircularProgressIndicator(
backgroundColor: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
valueColor: AlwaysStoppedAnimation<Color>(Theme.of(context).primaryTextTheme!.bodyMedium!.color!),
backgroundColor: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
valueColor: AlwaysStoppedAnimation<Color>(Theme.of(context).extension<ExchangePageTheme>()!.firstGradientBottomPanelColor),
),
);
}
@ -254,14 +240,14 @@ class _SearchWidget extends StatelessWidget {
padding: EdgeInsets.all(8),
child: Image.asset(
'assets/images/mini_search_icon.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
color: Theme.of(context).extension<FilterTheme>()!.iconColor,
),
),
);
return TextField(
focusNode: focusNode,
style: TextStyle(color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!),
style: TextStyle(color: Theme.of(context).extension<DashboardPageTheme>()!.textColor),
controller: controller,
decoration: InputDecoration(
filled: true,
@ -269,10 +255,10 @@ class _SearchWidget extends StatelessWidget {
top: 10,
left: 10,
),
fillColor: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
fillColor: Theme.of(context).extension<SyncIndicatorTheme>()!.syncedBackgroundColor,
hintText: S.of(context).search,
hintStyle: TextStyle(
color: Theme.of(context).accentTextTheme!.displaySmall!.backgroundColor!,
color: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor,
),
alignLabelWithHint: true,
floatingLabelBehavior: FloatingLabelBehavior.never,
@ -318,8 +304,7 @@ class _TrailingIcon extends StatelessWidget {
onPressed: onPressed,
icon: Image.asset(
asset,
color:
Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
),

View file

@ -1,7 +1,9 @@
import 'package:cake_wallet/ionia/ionia_gift_card.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:flutter/material.dart';
@ -15,10 +17,7 @@ class IoniaMoreOptionsPage extends BasePage {
return Text(
S.current.more_options,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
);
}
@ -37,7 +36,7 @@ class IoniaMoreOptionsPage extends BasePage {
child: Text(
S.of(context).choose_from_available_options,
style: textMedium(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
),
@ -80,8 +79,8 @@ class _GradiantContainer extends StatelessWidget {
borderRadius: BorderRadius.circular(15),
gradient: LinearGradient(
colors: [
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).colorScheme.secondary,
Theme.of(context).extension<DashboardPageTheme>()!.secondGradientBackgroundColor,
Theme.of(context).extension<DashboardPageTheme>()!.firstGradientBackgroundColor,
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/ionia/ionia_gift_card.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
@ -11,6 +12,7 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class IoniaPaymentStatusPage extends BasePage {
IoniaPaymentStatusPage(this.viewModel);
@ -23,10 +25,7 @@ class IoniaPaymentStatusPage extends BasePage {
S.of(context).generating_gift_card,
textAlign: TextAlign.center,
style: textMediumSemiBold(
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.backgroundColor!));
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor));
}
@override
@ -93,7 +92,7 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Text(
S.of(context).awaiting_payment_confirmation,
style: textLargeSemiBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!))
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor))
]),
SizedBox(height: 40),
Row(children: [
@ -132,7 +131,7 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Text(
S.of(context).gift_card_is_generated,
style: textLargeSemiBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!))
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor))
]));
}
@ -150,7 +149,7 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Text(
S.of(context).generating_gift_card,
style: textLargeSemiBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!))]);
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor))]);
}),
],
),
@ -163,7 +162,7 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
widget.viewModel.payingByBitcoin ? S.of(context).bitcoin_payments_require_1_confirmation
: S.of(context).proceed_after_one_minute,
style: textMedium(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
).copyWith(fontWeight: FontWeight.w500),
textAlign: TextAlign.center,
)),
@ -175,15 +174,15 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Routes.ioniaGiftCardDetailPage,
arguments: [widget.viewModel.giftCard]),
text: S.of(context).open_gift_card,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white);
}
return PrimaryButton(
onPressed: () => Navigator.of(context).pushNamed(Routes.support),
text: S.of(context).contact_support,
color: Theme.of(context).accentTextTheme!.bodySmall!.color!,
textColor: Theme.of(context).primaryTextTheme!.titleLarge!.color!);
color: Theme.of(context).cardColor,
textColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor);
})
])
),
@ -199,14 +198,14 @@ class _IoniaPaymentStatusPageBodyBodyState extends State<_IoniaPaymentStatusPage
Text(
title,
style: textXSmall(
color: Theme.of(context).primaryTextTheme!.labelSmall!.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
),
),
SizedBox(height: 8),
Text(
subtitle,
style: textMedium(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
],

View file

@ -1,5 +1,7 @@
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/extensions/cake_scrollbar_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:flutter/material.dart';
@ -41,7 +43,7 @@ class IoniaAlertModal extends StatelessWidget {
Text(
title,
style: textLargeSemiBold(
color: Theme.of(context).textTheme!.bodyMedium!.color!,
color: Theme.of(context).extension<CakeScrollbarTheme>()!.thumbColor,
),
),
Container(
@ -56,12 +58,9 @@ class IoniaAlertModal extends StatelessWidget {
PrimaryButton(
onPressed: () => Navigator.pop(context),
text: actionTitle,
color: Theme.of(context)
.accentTextTheme!
.bodySmall!
.color!,
color: Theme.of(context).cardColor,
textColor:
Theme.of(context).primaryTextTheme!.titleLarge!.color!,
Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
SizedBox(height: 21),
],

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/src/screens/ionia/widgets/rounded_checkbox.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/generated/i18n.dart';
@ -6,6 +7,7 @@ import 'package:cake_wallet/view_model/ionia/ionia_gift_cards_list_view_model.da
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
class IoniaFilterModal extends StatelessWidget {
IoniaFilterModal({required this.ioniaGiftCardsListViewModel}){
@ -20,7 +22,7 @@ class IoniaFilterModal extends StatelessWidget {
padding: EdgeInsets.all(10),
child: Image.asset(
'assets/images/mini_search_icon.png',
color: Theme.of(context).textTheme!.titleSmall!.color!,
color: Theme.of(context).primaryColor,
),
);
return Scaffold(
@ -46,14 +48,14 @@ class IoniaFilterModal extends StatelessWidget {
child: TextField(
onChanged: ioniaGiftCardsListViewModel.onSearchFilter,
style: textMedium(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
decoration: InputDecoration(
filled: true,
prefixIcon: searchIcon,
hintText: S.of(context).search_category,
contentPadding: EdgeInsets.only(bottom: 5),
fillColor: Theme.of(context).primaryTextTheme!.bodySmall!.decorationColor!.withOpacity(0.5),
fillColor: Theme.of(context).extension<CakeMenuTheme>()!.dividerColor.withOpacity(0.5),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(8),
@ -84,12 +86,12 @@ class IoniaFilterModal extends StatelessWidget {
children: [
Image.asset(
category.iconPath,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
SizedBox(width: 10),
Text(category.title,
style: textSmall(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
).copyWith(fontWeight: FontWeight.w500)),
],
),

View file

@ -1,5 +1,7 @@
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class IoniaTile extends StatelessWidget {
const IoniaTile({
@ -26,14 +28,14 @@ class IoniaTile extends StatelessWidget {
Text(
title,
style: textXSmall(
color: Theme.of(context).primaryTextTheme!.labelSmall!.color!,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
),
),
SizedBox(height: 8),
Text(
subTitle,
style: textMediumBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
],

View file

@ -15,7 +15,7 @@ class RoundedCheckbox extends StatelessWidget {
width: 20.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(50.0)),
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
),
child: Icon(
Icons.check,

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:flutter/material.dart';
class TextIconButton extends StatelessWidget {
@ -22,12 +23,12 @@ class TextIconButton extends StatelessWidget {
Text(
label,
style: textMediumSemiBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
Icon(
Icons.chevron_right_rounded,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
],
),

View file

@ -56,7 +56,7 @@ class MoneroAccountEditOrCreatePage extends BasePage {
text: moneroAccountCreationViewModel.isEdit
? S.of(context).rename
: S.of(context).add,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isLoading: moneroAccountCreationViewModel.state
is IsExecutingState,

View file

@ -31,7 +31,7 @@ class MoneroAccountListPage extends StatelessWidget {
child: ListView.separated(
padding: EdgeInsets.zero,
controller: controller,
separatorBuilder: (context, index) => const SectionDivider(),
separatorBuilder: (context, index) => const VerticalSectionDivider(),
itemCount: accounts.length,
itemBuilder: (context, index) {
final account = accounts[index];
@ -59,7 +59,7 @@ class MoneroAccountListPage extends StatelessWidget {
await Navigator.of(context).pushNamed(Routes.accountCreation),
child: Container(
height: buttonHeight,
color: Theme.of(context).cardColor,
color: Theme.of(context).primaryColor,
padding: EdgeInsets.symmetric(horizontal: 24),
child: Center(
child: Row(

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/account_list_theme.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:cake_wallet/generated/i18n.dart';
@ -21,11 +23,11 @@ class AccountTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
final color = isCurrent
? Theme.of(context).textTheme.titleSmall!.decorationColor!
: Theme.of(context).textTheme.displayLarge!.decorationColor!;
? Theme.of(context).extension<AccountListTheme>()!.currentAccountBackgroundColor
: Theme.of(context).extension<AccountListTheme>()!.tilesBackgroundColor;
final textColor = isCurrent
? Theme.of(context).textTheme.titleSmall!.color!
: Theme.of(context).textTheme.displayLarge!.color!;
? Theme.of(context).extension<AccountListTheme>()!.currentAccountTextColor
: Theme.of(context).extension<AccountListTheme>()!.tilesTextColor;
final Widget cell = GestureDetector(
onTap: onTap,
@ -61,7 +63,9 @@ class AccountTile extends StatelessWidget {
fontSize: 15,
fontWeight: FontWeight.w600,
fontFamily: 'Lato',
color: Theme.of(context).textTheme.headlineMedium!.color!,
color: isCurrent
? Theme.of(context).extension<AccountListTheme>()!.currentAccountAmountColor
: Theme.of(context).extension<AccountListTheme>()!.tilesAmountColor,
decoration: TextDecoration.none,
),
),
@ -72,11 +76,7 @@ class AccountTile extends StatelessWidget {
);
// return cell;
return Slidable(
key: Key(accountName),
child: cell,
endActionPane: _actionPane(context)
);
return Slidable(key: Key(accountName), child: cell, endActionPane: _actionPane(context));
}
ActionPane _actionPane(BuildContext context) => ActionPane(

View file

@ -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';
@ -111,10 +112,7 @@ class _AdvancedPrivacySettingsBodyState extends State<AdvancedPrivacySettingsBod
Navigator.pop(context);
},
text: S.of(context).continue_text,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
),
const SizedBox(height: 25),
@ -125,10 +123,7 @@ class _AdvancedPrivacySettingsBodyState extends State<AdvancedPrivacySettingsBod
S.of(context).settings_can_be_changed_later,
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.color,
color: Theme.of(context).extension<NewWalletTheme>()!.hintTextColor,
),
),
),

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/entities/generate_name.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/main.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/themes/theme_base.dart';
@ -17,6 +18,8 @@ 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';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class NewWalletPage extends BasePage {
NewWalletPage(this._walletNewVM);
@ -117,32 +120,20 @@ class _WalletNameFormState extends State<WalletNameForm> {
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
decoration: InputDecoration(
hintStyle: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.color),
color: Theme.of(context).extension<NewWalletTheme>()!.hintTextColor),
hintText: S.of(context).wallet_name,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.decorationColor!,
color: Theme.of(context).extension<NewWalletTheme>()!.underlineColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.decorationColor!,
color: Theme.of(context).extension<NewWalletTheme>()!.underlineColor,
width: 1.0),
),
suffixIcon: Semantics(
@ -169,10 +160,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
height: 34,
child: Image.asset(
'assets/images/refresh_icon.png',
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
),
),
),
@ -193,10 +181,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
),
Padding(

View file

@ -4,6 +4,7 @@ import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/src/widgets/search_bar_widget.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/wallet_types.g.dart';
@ -80,7 +81,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor),
),
),
Padding(
@ -112,7 +113,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
bottomSection: PrimaryButton(
onPressed: () => onTypeSelected(),
text: S.of(context).seed_language_next,
color: Theme.of(context).accentTextTheme!.bodyLarge!.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: selected == null,
),

View file

@ -1,4 +1,7 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
class SelectButton extends StatelessWidget {
SelectButton({
@ -21,25 +24,13 @@ class SelectButton extends StatelessWidget {
Widget build(BuildContext context) {
final color = isSelected
? Colors.green
: Theme.of(context)
.accentTextTheme!
.bodySmall!
.color!;
: Theme.of(context).cardColor;
final textColor = isSelected
? Theme.of(context)
.accentTextTheme!
.headlineSmall!
.decorationColor!
: Theme.of(context).primaryTextTheme!.titleLarge!.color!;
? Theme.of(context).extension<WalletListTheme>()!.restoreWalletButtonTextColor
: Theme.of(context).extension<CakeTextTheme>()!.buttonTextColor;
final arrowColor = isSelected
? Theme.of(context)
.accentTextTheme!
.headlineSmall!
.decorationColor!
: Theme.of(context)
.accentTextTheme!
.titleMedium!
.color!;
? Theme.of(context).extension<WalletListTheme>()!.restoreWalletButtonTextColor
: Theme.of(context).extension<FilterTheme>()!.titlesColor;
final selectArrowImage = Image.asset('assets/images/select_arrow.png',
color: arrowColor);

View file

@ -182,10 +182,7 @@ class NodeCreateOrEditPage extends BasePage {
Navigator.of(context).pop();
},
text: S.of(context).save,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: (!nodeCreateOrEditViewModel.isReady)||
(nodeCreateOrEditViewModel

View file

@ -1,8 +1,10 @@
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/nodes/widgets/node_indicator.dart';
import 'package:cake_wallet/src/widgets/standard_list.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:cw_core/node.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/filter_theme.dart';
class NodeListRow extends StandardListRow {
NodeListRow(
@ -38,12 +40,13 @@ class NodeListRow extends StandardListRow {
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context)
.textTheme
.headlineMedium!
.decorationColor!),
.extension<ReceivePageTheme>()!
.iconsBackgroundColor),
child: Icon(Icons.edit,
size: 14,
color: Theme.of(context).textTheme.headlineMedium!.color!)));
color: Theme.of(context)
.extension<ReceivePageTheme>()!
.iconsColor)));
}
}
@ -56,7 +59,7 @@ class NodeHeaderListRow extends StandardListRow {
return SizedBox(
width: 20,
child: Icon(Icons.add,
color: Theme.of(context).accentTextTheme!.titleMedium!.color,size: 24.0),
color: Theme.of(context).extension<FilterTheme>()!.titlesColor,size: 24.0),
);
}
}

View file

@ -48,10 +48,9 @@ class OrderDetailsPageBodyState extends State<OrderDetailsPageBody> {
Widget build(BuildContext context) {
return Observer(builder: (_) {
return SectionStandardList(
context: context,
sectionCount: 1,
itemCounter: (int _) => orderDetailsViewModel.items.length,
itemBuilder: (_, __, index) {
itemBuilder: (__, index) {
final item = orderDetailsViewModel.items[index];
if (item is TrackTradeListItem) {

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/pin_code_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/utils/show_bar.dart';
import 'package:another_flushbar/flushbar.dart';
@ -110,11 +112,11 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
Widget body(BuildContext context) {
final deleteIconImage = Image.asset(
'assets/images/delete_icon.png',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
);
final faceImage = Image.asset(
'assets/images/face.png',
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
);
return RawKeyboardListener(
@ -143,7 +145,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
fontSize: 20,
fontWeight: FontWeight.w500,
color:
Theme.of(context).primaryTextTheme!.titleLarge!.color!)),
Theme.of(context).extension<CakeTextTheme>()!.titleColor)),
Spacer(flex: 3),
Container(
width: 180,
@ -159,14 +161,8 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
decoration: BoxDecoration(
shape: BoxShape.circle,
color: isFilled
? Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!
: Theme.of(context)
.accentTextTheme!
.bodyMedium!
.color!
? Theme.of(context).extension<CakeTextTheme>()!.titleColor
: Theme.of(context).extension<PinCodeTheme>()!.indicatorsColor
.withOpacity(0.25),
));
}),
@ -185,10 +181,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.normal,
color: Theme.of(context)
.accentTextTheme!
.bodyMedium!
.decorationColor!),
color: Theme.of(context).extension<PinCodeTheme>()!.switchColor),
),
)
],
@ -256,10 +249,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
style: TextStyle(
fontSize: 30.0,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!)),
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor)),
),
);
}),

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/anonpay/anonpay_donation_link_info.dart';
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/di.dart';
@ -40,8 +42,9 @@ class AnonPayInvoicePage extends BasePage {
final _formKey = GlobalKey<FormState>();
bool effectsInstalled = false;
@override
Color get titleColor => Colors.white;
bool get gradientAll => true;
@override
bool get resizeToAvoidBottomInset => false;
@ -56,8 +59,9 @@ class AnonPayInvoicePage extends BasePage {
void onClose(BuildContext context) => Navigator.popUntil(context, (route) => route.isFirst);
@override
Widget middle(BuildContext context) =>
PresentReceiveOptionPicker(receiveOptionViewModel: receiveOptionViewModel);
Widget middle(BuildContext context) => PresentReceiveOptionPicker(
receiveOptionViewModel: receiveOptionViewModel,
color: titleColor(context));
@override
Widget trailing(BuildContext context) => TrailButton(
@ -82,10 +86,7 @@ class AnonPayInvoicePage extends BasePage {
disableScroll: true,
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -103,8 +104,8 @@ class AnonPayInvoicePage extends BasePage {
bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)),
gradient: LinearGradient(
colors: [
Theme.of(context).primaryTextTheme!.titleSmall!.color!,
Theme.of(context).primaryTextTheme!.titleSmall!.decorationColor!,
Theme.of(context).extension<ExchangePageTheme>()!.firstGradientTopPanelColor,
Theme.of(context).extension<ExchangePageTheme>()!.secondGradientTopPanelColor,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
@ -142,10 +143,7 @@ class AnonPayInvoicePage extends BasePage {
: S.of(context).anonpay_description("a donation link", "donate"),
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.receiveAmountColor,
fontWeight: FontWeight.w500,
fontSize: 12),
),
@ -173,10 +171,7 @@ class AnonPayInvoicePage extends BasePage {
anonInvoicePageViewModel.generateDonationLink();
}
},
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isLoading: anonInvoicePageViewModel.state is IsExecutingState,
),

View file

@ -5,13 +5,15 @@ import 'package:cake_wallet/entities/receive_page_option.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/src/screens/receive/widgets/anonpay_status_section.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
import 'package:cake_wallet/src/screens/receive/widgets/copy_link_item.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
import 'package:device_display_brightness/device_display_brightness.dart';
import 'package:flutter/material.dart';
import 'package:qr_flutter/qr_flutter.dart' as qr;
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class AnonPayReceivePage extends BasePage {
final AnonpayInfoBase invoiceInfo;
@ -22,11 +24,7 @@ class AnonPayReceivePage extends BasePage {
String get title => S.current.receive;
@override
Color get backgroundLightColor =>
currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Color get backgroundDarkColor => Colors.transparent;
bool get gradientBackground => true;
@override
bool get resizeToAvoidBottomInset => false;
@ -44,10 +42,7 @@ class AnonPayReceivePage extends BasePage {
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'Lato',
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
color: titleColor(context)),
),
Text(
invoiceInfo is AnonpayInvoiceInfo
@ -56,7 +51,7 @@ class AnonPayReceivePage extends BasePage {
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.w500,
color: Theme.of(context).textTheme!.headlineSmall!.color!),
color: Theme.of(context).extension<QRCodeTheme>()!.qrCodeColor),
)
],
);
@ -78,10 +73,7 @@ class AnonPayReceivePage extends BasePage {
),
icon: Icon(
Icons.edit,
color: Theme.of(context)
.accentTextTheme!
.bodySmall!
.color!,
color: pageIconColor(context),
size: 22.0,
),
),
@ -90,14 +82,8 @@ class AnonPayReceivePage extends BasePage {
@override
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
], begin: Alignment.topRight, end: Alignment.bottomLeft)),
child: scaffold);
(BuildContext context, Widget scaffold) =>
GradientBackground(scaffold: scaffold);
@override
Widget body(BuildContext context) {
@ -139,10 +125,7 @@ class AnonPayReceivePage extends BasePage {
decoration: BoxDecoration(
border: Border.all(
width: 3,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
child: QrImage(

View file

@ -1,8 +1,9 @@
import 'package:cake_wallet/entities/qr_view_data.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class FullscreenQRPage extends BasePage {
FullscreenQRPage({required this.qrViewData});
@ -10,10 +11,7 @@ class FullscreenQRPage extends BasePage {
final QrViewData qrViewData;
@override
Color get backgroundLightColor => currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Color get backgroundDarkColor => Colors.transparent;
bool get gradientBackground => true;
@override
bool get resizeToAvoidBottomInset => false;
@ -22,10 +20,7 @@ class FullscreenQRPage extends BasePage {
Widget leading(BuildContext context) {
final _backButton = Icon(
Icons.arrow_back_ios,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
size: 16,
);
@ -47,19 +42,9 @@ class FullscreenQRPage extends BasePage {
}
@override
Widget Function(BuildContext, Widget) get rootWrapper => (BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,
),
),
child: scaffold);
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) =>
GradientBackground(scaffold: scaffold);
@override
Widget body(BuildContext context) {
@ -75,10 +60,7 @@ class FullscreenQRPage extends BasePage {
decoration: BoxDecoration(
border: Border.all(
width: 3,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!)),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor)),
child: Container(
decoration: BoxDecoration(
border: Border.all(width: 3, color: Colors.white)),

View file

@ -1,3 +1,6 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
import 'package:cake_wallet/src/widgets/gradient_background.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/section_divider.dart';
import 'package:cake_wallet/themes/theme_base.dart';
@ -19,6 +22,7 @@ import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_i
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_widget.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:cake_wallet/themes/extensions/balance_page_theme.dart';
class ReceivePage extends BasePage {
ReceivePage({required this.addressListViewModel})
@ -41,21 +45,13 @@ class ReceivePage extends BasePage {
String get title => S.current.receive;
@override
Color get backgroundLightColor =>
currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Color get backgroundDarkColor => Colors.transparent;
bool get gradientBackground => true;
@override
bool get resizeToAvoidBottomInset => false;
final FocusNode _cryptoAmountFocus;
@override
Color? get titleColor =>
currentTheme.type == ThemeType.bright ? Colors.white : null;
@override
Widget middle(BuildContext context) {
return Text(
@ -64,23 +60,14 @@ class ReceivePage extends BasePage {
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'Lato',
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
color: pageIconColor(context)),
);
}
@override
Widget Function(BuildContext, Widget) get rootWrapper =>
(BuildContext context, Widget scaffold) => Container(
decoration: BoxDecoration(
gradient: LinearGradient(colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor,
], begin: Alignment.topRight, end: Alignment.bottomLeft)),
child: scaffold);
(BuildContext context, Widget scaffold) =>
GradientBackground(scaffold: scaffold);
@override
Widget trailing(BuildContext context) {
@ -103,10 +90,7 @@ class ReceivePage extends BasePage {
icon: Icon(
Icons.share,
size: 20,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: pageIconColor(context),
),
),
));
@ -119,10 +103,7 @@ class ReceivePage extends BasePage {
? KeyboardActions(
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -146,7 +127,7 @@ class ReceivePage extends BasePage {
Observer(
builder: (_) => ListView.separated(
padding: EdgeInsets.all(0),
separatorBuilder: (context, _) => const SectionDivider(),
separatorBuilder: (context, _) => const HorizontalSectionDivider(),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: addressListViewModel.items.length,
@ -163,10 +144,7 @@ class ReceivePage extends BasePage {
icon: Icon(
Icons.arrow_forward_ios,
size: 14,
color: Theme.of(context)
.textTheme!
.headlineMedium!
.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.iconsColor,
));
}
@ -178,10 +156,7 @@ class ReceivePage extends BasePage {
icon: Icon(
Icons.add,
size: 20,
color: Theme.of(context)
.textTheme!
.headlineMedium!
.color!,
color: Theme.of(context).extension<ReceivePageTheme>()!.iconsColor,
));
}
@ -190,23 +165,11 @@ class ReceivePage extends BasePage {
final isCurrent =
item.address == addressListViewModel.address.address;
final backgroundColor = isCurrent
? Theme.of(context)
.textTheme!
.displayMedium!
.decorationColor!
: Theme.of(context)
.textTheme!
.displaySmall!
.decorationColor!;
? Theme.of(context).extension<ReceivePageTheme>()!.currentTileBackgroundColor
: Theme.of(context).extension<ReceivePageTheme>()!.tilesBackgroundColor;
final textColor = isCurrent
? Theme.of(context)
.textTheme!
.displayMedium!
.color!
: Theme.of(context)
.textTheme!
.displaySmall!
.color!;
? Theme.of(context).extension<ReceivePageTheme>()!.currentTileTextColor
: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor;
return AddressCell.fromItem(item,
isCurrent: isCurrent,
@ -252,10 +215,7 @@ class ReceivePage extends BasePage {
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 15,
color: Theme.of(context)
.accentTextTheme!
.displaySmall!
.backgroundColor!)),
color: Theme.of(context).extension<BalancePageTheme>()!.labelTextColor)),
],
),
);

View file

@ -1,8 +1,10 @@
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cw_core/currency.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class AnonpayCurrencyInputField extends StatelessWidget {
const AnonpayCurrencyInputField(
@ -33,7 +35,7 @@ class AnonpayCurrencyInputField extends StatelessWidget {
border: Border(
bottom: BorderSide(
color:
Theme.of(context).primaryTextTheme!.bodyLarge!.color!,
Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderBottomPanelColor,
width: 1)),
),
child: Padding(
@ -65,10 +67,7 @@ class AnonpayCurrencyInputField extends StatelessWidget {
child: Container(
height: 32,
decoration: BoxDecoration(
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonColor,
borderRadius: BorderRadius.all(Radius.circular(6))),
child: Center(
child: Padding(
@ -78,10 +77,7 @@ class AnonpayCurrencyInputField extends StatelessWidget {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
),
),
),
@ -119,10 +115,7 @@ class AnonpayCurrencyInputField extends StatelessWidget {
placeholderTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor,
),
validator: null,
),
@ -143,20 +136,14 @@ class AnonpayCurrencyInputField extends StatelessWidget {
style: TextStyle(
fontSize: 10,
height: 1.2,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor),
),
SizedBox(width: 10),
Text(S.of(context).max_value(maxAmount, selectedCurrency.toString()),
style: TextStyle(
fontSize: 10,
height: 1.2,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!)),
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor)),
],
),
)

View file

@ -3,6 +3,7 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
import 'package:cake_wallet/src/screens/receive/widgets/anonpay_currency_input_field.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/themes/extensions/exchange_page_theme.dart';
import 'package:cake_wallet/typography.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/view_model/anon_invoice_page_view_model.dart';
@ -69,17 +70,14 @@ class AnonInvoiceForm extends StatelessWidget {
BaseTextFormField(
controller: nameController,
focusNode: _nameFocusNode,
borderColor: Theme.of(context).primaryTextTheme!.bodyLarge!.color!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderTopPanelColor,
suffixIcon: SizedBox(width: 36),
hintText: S.of(context).optional_name,
textInputAction: TextInputAction.next,
placeholderTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor,
),
textStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white),
validator: null,
@ -91,16 +89,13 @@ class AnonInvoiceForm extends StatelessWidget {
controller: descriptionController,
focusNode: _descriptionFocusNode,
textInputAction: TextInputAction.next,
borderColor: Theme.of(context).primaryTextTheme!.bodyLarge!.color!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderTopPanelColor,
suffixIcon: SizedBox(width: 36),
hintText: S.of(context).optional_description,
placeholderTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor,
),
textStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white),
validator: null,
@ -110,17 +105,14 @@ class AnonInvoiceForm extends StatelessWidget {
controller: emailController,
textInputAction: TextInputAction.next,
focusNode: _emailFocusNode,
borderColor: Theme.of(context).primaryTextTheme!.bodyLarge!.color!,
borderColor: Theme.of(context).extension<ExchangePageTheme>()!.textFieldBorderTopPanelColor,
suffixIcon: SizedBox(width: 36),
keyboardType: TextInputType.emailAddress,
hintText: S.of(context).optional_email_hint,
placeholderTextStyle: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Theme.of(context)
.accentTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.hintTextColor,
),
textStyle: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white),
validator: EmailValidator(),

View file

@ -1,6 +1,9 @@
import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.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';
@ -31,19 +34,13 @@ class AnonInvoiceStatusSection extends StatelessWidget {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.receiveAmountColor,
),
),
Container(
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
decoration: BoxDecoration(
color: Theme.of(context)
.accentTextTheme!
.displaySmall!
.color!,
color: Theme.of(context).extension<AddressTheme>()!.actionButtonColor,
borderRadius: BorderRadius.circular(10),
),
child: Row(
@ -58,10 +55,7 @@ class AnonInvoiceStatusSection extends StatelessWidget {
Text(
invoiceInfo.status ?? '',
style: textSmallSemiBold(
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
)
],
@ -78,16 +72,13 @@ class AnonInvoiceStatusSection extends StatelessWidget {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.primaryTextTheme!
.displayLarge!
.decorationColor!,
color: Theme.of(context).extension<ExchangePageTheme>()!.receiveAmountColor,
),
),
Text(
invoiceInfo.invoiceId ?? '',
style: textSmallSemiBold(
color: Theme.of(context).primaryTextTheme!.titleLarge!.color,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
),
],

View file

@ -5,6 +5,7 @@ import 'package:cake_wallet/utils/show_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:share_plus/share_plus.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class CopyLinkItem extends StatelessWidget {
const CopyLinkItem({super.key, required this.url, required this.title});
@ -14,10 +15,7 @@ class CopyLinkItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
final copyImage = Image.asset('assets/images/copy_address.png',
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!);
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor);
return Row(
mainAxisAlignment: MainAxisAlignment.center,
@ -25,10 +23,7 @@ class CopyLinkItem extends StatelessWidget {
Text(
title,
style: textMedium(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
SizedBox(width: 50),
@ -51,10 +46,7 @@ class CopyLinkItem extends StatelessWidget {
onPressed: () => Share.share(url),
icon: Icon(
Icons.share,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
)
],

View file

@ -3,6 +3,9 @@ import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cw_core/currency.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/themes/extensions/picker_theme.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class CurrencyInputField extends StatelessWidget {
const CurrencyInputField({
@ -24,7 +27,7 @@ class CurrencyInputField extends StatelessWidget {
Widget build(BuildContext context) {
final arrowBottomPurple = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
height: 8,
);
// This magic number for wider screen sets the text input focus at center of the inputfield
@ -46,13 +49,13 @@ class CurrencyInputField extends StatelessWidget {
placeholderTextStyle: isLight
? null
: TextStyle(
color: Theme.of(context).primaryTextTheme!.headlineSmall!.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldBorderColor,
fontWeight: FontWeight.w600,
),
borderColor: Theme.of(context).accentTextTheme!.titleLarge!.backgroundColor!,
textColor: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
borderColor: Theme.of(context).extension<PickerTheme>()!.dividerColor,
textColor: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
textStyle: TextStyle(
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
prefixIcon: Padding(
padding: EdgeInsets.only(
@ -75,10 +78,7 @@ class CurrencyInputField extends StatelessWidget {
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 16,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
if (selectedCurrency.tag != null)
@ -86,7 +86,7 @@ class CurrencyInputField extends StatelessWidget {
padding: const EdgeInsets.only(right: 3.0),
child: Container(
decoration: BoxDecoration(
color: Theme.of(context).primaryTextTheme!.headlineMedium!.color!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonColor,
borderRadius: BorderRadius.all(
Radius.circular(6),
),
@ -97,10 +97,7 @@ class CurrencyInputField extends StatelessWidget {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
),
),
),
@ -113,10 +110,7 @@ class CurrencyInputField extends StatelessWidget {
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 20,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
),

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/receive_page_theme.dart';
class HeaderTile extends StatelessWidget {
HeaderTile({
@ -22,7 +23,7 @@ class HeaderTile extends StatelessWidget {
top: 24,
bottom: 24
),
color: Theme.of(context).textTheme!.displaySmall!.decorationColor!,
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesBackgroundColor,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -32,17 +33,14 @@ class HeaderTile extends StatelessWidget {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: Theme.of(context)!.textTheme.displaySmall!.color!),
color: Theme.of(context).extension<ReceivePageTheme>()!.tilesTextColor),
),
Container(
height: 32,
width: 32,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context)
.textTheme!
.headlineMedium!
.decorationColor!),
color: Theme.of(context).extension<ReceivePageTheme>()!.iconsBackgroundColor),
child: icon,
)
],

View file

@ -1,4 +1,5 @@
import 'package:cake_wallet/entities/qr_view_data.dart';
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
import 'package:cake_wallet/src/screens/receive/widgets/currency_input_field.dart';
@ -12,6 +13,7 @@ import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_view_model.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
class QRWidget extends StatelessWidget {
QRWidget({
@ -35,7 +37,7 @@ class QRWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final copyImage = Image.asset('assets/images/copy_address.png',
color: Theme.of(context).textTheme!.titleMedium!.decorationColor!);
color: Theme.of(context).extension<QRCodeTheme>()!.qrWidgetCopyButtonColor);
return Column(
mainAxisSize: MainAxisSize.min,
@ -51,10 +53,7 @@ class QRWidget extends StatelessWidget {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor),
),
),
Row(
@ -85,10 +84,7 @@ class QRWidget extends StatelessWidget {
decoration: BoxDecoration(
border: Border.all(
width: 3,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
),
child: Container(
@ -152,10 +148,7 @@ class QRWidget extends StatelessWidget {
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!),
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor),
),
),
Padding(

View file

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:cake_wallet/src/widgets/alert_background.dart';
import 'package:cake_wallet/src/widgets/alert_close_button.dart';
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
import 'package:cake_wallet/wallet_type_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@ -33,8 +34,8 @@ class ReleaseNotesScreen extends StatelessWidget {
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.0),
gradient: LinearGradient(colors: [
Theme.of(context).colorScheme.secondary,
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).extension<DashboardPageTheme>()!.firstGradientBackgroundColor,
Theme.of(context).extension<DashboardPageTheme>()!.secondGradientBackgroundColor,
], begin: Alignment.centerLeft, end: Alignment.centerRight)),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 24.0),
@ -51,10 +52,7 @@ class ReleaseNotesScreen extends StatelessWidget {
fontSize: 24.0,
fontWeight: FontWeight.bold,
fontFamily: 'Lato',
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
child: Text(title),
),
@ -121,10 +119,7 @@ class ReleaseNotesScreen extends StatelessWidget {
decoration: TextDecoration.none,
fontSize: 16.0,
fontFamily: 'Lato',
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
color: Theme.of(context).extension<DashboardPageTheme>()!.textColor,
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,

View file

@ -35,10 +35,7 @@ class RescanPage extends BasePage {
_blockchainHeightWidgetKey.currentState!.height);
Navigator.of(context).pop();
},
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: !_rescanViewModel.isButtonEnabled,
))

View file

@ -75,10 +75,7 @@ class RestoreFromBackupPage extends BasePage {
restoreFromBackupViewModel.state is IsExecutingState,
onPressed: () => onImportHandler(context),
text: S.of(context).import,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white);
}))
])),

View file

@ -134,10 +134,7 @@ class _RestoreFromSeedDetailsFormState
isLoading:
widget.walletRestorationFromSeedVM.state is IsExecutingState,
text: S.of(context).restore_recover,
color: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.color!,
color: Theme.of(context).primaryColor,
textColor: Colors.white,
isDisabled: _nameController.text.isNotEmpty,
);

View file

@ -1,8 +1,10 @@
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
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 +84,7 @@ class _SweepingWalletWidgetState extends State<SweepingWalletWidget> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.color,
color: Theme.of(context).extension<NewWalletTheme>()!.hintTextColor,
),
textAlign: TextAlign.center,
),
@ -97,10 +96,7 @@ class _SweepingWalletWidgetState extends State<SweepingWalletWidget> {
style: TextStyle(
fontSize: 36,
fontWeight: FontWeight.bold,
color: Theme.of(context)
.primaryTextTheme!
.titleLarge!
.color!,
color: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
),
textAlign: TextAlign.center,
),
@ -112,10 +108,7 @@ class _SweepingWalletWidgetState extends State<SweepingWalletWidget> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.color,
color: Theme.of(context).extension<NewWalletTheme>()!.hintTextColor,
),
textAlign: TextAlign.center,
),

View file

@ -10,6 +10,7 @@ import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/core/wallet_name_validator.dart';
import 'package:cake_wallet/entities/generate_name.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class WalletRestoreFromKeysFrom extends StatefulWidget {
WalletRestoreFromKeysFrom({
@ -89,10 +90,7 @@ class WalletRestoreFromKeysFromState extends State<WalletRestoreFromKeysFrom> {
height: 34,
child: Image.asset(
'assets/images/refresh_icon.png',
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
),
),
),

View file

@ -11,6 +11,7 @@ import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/core/wallet_name_validator.dart';
import 'package:cake_wallet/themes/extensions/send_page_theme.dart';
class WalletRestoreFromSeedForm extends StatefulWidget {
WalletRestoreFromSeedForm(
@ -93,10 +94,7 @@ class WalletRestoreFromSeedFormState extends State<WalletRestoreFromSeedForm> {
height: 34,
child: Image.asset(
'assets/images/refresh_icon.png',
color: Theme.of(context)
.primaryTextTheme!
.headlineMedium!
.decorationColor!,
color: Theme.of(context).extension<SendPageTheme>()!.textFieldButtonIconColor,
),
),
),

View file

@ -1,3 +1,5 @@
import 'package:cake_wallet/themes/extensions/keyboard_theme.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
@ -22,6 +24,7 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/core/seed_validator.dart';
import 'package:cake_wallet/view_model/restore/restore_mode.dart';
import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart';
class WalletRestorePage extends BasePage {
WalletRestorePage(this.walletRestoreViewModel)
@ -91,8 +94,7 @@ class WalletRestorePage extends BasePage {
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'Lato',
color: titleColor ??
Theme.of(context).primaryTextTheme!.titleLarge!.color!),
color: titleColor(context)),
));
final WalletRestoreViewModel walletRestoreViewModel;
@ -139,10 +141,7 @@ class WalletRestorePage extends BasePage {
return KeyboardActions(
config: KeyboardActionsConfig(
keyboardActionsPlatform: KeyboardActionsPlatform.IOS,
keyboardBarColor: Theme.of(context)
.accentTextTheme!
.bodyLarge!
.backgroundColor!,
keyboardBarColor: Theme.of(context).extension<KeyboardTheme>()!.keyboardBarColor,
nextFocus: false,
actions: [
KeyboardActionsItem(
@ -194,14 +193,8 @@ class WalletRestorePage extends BasePage {
return LoadingPrimaryButton(
onPressed: _confirmForm,
text: S.of(context).restore_recover,
color: Theme.of(context)
.accentTextTheme!
.titleSmall!
.decorationColor!,
textColor: Theme.of(context)
.accentTextTheme!
.headlineSmall!
.decorationColor!,
color: Theme.of(context).extension<WalletListTheme>()!.createNewWalletButtonBackgroundColor,
textColor: Theme.of(context).extension<WalletListTheme>()!.restoreWalletButtonTextColor,
isLoading: walletRestoreViewModel.state is IsExecutingState,
isDisabled: !walletRestoreViewModel.isButtonEnabled,
);

View file

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart';
class RestoreButton extends StatelessWidget {
const RestoreButton(

Some files were not shown because too many files have changed in this diff Show more