CWA-217 | applied light mode to the application; deleted copy button, enter_pin_code.dart, present picker and standard close button; applied new design to rescan page

wownero
Oleksandr Sobol 4 years ago
parent 22f131069f
commit ce21e6bc7a

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

@ -1,93 +1,30 @@
import 'package:flutter/material.dart';
class Palette {
static const Color lightBlue = Color.fromRGBO(126, 147, 177, 1.0);
static const Color lightBlueWithOpacity = Color.fromRGBO(126, 147, 177, 0.4);
static const Color lightGrey = Color.fromRGBO(224, 233, 246, 1.0);
static const Color purple = Color.fromRGBO(243, 229, 245, 1.0);
static const Color deepPink = Color.fromRGBO(225, 190, 231, 1.0);
static const Color indigo = Color.fromRGBO(232, 234, 246, 1.0);
static const Color deepIndigo = Color.fromRGBO(197, 202, 233, 1.0);
static const Color creamyGrey = Color.fromRGBO(245, 246, 249, 1.0);
static const Color deepPurple = Color.fromRGBO(124, 83, 240, 1.0);
static const Color wildDarkBlue = Color.fromRGBO(155, 172, 197, 1.0);
static const Color wildDarkBlueWithOpacity = Color.fromRGBO(155, 172, 197, 0.1);
static const Color lightGreen = Color.fromRGBO(52, 186, 204, 1.0);
static const Color darkPurple = Color.fromRGBO(124, 83, 240, 1.0);
static const Color brightBlue = Color.fromRGBO(151, 226, 255, 0.6);
static const Color cloudySky = Color.fromRGBO(121, 201, 233, 0.8);
static const Color darkGrey = Color.fromRGBO(136, 155, 183, 0.21);
static const Color shadowGrey = Color.fromRGBO(132, 141, 198, 0.14);
static const Color shadowGreyWithOpacity = Color.fromRGBO(132, 141, 198, 0.05);
static const Color blueGrey = Color.fromRGBO(103, 107, 141, 1.0);
static const Color lightGrey2 = Color.fromRGBO(249, 249, 249, 1.0);
static const Color violet = Color.fromRGBO(138, 80, 255, 1.0);
static const Color lightViolet = Color.fromRGBO(131, 87, 255, 1);
static const Color cakeGreen = Color.fromRGBO(41, 187, 244, 1.0);
static const Color cakeGreenWithOpacity = Color.fromRGBO(41, 187, 244, 0.2);
static const Color switchBackground = Color.fromRGBO(228, 231, 240, 1.0);
static const Color switchBorder = Color.fromRGBO(211, 222, 238, 1.0);
static const Color green = Color.fromRGBO(39, 206, 80, 1.0);
static const Color red = Color.fromRGBO(255, 51, 51, 1.0);
static const Color nightBlue = Color.fromRGBO(34, 40, 75, 1.0);
static const Color lavender = Color.fromRGBO(249, 250, 253, 1);
static const Color lightLavender = Color.fromRGBO(242, 244, 247, 1);
static const Color cadetBlue = Color.fromRGBO(191, 201, 215, 1);
static const Color manatee = Color.fromRGBO(138, 153, 175, 1);
static const Color separator = Color.fromRGBO(240, 241, 244, 1);
static const Color containerLavender = Color.fromRGBO(226, 235, 238, 0.4);
static const Color purpleBlue = Color.fromRGBO(84, 92, 139, 1);
static const Color floatingActionButton = Color.fromRGBO(213, 56, 99, 1);
static const Color failure = Color.fromRGBO(226, 35, 35, 1);
static const Color powered = Color.fromRGBO(191, 201, 215, 1);
static const Color buttonShadow = Color.fromRGBO(23, 46, 77, 0.129207);
static const Color blueAlice = Color.fromRGBO(231, 240, 253, 1.0);
static const Color lightBlue = Color.fromRGBO(172, 203, 238, 1.0);
static const Color lavender = Color.fromRGBO(237, 245, 252, 1.0);
static const Color oceanBlue = Color.fromRGBO(30, 52, 78, 1.0);
static const Color lightBlueGrey = Color.fromRGBO(118, 131, 169, 1.0);
static const Color periwinkle = Color.fromRGBO(197, 208, 230, 1.0);
static const Color blue = Color.fromRGBO(88, 143, 252, 1.0);
static const Color darkLavender = Color.fromRGBO(225, 238, 250, 1.0);
static const Color nightBlue = Color.fromRGBO(46, 57, 96, 1.0);
}
class PaletteDark {
static const Color darkThemeTitle = Color.fromRGBO(132, 154, 186, 1.0);
static const Color darkThemeTitleViolet = Color.fromRGBO(121, 92, 190, 1.0);
static const Color darkThemeGrey = Color.fromRGBO(100, 115, 137, 1.0);
static const Color darkThemeGreyWithOpacity = Color.fromRGBO(100, 115, 137, 0.5);
static const Color darkThemeMidGrey = Color.fromRGBO(20, 26, 38, 1.0);
static const Color darkThemePurpleButton = Color.fromRGBO(182, 143, 255, 0.1);
static const Color darkThemePurpleButtonBorder = Color.fromRGBO(161, 120, 255, 0.7);
static const Color darkThemeBackground = Color.fromRGBO(39, 41, 50, 1.0);
static const Color darkThemeBackgroundDark = Color.fromRGBO(9, 12, 18, 1.0);
static const Color darkThemeDarkGrey = Color.fromRGBO(218, 228, 243, 0.06);
static const Color darkGrey = Color.fromRGBO(218, 228, 243, 0.4);
static const Color darkThemeBlackWithOpacity = Color.fromRGBO(0, 0, 0, 0.2);
static const Color darkThemeBlack = Color.fromRGBO(7, 10, 14, 1.0);
static const Color darkThemeAppBarBlack = Color.fromRGBO(4, 5, 7, 1.0);
static const Color darkThemeViolet = Color.fromRGBO(131, 87, 255, 0.2);
static const Color darkThemeIndigoButton = Color.fromRGBO(216, 223, 246, 0.1);
static const Color darkThemeIndigoButtonBorder = Color.fromRGBO(196, 206, 237, 0.4);
static const Color darkThemeBlueButton = Color.fromRGBO(151, 226, 255, 0.1);
static const Color darkThemeBlueButtonBorder = Color.fromRGBO(62, 190, 240, 0.6);
static const Color darkThemeCloseButton = Color.fromRGBO(34, 40, 74, 1.0);
static const Color darkThemePinButton = Color.fromRGBO(136, 155, 183, 0.1);
static const Color darkThemePinDigitButton = Color.fromRGBO(100, 115, 137, 0.34);
static const Color switchBackground = Color.fromRGBO(100, 115, 137, 0.4);
static const Color wildDarkBlueWithOpacity = Color.fromRGBO(155, 172, 197, 0.4);
static const Color wildDarkBlue = Color.fromRGBO(155, 172, 197, 0.8);
// NEW
static const Color backgroundStart = Color.fromRGBO(231, 240, 253, 1.0);
static const Color backgroundEnd = Color.fromRGBO(172, 203, 238, 1.0);
static const Color mainBackgroundColor = Color.fromRGBO(70, 85, 133, 1.0);
static const Color borderCardColor = Color.fromRGBO(81, 96, 147, 1.0);
static const Color walletCardTopStartSync = Color.fromRGBO(89, 104, 152, 1.0);
static const Color walletCardBottomStartSync = Color.fromRGBO(70, 85, 133, 1.0);
static const Color walletCardTopEndSync = Color.fromRGBO(70, 85, 133, 1.0);
static const Color walletCardBottomEndSync = Color.fromRGBO(45, 56, 95, 1.0);
static const Color walletCardText = Color.fromRGBO(140, 153, 201, 1.0);
static const Color walletCardAddressField = Color.fromRGBO(51, 63, 104, 1.0);
static const Color walletCardAddressText = Color.fromRGBO(183, 197, 242, 1.0);
static const Color walletCardSubAddressField = Color.fromRGBO(63, 77, 122, 1.0);
static const Color historyPanel = Color.fromRGBO(33, 43, 73, 1.0);
static const Color historyPanelText = Color.fromRGBO(91, 112, 146, 1.0);
static const Color historyPanelButton = Color.fromRGBO(39, 53, 96, 1.0);
static const Color menuHeader = Color.fromRGBO(41, 52, 84, 1.0);
static const Color menuList = Color.fromRGBO(48, 59, 95, 1.0);
static const Color selectButtonText = Color.fromRGBO(57, 74, 95, 1.0);
static const Color distantBlue = Color.fromRGBO(70, 85, 133, 1.0); // mainBackgroundColor
static const Color lightDistantBlue = Color.fromRGBO(81, 96, 147, 1.0); // borderCardColor
static const Color nightBlue = Color.fromRGBO(45, 56, 95, 1.0); // walletCardBottomEndSync
static const Color gray = Color.fromRGBO(140, 153, 201, 1.0); // walletCardText
static const Color violetBlue = Color.fromRGBO(51, 63, 104, 1.0); // walletCardAddressField
static const Color moderateBlue = Color.fromRGBO(63, 77, 122, 1.0); // walletCardSubAddressField
static const Color darkNightBlue = Color.fromRGBO(33, 43, 73, 1.0); // historyPanel
static const Color pigeonBlue = Color.fromRGBO(91, 112, 146, 1.0); // historyPanelText
static const Color moderateNightBlue = Color.fromRGBO(39, 53, 96, 1.0); // historyPanelButton
static const Color headerNightBlue = Color.fromRGBO(41, 52, 84, 1.0); // menuHeader
static const Color lightNightBlue = Color.fromRGBO(48, 59, 95, 1.0); // menuList
static const Color moderatePurpleBlue = Color.fromRGBO(57, 74, 95, 1.0); // selectButtonText
}

@ -35,7 +35,7 @@ class AccountListPageForm extends State<AccountListPage> {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
@ -61,7 +61,7 @@ class AccountListPageForm extends State<AccountListPage> {
borderRadius: BorderRadius.all(Radius.circular(14)),
child: Container(
height: 296,
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Column(
children: <Widget>[
Expanded(
@ -71,7 +71,7 @@ class AccountListPageForm extends State<AccountListPage> {
return ListView.separated(
separatorBuilder: (context, index) => Divider(
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
height: 1,
),
itemCount: accounts == null ? 0 : accounts.length,
@ -117,7 +117,7 @@ class AccountListPageForm extends State<AccountListPage> {
children: <Widget>[
Icon(
Icons.add,
color: PaletteDark.historyPanel,
color: PaletteDark.darkNightBlue,
),
Padding(
padding: EdgeInsets.only(left: 5),
@ -126,7 +126,7 @@ class AccountListPageForm extends State<AccountListPage> {
style: TextStyle(
fontSize: 15,
fontWeight: FontWeight.w600,
color: PaletteDark.historyPanel,
color: PaletteDark.darkNightBlue,
decoration: TextDecoration.none,
),
),

@ -18,9 +18,6 @@ class AccountPage extends BasePage {
@override
String get title => S.current.account;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => AccountForm(account);
}
@ -65,7 +62,7 @@ class AccountFormState extends State<AccountForm> {
return Form(
key: _formKey,
child: Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
padding: EdgeInsets.all(24.0),
child: Column(
children: <Widget>[

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class AccountTile extends StatelessWidget {
AccountTile({
@ -14,8 +13,8 @@ class AccountTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
final color = isCurrent ? PaletteDark.menuHeader : Colors.transparent;
final textColor = isCurrent ? Colors.blue : Colors.white;
final color = isCurrent ? Theme.of(context).accentTextTheme.subtitle.decorationColor : Colors.transparent;
final textColor = isCurrent ? Colors.blue : Theme.of(context).primaryTextTheme.title.color;
return GestureDetector(
onTap: onTap,

@ -5,7 +5,6 @@ import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
import 'package:cake_wallet/src/stores/address_book/address_book_store.dart';
@ -17,9 +16,6 @@ class AddressBookPage extends BasePage {
final bool isEditable;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.address_book;
@ -35,11 +31,15 @@ class AddressBookPage extends BasePage {
width: 32.0,
height: 32.0,
decoration: BoxDecoration(
shape: BoxShape.circle, color: PaletteDark.menuList),
shape: BoxShape.circle,
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Icon(Icons.add, color: Colors.white, size: 22.0),
Icon(Icons.add,
color: Theme.of(context).primaryTextTheme.title.color,
size: 22.0),
ButtonTheme(
minWidth: 32.0,
height: 32.0,
@ -61,17 +61,17 @@ class AddressBookPage extends BasePage {
final addressBookStore = Provider.of<AddressBookStore>(context);
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
padding: EdgeInsets.only(top: 20.0, bottom: 20.0),
child: Observer(
builder: (_) => ListView.separated(
separatorBuilder: (_, __) => Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
),
),
itemCount: addressBookStore.contactList == null
@ -117,12 +117,12 @@ class AddressBookPage extends BasePage {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
)
: Offstage(),
Container(
width: double.infinity,
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Padding(
padding: const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24),
child: Row(
@ -141,7 +141,7 @@ class AddressBookPage extends BasePage {
contact.name,
style: TextStyle(
fontSize: 14,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
)
@ -153,7 +153,7 @@ class AddressBookPage extends BasePage {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
)
: Offstage(),
],

@ -10,7 +10,6 @@ import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
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/palette.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/src/widgets/alert_with_one_action.dart';
@ -23,9 +22,6 @@ class ContactPage extends BasePage {
@override
String get title => S.current.contact;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => ContactForm(contact);
}
@ -45,10 +41,6 @@ class ContactFormState extends State<ContactForm> {
final _currencyTypeController = TextEditingController();
final _addressController = TextEditingController();
final currencies = CryptoCurrency.all;
final downArrow = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: PaletteDark.walletCardText,
height: 8);
CryptoCurrency _selectectCrypto;
@ -90,13 +82,17 @@ class ContactFormState extends State<ContactForm> {
@override
Widget build(BuildContext context) {
final addressBookStore = Provider.of<AddressBookStore>(context);
final downArrow = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: Theme.of(context).dividerColor,
height: 8);
_contactNameController.addListener(() {onHandleControllers(addressBookStore);});
_currencyTypeController.addListener(() {onHandleControllers(addressBookStore);});
_addressController.addListener(() {onHandleControllers(addressBookStore);});
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.all(24),
content: Form(
@ -107,7 +103,6 @@ class ContactFormState extends State<ContactForm> {
BaseTextFormField(
controller: _contactNameController,
hintText: S.of(context).contact_name,
borderColor: PaletteDark.walletCardSubAddressField,
validator: (value) {
addressBookStore.validateContactName(value);
return addressBookStore.errorMessage;
@ -122,7 +117,6 @@ class ContactFormState extends State<ContactForm> {
child: BaseTextFormField(
controller: _currencyTypeController,
hintText: S.of(context).settings_currency,
borderColor: PaletteDark.walletCardSubAddressField,
suffixIcon: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.end,

@ -8,7 +8,6 @@ import 'package:cake_wallet/src/stores/auth/auth_store.dart';
import 'package:cake_wallet/src/screens/pin_code/pin_code.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/domain/common/biometric_auth.dart';
import 'package:cake_wallet/palette.dart';
typedef OnAuthenticationFinished = void Function(bool, AuthPageState);
@ -139,7 +138,7 @@ class AuthPageState extends State<AuthPage> {
),
)
: Container(),
backgroundColor: PaletteDark.historyPanel,
backgroundColor: Theme.of(context).backgroundColor,
border: null,
),
resizeToAvoidBottomPadding: false,

@ -4,13 +4,15 @@ import 'package:cake_wallet/src/widgets/nav_bar.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/themes.dart';
import 'package:cake_wallet/theme_changer.dart';
import 'package:cake_wallet/palette.dart';
enum AppBarStyle { regular, withShadow }
abstract class BasePage extends StatelessWidget {
String get title => null;
bool get isModalBackButton => false;
Color get backgroundColor => Colors.white;
Color get backgroundLightColor => Colors.white;
Color get backgroundDarkColor => PaletteDark.darkNightBlue;
bool get resizeToAvoidBottomPadding => true;
AppBarStyle get appBarStyle => AppBarStyle.regular;
@ -31,16 +33,13 @@ abstract class BasePage extends StatelessWidget {
final _themeChanger = Provider.of<ThemeChanger>(context);
Image _closeButton, _backButton;
_backButton = _backArrowImageDarkTheme;
_closeButton = _closeButtonImageDarkTheme;
/*if (_themeChanger.getTheme() == Themes.darkTheme) {
if (_themeChanger.getTheme() == Themes.darkTheme) {
_backButton = _backArrowImageDarkTheme;
_closeButton = _closeButtonImageDarkTheme;
} else {
_backButton = _backArrowImage;
_closeButton = _closeButtonImage;
}*/
}
return SizedBox(
height: 37,
@ -65,8 +64,7 @@ abstract class BasePage extends StatelessWidget {
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.white),
//color: Theme.of(context).primaryTextTheme.title.color),
color: Theme.of(context).primaryTextTheme.title.color),
);
}
@ -85,10 +83,9 @@ abstract class BasePage extends StatelessWidget {
leading: leading(context),
middle: middle(context),
trailing: trailing(context),
backgroundColor: backgroundColor);
/*backgroundColor: _isDarkTheme
? Theme.of(context).backgroundColor
: backgroundColor);*/
backgroundColor: _isDarkTheme
? backgroundDarkColor
: backgroundLightColor);
case AppBarStyle.withShadow:
return NavBar.withShadow(
@ -96,10 +93,9 @@ abstract class BasePage extends StatelessWidget {
leading: leading(context),
middle: middle(context),
trailing: trailing(context),
backgroundColor: backgroundColor);
/*backgroundColor: _isDarkTheme
? Theme.of(context).backgroundColor
: backgroundColor);*/
backgroundColor: _isDarkTheme
? backgroundDarkColor
: backgroundLightColor);
default:
return NavBar(
@ -107,10 +103,9 @@ abstract class BasePage extends StatelessWidget {
leading: leading(context),
middle: middle(context),
trailing: trailing(context),
backgroundColor: backgroundColor);
/*backgroundColor: _isDarkTheme
? Theme.of(context).backgroundColor
: backgroundColor);*/
backgroundColor: _isDarkTheme
? backgroundDarkColor
: backgroundLightColor);
}
}
@ -122,8 +117,9 @@ abstract class BasePage extends StatelessWidget {
final _isDarkTheme = _themeChanger.getTheme() == Themes.darkTheme;
return Scaffold(
backgroundColor:
_isDarkTheme ? Theme.of(context).backgroundColor : backgroundColor,
backgroundColor: _isDarkTheme
? backgroundDarkColor
: backgroundLightColor,
resizeToAvoidBottomPadding: resizeToAvoidBottomPadding,
appBar: appBar(context),
body: SafeArea(child: body(context)),

@ -1,43 +1,14 @@
import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/wallet_card.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/trade_history_panel.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart';
class DashboardPage extends BasePage {
class DashboardPage extends StatelessWidget {
final _bodyKey = GlobalKey();
@override
Color get backgroundColor => PaletteDark.mainBackgroundColor;
@override
Widget trailing(BuildContext context) {
final menuButton = Image.asset('assets/images/header.png');
return SizedBox(
height: 37,
width: 37,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () async {
await showDialog<void>(
builder: (_) => MenuWidget(),
context: context
);
},
child: menuButton),
),
);
}
@override
Widget body(BuildContext context) => DashboardPageBody(key: _bodyKey);
Widget build(BuildContext context) => DashboardPageBody(key: _bodyKey);
}
class DashboardPageBody extends StatefulWidget {
@ -51,21 +22,57 @@ class DashboardPageBodyState extends State<DashboardPageBody> {
@override
Widget build(BuildContext context) {
final menuButton = Image.asset('assets/images/header.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
return SafeArea(
child: Container(
color: PaletteDark.mainBackgroundColor,
child: Column(
children: <Widget>[
Padding(
padding: EdgeInsets.only(left: 20, top: 10),
child: WalletCard(),
),
SizedBox(
height: 28,
),
Expanded(child: TradeHistoryPanel())
],
child: Scaffold(
body: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor
],
begin: Alignment.centerLeft,
end: Alignment.centerRight
)
),
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 10, right: 10),
alignment: Alignment.centerRight,
child: SizedBox(
height: 44,
width: 44,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () async {
await showDialog<void>(
builder: (_) => MenuWidget(),
context: context
);
},
child: menuButton),
),
),
),
Padding(
padding: EdgeInsets.only(left: 20, top: 20),
child: WalletCard(),
),
SizedBox(
height: 28,
),
Expanded(child: TradeHistoryPanel())
],
),
),
),
);

@ -2,24 +2,33 @@ import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.da
import 'package:cake_wallet/src/stores/action_list/action_list_store.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/routes.dart';
import 'package:date_range_picker/date_range_picker.dart' as date_rage_picker;
import 'package:cake_wallet/themes.dart';
import 'package:cake_wallet/theme_changer.dart';
class ButtonHeader extends SliverPersistentHeaderDelegate {
final sendImage = Image.asset('assets/images/send.png');
final exchangeImage = Image.asset('assets/images/exchange.png');
final buyImage = Image.asset('assets/images/coins.png');
final filterButton = Image.asset('assets/images/filter_button.png');
@override
Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) {
final actionListStore = Provider.of<ActionListStore>(context);
final historyPanelWidth = MediaQuery.of(context).size.width;
final _themeChanger = Provider.of<ThemeChanger>(context);
Image filterButton;
if (_themeChanger.getTheme() == Themes.darkTheme) {
filterButton = Image.asset('assets/images/filter_button.png');
} else {
filterButton = Image.asset('assets/images/filter_light_button.png');
}
double buttonsOpacity = 1 - shrinkOffset / (maxExtent - minExtent);
double buttonsHeight = maxExtent - minExtent - shrinkOffset;
@ -68,173 +77,173 @@ class ButtonHeader extends SliverPersistentHeaderDelegate {
Positioned(
top: buttonsHeight,
left: 0,
child: Container(
width: historyPanelWidth,
height: 66,
padding: EdgeInsets.only(top: 20, left: 20, right: 20, bottom: 10),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20)),
color: PaletteDark.historyPanel,
),
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Text(
S.of(context).trade_history_title,
style: TextStyle(
fontSize: 20,
color: Colors.white
child: ClipRRect(
borderRadius: BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20)),
child: Container(
width: historyPanelWidth,
height: 66,
padding: EdgeInsets.only(top: 20, left: 20, right: 20, bottom: 10),
color: Theme.of(context).backgroundColor,
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Text(
S.of(context).trade_history_title,
style: TextStyle(
fontSize: 20,
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
Positioned(
right: 0,
child: PopupMenuButton<int>(
itemBuilder: (context) => [
PopupMenuItem(
enabled: false,
value: -1,
child: Text(S.of(context).transactions,
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme.caption.color))),
PopupMenuItem(
value: 0,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text(S.of(context).incoming),
Checkbox(
value: actionListStore
.transactionFilterStore
.displayIncoming,
onChanged: (value) =>
actionListStore
.transactionFilterStore
.toggleIncoming(),
)
]))),
PopupMenuItem(
value: 1,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text(S.of(context).outgoing),
Checkbox(
value: actionListStore
.transactionFilterStore
.displayOutgoing,
onChanged: (value) =>
actionListStore
.transactionFilterStore
.toggleOutgoing(),
)
]))),
PopupMenuItem(
value: 2,
child:
Text(S.of(context).transactions_by_date)),
PopupMenuDivider(),
PopupMenuItem(
enabled: false,
value: -1,
child: Text(S.of(context).trades,
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme.caption.color))),
PopupMenuItem(
value: 3,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('XMR.TO'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayXMRTO,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.xmrto),
)
]))),
PopupMenuItem(
value: 4,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('Change.NOW'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayChangeNow,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.changeNow),
)
]))),
PopupMenuItem(
value: 5,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('MorphToken'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayMorphToken,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.morphToken),
)
])))
],
child: filterButton,
onSelected: (item) async {
if (item == 2) {
final List<DateTime> picked =
await date_rage_picker.showDatePicker(
context: context,
initialFirstDate: DateTime.now()
.subtract(Duration(days: 1)),
initialLastDate: (DateTime.now()),
firstDate: DateTime(2015),
lastDate: DateTime.now()
.add(Duration(days: 1)));
Positioned(
right: 0,
child: PopupMenuButton<int>(
itemBuilder: (context) => [
PopupMenuItem(
enabled: false,
value: -1,
child: Text(S.of(context).transactions,
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme.caption.color))),
PopupMenuItem(
value: 0,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text(S.of(context).incoming),
Checkbox(
value: actionListStore
.transactionFilterStore
.displayIncoming,
onChanged: (value) =>
actionListStore
.transactionFilterStore
.toggleIncoming(),
)
]))),
PopupMenuItem(
value: 1,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text(S.of(context).outgoing),
Checkbox(
value: actionListStore
.transactionFilterStore
.displayOutgoing,
onChanged: (value) =>
actionListStore
.transactionFilterStore
.toggleOutgoing(),
)
]))),
PopupMenuItem(
value: 2,
child:
Text(S.of(context).transactions_by_date)),
PopupMenuDivider(),
PopupMenuItem(
enabled: false,
value: -1,
child: Text(S.of(context).trades,
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme.caption.color))),
PopupMenuItem(
value: 3,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('XMR.TO'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayXMRTO,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.xmrto),
)
]))),
PopupMenuItem(
value: 4,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('Change.NOW'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayChangeNow,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.changeNow),
)
]))),
PopupMenuItem(
value: 5,
child: Observer(
builder: (_) => Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
Text('MorphToken'),
Checkbox(
value: actionListStore
.tradeFilterStore
.displayMorphToken,
onChanged: (value) =>
actionListStore
.tradeFilterStore
.toggleDisplayExchange(
ExchangeProviderDescription
.morphToken),
)
])))
],
child: filterButton,
onSelected: (item) async {
if (item == 2) {
final List<DateTime> picked =
await date_rage_picker.showDatePicker(
context: context,
initialFirstDate: DateTime.now()
.subtract(Duration(days: 1)),
initialLastDate: (DateTime.now()),
firstDate: DateTime(2015),
lastDate: DateTime.now()
.add(Duration(days: 1)));
if (picked != null && picked.length == 2) {
actionListStore.transactionFilterStore
.changeStartDate(picked.first);
actionListStore.transactionFilterStore
.changeEndDate(picked.last);
if (picked != null && picked.length == 2) {
actionListStore.transactionFilterStore
.changeStartDate(picked.first);
actionListStore.transactionFilterStore
.changeEndDate(picked.last);
}
}
}
},
),
)
],
},
),
)
],
),
),
)
)
@ -274,7 +283,7 @@ class ButtonHeader extends SliverPersistentHeaderDelegate {
width: 48,
alignment: Alignment.center,
decoration: BoxDecoration(
color: PaletteDark.borderCardColor,
color: Theme.of(context).primaryTextTheme.subhead.color,
shape: BoxShape.circle
),
child: image,
@ -286,7 +295,7 @@ class ButtonHeader extends SliverPersistentHeaderDelegate {
title,
style: TextStyle(
fontSize: 16,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:intl/intl.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:provider/provider.dart';
@ -40,14 +39,17 @@ class DateSectionRaw extends StatelessWidget {
padding: EdgeInsets.only(top: 10, bottom: 10, left: 20, right: 20),
alignment: Alignment.center,
decoration: BoxDecoration(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
border: Border.all(
width: 1,
color: PaletteDark.historyPanel
color: Theme.of(context).backgroundColor
),
),
child: Text(title,
style: TextStyle(fontSize: 12, color: PaletteDark.historyPanelText))
style: TextStyle(
fontSize: 12,
color: Theme.of(context).primaryTextTheme.headline.color
))
);
}
}

@ -78,7 +78,7 @@ class MenuWidgetState extends State<MenuWidget> {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
@ -91,7 +91,7 @@ class MenuWidgetState extends State<MenuWidget> {
width: 4,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(2)),
color: PaletteDark.walletCardText
color: Theme.of(context).hintColor //
),
)
: Container(
@ -115,7 +115,7 @@ class MenuWidgetState extends State<MenuWidget> {
curve: Curves.fastOutSlowIn,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(24), bottomLeft: Radius.circular(24)),
color: PaletteDark.menuList.withOpacity(opacity)
color: Theme.of(context).primaryTextTheme.display1.color.withOpacity(opacity)
),
child: isDraw
? ListView.separated(
@ -131,7 +131,7 @@ class MenuWidgetState extends State<MenuWidget> {
bottom: fromBottomEdge),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(24)),
color: PaletteDark.menuHeader
color: Theme.of(context).primaryTextTheme.display2.color
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
@ -148,7 +148,7 @@ class MenuWidgetState extends State<MenuWidget> {
Text(
walletStore.name,
style: TextStyle(
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
decoration: TextDecoration.none,
fontFamily: 'Lato',
fontSize: 20,
@ -158,7 +158,7 @@ class MenuWidgetState extends State<MenuWidget> {
Text(
walletStore.account.label,
style: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
decoration: TextDecoration.none,
fontFamily: 'Lato',
fontSize: 12
@ -193,7 +193,7 @@ class MenuWidgetState extends State<MenuWidget> {
alignment: Alignment.topLeft,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(bottomLeft: Radius.circular(24)),
color: PaletteDark.menuList,
color: Theme.of(context).primaryTextTheme.display1.color,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
@ -206,7 +206,7 @@ class MenuWidgetState extends State<MenuWidget> {
item,
style: TextStyle(
decoration: TextDecoration.none,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
fontFamily: 'Lato',
fontSize: 20,
fontWeight: FontWeight.bold
@ -219,7 +219,7 @@ class MenuWidgetState extends State<MenuWidget> {
: Container(
height: tileHeight,
padding: EdgeInsets.only(left: 24, right: 24),
color: PaletteDark.menuList,
color: Theme.of(context).primaryTextTheme.display1.color,
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
@ -231,7 +231,7 @@ class MenuWidgetState extends State<MenuWidget> {
item,
style: TextStyle(
decoration: TextDecoration.none,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
fontFamily: 'Lato',
fontSize: 20,
fontWeight: FontWeight.bold
@ -244,9 +244,9 @@ class MenuWidgetState extends State<MenuWidget> {
);
},
separatorBuilder: (_, index) =>
Divider(
Container(
height: 1,
color: PaletteDark.walletCardText,
color: Theme.of(context).dividerColor,
),
itemCount: itemCount + 1)
: Offstage()

@ -6,7 +6,6 @@ import 'package:cake_wallet/src/stores/action_list/transaction_list_item.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
@ -58,101 +57,104 @@ class TradeHistoryPanelState extends State<TradeHistoryPanel> {
height: panelHeight,
duration: Duration(milliseconds: 1000),
curve: Curves.fastOutSlowIn,
child: CustomScrollView(
slivers: <Widget>[
SliverPersistentHeader(
delegate: ButtonHeader(),
pinned: true,
floating: false,
),
Observer(
key: _listObserverKey,
builder: (_) {
final items = actionListStore.items == null
? <String>[]
: actionListStore.items;
final itemsCount = items.length + 1;
final symbol = settingsStore.fiatCurrency.toString();
double freeSpaceHeight = MediaQuery.of(context).size.height - 496;
return SliverList(
key: _listKey,
delegate: SliverChildBuilderDelegate(
(context, index) {
if (index == itemsCount - 1) {
freeSpaceHeight = freeSpaceHeight >= 0 ? freeSpaceHeight : 0;
return Container(
height: freeSpaceHeight,
width: MediaQuery.of(context).size.width,
color: PaletteDark.historyPanel,
);
}
final item = items[index];
if (item is DateSectionItem) {
freeSpaceHeight -= 38;
return DateSectionRaw(date: item.date);
}
if (item is TransactionListItem) {
freeSpaceHeight -= 62;
final transaction = item.transaction;
final savedDisplayMode = settingsStore.balanceDisplayMode;
final formattedAmount =
savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: transaction.amountFormatted();
final formattedFiatAmount =
savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: transaction.fiatAmount(symbol);
return TransactionRow(
onTap: () => Navigator.of(context).pushNamed(
Routes.transactionDetails,
arguments: transaction),
direction: transaction.direction,
formattedDate:
transactionDateFormat.format(transaction.date),
formattedAmount: formattedAmount,
formattedFiatAmount: formattedFiatAmount,
isPending: transaction.isPending);
}
if (item is TradeListItem) {
freeSpaceHeight -= 62;
final trade = item.trade;
final savedDisplayMode = settingsStore.balanceDisplayMode;
final formattedAmount = trade.amount != null
? savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: trade.amountFormatted()
: trade.amount;
return TradeRow(
onTap: () => Navigator.of(context)
.pushNamed(Routes.tradeDetails, arguments: trade),
provider: trade.provider,
from: trade.from,
to: trade.to,
createdAtFormattedDate:
transactionDateFormat.format(trade.createdAt),
formattedAmount: formattedAmount);
}
return Container(
color: PaletteDark.historyPanel
);
},
childCount: itemsCount
)
);
})
],
child: ClipRRect(
borderRadius: BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20)),
child: CustomScrollView(
slivers: <Widget>[
SliverPersistentHeader(
delegate: ButtonHeader(),
pinned: true,
floating: false,
),
Observer(
key: _listObserverKey,
builder: (_) {
final items = actionListStore.items == null
? <String>[]
: actionListStore.items;
final itemsCount = items.length + 1;
final symbol = settingsStore.fiatCurrency.toString();
double freeSpaceHeight = MediaQuery.of(context).size.height - 496;
return SliverList(
key: _listKey,
delegate: SliverChildBuilderDelegate(
(context, index) {
if (index == itemsCount - 1) {
freeSpaceHeight = freeSpaceHeight >= 0 ? freeSpaceHeight : 0;
return Container(
height: freeSpaceHeight,
width: MediaQuery.of(context).size.width,
color: Theme.of(context).backgroundColor,
);
}
final item = items[index];
if (item is DateSectionItem) {
freeSpaceHeight -= 38;
return DateSectionRaw(date: item.date);
}
if (item is TransactionListItem) {
freeSpaceHeight -= 62;
final transaction = item.transaction;
final savedDisplayMode = settingsStore.balanceDisplayMode;
final formattedAmount =
savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: transaction.amountFormatted();
final formattedFiatAmount =
savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: transaction.fiatAmount(symbol);
return TransactionRow(
onTap: () => Navigator.of(context).pushNamed(
Routes.transactionDetails,
arguments: transaction),
direction: transaction.direction,
formattedDate:
transactionDateFormat.format(transaction.date),
formattedAmount: formattedAmount,
formattedFiatAmount: formattedFiatAmount,
isPending: transaction.isPending);
}
if (item is TradeListItem) {
freeSpaceHeight -= 62;
final trade = item.trade;
final savedDisplayMode = settingsStore.balanceDisplayMode;
final formattedAmount = trade.amount != null
? savedDisplayMode == BalanceDisplayMode.hiddenBalance
? '---'
: trade.amountFormatted()
: trade.amount;
return TradeRow(
onTap: () => Navigator.of(context)
.pushNamed(Routes.tradeDetails, arguments: trade),
provider: trade.provider,
from: trade.from,
to: trade.to,
createdAtFormattedDate:
transactionDateFormat.format(trade.createdAt),
formattedAmount: formattedAmount);
}
return Container(
color: Theme.of(context).backgroundColor
);
},
childCount: itemsCount
)
);
})
],
),
)
),
);

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.dart';
@ -28,10 +27,10 @@ class TradeRow extends StatelessWidget {
child: Container(
height: 60,
decoration: BoxDecoration(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
border: Border.all(
width: 1,
color: PaletteDark.historyPanel
color: Theme.of(context).backgroundColor
),
),
padding: EdgeInsets.only(top: 5, bottom: 5, left: 20, right: 20),
@ -41,7 +40,7 @@ class TradeRow extends StatelessWidget {
width: 36,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: PaletteDark.historyPanelButton
color: Theme.of(context).backgroundColor
),
child: _getPoweredImage(provider),
),
@ -56,13 +55,13 @@ class TradeRow extends StatelessWidget {
Text('${from.toString()}${to.toString()}',
style: TextStyle(
fontSize: 16,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
)),
formattedAmount != null
? Text(formattedAmount + ' ' + amountCrypto,
style: const TextStyle(
style: TextStyle(
fontSize: 16,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
))
: Container()
]),
@ -71,8 +70,8 @@ class TradeRow extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(createdAtFormattedDate,
style: const TextStyle(
fontSize: 14, color: PaletteDark.historyPanelText))
style: TextStyle(
fontSize: 14, color: Theme.of(context).primaryTextTheme.headline.color))
]),
],
),

@ -26,10 +26,10 @@ class TransactionRow extends StatelessWidget {
child: Container(
height: 60,
decoration: BoxDecoration(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
border: Border.all(
width: 1,
color: PaletteDark.historyPanel
color: Theme.of(context).backgroundColor
),
),
padding: EdgeInsets.only(top: 5, bottom: 5, left: 20, right: 20),
@ -39,7 +39,7 @@ class TransactionRow extends StatelessWidget {
width: 36,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: PaletteDark.historyPanelButton
color: Theme.of(context).primaryTextTheme.display3.color
),
child: Image.asset(
direction == TransactionDirection.incoming
@ -62,14 +62,14 @@ class TransactionRow extends StatelessWidget {
(isPending ? S.of(context).pending : ''),
style: TextStyle(
fontSize: 16,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
)),
Text(direction == TransactionDirection.incoming
? formattedAmount
: '- ' + formattedAmount,
style: const TextStyle(
style: TextStyle(
fontSize: 16,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
))
]),
SizedBox(height: 5,),
@ -77,13 +77,13 @@ class TransactionRow extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(formattedDate,
style: const TextStyle(
fontSize: 14, color: PaletteDark.historyPanelText)),
style: TextStyle(
fontSize: 14, color: Theme.of(context).primaryTextTheme.headline.color)),
Text(direction == TransactionDirection.incoming
? formattedFiatAmount
: '- ' + formattedFiatAmount,
style: const TextStyle(
fontSize: 14, color: PaletteDark.historyPanelText))
style: TextStyle(
fontSize: 14, color: Theme.of(context).primaryTextTheme.headline.color))
]),
],
),

@ -1,4 +1,5 @@
import 'dart:async';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/domain/common/balance_display_mode.dart';
import 'package:flutter/services.dart';
import 'package:provider/provider.dart';
@ -9,7 +10,6 @@ import 'package:cake_wallet/src/stores/wallet/wallet_store.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/sync_status.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
@ -25,7 +25,6 @@ class WalletCardState extends State<WalletCard> {
final _balanceObserverKey = GlobalKey();
final _addressObserverKey = GlobalKey();
final List<Color> colorsSync = [PaletteDark.walletCardSubAddressField, PaletteDark.walletCardBottomEndSync];
double cardWidth;
double cardHeight;
double screenWidth;
@ -58,6 +57,11 @@ class WalletCardState extends State<WalletCard> {
@override
Widget build(BuildContext context) {
final List<Color> colorsSync = [
Theme.of(context).cardTheme.color,
Theme.of(context).hoverColor
];
return Container(
width: double.infinity,
height: cardHeight,
@ -75,38 +79,40 @@ class WalletCardState extends State<WalletCard> {
),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
color: PaletteDark.borderCardColor,
color: Theme.of(context).focusColor,
boxShadow: [
BoxShadow(
color: PaletteDark.historyPanel.withOpacity(0.5),
color: PaletteDark.darkNightBlue.withOpacity(0.5),
blurRadius: 8,
offset: Offset(5, 5))
]
),
child: Container(
width: cardWidth,
height: cardHeight,
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
color: PaletteDark.historyPanel
),
child: InkWell(
onTap: () => setState(() => isFrontSide = !isFrontSide),
child: isFrontSide
? frontSide()
: backSide()
child: ClipRRect(
borderRadius: BorderRadius.only(topLeft: Radius.circular(10), bottomLeft: Radius.circular(10)),
child: Container(
width: cardWidth,
height: cardHeight,
color: Theme.of(context).cardColor,
child: InkWell(
onTap: () => setState(() => isFrontSide = !isFrontSide),
child: isFrontSide
? frontSide(colorsSync)
: backSide(colorsSync)
),
),
),
)
),
);
}
Widget frontSide() {
Widget frontSide(List<Color> colorsSync) {
final syncStore = Provider.of<SyncStore>(context);
final walletStore = Provider.of<WalletStore>(context);
final settingsStore = Provider.of<SettingsStore>(context);
final balanceStore = Provider.of<BalanceStore>(context);
final triangleButton = Image.asset('assets/images/triangle.png');
final triangleButton = Image.asset('assets/images/triangle.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
return Observer(
key: _syncingObserverKey,
@ -159,7 +165,7 @@ class WalletCardState extends State<WalletCard> {
child: Container(
width: 1,
height: cardHeight,
color: PaletteDark.borderCardColor,
color: Theme.of(context).focusColor,
)
)
: Offstage(),
@ -180,7 +186,7 @@ class WalletCardState extends State<WalletCard> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
InkWell(
onTap: () {print('TAP 2');},
onTap: () {},
child: Row(
children: <Widget>[
Text(
@ -188,7 +194,7 @@ class WalletCardState extends State<WalletCard> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
SizedBox(width: 10),
@ -202,8 +208,8 @@ class WalletCardState extends State<WalletCard> {
Text(
walletStore.account.label,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText
fontSize: 12,
color: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -213,14 +219,14 @@ class WalletCardState extends State<WalletCard> {
height: 32,
alignment: Alignment.center,
decoration: BoxDecoration(
color: PaletteDark.walletCardAddressField,
color: Theme.of(context).accentTextTheme.subtitle.backgroundColor,
borderRadius: BorderRadius.all(Radius.circular(16))
),
child: Text(
shortAddress,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardAddressText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)
@ -265,7 +271,7 @@ class WalletCardState extends State<WalletCard> {
balanceDisplayMode.toString(),
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
SizedBox(height: 5),
@ -273,7 +279,7 @@ class WalletCardState extends State<WalletCard> {
balance,
style: TextStyle(
fontSize: 28,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)
],
@ -282,7 +288,7 @@ class WalletCardState extends State<WalletCard> {
fiatBalance,
style: TextStyle(
fontSize: 14,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)
],
@ -300,7 +306,7 @@ class WalletCardState extends State<WalletCard> {
statusText,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
SizedBox(height: 5),
@ -308,7 +314,7 @@ class WalletCardState extends State<WalletCard> {
descriptionText,
style: TextStyle(
fontSize: 14,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)
],
@ -327,9 +333,11 @@ class WalletCardState extends State<WalletCard> {
);
}
Widget backSide() {
Widget backSide(List<Color> colorsSync) {
final walletStore = Provider.of<WalletStore>(context);
final rightArrow = Image.asset('assets/images/right_arrow.png');
final rightArrow = Image.asset('assets/images/right_arrow.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
double messageBoxHeight = 0;
double messageBoxWidth = cardWidth - 10;
@ -371,7 +379,7 @@ class WalletCardState extends State<WalletCard> {
S.current.card_address,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
GestureDetector(
@ -397,7 +405,7 @@ class WalletCardState extends State<WalletCard> {
walletStore.subaddress.address,
style: TextStyle(
fontSize: 14,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
)
@ -412,7 +420,7 @@ class WalletCardState extends State<WalletCard> {
child: QrImage(
data: walletStore.subaddress.address,
backgroundColor: Colors.transparent,
foregroundColor: PaletteDark.walletCardText,
foregroundColor: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -423,7 +431,7 @@ class WalletCardState extends State<WalletCard> {
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(22)),
color: PaletteDark.walletCardSubAddressField
color: Theme.of(context).primaryTextTheme.overline.color
),
child: InkWell(
onTap: () => Navigator.of(context,
@ -436,7 +444,7 @@ class WalletCardState extends State<WalletCard> {
S.of(context).accounts_subaddresses,
style: TextStyle(
fontSize: 14,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
rightArrow

@ -2,7 +2,6 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/palette.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
@ -14,9 +13,6 @@ class DisclaimerPage extends BasePage {
final bool isReadOnly;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => 'Terms of Use';
@ -78,7 +74,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
@override
Widget build(BuildContext context) {
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Column(
children: <Widget>[
SizedBox(height: 10.0),
@ -99,7 +95,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
)
@ -120,7 +116,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
)
@ -136,7 +132,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
_fileText,
style: TextStyle(
fontSize: 12.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
))
],
@ -154,7 +150,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
)
@ -240,8 +236,8 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
PaletteDark.historyPanel.withOpacity(0.0),
PaletteDark.historyPanel,
Theme.of(context).backgroundColor.withOpacity(0.0),
Theme.of(context).backgroundColor,
],
begin: FractionalOffset.topCenter,
end: FractionalOffset.bottomCenter,
@ -279,10 +275,10 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
),
decoration: BoxDecoration(
border: Border.all(
color: Palette.lightGrey, width: 1.0),
color: Theme.of(context).primaryTextTheme.caption.color, width: 1.0),
borderRadius: BorderRadius.all(
Radius.circular(8.0)),
color: PaletteDark.historyPanel),
color: Theme.of(context).backgroundColor),
child: _checked
? Icon(
Icons.check,
@ -296,7 +292,7 @@ class DisclaimerBodyState extends State<DisclaimerPageBody> {
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 14.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)
],

@ -16,7 +16,10 @@ class ExchangePage extends BasePage {
String get title => S.current.exchange;
@override
Color get backgroundColor => PaletteDark.walletCardSubAddressField;
Color get backgroundLightColor => Palette.darkLavender;
@override
Color get backgroundDarkColor => PaletteDark.moderateBlue;
@override
Widget middle(BuildContext context) {
@ -38,7 +41,7 @@ class ExchangePage extends BasePage {
child: Text(
S.of(context).clear,
style: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontWeight: FontWeight.w500,
fontSize: 14),
),

@ -16,7 +16,10 @@ class ExchangeTemplatePage extends BasePage {
String get title => S.current.exchange_new_template;
@override
Color get backgroundColor => PaletteDark.walletCardSubAddressField;
Color get backgroundLightColor => Palette.darkLavender;
@override
Color get backgroundDarkColor => PaletteDark.moderateBlue;
@override
Widget trailing(BuildContext context) {

@ -6,7 +6,6 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
@ -63,19 +62,18 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
final _formKey = GlobalKey<FormState>();
var _isReactionsSet = false;
final Image arrowBottomPurple = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: Colors.white,
height: 8,
);
final Image arrowBottomCakeGreen = Image.asset(
'assets/images/arrow_bottom_cake_green.png',
color: Colors.white,
height: 8,
);
@override
Widget build(BuildContext context) {
final Image arrowBottomPurple = Image.asset(
'assets/images/arrow_bottom_purple_icon.png',
color: Theme.of(context).primaryTextTheme.title.color,
height: 8,
);
final Image arrowBottomCakeGreen = Image.asset(
'assets/images/arrow_bottom_cake_green.png',
color: Theme.of(context).primaryTextTheme.title.color,
height: 8,
);
final depositWalletName =
exchangeStore.depositCurrency == CryptoCurrency.xmr
@ -90,7 +88,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
(_) => _setReactions(context, exchangeStore, walletStore));
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Form(
key: _formKey,
child: ScrollableWithBottomSection(
@ -98,12 +96,12 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
content: Column(
children: <Widget>[
TopPanel(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
edgeInsets: EdgeInsets.only(bottom: 24),
widget: Column(
children: <Widget>[
TopPanel(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).accentTextTheme.title.color,
widget: Observer(
builder: (_) => ExchangeCard(
key: depositKey,
@ -121,8 +119,8 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
onCurrencySelected: (currency) =>
exchangeStore.changeDepositCurrency(currency: currency),
imageArrow: arrowBottomPurple,
currencyButtonColor: PaletteDark.walletCardSubAddressField,
addressButtonsColor: PaletteDark.menuList,
currencyButtonColor: Theme.of(context).accentTextTheme.title.color,
addressButtonsColor: Theme.of(context).accentTextTheme.title.backgroundColor,
currencyValueValidator: (value) {
exchangeStore.validateCryptoCurrency(value);
return exchangeStore.errorMessage;
@ -154,7 +152,8 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
onCurrencySelected: (currency) => exchangeStore
.changeReceiveCurrency(currency: currency),
imageArrow: arrowBottomCakeGreen,
currencyButtonColor: PaletteDark.menuList,
currencyButtonColor: Theme.of(context).accentTextTheme.title.backgroundColor,
addressButtonsColor: Theme.of(context).accentTextTheme.title.color,
currencyValueValidator: (value) {
exchangeStore.validateCryptoCurrency(value);
return exchangeStore.errorMessage;
@ -185,7 +184,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -215,7 +214,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
child: DottedBorder(
borderType: BorderType.RRect,
dashPattern: [8, 4],
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
strokeWidth: 2,
radius: Radius.circular(20),
child: Container(
@ -232,7 +231,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)
@ -273,7 +272,7 @@ class BaseExchangeWidgetState extends State<BaseExchangeWidget> {
child: Text(
description,
style: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 12
),
),

@ -26,7 +26,7 @@ class CurrencyPicker extends StatelessWidget {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
@ -53,7 +53,7 @@ class CurrencyPicker extends StatelessWidget {
child: Container(
height: 400,
width: 300,
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
child: GridView.count(
shrinkWrap: true,
crossAxisCount: 3,
@ -65,7 +65,7 @@ class CurrencyPicker extends StatelessWidget {
if (index == 14) {
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).primaryTextTheme.display1.color,
);
}
@ -73,11 +73,11 @@ class CurrencyPicker extends StatelessWidget {
final isItemSelected = index == selectedAtIndex;
final color = isItemSelected
? PaletteDark.historyPanel
: PaletteDark.menuList;
? Theme.of(context).accentTextTheme.subtitle.decorationColor
: Theme.of(context).primaryTextTheme.display1.color;
final textColor = isItemSelected
? Colors.blue
: Colors.white;
: Theme.of(context).primaryTextTheme.title.color;
return GestureDetector(
onTap: () {

@ -1,6 +1,5 @@
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
import 'package:cake_wallet/src/widgets/address_text_field.dart';
@ -21,7 +20,7 @@ class ExchangeCard extends StatefulWidget {
this.onCurrencySelected,
this.imageArrow,
this.currencyButtonColor = Colors.transparent,
this.addressButtonsColor = PaletteDark.walletCardSubAddressField,
this.addressButtonsColor = Colors.transparent,
this.currencyValueValidator,
this.addressTextFieldValidator})
: super(key: key);
@ -124,7 +123,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -144,7 +143,6 @@ class ExchangeCardState extends State<ExchangeCard> {
RegExp('[\\-|\\ |\\,]'))
],
hintText: '0.0000',
borderColor: PaletteDark.borderCardColor,
validator: widget.currencyValueValidator
),
Positioned(
@ -165,7 +163,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: 16,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
Padding(
padding: EdgeInsets.only(left: 5),
child: widget.imageArrow,
@ -189,7 +187,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 10,
height: 1.2,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)
: Offstage(),
_min != null ? SizedBox(width: 10) : Offstage(),
@ -200,7 +198,7 @@ class ExchangeCardState extends State<ExchangeCard> {
style: TextStyle(
fontSize: 10,
height: 1.2,
color: PaletteDark.walletCardText))
color: Theme.of(context).primaryTextTheme.caption.color))
: Offstage(),
]),
),

@ -4,7 +4,6 @@ import 'package:cake_wallet/src/domain/exchange/exchange_provider_description.da
import 'package:cake_wallet/src/domain/exchange/exchange_provider.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/widgets/picker.dart';
class PresentProviderPicker extends StatelessWidget {
@ -12,11 +11,13 @@ class PresentProviderPicker extends StatelessWidget {
final ExchangeStore exchangeStore;
final Image arrowBottom =
Image.asset('assets/images/arrow_bottom_purple_icon.png', color: Colors.white, height: 6);
@override
Widget build(BuildContext context) {
final Image arrowBottom =
Image.asset('assets/images/arrow_bottom_purple_icon.png',
color: Theme.of(context).primaryTextTheme.title.color,
height: 6);
return FlatButton(
onPressed: () => _presentProviderPicker(context),
highlightColor: Colors.transparent,
@ -33,13 +34,13 @@ class PresentProviderPicker extends StatelessWidget {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w400,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
Observer(
builder: (_) => Text('${exchangeStore.provider.title}',
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.w400,
color:PaletteDark.walletCardText)))
color: Theme.of(context).primaryTextTheme.caption.color)))
],
),
SizedBox(width: 5),

@ -6,24 +6,21 @@ 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/src/domain/exchange/trade.dart';
import 'package:cake_wallet/palette.dart';
class ExchangeConfirmPage extends BasePage {
ExchangeConfirmPage({@required this.trade});
final Trade trade;
final copyImage = Image.asset('assets/images/copy_content.png', color: Colors.white);
@override
String get title => S.current.copy_id;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) {
final copyImage = Image.asset('assets/images/copy_content.png',
color: Theme.of(context).primaryTextTheme.title.color);
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.all(24),
child: Column(
children: <Widget>[
@ -38,7 +35,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.w600,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
Padding(
padding: EdgeInsets.only(top: 60),
@ -48,7 +45,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
),
Padding(
@ -72,7 +69,7 @@ class ExchangeConfirmPage extends BasePage {
padding: EdgeInsets.only(left: 24, right: 24),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(30)),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: Row(
mainAxisSize: MainAxisSize.max,
@ -85,7 +82,7 @@ class ExchangeConfirmPage extends BasePage {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),

@ -6,7 +6,6 @@ import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/stores/exchange_trade/exchange_trade_store.dart';
import 'package:cake_wallet/src/stores/send/send_store.dart';
@ -24,9 +23,6 @@ class ExchangeTradePage extends BasePage {
@override
String get title => S.current.exchange;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => ExchangeTradeForm();
}
@ -51,7 +47,6 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
_setEffects(context);
return Container(
color: PaletteDark.historyPanel,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(left: 24, right: 24, top: 24),
content: Observer(builder: (_) {
@ -78,14 +73,14 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
height: 2,
fontWeight: FontWeight.bold,
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
Text(
'${trade.id ?? fetchingLabel}',
style: TextStyle(
fontSize: 14.0,
height: 2,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)
],
),
@ -98,14 +93,14 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
height: 2,
fontWeight: FontWeight.bold,
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
Text(
'${trade.amount ?? fetchingLabel}',
style: TextStyle(
fontSize: 14.0,
height: 2,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)
],
),
@ -119,14 +114,14 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
height: 2,
fontWeight: FontWeight.bold,
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
Text(
'${trade.extraId ?? fetchingLabel}',
style: TextStyle(
fontSize: 14.0,
height: 2,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)
],
)
@ -139,7 +134,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
height: 2),
),
Text(
@ -147,7 +142,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 14.0,
height: 2,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)
],
),
@ -159,10 +154,10 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
S.of(context).offer_expires_in,
style: TextStyle(
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
TimerWidget(trade.expiredAt,
color: PaletteDark.walletCardText)
color: Theme.of(context).primaryTextTheme.caption.color)
],
)
: Container(),
@ -186,7 +181,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
child: QrImage(
data: trade.inputAddress ?? fetchingLabel,
backgroundColor: Colors.transparent,
foregroundColor: PaletteDark.walletCardText,
foregroundColor: Theme.of(context).primaryTextTheme.display4.color,
),
),
)),
@ -208,7 +203,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.bold,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
),
Container(
@ -217,7 +212,9 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
child: Text(
trade.inputAddress ?? fetchingLabel,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 14.0, color: PaletteDark.walletCardText),
style: TextStyle(
fontSize: 14.0,
color: Theme.of(context).primaryTextTheme.caption.color),
),
),
),
@ -242,8 +239,8 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
));
},
text: S.of(context).copy_address,
color: PaletteDark.menuList,
textColor: Colors.white)
color: Theme.of(context).accentTextTheme.title.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.title.color)
),
)),
Flexible(
@ -264,8 +261,8 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
));
},
text: S.of(context).copy_id,
color: PaletteDark.menuList,
textColor: Colors.white)
color: Theme.of(context).accentTextTheme.title.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.title.color)
),
))
],
@ -284,7 +281,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
textAlign: TextAlign.left,
style: TextStyle(
fontSize: 13.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
),
Text(
@ -292,7 +289,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
textAlign: TextAlign.left,
style: TextStyle(
fontSize: 13.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
)
],
);

@ -1,30 +0,0 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class CopyButton extends StatelessWidget {
const CopyButton(
{@required this.onPressed,
@required this.text,
@required this.color,
@required this.borderColor});
final VoidCallback onPressed;
final Color color;
final Color borderColor;
final String text;
@override
Widget build(BuildContext context) {
return ButtonTheme(
minWidth: double.infinity,
height: 44.0,
child: FlatButton(
onPressed: onPressed,
color: color,
shape: RoundedRectangleBorder(
side: BorderSide(color: borderColor),
borderRadius: BorderRadius.circular(10.0)),
child: Text(text, style: TextStyle(fontSize: 14.0)),
));
}
}

@ -5,15 +5,11 @@ import 'package:provider/provider.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/palette.dart';
class FaqPage extends BasePage {
@override
String get title => S.current.faq;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => FaqForm();
}
@ -24,25 +20,25 @@ class FaqForm extends StatefulWidget {
}
class FaqFormState extends State<FaqForm> {
final addIcon = Icon(Icons.add, color: Colors.white);
final removeIcon = Icon(Icons.remove, color: Colors.green);
List<Icon> icons;
List<Color> colors;
bool isLoaded = false;
@override
Widget build(BuildContext context) {
final addIcon = Icon(Icons.add, color: Theme.of(context).primaryTextTheme.title.color);
final removeIcon = Icon(Icons.remove, color: Colors.green);
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 12),
child: Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.headline.color,
child: FutureBuilder(
builder: (context, snapshot) {
final faqItems = jsonDecode(snapshot.data.toString()) as List;
if (snapshot.hasData) {
setIconsAndColors(faqItems.length);
setIconsAndColors(context, faqItems.length, addIcon);
}
return SingleChildScrollView(
@ -74,7 +70,7 @@ class FaqFormState extends State<FaqForm> {
),
),
),
backgroundColor: PaletteDark.menuHeader,
backgroundColor: Theme.of(context).accentTextTheme.headline.backgroundColor,
onExpansionChanged: (value) {
setState(() {
if (value) {
@ -82,7 +78,7 @@ class FaqFormState extends State<FaqForm> {
colors[index] = Colors.green;
} else {
icons[index] = addIcon;
colors[index] = Colors.white;
colors[index] = Theme.of(context).primaryTextTheme.title.color;
}
});
},
@ -101,7 +97,7 @@ class FaqFormState extends State<FaqForm> {
itemChild,
style: TextStyle(
fontSize: 12,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
))
@ -111,7 +107,7 @@ class FaqFormState extends State<FaqForm> {
);
},
separatorBuilder: (_, __) =>
Container(color: PaletteDark.mainBackgroundColor, height: 1.0),
Container(color: Theme.of(context).dividerColor, height: 1.0),
itemCount: faqItems == null ? 0 : faqItems.length,
),
);
@ -122,13 +118,13 @@ class FaqFormState extends State<FaqForm> {
);
}
void setIconsAndColors(int index) {
void setIconsAndColors(BuildContext context, int index, Icon icon) {
if (isLoaded) {
return;
}
icons = List.generate(index, (int i) => addIcon);
colors = List.generate(index, (int i) => Colors.white);
icons = List.generate(index, (int i) => icon);
colors = List.generate(index, (int i) => Theme.of(context).primaryTextTheme.title.color);
isLoaded = true;
}

@ -12,7 +12,6 @@ import 'package:cake_wallet/src/domain/services/wallet_service.dart';
import 'package:cake_wallet/src/screens/base_page.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/palette.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
@ -31,9 +30,6 @@ class NewWalletPage extends BasePage {
@override
String get title => S.current.new_wallet;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => WalletNameForm();
}
@ -102,7 +98,6 @@ class _WalletNameFormState extends State<WalletNameForm> {
});
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
@ -124,21 +119,21 @@ class _WalletNameFormState extends State<WalletNameForm> {
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.w600,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
controller: nameController,
decoration: InputDecoration(
hintStyle: TextStyle(
fontSize: 16.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
hintText: S.of(context).wallet_name,
focusedBorder: UnderlineInputBorder(
borderSide:
BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletCreationStore.validateWalletName(value);
@ -153,7 +148,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
@ -162,8 +157,8 @@ class _WalletNameFormState extends State<WalletNameForm> {
builder: (_) => SelectButton(
image: null,
text: seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)],
color: PaletteDark.menuList,
textColor: Colors.white,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.title.color,
onTap: () async => await showDialog(
context: context,
builder: (BuildContext context) => SeedLanguagePicker()

@ -4,7 +4,6 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/base_page.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/palette.dart';
import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
import 'package:cake_wallet/routes.dart';
@ -12,9 +11,6 @@ class NewWalletTypePage extends BasePage {
@override
String get title => S.current.new_wallet;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => WalletTypeForm();
}
@ -35,10 +31,10 @@ class WalletTypeFormState extends State<WalletTypeForm> {
bool isMoneroSelected;
bool isBitcoinSelected;
Color moneroBackgroundColor;
Color moneroTextColor;
Color bitcoinBackgroundColor;
Color bitcoinTextColor;
Color moneroBackgroundColor = Colors.transparent;
Color moneroTextColor = Colors.transparent;
Color bitcoinBackgroundColor = Colors.transparent;
Color bitcoinTextColor = Colors.transparent;
@override
void initState() {
@ -46,18 +42,21 @@ class WalletTypeFormState extends State<WalletTypeForm> {
isMoneroSelected = false;
isBitcoinSelected = false;
moneroBackgroundColor = PaletteDark.menuList;
moneroTextColor = Colors.white;
bitcoinBackgroundColor = PaletteDark.menuList;
bitcoinTextColor = Colors.white;
super.initState();
WidgetsBinding.instance.addPostFrameCallback(afterLayout);
}
void afterLayout(dynamic _) {
moneroBackgroundColor = Theme.of(context).accentTextTheme.title.backgroundColor;
moneroTextColor = Theme.of(context).primaryTextTheme.title.color;
bitcoinBackgroundColor = Theme.of(context).accentTextTheme.title.backgroundColor;
bitcoinTextColor = Theme.of(context).primaryTextTheme.title.color;
setState(() {});
}
@override
Widget build(BuildContext context) {
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
@ -78,7 +77,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
@ -98,7 +97,7 @@ class WalletTypeFormState extends State<WalletTypeForm> {
text: 'Monero',
color: moneroBackgroundColor,
textColor: moneroTextColor,
onTap: () => onSelectMoneroButton()),
onTap: () => onSelectMoneroButton(context)),
)
],
),
@ -118,28 +117,28 @@ class WalletTypeFormState extends State<WalletTypeForm> {
);
}
void onSelectMoneroButton() {
void onSelectMoneroButton(BuildContext context) {
isMoneroSelected = true;
isBitcoinSelected = false;
isDisabledButton = false;
moneroBackgroundColor = Colors.white;
moneroTextColor = PaletteDark.selectButtonText;
bitcoinBackgroundColor = PaletteDark.menuList;
bitcoinTextColor = Colors.white;
moneroBackgroundColor = Theme.of(context).accentTextTheme.title.decorationColor;
moneroTextColor = Theme.of(context).primaryTextTheme.title.backgroundColor;
bitcoinBackgroundColor = Theme.of(context).accentTextTheme.title.backgroundColor;
bitcoinTextColor = Theme.of(context).primaryTextTheme.title.color;
setState(() {});
}
void onSelectBitcoinButton() {
void onSelectBitcoinButton(BuildContext context) {
isMoneroSelected = false;
isBitcoinSelected = true;
isDisabledButton = false;
moneroBackgroundColor = PaletteDark.menuList;
moneroTextColor = Colors.white;
bitcoinBackgroundColor = Colors.white;
bitcoinTextColor = PaletteDark.selectButtonText;
moneroBackgroundColor = Theme.of(context).accentTextTheme.title.backgroundColor;
moneroTextColor = Theme.of(context).primaryTextTheme.title.color;
bitcoinBackgroundColor = moneroBackgroundColor = Theme.of(context).accentTextTheme.title.decorationColor;
bitcoinTextColor = Theme.of(context).primaryTextTheme.title.backgroundColor;
setState(() {});
}

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/stores/node_list/node_list_store.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
@ -13,9 +12,6 @@ class NewNodePage extends BasePage {
@override
String get title => S.current.node_new;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => NewNodePageForm();
}
@ -58,7 +54,6 @@ class NewNodeFormState extends State<NewNodePageForm> {
_nodePortController.addListener(() {onHandleControllers(nodeList);});
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(left: 24, right: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 24.0),
@ -72,22 +67,22 @@ class NewNodeFormState extends State<NewNodePageForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
hintStyle:
TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).node_address,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
controller: _nodeAddressController,
validator: (value) {
@ -105,24 +100,24 @@ class NewNodeFormState extends State<NewNodePageForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
keyboardType: TextInputType.numberWithOptions(
signed: false, decimal: false),
decoration: InputDecoration(
hintStyle:
TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).node_port,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
controller: _nodePortController,
validator: (value) {
@ -140,22 +135,22 @@ class NewNodeFormState extends State<NewNodePageForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
hintStyle:
TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).login,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
controller: _loginController,
validator: (value) => null,
@ -170,22 +165,22 @@ class NewNodeFormState extends State<NewNodePageForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
hintStyle:
TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).password,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
controller: _passwordController,
validator: (value) => null,

@ -18,9 +18,6 @@ class NodeListPage extends BasePage {
@override
String get title => S.current.nodes;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget trailing(context) {
final nodeList = Provider.of<NodeListStore>(context);
@ -31,7 +28,7 @@ class NodeListPage extends BasePage {
width: 72,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(16)),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: ButtonTheme(
minWidth: double.minPositive,
@ -82,24 +79,25 @@ class NodeListPageBodyState extends State<NodeListPageBody> {
final trashImage = Image.asset('assets/images/trash.png', height: 32, width: 32, color: Colors.white);
final currentColor = PaletteDark.menuHeader;
final notCurrentColor = PaletteDark.menuList;
final currentColor = Theme.of(context).accentTextTheme.subtitle.decorationColor;
final notCurrentColor = Theme.of(context).accentTextTheme.title.backgroundColor;
final currentTextColor = Colors.blue;
final notCurrentTextColor = Colors.white;
final notCurrentTextColor = Theme.of(context).primaryTextTheme.title.color;
return Container(
height: double.infinity,
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 12),
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
NodeListRow(
title: S.of(context).add_new_node,
trailing: Icon(Icons.add, color: Colors.white, size: 24.0),
color: PaletteDark.menuList,
textColor: Colors.white,
trailing: Icon(Icons.add,
color: Theme.of(context).primaryTextTheme.title.color,
size: 24.0),
color: Theme.of(context).accentTextTheme.title.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.title.color,
onTap: () async =>
await Navigator.of(context).pushNamed(Routes.newNode),
isDrawTop: true,
@ -112,10 +110,10 @@ class NodeListPageBodyState extends State<NodeListPageBody> {
separatorBuilder: (_, __) => Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
),
),
itemCount: nodeList.nodes.length,

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class NodeListRow extends StatelessWidget {
NodeListRow({
@ -27,7 +26,7 @@ class NodeListRow extends StatelessWidget {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
)
: Offstage(),
Container(
@ -54,7 +53,7 @@ class NodeListRow extends StatelessWidget {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
)
: Offstage(),
],

@ -1,7 +1,6 @@
import 'package:provider/provider.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/generated/i18n.dart';
@ -29,8 +28,6 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
static const defaultPinLength = 4;
static const sixPinLength = 6;
static const fourPinLength = 4;
static final deleteIconImage = Image.asset('assets/images/delete_icon.png');
static final faceImage = Image.asset('assets/images/face.png');
final _gridViewKey = GlobalKey();
int pinLength = defaultPinLength;
@ -89,9 +86,18 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
Widget build(BuildContext context) => Scaffold(body: body(context));
Widget body(BuildContext context) {
final deleteIconImage = Image.asset(
'assets/images/delete_icon.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
final faceImage = Image.asset(
'assets/images/face.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
return SafeArea(
child: Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
padding: EdgeInsets.only(left: 40.0, right: 40.0, bottom: 40.0),
child: Column(children: <Widget>[
Spacer(flex: 2),
@ -99,7 +105,8 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color
)),
Spacer(flex: 3),
Container(
width: 180,
@ -114,7 +121,9 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
height: size,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: isFilled ? Colors.white : PaletteDark.walletCardAddressField,
color: isFilled
? Theme.of(context).primaryTextTheme.title.color
: Theme.of(context).primaryTextTheme.caption.color,
));
}),
),
@ -129,7 +138,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
},
child: Text(
_changePinLengthText(),
style: TextStyle(fontSize: 14.0, color: PaletteDark.walletCardText),
style: TextStyle(fontSize: 14.0, color: Theme.of(context).primaryTextTheme.caption.color),
))
],
Spacer(flex: 1),
@ -153,7 +162,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
left: marginLeft, right: marginRight),
child: FlatButton(
onPressed: () {},
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
shape: CircleBorder(),
child: faceImage,
),
@ -166,7 +175,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
left: marginLeft, right: marginRight),
child: FlatButton(
onPressed: () => _pop(),
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
shape: CircleBorder(),
child: deleteIconImage,
),
@ -180,13 +189,13 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
left: marginLeft, right: marginRight),
child: FlatButton(
onPressed: () => _push(index),
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
shape: CircleBorder(),
child: Text('$index',
style: TextStyle(
fontSize: 30.0,
fontWeight: FontWeight.bold,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
),
);
}),

@ -6,60 +6,28 @@ import 'package:esys_flutter_share/esys_flutter_share.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/stores/subaddress_list/subaddress_list_store.dart';
import 'package:cake_wallet/src/stores/wallet/wallet_store.dart';
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/accounts/account_list_page.dart';
import 'package:cake_wallet/src/stores/account_list/account_list_store.dart';
import 'package:cake_wallet/src/screens/receive/widgets/header_tile.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
import 'package:cake_wallet/themes.dart';
import 'package:cake_wallet/theme_changer.dart';
class ReceivePage extends BasePage {
class ReceivePage extends StatefulWidget {
@override
Color get backgroundColor => PaletteDark.mainBackgroundColor;
@override
bool get resizeToAvoidBottomPadding => false;
@override
String get title => S.current.receive;
@override
Widget trailing(BuildContext context) {
final walletStore = Provider.of<WalletStore>(context);
final shareImage = Image.asset('assets/images/share.png');
return SizedBox(
height: 37.0,
width: 37.0,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () => Share.text(
S.current.share_address, walletStore.subaddress.address, 'text/plain'),
child: shareImage),
),
);
}
@override
Widget body(BuildContext context) => ReceiveBody();
ReceivePageState createState() => ReceivePageState();
}
class ReceiveBody extends StatefulWidget {
@override
ReceiveBodyState createState() => ReceiveBodyState();
}
class ReceiveBodyState extends State<ReceiveBody> {
class ReceivePageState extends State<ReceivePage> {
final amountController = TextEditingController();
final _formKey = GlobalKey<FormState>();
final _backArrowImage = Image.asset('assets/images/back_arrow.png');
final _backArrowImageDarkTheme =
Image.asset('assets/images/back_arrow_dark_theme.png');
@override
void dispose() {
@ -73,13 +41,27 @@ class ReceiveBodyState extends State<ReceiveBody> {
final subaddressListStore = Provider.of<SubaddressListStore>(context);
final accountListStore = Provider.of<AccountListStore>(context);
final copyImage = Image.asset('assets/images/copy_content.png');
final shareImage = Image.asset('assets/images/share.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
final copyImage = Image.asset('assets/images/copy_content.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
final currentColor = PaletteDark.menuList;
final notCurrentColor = PaletteDark.historyPanel;
final currentColor = Theme.of(context).accentTextTheme.subtitle.decorationColor;
final notCurrentColor = Theme.of(context).backgroundColor;
final currentTextColor = Colors.blue;
final notCurrentTextColor = PaletteDark.walletCardText;
final notCurrentTextColor = Theme.of(context).primaryTextTheme.caption.color;
final _themeChanger = Provider.of<ThemeChanger>(context);
Image _backButton;
if (_themeChanger.getTheme() == Themes.darkTheme) {
_backButton = _backArrowImageDarkTheme;
} else {
_backButton = _backArrowImage;
}
amountController.addListener(() {
if (_formKey.currentState.validate()) {
@ -89,227 +71,292 @@ class ReceiveBodyState extends State<ReceiveBody> {
}
});
return Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
color: PaletteDark.mainBackgroundColor,
padding: EdgeInsets.only(top: 24),
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Observer(builder: (_) {
return Row(
children: <Widget>[
Spacer(
flex: 1,
),
Flexible(
flex: 2,
child: Center(
child: AspectRatio(
aspectRatio: 1.0,
child: QrImage(
data: walletStore.subaddress.address +
walletStore.amountValue,
backgroundColor: Colors.transparent,
foregroundColor: PaletteDark.walletCardText,
),
),
)),
Spacer(
flex: 1,
)
],
);
}),
Padding(
padding: EdgeInsets.all(24),
child: Row(
children: <Widget>[
Expanded(
child: Form(
key: _formKey,
child: BaseTextFormField(
controller: amountController,
keyboardType: TextInputType.numberWithOptions(decimal: true),
inputFormatters: [
BlacklistingTextInputFormatter(
RegExp('[\\-|\\ |\\,]'))
],
textAlign: TextAlign.center,
hintText: S.of(context).receive_amount,
borderColor: PaletteDark.walletCardText,
validator: (value) {
walletStore.validateAmount(value);
return walletStore.errorMessage;
},
autovalidate: true,
)
)
)
],
),
),
Padding(
padding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
child: Observer(
builder: (_) => GestureDetector(
onTap: () {
Clipboard.setData(ClipboardData(
text: walletStore.subaddress.address));
Scaffold.of(context).showSnackBar(SnackBar(
content: Text(
S.of(context).copied_to_clipboard,
style: TextStyle(color: Colors.white),
),
backgroundColor: Colors.green,
duration: Duration(milliseconds: 500),
));
},
child: Container(
height: 48,
padding: EdgeInsets.only(left: 24, right: 24),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(24)),
color: PaletteDark.walletCardSubAddressField
),
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
child: Text(
walletStore.subaddress.address,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: Colors.white
),
),
),
Padding(
padding: EdgeInsets.only(left: 12),
child: copyImage,
)
],
return Scaffold(
resizeToAvoidBottomPadding: false,
body: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.only(top: 24),
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Theme.of(context).scaffoldBackgroundColor,
Theme.of(context).primaryColor
],
begin: Alignment.centerLeft,
end: Alignment.centerRight
)
),
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(
top: 10,
bottom: 20,
left: 5,
right: 10
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
SizedBox(
height: 44,
width: 44,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () => Navigator.of(context).pop(),
child: _backButton),
),
),
)
),
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(24),
topRight: Radius.circular(24),
Text(
S.of(context).receive,
style: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Theme.of(context).primaryTextTheme.title.color),
),
SizedBox(
height: 44.0,
width: 44.0,
child: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
padding: EdgeInsets.all(0),
onPressed: () => Share.text(
S.current.share_address, walletStore.subaddress.address, 'text/plain'),
child: shareImage),
),
)
],
),
color: PaletteDark.historyPanel,
),
child: Observer(
builder: (_) => ListView.separated(
separatorBuilder: (context, index) => Divider(
height: 1,
color: PaletteDark.menuList,
Expanded(
child: SingleChildScrollView(
child: Column(
children: <Widget>[
Observer(builder: (_) {
return Row(
children: <Widget>[
Spacer(
flex: 1,
),
Flexible(
flex: 2,
child: Center(
child: AspectRatio(
aspectRatio: 1.0,
child: QrImage(
data: walletStore.subaddress.address +
walletStore.amountValue,
backgroundColor: Colors.transparent,
foregroundColor: Theme.of(context).primaryTextTheme.display4.color,
),
),
)),
Spacer(
flex: 1,
)
],
);
}),
Padding(
padding: EdgeInsets.all(24),
child: Row(
children: <Widget>[
Expanded(
child: Form(
key: _formKey,
child: BaseTextFormField(
controller: amountController,
keyboardType: TextInputType.numberWithOptions(decimal: true),
inputFormatters: [
BlacklistingTextInputFormatter(
RegExp('[\\-|\\ |\\,]'))
],
textAlign: TextAlign.center,
hintText: S.of(context).receive_amount,
borderColor: Theme.of(context).primaryTextTheme.caption.color,
validator: (value) {
walletStore.validateAmount(value);
return walletStore.errorMessage;
},
autovalidate: true,
)
)
)
],
),
),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: subaddressListStore.subaddresses.length + 2,
itemBuilder: (context, index) {
if (index == 0) {
return HeaderTile(
onTap: () async {
await showDialog<void>(
context: context,
builder: (BuildContext context) {
return AccountListPage(accountListStore: accountListStore);
}
);
},
title: walletStore.account.label,
icon: Icon(
Icons.arrow_forward_ios,
size: 14,
color: Colors.white,
Padding(
padding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
child: Builder(
builder: (context) => Observer(
builder: (context) => GestureDetector(
onTap: () {
Clipboard.setData(ClipboardData(
text: walletStore.subaddress.address));
Scaffold.of(context).showSnackBar(SnackBar(
content: Text(
S.of(context).copied_to_clipboard,
style: TextStyle(color: Colors.white),
),
backgroundColor: Colors.green,
duration: Duration(milliseconds: 500),
));
},
child: Container(
height: 48,
padding: EdgeInsets.only(left: 24, right: 24),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(24)),
color: Theme.of(context).primaryTextTheme.overline.color
),
child: Row(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
child: Text(
walletStore.subaddress.address,
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
Padding(
padding: EdgeInsets.only(left: 12),
child: copyImage,
)
],
),
),
)
);
}
)
),
),
Observer(
builder: (_) => ListView.separated(
separatorBuilder: (context, index) => Divider(
height: 1,
color: Theme.of(context).dividerColor,
),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: subaddressListStore.subaddresses.length + 2,
itemBuilder: (context, index) {
if (index == 1) {
return HeaderTile(
onTap: () => Navigator.of(context)
.pushNamed(Routes.newSubaddress),
title: S.of(context).subaddresses,
icon: Icon(
Icons.add,
size: 20,
color: Colors.white,
)
);
}
if (index == 0) {
return ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(24),
topRight: Radius.circular(24)
),
child: HeaderTile(
onTap: () async {
await showDialog<void>(
context: context,
builder: (BuildContext context) {
return AccountListPage(accountListStore: accountListStore);
}
);
},
title: walletStore.account.label,
icon: Icon(
Icons.arrow_forward_ios,
size: 14,
color: Theme.of(context).primaryTextTheme.title.color,
)
),
);
}
index -= 2;
if (index == 1) {
return HeaderTile(
onTap: () => Navigator.of(context)
.pushNamed(Routes.newSubaddress),
title: S.of(context).subaddresses,
icon: Icon(
Icons.add,
size: 20,
color: Theme.of(context).primaryTextTheme.title.color,
)
);
}
return Observer(
builder: (_) {
final subaddress = subaddressListStore.subaddresses[index];
final isCurrent =
walletStore.subaddress.address == subaddress.address;
index -= 2;
final label = subaddress.label.isNotEmpty
? subaddress.label
: subaddress.address;
return Observer(
builder: (_) {
final subaddress = subaddressListStore.subaddresses[index];
final isCurrent =
walletStore.subaddress.address == subaddress.address;
final content = InkWell(
onTap: () => walletStore.setSubaddress(subaddress),
child: Container(
color: isCurrent ? currentColor : notCurrentColor,
padding: EdgeInsets.only(
left: 24,
right: 24,
top: 28,
bottom: 28
),
child: Text(
label,
style: TextStyle(
fontSize: subaddress.label.isNotEmpty
? 18 : 10,
fontWeight: FontWeight.bold,
color: isCurrent
? currentTextColor
: notCurrentTextColor,
),
),
),
);
final label = subaddress.label.isNotEmpty
? subaddress.label
: subaddress.address;
return isCurrent
? content
: Slidable(
key: Key(subaddress.address),
actionPane: SlidableDrawerActionPane(),
child: content,
secondaryActions: <Widget>[
IconSlideAction(
caption: S.of(context).edit,
color: PaletteDark.walletCardSubAddressField,
icon: Icons.edit,
onTap: () => Navigator.of(context)
.pushNamed(Routes.newSubaddress, arguments: subaddress),
)
]
);
}
);
}
)
),
),
],
),
)
final content = InkWell(
onTap: () => walletStore.setSubaddress(subaddress),
child: Container(
color: isCurrent ? currentColor : notCurrentColor,
padding: EdgeInsets.only(
left: 24,
right: 24,
top: 28,
bottom: 28
),
child: Text(
label,
style: TextStyle(
fontSize: subaddress.label.isNotEmpty
? 18 : 10,
fontWeight: FontWeight.bold,
color: isCurrent
? currentTextColor
: notCurrentTextColor,
),
),
),
);
return isCurrent
? content
: Slidable(
key: Key(subaddress.address),
actionPane: SlidableDrawerActionPane(),
child: content,
secondaryActions: <Widget>[
IconSlideAction(
caption: S.of(context).edit,
color: Theme.of(context).primaryTextTheme.overline.color,
icon: Icons.edit,
onTap: () => Navigator.of(context)
.pushNamed(Routes.newSubaddress, arguments: subaddress),
)
]
);
}
);
}
)
),
],
),
)
)
],
)
),
);
}
}

@ -23,7 +23,7 @@ class HeaderTile extends StatelessWidget {
top: 24,
bottom: 24
),
color: Colors.transparent,
color: Theme.of(context).backgroundColor,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -33,7 +33,7 @@ class HeaderTile extends StatelessWidget {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
Container(
@ -41,7 +41,7 @@ class HeaderTile extends StatelessWidget {
width: 32,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: PaletteDark.menuList
color: Theme.of(context).primaryTextTheme.overline.color
),
child: icon,
)

@ -17,7 +17,7 @@ class RescanPage extends BasePage {
final rescanWalletStore = Provider.of<RescanWalletStore>(context);
return Padding(
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20),
padding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
child:
Column(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
BlockchainHeightWidget(key: blockchainKey),
@ -31,9 +31,8 @@ class RescanPage extends BasePage {
restoreHeight: blockchainKey.currentState.height);
Navigator.of(context).pop();
},
color:
Theme.of(context).primaryTextTheme.button.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.button.color,))
color: Colors.blue,
textColor: Colors.white,))
]),
);
}

@ -11,9 +11,6 @@ class RestoreOptionsPage extends BasePage {
@override
String get title => S.current.restore_restore_wallet;
@override
Color get backgroundColor => PaletteDark.historyPanel;
final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png');
final imageBackup = Image.asset('assets/images/backup.png');
@ -23,7 +20,6 @@ class RestoreOptionsPage extends BasePage {
width: double.infinity,
height: double.infinity,
padding: EdgeInsets.all(24),
color: PaletteDark.historyPanel,
child: SingleChildScrollView(
child: Column(
children: <Widget>[

@ -14,7 +14,6 @@ import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
@ -31,9 +30,6 @@ class RestoreWalletFromKeysPage extends BasePage {
@override
String get title => S.current.restore_title_from_keys;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => RestoreFromKeysFrom();
}
@ -103,7 +99,6 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
});
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(left: 24, right: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 24.0),
@ -118,22 +113,22 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _nameController,
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_wallet_name,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletRestorationStore.validateWalletName(value);
@ -151,24 +146,24 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _addressController,
keyboardType: TextInputType.multiline,
maxLines: null,
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_address,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletRestorationStore.validateAddress(value);
@ -186,22 +181,22 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _viewKeyController,
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_view_key_private,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletRestorationStore.validateKeys(value);
@ -219,22 +214,22 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _spendKeyController,
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_spend_key_private,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletRestorationStore.validateKeys(value);

@ -10,16 +10,12 @@ import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
class RestoreWalletFromSeedDetailsPage extends BasePage {
@override
String get title => S.current.restore_wallet_restore_description;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => RestoreFromSeedDetailsForm();
}
@ -76,7 +72,6 @@ class _RestoreFromSeedDetailsFormState
});
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(left: 24, right: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 24.0),
@ -92,22 +87,22 @@ class _RestoreFromSeedDetailsFormState
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _nameController,
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_wallet_name,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
walletRestorationStore

@ -28,7 +28,10 @@ class RestoreWalletFromSeedPage extends BasePage {
String get title => S.current.restore_title_from_seed;
@override
Color get backgroundColor => PaletteDark.menuList;
Color get backgroundLightColor => Palette.lavender;
@override
Color get backgroundDarkColor => PaletteDark.lightNightBlue;
@override
Widget body(BuildContext context) => RestoreFromSeedForm(key: formKey);
@ -54,7 +57,7 @@ class _RestoreFromSeedFormState extends State<RestoreFromSeedForm> {
onTap: () =>
SystemChannels.textInput.invokeMethod<void>('TextInput.hide'),
child: Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: SeedWidget(
key: _seedKey,
onMnemoticChange: (seed) => walletRestorationStore.setSeed(seed),

@ -13,9 +13,6 @@ class RestoreWalletOptionsPage extends BasePage {
@override
String get title => S.current.restore_seed_keys_restore;
@override
Color get backgroundColor => PaletteDark.historyPanel;
final imageSeed = Image.asset('assets/images/restore_seed.png');
final imageKeys = Image.asset('assets/images/restore_keys.png');
@ -27,7 +24,6 @@ class RestoreWalletOptionsPage extends BasePage {
width: double.infinity,
height: double.infinity,
padding: EdgeInsets.all(24),
color: PaletteDark.historyPanel,
child: SingleChildScrollView(
child: Column(
children: <Widget>[

@ -1,6 +1,5 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class RestoreButton extends StatelessWidget {
const RestoreButton({
@ -25,7 +24,7 @@ class RestoreButton extends StatelessWidget {
alignment: Alignment.topLeft,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(12)),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.backgroundColor,
),
child: Row(
mainAxisSize: MainAxisSize.max,
@ -46,7 +45,7 @@ class RestoreButton extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
Padding(
@ -55,7 +54,7 @@ class RestoreButton extends StatelessWidget {
description,
style: TextStyle(
fontSize: 14,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)

@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/stores/wallet_seed/wallet_seed_store.dart';
@ -16,9 +15,6 @@ class SeedPage extends BasePage {
static final image = Image.asset('assets/images/crypto_lock.png');
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.seed_title;
@ -44,7 +40,7 @@ class SeedPage extends BasePage {
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(16)),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.color
),
child: Text(
S.of(context).seed_language_next,
@ -67,7 +63,6 @@ class SeedPage extends BasePage {
return Container(
width: double.infinity,
height: double.infinity,
color: PaletteDark.historyPanel,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(left: 40, right: 40, bottom: 20),
content: Column(
@ -90,7 +85,7 @@ class SeedPage extends BasePage {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
Padding(
@ -100,7 +95,7 @@ class SeedPage extends BasePage {
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)

@ -6,15 +6,11 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/base_page.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/palette.dart';
import 'package:cake_wallet/src/stores/seed_language/seed_language_store.dart';
import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
class SeedLanguage extends BasePage {
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => SeedLanguageForm();
}
@ -44,7 +40,6 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
];
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 24),
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24),
@ -64,7 +59,7 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
@ -73,8 +68,8 @@ class SeedLanguageFormState extends State<SeedLanguageForm> {
builder: (_) => SelectButton(
image: null,
text: seedLocales[seedLanguages.indexOf(seedLanguageStore.selectedSeedLanguage)],
color: PaletteDark.menuList,
textColor: Colors.white,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
textColor: Theme.of(context).primaryTextTheme.title.color,
onTap: () async => await showDialog(
context: context,
builder: (BuildContext context) => SeedLanguagePicker()

@ -48,7 +48,7 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
@ -75,7 +75,7 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
width: 300,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(14)),
color: PaletteDark.walletCardSubAddressField
color: Theme.of(context).dividerColor
),
child: GridView.count(
shrinkWrap: true,
@ -173,8 +173,12 @@ class SeedLanguagePickerState extends State<SeedLanguagePicker> {
@required VoidCallback onTap}) {
BorderRadius borderRadius;
final color = isCurrent ? PaletteDark.historyPanel : PaletteDark.menuList;
final textColor = isCurrent ? Colors.blue : Colors.white;
final color = isCurrent
? Theme.of(context).accentTextTheme.subtitle.decorationColor
: Theme.of(context).primaryTextTheme.display1.color;
final textColor = isCurrent
? Colors.blue
: Theme.of(context).primaryTextTheme.title.color;
switch (place) {
case Places.topLeft:

@ -35,7 +35,10 @@ class SendPage extends BasePage {
String get title => S.current.send_title;
@override
Color get backgroundColor => PaletteDark.menuList;
Color get backgroundLightColor => Palette.lavender;
@override
Color get backgroundDarkColor => PaletteDark.lightNightBlue;
@override
bool get resizeToAvoidBottomPadding => false;
@ -49,7 +52,7 @@ class SendPage extends BasePage {
width: 82,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(16)),
color: PaletteDark.menuHeader
color: Theme.of(context).accentTextTheme.title.color
),
child: ButtonTheme(
minWidth: double.minPositive,
@ -130,13 +133,13 @@ class SendFormState extends State<SendForm> {
_setEffects(context);
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 24),
content: Column(
children: <Widget>[
TopPanel(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
widget: Form(
key: _formKey,
child: Column(children: <Widget>[
@ -162,6 +165,7 @@ class SendFormState extends State<SendForm> {
AddressTextFieldOption.qrCode,
AddressTextFieldOption.addressBook
],
buttonColor: Theme.of(context).accentTextTheme.title.color,
validator: (value) {
sendStore.validateAddress(value,
cryptoCurrency: CryptoCurrency.xmr);
@ -175,7 +179,7 @@ class SendFormState extends State<SendForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _cryptoAmountController,
keyboardType: TextInputType.numberWithOptions(
@ -191,7 +195,7 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
)),
),
suffixIcon: Padding(
@ -211,7 +215,7 @@ class SendFormState extends State<SendForm> {
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 16,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
)
),
),
@ -220,7 +224,7 @@ class SendFormState extends State<SendForm> {
width: 32,
margin: EdgeInsets.only(left: 12, bottom: 7, top: 4),
decoration: BoxDecoration(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).accentTextTheme.title.color,
borderRadius: BorderRadius.all(Radius.circular(6))
),
child: InkWell(
@ -231,7 +235,7 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 9,
fontWeight: FontWeight.bold,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
)
),
),
@ -242,15 +246,15 @@ class SendFormState extends State<SendForm> {
),
hintStyle: TextStyle(
fontSize: 16.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
hintText: '0.0000',
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
sendStore.validateXMR(
@ -265,7 +269,7 @@ class SendFormState extends State<SendForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
controller: _fiatAmountController,
keyboardType: TextInputType.numberWithOptions(
signed: false, decimal: true),
@ -281,20 +285,20 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
)),
),
hintStyle: TextStyle(
fontSize: 16.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
hintText: '0.00',
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)))),
),
Padding(
@ -306,14 +310,14 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
)),
Text(
'${calculateEstimatedFee(priority: settingsStore.transactionPriority)} XMR',
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
))
],
),
@ -335,7 +339,7 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -363,7 +367,7 @@ class SendFormState extends State<SendForm> {
child: DottedBorder(
borderType: BorderType.RRect,
dashPattern: [8, 4],
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
strokeWidth: 2,
radius: Radius.circular(20),
child: Container(
@ -380,7 +384,7 @@ class SendFormState extends State<SendForm> {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
)

@ -21,7 +21,10 @@ class SendTemplatePage extends BasePage {
String get title => S.current.send_title;
@override
Color get backgroundColor => PaletteDark.menuList;
Color get backgroundLightColor => Palette.lavender;
@override
Color get backgroundDarkColor => PaletteDark.lightNightBlue;
@override
bool get resizeToAvoidBottomPadding => false;
@ -65,33 +68,33 @@ class SendTemplateFormState extends State<SendTemplateForm> {
_setEffects(context);
return Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 24),
content: Column(
children: <Widget>[
TopPanel(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
widget: Form(
key: _formKey,
child: Column(children: <Widget>[
TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
controller: _nameController,
decoration: InputDecoration(
hintStyle: TextStyle(
fontSize: 16.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
hintText: S.of(context).send_name,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0))),
validator: (value) {
sendTemplateStore.validateTemplate(value);
@ -121,6 +124,7 @@ class SendTemplateFormState extends State<SendTemplateForm> {
AddressTextFieldOption.qrCode,
AddressTextFieldOption.addressBook
],
buttonColor: Theme.of(context).accentTextTheme.title.color,
validator: (value) {
sendTemplateStore.validateTemplate(value);
return sendTemplateStore.errorMessage;
@ -134,7 +138,7 @@ class SendTemplateFormState extends State<SendTemplateForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _cryptoAmountController,
keyboardType: TextInputType.numberWithOptions(
@ -150,20 +154,20 @@ class SendTemplateFormState extends State<SendTemplateForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
)),
),
hintStyle: TextStyle(
fontSize: 16.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
hintText: '0.0000',
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0))),
),
);
@ -174,7 +178,7 @@ class SendTemplateFormState extends State<SendTemplateForm> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
controller: _fiatAmountController,
keyboardType: TextInputType.numberWithOptions(
signed: false, decimal: true),
@ -190,20 +194,20 @@ class SendTemplateFormState extends State<SendTemplateForm> {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
)),
),
hintStyle: TextStyle(
fontSize: 16.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
hintText: '0.00',
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0)))),
),
]),

@ -1,5 +1,4 @@
import 'dart:ui';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/stores/send/sending_state.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
@ -31,7 +30,7 @@ class SendingAlertState extends State<SendingAlert> {
return Stack(
children: <Widget>[
Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
@ -46,7 +45,7 @@ class SendingAlertState extends State<SendingAlert> {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
decoration: TextDecoration.none,
),
),
@ -70,7 +69,7 @@ class SendingAlertState extends State<SendingAlert> {
return Stack(
children: <Widget>[
Container(
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Center(
child: Image.asset(
'assets/images/birthday_cake.png'),
@ -79,7 +78,7 @@ class SendingAlertState extends State<SendingAlert> {
BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.25)),
decoration: BoxDecoration(color: Theme.of(context).backgroundColor.withOpacity(0.25)),
child: Center(
child: Padding(
padding: EdgeInsets.only(top: 220),
@ -89,7 +88,7 @@ class SendingAlertState extends State<SendingAlert> {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
decoration: TextDecoration.none,
),
),

@ -5,41 +5,36 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/language.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
class ChangeLanguage extends BasePage {
@override
String get title => S.current.settings_change_language;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) {
final settingsStore = Provider.of<SettingsStore>(context);
final currentLanguage = Provider.of<Language>(context);
final currentColor = Colors.green;
final notCurrentColor = Colors.white;
final notCurrentColor = Theme.of(context).primaryTextTheme.title.color;
final shortDivider = Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
),
);
final longDivider = Container(
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
);
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 10.0),
child: ListView.builder(
itemCount: languages.values.length,
@ -56,7 +51,7 @@ class ChangeLanguage extends BasePage {
index == 0 ? longDivider : Offstage(),
Container(
padding: EdgeInsets.only(top: 4, bottom: 4),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListTile(
contentPadding: EdgeInsets.only(left: 24, right: 24),
title: Text(

@ -1,236 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
import 'package:flutter/foundation.dart';
import 'package:provider/provider.dart';
import 'package:cake_wallet/theme_changer.dart';
import 'package:cake_wallet/themes.dart';
import 'package:cake_wallet/generated/i18n.dart';
class EnterPinCode extends StatefulWidget {
const EnterPinCode(this.currentPinLength, this.currentPin);
final int currentPinLength;
final List<int> currentPin;
@override
EnterPinCodeState createState() =>
EnterPinCodeState(currentPinLength, currentPin);
}
class EnterPinCodeState extends State<EnterPinCode> {
EnterPinCodeState(this.pinLength, this.currentPin);
final _gridViewKey = GlobalKey();
final _closeButtonImage = Image.asset('assets/images/close_button.png');
final _closeButtonImageDarkTheme =
Image.asset('assets/images/close_button_dark_theme.png');
static final deleteIconImage = Image.asset('assets/images/delete_icon.png');
final int pinLength;
final List<int> currentPin;
List<int> pin;
double _aspectRatio = 0;
void _calcualteCurrentAspectRatio() {
final renderBox =
_gridViewKey.currentContext.findRenderObject() as RenderBox;
final cellWidth = renderBox.size.width / 3;
final cellHeight = renderBox.size.height / 4;
if (cellWidth > 0 && cellHeight > 0) {
_aspectRatio = cellWidth / cellHeight;
}
setState(() {});
}
@override
void initState() {
super.initState();
pin = List<int>.filled(pinLength, null);
WidgetsBinding.instance.addPostFrameCallback(_afterLayout);
}
void _afterLayout(dynamic _) => _calcualteCurrentAspectRatio();
@override
Widget build(BuildContext context) {
final _themeChanger = Provider.of<ThemeChanger>(context);
final _isDarkTheme = _themeChanger.getTheme() == Themes.darkTheme;
return Scaffold(
backgroundColor: Theme.of(context).backgroundColor,
appBar: CupertinoNavigationBar(
leading: ButtonTheme(
minWidth: double.minPositive,
child: FlatButton(
onPressed: () {
Navigator.pop(context, false);
},
child: _isDarkTheme
? _closeButtonImageDarkTheme
: _closeButtonImage),
),
backgroundColor: Theme.of(context).backgroundColor,
border: null),
body: SafeArea(
child: Container(
padding: EdgeInsets.only(left: 40.0, right: 40.0, bottom: 40.0),
child: Column(
children: <Widget>[
Spacer(flex: 2),
Text(S.of(context).enter_your_pin,
style: TextStyle(fontSize: 24, color: Palette.wildDarkBlue)),
Spacer(flex: 3),
Container(
width: 180,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: List.generate(pinLength, (index) {
const size = 10.0;
final isFilled = pin[index] != null;
return Container(
width: size,
height: size,
decoration: BoxDecoration(
shape: BoxShape.circle,
color:
isFilled ? Palette.deepPurple : Colors.transparent,
border: Border.all(color: Palette.wildDarkBlue),
));
}),
),
),
Spacer(flex: 3),
Flexible(
flex: 24,
child: Container(
key: _gridViewKey,
child: _aspectRatio > 0
? GridView.count(
crossAxisCount: 3,
childAspectRatio: _aspectRatio,
physics: const NeverScrollableScrollPhysics(),
children: List.generate(12, (index) {
if (index == 9) {
return Container(
margin: EdgeInsets.all(5.0),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: _isDarkTheme
? PaletteDark.darkThemePinButton
: Palette.darkGrey,
),
);
} else if (index == 10) {
index = 0;
} else if (index == 11) {
return Container(
margin: EdgeInsets.all(5.0),
child: FlatButton(
onPressed: () {
_pop();
},
color: _isDarkTheme
? PaletteDark.darkThemePinButton
: Palette.darkGrey,
shape: CircleBorder(),
child: deleteIconImage,
),
);
} else {
index++;
}
return Container(
margin: EdgeInsets.all(5.0),
child: FlatButton(
onPressed: () {
_push(index);
},
color: _isDarkTheme
? PaletteDark.darkThemePinDigitButton
: Palette.creamyGrey,
shape: CircleBorder(),
child: Text('$index',
style: TextStyle(
fontSize: 23.0,
color: Palette.blueGrey)),
),
);
}),
)
: null))
],
),
)),
);
}
void _showIncorrectPinDialog(BuildContext context) async {
await showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
content: Text(S.of(context).pin_is_incorrect),
actions: <Widget>[
FlatButton(
child: Text(S.of(context).ok),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
});
}
void _push(int num) {
if (_pinLength() >= pinLength) {
return;
}
for (var i = 0; i < pin.length; i++) {
if (pin[i] == null) {
setState(() => pin[i] = num);
break;
}
}
final currentPinLength = _pinLength();
if (currentPinLength == pinLength) {
if (listEquals<int>(pin, currentPin)) {
Navigator.pop(context, true);
} else {
Navigator.pop(context, false);
_showIncorrectPinDialog(context);
}
}
}
void _pop() {
if (_pinLength() == 0) {
return;
}
for (var i = pin.length - 1; i >= 0; i--) {
if (pin[i] != null) {
setState(() => pin[i] = null);
break;
}
}
}
int _pinLength() {
return pin.fold(0, (v, e) {
if (e != null) {
return v + 1;
}
return v;
});
}
}

@ -1,7 +1,6 @@
import 'package:cake_wallet/src/screens/auth/auth_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:provider/provider.dart';
@ -30,9 +29,6 @@ class SettingsPage extends BasePage {
@override
String get title => S.current.settings_title;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) {
return SettingsForm();
@ -79,7 +75,7 @@ class SettingsFormState extends State<SettingsForm> {
textAlign: TextAlign.right,
style: TextStyle(
fontSize: 14.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)),
attribute: Attributes.widget),
SettingsItem(
@ -91,7 +87,7 @@ class SettingsFormState extends State<SettingsForm> {
textAlign: TextAlign.right,
style: TextStyle(
fontSize: 14.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)),
attribute: Attributes.widget),
SettingsItem(
@ -103,7 +99,7 @@ class SettingsFormState extends State<SettingsForm> {
textAlign: TextAlign.right,
style: TextStyle(
fontSize: 14.0,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
)),
attribute: Attributes.widget),
SettingsItem(
@ -145,7 +141,11 @@ class SettingsFormState extends State<SettingsForm> {
children: [
Text(S
.of(context)
.settings_transactions),
.settings_transactions,
style: TextStyle(
color: Theme.of(context).primaryTextTheme.title.color
),
),
Checkbox(
value: settingsStore
.actionlistDisplayMode
@ -162,7 +162,12 @@ class SettingsFormState extends State<SettingsForm> {
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(S.of(context).settings_trades),
Text(
S.of(context).settings_trades,
style: TextStyle(
color: Theme.of(context).primaryTextTheme.title.color
),
),
Checkbox(
value: settingsStore
.actionlistDisplayMode
@ -182,7 +187,7 @@ class SettingsFormState extends State<SettingsForm> {
Text(S.of(context).settings_display_on_dashboard_list,
style: TextStyle(
fontSize: 14,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
Observer(builder: (_) {
var title = '';
@ -210,7 +215,7 @@ class SettingsFormState extends State<SettingsForm> {
return Text(title,
style: TextStyle(
fontSize: 14.0,
color: PaletteDark.walletCardText));
color: Theme.of(context).primaryTextTheme.caption.color));
})
]),
));
@ -321,20 +326,19 @@ class SettingsFormState extends State<SettingsForm> {
final shortDivider = Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
),
);
final longDivider = Container(
height: 1,
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
);
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 12),
child: SingleChildScrollView(
child: Column(
@ -371,7 +375,8 @@ class SettingsFormState extends State<SettingsForm> {
child: Text(
settingsStore.itemHeaders[ItemHeaders.version],
style: TextStyle(
fontSize: 14.0, color: PaletteDark.walletCardText)
fontSize: 14.0,
color: Theme.of(context).primaryTextTheme.caption.color)
),
),
),

@ -1,4 +1,3 @@
import 'package:cake_wallet/palette.dart';
import 'package:provider/provider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -9,15 +8,15 @@ class SettingsArrowListRow extends StatelessWidget {
final VoidCallback onTaped;
final String title;
final _cakeArrowImage = Image.asset('assets/images/select_arrow.png',
color: PaletteDark.walletCardText);
@override
Widget build(BuildContext context) {
final settingsStore = Provider.of<SettingsStore>(context);
final _cakeArrowImage = Image.asset('assets/images/select_arrow.png',
color: Theme.of(context).primaryTextTheme.caption.color);
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListTile(
contentPadding: EdgeInsets.only(left: 24.0, right: 24.0),
title: Observer(
@ -25,7 +24,7 @@ class SettingsArrowListRow extends StatelessWidget {
settingsStore.itemHeaders[title],
style: TextStyle(
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
)),
trailing: _cakeArrowImage,
onTap: onTaped),

@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/palette.dart';
import 'package:provider/provider.dart';
class SettingsHeaderListRow extends StatelessWidget {
@ -29,7 +28,8 @@ class SettingsHeaderListRow extends StatelessWidget {
? settingsStore.itemHeaders[title]
: '',
style: TextStyle(
fontSize: 15.0, color: Palette.wildDarkBlue),
fontSize: 15.0,
color: Theme.of(context).primaryTextTheme.caption.color),
))
],
),

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class SettingsLinktListRow extends StatelessWidget {
SettingsLinktListRow(
@ -13,7 +12,7 @@ class SettingsLinktListRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListTile(
contentPadding: EdgeInsets.only(left: 24.0, right: 24.0),
title: Row(
@ -27,7 +26,7 @@ class SettingsLinktListRow extends StatelessWidget {
title,
style: TextStyle(
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
)
],

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class SettingRawWidgetListRow extends StatelessWidget {
SettingRawWidgetListRow({@required this.widgetBuilder});
@ -9,7 +8,7 @@ class SettingRawWidgetListRow extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: widgetBuilder(context) ?? Container(),
);
}

@ -1,4 +1,3 @@
import 'package:cake_wallet/palette.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -62,14 +61,14 @@ class SettingsSwitchListRow extends StatelessWidget {
final settingsStore = Provider.of<SettingsStore>(context);
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListTile(
contentPadding: EdgeInsets.only(left: 24.0, right: 24.0),
title: Observer(
builder: (_) => Text(settingsStore.itemHeaders[title],
style: TextStyle(
fontSize: 14,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
),
trailing: _getSwitch(context)),
);

@ -1,4 +1,3 @@
import 'package:cake_wallet/palette.dart';
import 'package:provider/provider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
@ -16,7 +15,7 @@ class SettingsTextListRow extends StatelessWidget {
final settingsStore = Provider.of<SettingsStore>(context);
return Container(
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListTile(
contentPadding: EdgeInsets.only(left: 24.0, right: 24.0),
title: Row(
@ -28,7 +27,7 @@ class SettingsTextListRow extends StatelessWidget {
settingsStore.itemHeaders[title],
style: TextStyle(
fontSize: 14.0,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
)),
),
Flexible(

@ -7,7 +7,6 @@ import 'package:cake_wallet/src/screens/pin_code/pin_code.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
class SetupPinCodePage extends BasePage {
@ -15,9 +14,6 @@ class SetupPinCodePage extends BasePage {
final Function(BuildContext, String) onPinCodeSetup;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.setup_pin;

@ -3,16 +3,12 @@ import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/stores/wallet/wallet_keys_store.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
class ShowKeysPage extends BasePage {
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.wallet_keys;
@ -21,7 +17,6 @@ class ShowKeysPage extends BasePage {
final walletKeysStore = Provider.of<WalletKeysStore>(context);
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 20.0, bottom: 20.0),
child: Observer(
builder: (_) {
@ -36,10 +31,10 @@ class ShowKeysPage extends BasePage {
separatorBuilder: (context, index) => Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
),
),
itemCount: keysMap.length,

@ -9,7 +9,6 @@ import 'package:cake_wallet/src/stores/subaddress_creation/subaddress_creation_s
import 'package:cake_wallet/src/stores/subaddress_creation/subaddress_creation_store.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
class NewSubaddressPage extends BasePage {
@ -20,9 +19,6 @@ class NewSubaddressPage extends BasePage {
@override
String get title => S.current.new_subaddress_title;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => NewSubaddressForm(subaddress);
@ -86,7 +82,6 @@ class NewSubaddressFormState extends State<NewSubaddressForm> {
return Form(
key: _formKey,
child: Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.all(24.0),
child: Column(
children: <Widget>[

@ -9,13 +9,9 @@ import 'package:cake_wallet/src/stores/settings/settings_store.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/transaction_details/standart_list_item.dart';
import 'package:cake_wallet/src/widgets/standart_list_row.dart';
import 'package:cake_wallet/palette.dart';
class TradeDetailsPage extends BasePage {
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.trade_details_title;
@ -28,7 +24,6 @@ class TradeDetailsPage extends BasePage {
formatDefault: "dd.MM.yyyy, HH:mm");
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 20, bottom: 20),
child: Observer(builder: (_) {
final trade = exchangeStore.trade;
@ -64,10 +59,10 @@ class TradeDetailsPage extends BasePage {
separatorBuilder: (_, __) => Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
),
),
itemCount: items.length,

@ -15,9 +15,6 @@ class TransactionDetailsPage extends BasePage {
final TransactionInfo transactionInfo;
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
String get title => S.current.transaction_details_title;
@ -78,16 +75,15 @@ class TransactionDetailsFormState extends State<TransactionDetailsForm> {
@override
Widget build(BuildContext context) {
return Container(
color: PaletteDark.historyPanel,
padding: EdgeInsets.only(top: 20, bottom: 20),
child: ListView.separated(
separatorBuilder: (context, index) => Container(
height: 1,
padding: EdgeInsets.only(left: 24),
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Container(
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
),
),
itemCount: _items.length,

@ -14,10 +14,6 @@ import 'package:cake_wallet/src/screens/wallet_list/wallet_menu.dart';
import 'package:cake_wallet/src/screens/wallet_list/widgets/wallet_tile.dart';
class WalletListPage extends BasePage {
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget body(BuildContext context) => WalletListBody();
}
@ -29,8 +25,6 @@ class WalletListBody extends StatefulWidget {
class WalletListBodyState extends State<WalletListBody> {
final moneroIcon = Image.asset('assets/images/monero.png', height: 24, width: 24);
final newWalletImage = Image.asset('assets/images/new_wallet.png', height: 12, width: 12, color: PaletteDark.historyPanel);
final restoreWalletImage = Image.asset('assets/images/restore_wallet.png', height: 12, width: 12, color: Colors.white);
WalletListStore _walletListStore;
ScrollController scrollController = ScrollController();
@ -39,10 +33,18 @@ class WalletListBodyState extends State<WalletListBody> {
final walletStore = Provider.of<WalletStore>(context);
_walletListStore = Provider.of<WalletListStore>(context);
final newWalletImage = Image.asset('assets/images/new_wallet.png',
height: 12,
width: 12,
color: Palette.oceanBlue);
final restoreWalletImage = Image.asset('assets/images/restore_wallet.png',
height: 12,
width: 12,
color: Theme.of(context).primaryTextTheme.title.color);
return SafeArea(
child: Container(
padding: EdgeInsets.only(top: 16),
color: PaletteDark.historyPanel,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 20),
content: Container(
@ -51,7 +53,8 @@ class WalletListBodyState extends State<WalletListBody> {
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (_, index) => Divider(
color: PaletteDark.historyPanel, height: 16),
color: Theme.of(context).backgroundColor,
height: 16),
itemCount: _walletListStore.wallets.length,
itemBuilder: (__, index) {
final wallet = _walletListStore.wallets[index];
@ -110,7 +113,7 @@ class WalletListBodyState extends State<WalletListBody> {
child: Container(
height: 108,
width: 108,
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Container(
padding: EdgeInsets.only(left: 5, right: 5),
decoration: BoxDecoration(
@ -156,15 +159,17 @@ class WalletListBodyState extends State<WalletListBody> {
image: newWalletImage,
text: S.of(context).wallet_list_create_new_wallet,
color: Colors.white,
textColor: PaletteDark.historyPanel),
textColor: Palette.oceanBlue,
borderColor: Palette.oceanBlue,
),
SizedBox(height: 10.0),
PrimaryImageButton(
onPressed: () =>
Navigator.of(context).pushNamed(Routes.restoreWalletOptions),
image: restoreWalletImage,
text: S.of(context).wallet_list_restore_wallet,
color: PaletteDark.historyPanelButton,
textColor: Colors.white)
color: Theme.of(context).primaryTextTheme.overline.color,
textColor: Theme.of(context).primaryTextTheme.title.color)
])),
)
);

@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/palette.dart';
class WalletTile extends SliverPersistentHeaderDelegate {
WalletTile({
@ -29,8 +28,8 @@ class WalletTile extends SliverPersistentHeaderDelegate {
panelWidth = panelWidth < 12 ? 0 : 12;
final currentColor = isCurrent
? Colors.white
: PaletteDark.historyPanel;
? Theme.of(context).accentTextTheme.caption.color
: Theme.of(context).backgroundColor;
return Stack(
fit: StackFit.expand,
@ -55,7 +54,7 @@ class WalletTile extends SliverPersistentHeaderDelegate {
height: 108,
width: max - 16,
padding: EdgeInsets.only(left: 20, right: 20),
color: PaletteDark.historyPanel,
color: Theme.of(context).backgroundColor,
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
@ -71,7 +70,7 @@ class WalletTile extends SliverPersistentHeaderDelegate {
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)
],
@ -87,7 +86,7 @@ class WalletTile extends SliverPersistentHeaderDelegate {
walletAddress,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
)
],
@ -105,16 +104,27 @@ class WalletTile extends SliverPersistentHeaderDelegate {
child: Container(
height: 108,
width: panelWidth,
padding: EdgeInsets.only(
top: 1,
left: 1,
bottom: 1
),
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(12), bottomLeft: Radius.circular(12)),
color: Theme.of(context).accentTextTheme.subtitle.color
),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(12), bottomLeft: Radius.circular(12)),
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
PaletteDark.walletCardTopEndSync,
PaletteDark.walletCardBottomEndSync
]
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [
Theme.of(context).accentTextTheme.caption.backgroundColor,
Theme.of(context).accentTextTheme.caption.decorationColor
]
)
),
),
),
)

@ -9,11 +9,6 @@ import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
class WelcomePage extends BasePage {
static const aspectRatioImage = 1.25;
final welcomeImage = Image.asset('assets/images/welcome.png');
final newWalletImage = Image.asset('assets/images/new_wallet.png', height: 12, width: 12, color: PaletteDark.historyPanel);
final restoreWalletImage = Image.asset('assets/images/restore_wallet.png', height: 12, width: 12, color: Colors.white);
@override
Color get backgroundColor => PaletteDark.historyPanel;
@override
Widget build(BuildContext context) {
@ -25,9 +20,17 @@ class WelcomePage extends BasePage {
@override
Widget body(BuildContext context) {
final newWalletImage = Image.asset('assets/images/new_wallet.png',
height: 12,
width: 12,
color: Palette.oceanBlue);
final restoreWalletImage = Image.asset('assets/images/restore_wallet.png',
height: 12,
width: 12,
color: Theme.of(context).primaryTextTheme.title.color);
return Container(
padding: EdgeInsets.only(top: 20),
color: PaletteDark.historyPanel,
child: ScrollableWithBottomSection(
contentPadding: EdgeInsets.only(bottom: 20),
content: Column(
@ -45,7 +48,7 @@ class WelcomePage extends BasePage {
S.of(context).welcome,
style: TextStyle(
fontSize: 18,
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
),
textAlign: TextAlign.center,
),
@ -56,7 +59,7 @@ class WelcomePage extends BasePage {
style: TextStyle(
fontSize: 36,
fontWeight: FontWeight.bold,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
),
textAlign: TextAlign.center,
),
@ -68,7 +71,7 @@ class WelcomePage extends BasePage {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
),
textAlign: TextAlign.center,
),
@ -84,7 +87,7 @@ class WelcomePage extends BasePage {
S.of(context).please_make_selection,
style: TextStyle(
fontSize: 12,
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
),
textAlign: TextAlign.center,
),
@ -95,7 +98,9 @@ class WelcomePage extends BasePage {
image: newWalletImage,
text: S.of(context).create_new,
color: Colors.white,
textColor: PaletteDark.historyPanel),
textColor: Palette.oceanBlue,
borderColor: Palette.oceanBlue,
),
),
Padding(
padding: EdgeInsets.only(top: 10),
@ -103,8 +108,8 @@ class WelcomePage extends BasePage {
onPressed: () => Navigator.pushNamed(context, Routes.restoreOptions),
image: restoreWalletImage,
text: S.of(context).restore_wallet,
color: PaletteDark.historyPanelButton,
textColor: Colors.white),
color: Theme.of(context).primaryTextTheme.overline.color,
textColor: Theme.of(context).primaryTextTheme.title.color),
)
]),
),

@ -1,6 +1,5 @@
import 'package:cake_wallet/routes.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/common/contact.dart';
import 'package:cake_wallet/src/domain/monero/subaddress.dart';
@ -20,7 +19,7 @@ class AddressTextField extends StatelessWidget {
this.onURIScanned,
this.focusNode,
this.isBorderExist = true,
this.buttonColor = PaletteDark.walletCardSubAddressField,
this.buttonColor,
this.validator});
static const prefixIconWidth = 34.0;
@ -46,7 +45,7 @@ class AddressTextField extends StatelessWidget {
focusNode: focusNode,
style: TextStyle(
fontSize: 16,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
suffixIcon: SizedBox(
@ -66,7 +65,7 @@ class AddressTextField extends StatelessWidget {
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor,
color: buttonColor ?? Theme.of(context).accentTextTheme.title.color,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset('assets/images/qr_code_icon.png')),
@ -84,7 +83,7 @@ class AddressTextField extends StatelessWidget {
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor,
color: buttonColor ?? Theme.of(context).accentTextTheme.title.color,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
@ -103,7 +102,7 @@ class AddressTextField extends StatelessWidget {
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor,
color: buttonColor ?? Theme.of(context).accentTextTheme.title.color,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
@ -115,24 +114,24 @@ class AddressTextField extends StatelessWidget {
),
hintStyle: TextStyle(
fontSize: 16,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
hintText: placeholder ?? S.current.widgets_address,
focusedBorder: isBorderExist
? UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.walletCardSubAddressField,
color: Theme.of(context).dividerColor,
width: 1.0))
: InputBorder.none,
disabledBorder: isBorderExist
? UnderlineInputBorder(
borderSide:
BorderSide(color: PaletteDark.walletCardSubAddressField, width: 1.0))
BorderSide(color: Theme.of(context).dividerColor, width: 1.0))
: InputBorder.none,
enabledBorder: isBorderExist
? UnderlineInputBorder(
borderSide:
BorderSide(color: PaletteDark.walletCardSubAddressField, width: 1.0))
BorderSide(color: Theme.of(context).dividerColor, width: 1.0))
: InputBorder.none,
),
validator: validator,

@ -18,7 +18,7 @@ class BaseAlertDialog extends StatelessWidget {
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
decoration: TextDecoration.none,
),
);
@ -31,7 +31,7 @@ class BaseAlertDialog extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white,
color: Theme.of(context).primaryTextTheme.title.color,
decoration: TextDecoration.none,
),
);
@ -122,7 +122,7 @@ class BaseAlertDialog extends StatelessWidget {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Center(
child: GestureDetector(
onTap: () => null,
@ -131,7 +131,7 @@ class BaseAlertDialog extends StatelessWidget {
height: 257,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(24)),
color: PaletteDark.menuHeader
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: Column(
children: <Widget>[
@ -152,7 +152,7 @@ class BaseAlertDialog extends StatelessWidget {
Container(
width: 300,
height: 1,
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
),
Container(
width: 300,

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:flutter/services.dart';
class BaseTextFormField extends StatelessWidget {
@ -12,9 +11,9 @@ class BaseTextFormField extends StatelessWidget {
this.hintText = '',
this.maxLines = 1,
this.inputFormatters,
this.textColor = Colors.white,
this.hintColor = PaletteDark.walletCardText,
this.borderColor = PaletteDark.menuList,
this.textColor,
this.hintColor,
this.borderColor,
this.prefix,
this.suffix,
this.suffixIcon,
@ -52,26 +51,26 @@ class BaseTextFormField extends StatelessWidget {
enabled: enabled,
style: TextStyle(
fontSize: 16.0,
color: textColor
color: textColor ?? Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
prefix: prefix,
suffix: suffix,
suffixIcon: suffixIcon,
hintStyle: TextStyle(
color: hintColor,
color: hintColor ?? Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: hintText,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: borderColor,
color: borderColor ?? Theme.of(context).dividerColor,
width: 1.0
)
),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: borderColor,
color: borderColor ?? Theme.of(context).dividerColor,
width: 1.0
)
)

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/domain/monero/get_height_by_date.dart';
import 'package:cake_wallet/palette.dart';
class BlockchainHeightWidget extends StatefulWidget {
BlockchainHeightWidget({GlobalKey key}) : super(key: key);
@ -39,24 +38,24 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: restoreHeightController,
keyboardType: TextInputType.numberWithOptions(
signed: false, decimal: false),
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).widgets_restore_from_blockheight,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
),
))
@ -69,7 +68,7 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.bold,
color: Colors.white),
color: Theme.of(context).primaryTextTheme.title.color),
),
),
Row(
@ -82,21 +81,21 @@ class BlockchainHeightState extends State<BlockchainHeightWidget> {
child: TextFormField(
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
decoration: InputDecoration(
hintStyle: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).widgets_restore_from_date,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
controller: dateController,
validator: (value) {

@ -1,8 +1,5 @@
import 'package:cake_wallet/theme_changer.dart';
import 'package:cake_wallet/themes.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
factory NavBar(
@ -11,8 +8,6 @@ class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
Widget middle,
Widget trailing,
Color backgroundColor}) {
final _themeChanger = Provider.of<ThemeChanger>(context);
final _isDarkTheme = _themeChanger.getTheme() == Themes.darkTheme;
return NavBar._internal(
leading: leading,
@ -20,8 +15,6 @@ class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
trailing: trailing,
height: _height,
backgroundColor: backgroundColor);
/*backgroundColor:
_isDarkTheme ? Theme.of(context).backgroundColor : backgroundColor);*/
}
factory NavBar.withShadow(
@ -30,8 +23,6 @@ class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
Widget middle,
Widget trailing,
Color backgroundColor}) {
final _themeChanger = Provider.of<ThemeChanger>(context);
final _isDarkTheme = _themeChanger.getTheme() == Themes.darkTheme;
return NavBar._internal(
leading: leading,
@ -39,13 +30,8 @@ class NavBar extends StatelessWidget implements ObstructingPreferredSizeWidget {
trailing: trailing,
height: 80,
backgroundColor: backgroundColor,
/*backgroundColor:
_isDarkTheme ? Theme.of(context).backgroundColor : backgroundColor,*/
decoration: BoxDecoration(
color: backgroundColor,
/*_isDarkTheme
? Theme.of(context).backgroundColor
: backgroundColor,*/
boxShadow: [
BoxShadow(
color: Color.fromRGBO(132, 141, 198, 0.11),

@ -28,7 +28,7 @@ class Picker<Item extends Object> extends StatelessWidget {
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0),
child: Container(
decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)),
decoration: BoxDecoration(color: PaletteDark.darkNightBlue.withOpacity(0.75)),
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
@ -54,10 +54,10 @@ class Picker<Item extends Object> extends StatelessWidget {
borderRadius: BorderRadius.all(Radius.circular(14)),
child: Container(
height: 233,
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: ListView.separated(
separatorBuilder: (context, index) => Divider(
color: PaletteDark.mainBackgroundColor,
color: Theme.of(context).dividerColor,
height: 1,
),
itemCount: items == null ? 0 : items.length,
@ -67,11 +67,11 @@ class Picker<Item extends Object> extends StatelessWidget {
final isItemSelected = index == selectedAtIndex;
final color = isItemSelected
? PaletteDark.menuHeader
? Theme.of(context).accentTextTheme.subtitle.decorationColor
: Colors.transparent;
final textColor = isItemSelected
? Colors.blue
: Colors.white;
: Theme.of(context).primaryTextTheme.title.color;
return GestureDetector(
onTap: () {

@ -1,44 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:cake_wallet/generated/i18n.dart';
Future<T> presentPicker<T extends Object>(
BuildContext context, List<T> list) async {
T _value = list[0];
return await showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(S.of(context).please_select),
backgroundColor: Theme.of(context).backgroundColor,
content: Container(
height: 150.0,
child: CupertinoPicker(
backgroundColor: Theme.of(context).backgroundColor,
itemExtent: 45.0,
onSelectedItemChanged: (int index) => _value = list[index],
children: List.generate(
list.length,
(index) => Center(
child: Text(
list[index].toString(),
style: TextStyle(
color: Theme.of(context)
.primaryTextTheme
.caption
.color),
),
))),
),
actions: <Widget>[
FlatButton(
onPressed: () => Navigator.of(context).pop(),
child: Text(S.of(context).cancel)),
FlatButton(
onPressed: () => Navigator.of(context).pop(_value),
child: Text(S.of(context).ok))
],
);
});
}

@ -30,7 +30,8 @@ class PrimaryButton extends StatelessWidget {
color: isDisabled ? color.withOpacity(0.5) : color,
disabledColor: color.withOpacity(0.5),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(26.0)),
borderRadius: BorderRadius.circular(26.0),
),
child: Text(text,
textAlign: TextAlign.center,
style: TextStyle(
@ -150,12 +151,14 @@ class PrimaryImageButton extends StatelessWidget {
@required this.image,
@required this.text,
@required this.color,
@required this.textColor});
@required this.textColor,
this.borderColor = Colors.transparent});
final VoidCallback onPressed;
final Image image;
final Color color;
final Color textColor;
final Color borderColor;
final String text;
@override
@ -167,6 +170,7 @@ class PrimaryImageButton extends StatelessWidget {
onPressed: onPressed,
color: color,
shape: RoundedRectangleBorder(
side: BorderSide(color: borderColor),
borderRadius: BorderRadius.circular(26.0)),
child:Center(
child: Row(

@ -245,7 +245,7 @@ class SeedWidgetState extends State<SeedWidget> {
bottomLeft: Radius.circular(24),
bottomRight: Radius.circular(24)
),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: SingleChildScrollView(
child: Column(
@ -256,7 +256,7 @@ class SeedWidgetState extends State<SeedWidget> {
S.of(context).restore_active_seed,
style: TextStyle(
fontSize: 14,
color: PaletteDark.walletCardText
color: Theme.of(context).primaryTextTheme.caption.color
),
),
Padding(
@ -275,8 +275,9 @@ class SeedWidgetState extends State<SeedWidget> {
child: Text(
item.toString(),
style: TextStyle(
color:
isValid ? Colors.white : Palette.lightGrey,
color: isValid
? Theme.of(context).primaryTextTheme.title.color
: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16,
fontWeight:
isSelected ? FontWeight.w900 : FontWeight.w400,
@ -306,7 +307,7 @@ class SeedWidgetState extends State<SeedWidget> {
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
Padding(
@ -318,7 +319,7 @@ class SeedWidgetState extends State<SeedWidget> {
: null,
style: TextStyle(
fontSize: 16.0,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
controller: _seedController,
textInputAction: TextInputAction.done,
@ -333,7 +334,7 @@ class SeedWidgetState extends State<SeedWidget> {
Text(
'${items.length}/${SeedWidgetState.maxLength}',
style: TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 14)),
SizedBox(width: 10),
InkWell(
@ -346,13 +347,13 @@ class SeedWidgetState extends State<SeedWidget> {
padding: EdgeInsets.all(7),
decoration: BoxDecoration(
color:
PaletteDark.menuList,
Theme.of(context).accentTextTheme.title.backgroundColor,
borderRadius:
BorderRadius.circular(10.0)),
child: Text(
S.of(context).paste,
style: TextStyle(
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
)),
)
@ -362,17 +363,17 @@ class SeedWidgetState extends State<SeedWidget> {
),
hintStyle:
TextStyle(
color: PaletteDark.walletCardText,
color: Theme.of(context).primaryTextTheme.caption.color,
fontSize: 16
),
hintText: S.of(context).restore_from_seed_placeholder,
errorText: _errorMessage,
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList, width: 1.0)),
color: Theme.of(context).dividerColor, width: 1.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
color: PaletteDark.menuList,
color: Theme.of(context).dividerColor,
width: 1.0))),
enableInteractiveSelection: false,
),

@ -1,16 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
class StandartCloseButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
height: 37,
width: 37,
child: FlatButton(
padding: EdgeInsets.all(0),
onPressed: () => Navigator.of(context).pop(),
child: Image.asset('assets/images/close_button.png')),
);
}
}

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class StandartListRow extends StatelessWidget {
StandartListRow({this.title, this.value, this.isDrawTop, this.isDrawBottom});
@ -17,12 +16,12 @@ class StandartListRow extends StatelessWidget {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
)
: Offstage(),
Container(
width: double.infinity,
color: PaletteDark.menuList,
color: Theme.of(context).accentTextTheme.title.backgroundColor,
child: Padding(
padding: const EdgeInsets.only(left: 24, top: 16, bottom: 16, right: 24),
child: Column(
@ -32,7 +31,7 @@ class StandartListRow extends StatelessWidget {
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
color: PaletteDark.walletCardText),
color: Theme.of(context).primaryTextTheme.caption.color),
textAlign: TextAlign.left),
Padding(
padding: const EdgeInsets.only(top: 12),
@ -40,7 +39,7 @@ class StandartListRow extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white)),
color: Theme.of(context).primaryTextTheme.title.color)),
)
]),
),
@ -49,7 +48,7 @@ class StandartListRow extends StatelessWidget {
? Container(
width: double.infinity,
height: 1,
color: PaletteDark.walletCardTopEndSync,
color: Theme.of(context).dividerColor,
)
: Offstage(),
],

@ -26,7 +26,7 @@ class StandartSwitchState extends State<StandartSwitch> {
decoration: BoxDecoration(
color: widget.value
? Colors.green
: PaletteDark.mainBackgroundColor,
: PaletteDark.distantBlue,
borderRadius: BorderRadius.all(Radius.circular(14.0))),
child: Container(
width: 24.0,

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
class TemplateTile extends StatelessWidget {
TemplateTile({
@ -14,10 +13,12 @@ class TemplateTile extends StatelessWidget {
final String from;
final VoidCallback onTap;
final toIcon = Image.asset('assets/images/to_icon.png');
@override
Widget build(BuildContext context) {
final toIcon = Image.asset('assets/images/to_icon.png',
color: Theme.of(context).primaryTextTheme.title.color,
);
return Container(
padding: EdgeInsets.only(right: 10),
child: GestureDetector(
@ -27,7 +28,7 @@ class TemplateTile extends StatelessWidget {
padding: EdgeInsets.only(left: 24, right: 24),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(20)),
color: PaletteDark.menuList
color: Theme.of(context).accentTextTheme.title.backgroundColor
),
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
@ -38,7 +39,7 @@ class TemplateTile extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
Padding(
@ -48,7 +49,7 @@ class TemplateTile extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),
@ -63,7 +64,7 @@ class TemplateTile extends StatelessWidget {
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Colors.white
color: Theme.of(context).primaryTextTheme.title.color
),
),
),

@ -7,179 +7,135 @@ class Themes {
fontFamily: 'Lato',
brightness: Brightness.light,
backgroundColor: Colors.white,
scaffoldBackgroundColor: Colors.white,
hintColor: Palette.lightBlue,
focusColor: Palette.lightGrey, // focused and enabled border color for text fields
focusColor: Colors.white, // wallet card border
hintColor: Colors.white, // menu
scaffoldBackgroundColor: Palette.blueAlice, // gradient background start
primaryColor: Palette.lightBlue, // gradient background end
cardColor: Palette.blueAlice,
cardTheme: CardTheme(
color: Colors.white, // synced card start
),
hoverColor: Colors.white, // synced card end
primaryTextTheme: TextTheme(
title: TextStyle(
color: Colors.black
color: Palette.oceanBlue, // primary text
backgroundColor: Colors.white // selectButton text
),
caption: TextStyle(
color: Colors.black,
color: Palette.lightBlueGrey, // secondary text
),
button: TextStyle(
color: Colors.black,
backgroundColor: Palette.purple, // button purple background color
decorationColor: Palette.deepPink // button pink border color
overline: TextStyle(
color: Palette.lavender // address field in the wallet card
),
subhead: TextStyle(
color: Colors.white // send, exchange, buy buttons on dashboard page
),
headline: TextStyle(
color: Colors.black // account list tile, contact page
color: Palette.lightBlueGrey // historyPanelText
),
subtitle: TextStyle(
color: Palette.wildDarkBlue // filters
display1: TextStyle(
color: Colors.white // menuList
),
subhead: TextStyle(
color: Colors.black // transaction raw, trade raw
display2: TextStyle(
color: Palette.lavender // menuHeader
),
overline: TextStyle(
color: PaletteDark.darkThemeCloseButton // standart list row, transaction details
display3: TextStyle(
color: Palette.lavender // historyPanelButton
),
display4: TextStyle(
color: Palette.oceanBlue // QR code
)
),
toggleButtonsTheme: ToggleButtonsThemeData(
selectedColor: Palette.cakeGreen,
disabledColor: Palette.wildDarkBlue,
color: Palette.switchBackground,
borderColor: Palette.switchBorder
),
selectedRowColor: Palette.purple,
dividerColor: Palette.lightGrey,
dividerTheme: DividerThemeData(
color: Palette.lightGrey
),
dividerColor: Palette.periwinkle,
accentTextTheme: TextTheme(
title: TextStyle(
color: Colors.grey,
backgroundColor: Palette.creamyGrey // pin button color
color: Palette.darkLavender, // top panel
backgroundColor: Palette.lavender, // bottom panel
decorationColor: PaletteDark.distantBlue // select button background color
),
caption: TextStyle(
color: Palette.wildDarkBlue, // clear button color, exchange page
backgroundColor: Palette.brightBlue, // button blue background color
decorationColor: Palette.cloudySky // button blue border color
),
button: TextStyle(
backgroundColor: Palette.indigo, // button indigo background color
decorationColor: Palette.deepIndigo // button indigo border color
color: Palette.blue, // current wallet label
backgroundColor: Colors.white, // gradient start, wallet label
decorationColor: Palette.lavender, // gradient end, wallet label
),
subtitle: TextStyle(
color: Colors.black,
backgroundColor: Palette.lightLavender // send page border color
color: Palette.lightBlueGrey, // border color, wallet label
backgroundColor: Palette.lavender, // address field, wallet card
decorationColor: Palette.darkLavender // selected item
),
headline: TextStyle(
color: Palette.lightGrey2, // receive page
backgroundColor: Colors.white, // restore button background color
decorationColor: Palette.darkGrey, // restore button border color
),
subhead: TextStyle(
color: Palette.lightBlue, // restore button description
backgroundColor: Palette.lightGrey2 // change language background color
),
overline: TextStyle(
color: Palette.nightBlue, // send page text
backgroundColor: Palette.nightBlue, // send page text
decorationColor: Palette.manatee // send page text
color: Palette.darkLavender, // faq background
backgroundColor: Palette.lavender // faq extension
)
),
cardColor: Palette.lavender,
cardTheme: CardTheme(
color: Palette.cadetBlue
),
buttonColor: Palette.darkGrey,
primaryIconTheme: IconThemeData(
color: Colors.white
),
accentIconTheme: IconThemeData(
color: Colors.white
)
);
static final ThemeData darkTheme = ThemeData(
fontFamily: 'Lato',
brightness: Brightness.dark,
backgroundColor: PaletteDark.darkThemeBackgroundDark,
scaffoldBackgroundColor: PaletteDark.darkThemeBlack,
hintColor: PaletteDark.darkThemeGrey,
focusColor: PaletteDark.darkThemeGreyWithOpacity, // focused and enabled border color for text fields
backgroundColor: PaletteDark.darkNightBlue,
focusColor: PaletteDark.lightDistantBlue, // wallet card border
hintColor: PaletteDark.gray, // menu
scaffoldBackgroundColor: PaletteDark.distantBlue, // gradient background start
primaryColor: PaletteDark.distantBlue, // gradient background end
cardColor: PaletteDark.darkNightBlue,
cardTheme: CardTheme(
color: PaletteDark.moderateBlue, // synced card start
),
hoverColor: PaletteDark.nightBlue, // synced card end
primaryTextTheme: TextTheme(
title: TextStyle(
color: PaletteDark.darkThemeTitle
color: Colors.white,
backgroundColor: PaletteDark.moderatePurpleBlue // selectButton text
),
caption: TextStyle(
color: Colors.white
color: PaletteDark.gray,
),
button: TextStyle(
color: Palette.wildDarkBlue,
backgroundColor: PaletteDark.darkThemePurpleButton, // button purple background color
decorationColor: PaletteDark.darkThemePurpleButtonBorder // button pink border color
overline: TextStyle(
color: PaletteDark.lightDistantBlue // address field in the wallet card
),
subhead: TextStyle(
color: PaletteDark.lightDistantBlue // send, exchange, buy buttons on dashboard page
),
headline: TextStyle(
color: PaletteDark.darkThemeGrey // account list tile, contact page
color: PaletteDark.pigeonBlue // historyPanelText
),
subtitle: TextStyle(
color: PaletteDark.darkThemeGrey // filters
display1: TextStyle(
color: PaletteDark.lightNightBlue // menuList
),
subhead: TextStyle(
color: Palette.blueGrey // transaction raw, trade raw
display2: TextStyle(
color: PaletteDark.headerNightBlue // menuHeader
),
overline: TextStyle(
color: PaletteDark.darkThemeGrey // standart list row, transaction details
display3: TextStyle(
color: PaletteDark.moderateNightBlue // historyPanelButton
),
display4: TextStyle(
color: PaletteDark.gray // QR code
)
),
toggleButtonsTheme: ToggleButtonsThemeData(
selectedColor: Palette.cakeGreen,
disabledColor: Palette.wildDarkBlue,
color: PaletteDark.switchBackground,
borderColor: PaletteDark.darkThemeMidGrey
),
selectedRowColor: PaletteDark.darkThemeViolet,
dividerColor: PaletteDark.darkThemeDarkGrey,
dividerTheme: DividerThemeData(
color: PaletteDark.darkThemeGreyWithOpacity
),
dividerColor: PaletteDark.distantBlue,
accentTextTheme: TextTheme(
title: TextStyle(
color: PaletteDark.darkThemeTitle,
backgroundColor: PaletteDark.darkThemePinDigitButton // pin button color
color: PaletteDark.moderateBlue, // top panel
backgroundColor: PaletteDark.lightNightBlue, // bottom panel
decorationColor: Colors.white // select button background color
),
caption: TextStyle(
color: PaletteDark.darkThemeTitleViolet, // clear button color, exchange page
backgroundColor: PaletteDark.darkThemeBlueButton, // button blue background color
decorationColor: PaletteDark.darkThemeBlueButtonBorder // button blue border color
),
button: TextStyle(
backgroundColor: PaletteDark.darkThemeIndigoButton, // button indigo background color
decorationColor: PaletteDark.darkThemeIndigoButtonBorder // button indigo border color
color: Colors.white, // current wallet label
backgroundColor: PaletteDark.distantBlue, // gradient start, wallet label
decorationColor: PaletteDark.nightBlue, // gradient end, wallet label
),
subtitle: TextStyle(
color: PaletteDark.wildDarkBlueWithOpacity,
backgroundColor: PaletteDark.darkThemeDarkGrey // send page border color
color: PaletteDark.darkNightBlue, // border color, wallet label
backgroundColor: PaletteDark.violetBlue, // address field, wallet card
decorationColor: PaletteDark.headerNightBlue // selected item
),
headline: TextStyle(
color: PaletteDark.darkThemeBlack, // receive page
backgroundColor: PaletteDark.darkThemeMidGrey, // restore button background color
decorationColor: PaletteDark.darkThemeDarkGrey, // restore button border color
),
subhead: TextStyle(
color: Palette.wildDarkBlue, // restore button description
backgroundColor: PaletteDark.darkThemeMidGrey // change language background color
),
overline: TextStyle(
color: PaletteDark.darkThemeTitle, // send page text
backgroundColor: PaletteDark.darkThemeGrey, // send page text
decorationColor: PaletteDark.darkThemeTitle // send page text
color: PaletteDark.lightNightBlue, // faq background
backgroundColor: PaletteDark.headerNightBlue // faq extension
)
),
cardColor: PaletteDark.darkThemeMidGrey,
cardTheme: CardTheme(
color: PaletteDark.darkThemeGrey
),
buttonColor: PaletteDark.darkThemePinButton,
primaryIconTheme: IconThemeData(
color: PaletteDark.darkThemeViolet
),
accentIconTheme: IconThemeData(
color: PaletteDark.darkThemeIndigoButtonBorder
)
);
}
Loading…
Cancel
Save