CAKE-182 | changed colors on dashboard page for light theme; changed action buttons icons on dashboard page; changed buttons colors on alerts for light theme; deleted item_from_theme.dart; added getters (isLightTheme, isBrightTheme, isDarkTheme) to Themes class; applied getters to the app

OleksandrSobol committed Dec 14, 2020 at 19:54 UTC 85497a121861dc818c28d3cba219e611154449cf
18 files changed +88 -150
assets/images/2.0x/transfer.png
Binary files /dev/null and b/assets/images/2.0x/transfer.png differ
assets/images/2.0x/upload.png
Binary files /dev/null and b/assets/images/2.0x/upload.png differ
assets/images/3.0x/transfer.png
Binary files /dev/null and b/assets/images/3.0x/transfer.png differ
assets/images/3.0x/upload.png
Binary files /dev/null and b/assets/images/3.0x/upload.png differ
assets/images/transfer.png
Binary files a/assets/images/transfer.png and b/assets/images/transfer.png differ
assets/images/upload.png
Binary files a/assets/images/upload.png and b/assets/images/upload.png differ
lib/entities/item_from_theme.dart deleted
-17
@@ -1,17 +0,0 @@
1 -import 'package:cake_wallet/themes.dart';
2 -import 'package:flutter/material.dart';
3 -
4 -dynamic itemFromTheme({
5 - @required Themes currentTheme,
6 - @required Map<Themes, dynamic> items}) {
7 - switch (currentTheme) {
8 - case Themes.light:
9 - return items[Themes.light];
10 - case Themes.bright:
11 - return items[Themes.bright];
12 - case Themes.dark:
13 - return items[Themes.dark];
14 - default:
15 - return items[Themes.light];
16 - }
17 -}
\ No newline at end of file
lib/main.dart
+12 -20
@@ -1,5 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
2 -import 'package:cake_wallet/themes.dart';
1 import 'package:flutter/material.dart';
2 import 'package:flutter/services.dart';
3 import 'package:hive/hive.dart';
@@ -125,31 +123,25 @@ class App extends StatelessWidget {
123 @override
124 Widget build(BuildContext context) {
125 final settingsStore = getIt.get<AppStore>().settingsStore;
128 - final currentTheme = settingsStore.currentTheme ?? Themes.light;
129 - final Map<Themes, Brightness> items = {
130 - Themes.light: Brightness.dark,
131 - Themes.bright: Brightness.dark,
132 - Themes.dark: Brightness.light
133 - };
134 -
126 final statusBarColor = Colors.transparent;
136 - final statusBarBrightness =
137 - itemFromTheme(currentTheme: currentTheme, items: items) as Brightness
138 - ?? Brightness.dark;
139 - final statusBarIconBrightness =
140 - itemFromTheme(currentTheme: currentTheme, items: items) as Brightness
141 - ?? Brightness.dark;
127 final authenticationStore = getIt.get<AuthenticationStore>();
128 final initialRoute = authenticationStore.state == AuthenticationState.denied
129 ? Routes.disclaimer
130 : Routes.login;
131
147 - SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
148 - statusBarColor: statusBarColor,
149 - statusBarBrightness: statusBarBrightness,
150 - statusBarIconBrightness: statusBarIconBrightness));
151 -
132 return Observer(builder: (BuildContext context) {
133 + final currentTheme = settingsStore.currentTheme;
134 + final statusBarBrightness = currentTheme.isDarkTheme
135 + ? Brightness.dark
136 + : Brightness.light;
137 + final statusBarIconBrightness = currentTheme.isDarkTheme
138 + ? Brightness.light
139 + : Brightness.dark;
140 + SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
141 + statusBarColor: statusBarColor,
142 + statusBarBrightness: statusBarBrightness,
143 + statusBarIconBrightness: statusBarIconBrightness));
144 +
145 return Root(
146 authenticationStore: authenticationStore,
147 navigatorKey: navigatorKey,
lib/src/screens/base_page.dart
+7 -26
@@ -1,4 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:cake_wallet/themes.dart';
2 import 'package:flutter/cupertino.dart';
3 import 'package:flutter/material.dart';
@@ -14,17 +13,11 @@ abstract class BasePage extends StatelessWidget {
13 : _scaffoldKey = GlobalKey<ScaffoldState>();
14 final GlobalKey<ScaffoldState> _scaffoldKey;
15
17 - static final Image closeButtonImage =
16 + final Image closeButtonImage =
17 Image.asset('assets/images/close_button.png');
19 - static final Image closeButtonImageDarkTheme =
18 + final Image closeButtonImageDarkTheme =
19 Image.asset('assets/images/close_button_dark_theme.png');
20
22 - final Map<Themes, Image> buttonItems = {
23 - Themes.light: closeButtonImage,
24 - Themes.bright: closeButtonImage,
25 - Themes.dark: closeButtonImageDarkTheme
26 - };
27 -
21 String get title => null;
22
23 bool get isModalBackButton => false;
@@ -60,8 +53,7 @@ abstract class BasePage extends StatelessWidget {
53 color: titleColor ?? Theme.of(context).primaryTextTheme.title.color,
54 size: 16,);
55 final _closeButton =
63 - itemFromTheme(currentTheme: currentTheme, items: buttonItems) as Image
64 - ?? closeButtonImage;
56 + currentTheme.isDarkTheme ? closeButtonImageDarkTheme : closeButtonImage;
57
58 return SizedBox(
59 height: 37,
@@ -97,7 +89,8 @@ abstract class BasePage extends StatelessWidget {
89 Widget floatingActionButton(BuildContext context) => null;
90
91 ObstructingPreferredSizeWidget appBar(BuildContext context) {
100 - final appBarColor = _setBackgroundColor();
92 + final appBarColor =
93 + currentTheme.isDarkTheme ? backgroundDarkColor : backgroundLightColor;
94
95 switch (appBarStyle) {
96 case AppBarStyle.regular:
@@ -139,7 +132,8 @@ abstract class BasePage extends StatelessWidget {
132
133 @override
134 Widget build(BuildContext context) {
142 - final _backgroundColor = _setBackgroundColor();
135 + final _backgroundColor =
136 + currentTheme.isDarkTheme ? backgroundDarkColor : backgroundLightColor;
137
138 final root = Scaffold(
139 key: _scaffoldKey,
@@ -153,17 +147,4 @@ abstract class BasePage extends StatelessWidget {
147
148 return rootWrapper?.call(context, root) ?? root;
149 }
156 -
157 - Color _setBackgroundColor() {
158 - switch (currentTheme) {
159 - case Themes.light:
160 - return backgroundLightColor;
161 - case Themes.bright:
162 - return backgroundLightColor;
163 - case Themes.dark:
164 - return backgroundDarkColor;
165 - default:
166 - return backgroundLightColor;
167 - }
168 - }
150 }
lib/src/screens/new_wallet/new_wallet_page.dart
+3 -11
@@ -14,30 +14,22 @@ import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_pick
14 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
15 import 'package:cake_wallet/core/execution_state.dart';
16 import 'package:cake_wallet/view_model/wallet_new_vm.dart';
17 -import 'package:cake_wallet/themes.dart';
18 -import 'package:cake_wallet/entities/item_from_theme.dart';
17
18 class NewWalletPage extends BasePage {
19 NewWalletPage(this._walletNewVM);
20
21 final WalletNewVM _walletNewVM;
22
25 - static final walletNameImage = Image.asset('assets/images/wallet_name.png');
26 - static final walletNameLightImage =
23 + final walletNameImage = Image.asset('assets/images/wallet_name.png');
24 + final walletNameLightImage =
25 Image.asset('assets/images/wallet_name_light.png');
28 - final Map<Themes, Image> items = {
29 - Themes.light: walletNameLightImage,
30 - Themes.bright: walletNameLightImage,
31 - Themes.dark: walletNameImage
32 - };
26
27 @override
28 String get title => S.current.new_wallet;
29
30 @override
31 Widget body(BuildContext context) => WalletNameForm(_walletNewVM,
39 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
40 - ?? walletNameLightImage);
32 + currentTheme.isDarkTheme ? walletNameImage : walletNameLightImage);
33 }
34
35 class WalletNameForm extends StatefulWidget {
lib/src/screens/new_wallet/new_wallet_type_page.dart
+4 -12
@@ -1,4 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:cake_wallet/entities/wallet_type.dart';
2 import 'package:flutter/material.dart';
3 import 'package:flutter/cupertino.dart';
@@ -7,7 +6,6 @@ import 'package:cake_wallet/src/screens/base_page.dart';
6 import 'package:cake_wallet/src/widgets/primary_button.dart';
7 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
8 import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart';
10 -import 'package:cake_wallet/themes.dart';
9
10 class NewWalletTypePage extends BasePage {
11 NewWalletTypePage({this.onTypeSelected, this.isNewWallet = true});
@@ -15,14 +13,9 @@ class NewWalletTypePage extends BasePage {
13 final void Function(BuildContext, WalletType) onTypeSelected;
14 final bool isNewWallet;
15
18 - static final walletTypeImage = Image.asset('assets/images/wallet_type.png');
19 - static final walletTypeLightImage =
16 + final walletTypeImage = Image.asset('assets/images/wallet_type.png');
17 + final walletTypeLightImage =
18 Image.asset('assets/images/wallet_type_light.png');
21 - final Map<Themes, Image> items = {
22 - Themes.light: walletTypeLightImage,
23 - Themes.bright: walletTypeLightImage,
24 - Themes.dark: walletTypeImage
25 - };
19
20 @override
21 String get title => isNewWallet
@@ -33,9 +26,8 @@ class NewWalletTypePage extends BasePage {
26 Widget body(BuildContext context) =>
27 WalletTypeForm(
28 onTypeSelected: onTypeSelected,
36 - walletImage:
37 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
38 - ?? walletTypeLightImage);
29 + walletImage: currentTheme.isDarkTheme
30 + ? walletTypeImage : walletTypeLightImage);
31 }
32
33 class WalletTypeForm extends StatefulWidget {
lib/src/screens/seed/pre_seed_page.dart
+3 -13
@@ -1,21 +1,13 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:cake_wallet/routes.dart';
2 import 'package:flutter/cupertino.dart';
3 import 'package:flutter/material.dart';
4 import 'package:cake_wallet/generated/i18n.dart';
5 import 'package:cake_wallet/src/widgets/primary_button.dart';
6 import 'package:cake_wallet/src/screens/base_page.dart';
8 -import 'package:cake_wallet/themes.dart';
7
8 class PreSeedPage extends BasePage {
11 - static final imageLight = Image.asset('assets/images/pre_seed_light.png');
12 - static final imageDark = Image.asset('assets/images/pre_seed_dark.png');
13 -
14 - final Map<Themes, Image> items = {
15 - Themes.light: imageLight,
16 - Themes.bright: imageLight,
17 - Themes.dark: imageDark
18 - };
9 + final imageLight = Image.asset('assets/images/pre_seed_light.png');
10 + final imageDark = Image.asset('assets/images/pre_seed_dark.png');
11
12 @override
13 Widget leading(BuildContext context) => null;
@@ -25,9 +17,7 @@ class PreSeedPage extends BasePage {
17
18 @override
19 Widget body(BuildContext context) {
28 - final image =
29 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
30 - ?? imageLight;
20 + final image = currentTheme.isDarkTheme ? imageDark : imageLight;
21
22 return WillPopScope(
23 onWillPop: () async => false,
lib/src/screens/seed/wallet_seed_page.dart
+3 -12
@@ -1,4 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:cake_wallet/palette.dart';
2 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
3 import 'package:cake_wallet/utils/show_bar.dart';
@@ -12,18 +11,12 @@ import 'package:cake_wallet/generated/i18n.dart';
11 import 'package:cake_wallet/src/widgets/primary_button.dart';
12 import 'package:cake_wallet/src/screens/base_page.dart';
13 import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
15 -import 'package:cake_wallet/themes.dart';
14
15 class WalletSeedPage extends BasePage {
16 WalletSeedPage(this.walletSeedViewModel, {@required this.isNewWalletCreated});
17
20 - static final imageLight = Image.asset('assets/images/crypto_lock_light.png');
21 - static final imageDark = Image.asset('assets/images/crypto_lock.png');
22 - final Map<Themes, Image> items = {
23 - Themes.light: imageLight,
24 - Themes.bright: imageLight,
25 - Themes.dark: imageDark
26 - };
18 + final imageLight = Image.asset('assets/images/crypto_lock_light.png');
19 + final imageDark = Image.asset('assets/images/crypto_lock.png');
20
21 @override
22 String get title => S.current.seed_title;
@@ -88,9 +81,7 @@ class WalletSeedPage extends BasePage {
81
82 @override
83 Widget body(BuildContext context) {
91 - final image =
92 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
93 - ?? imageLight;
84 + final image = currentTheme.isDarkTheme ? imageDark : imageLight;
85
86 return WillPopScope(onWillPop: () async => false, child: Container(
87 padding: EdgeInsets.all(24),
lib/src/screens/seed_language/seed_language_page.dart
+3 -11
@@ -1,4 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:cake_wallet/src/widgets/seed_language_selector.dart';
2 import 'package:flutter_mobx/flutter_mobx.dart';
3 import 'package:flutter/material.dart';
@@ -8,21 +7,15 @@ import 'package:cake_wallet/src/screens/base_page.dart';
7 import 'package:cake_wallet/src/widgets/primary_button.dart';
8 import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
9 import 'package:cake_wallet/src/screens/seed_language/widgets/seed_language_picker.dart';
11 -import 'package:cake_wallet/themes.dart';
10
11 class SeedLanguage extends BasePage {
12 SeedLanguage({this.onConfirm});
13
14 final Function(BuildContext, String) onConfirm;
15
18 - static final walletNameImage = Image.asset('assets/images/wallet_name.png');
19 - static final walletNameLightImage =
16 + final walletNameImage = Image.asset('assets/images/wallet_name.png');
17 + final walletNameLightImage =
18 Image.asset('assets/images/wallet_name_light.png');
21 - final Map<Themes, Image> items = {
22 - Themes.light: walletNameLightImage,
23 - Themes.bright: walletNameLightImage,
24 - Themes.dark: walletNameImage
25 - };
19
20 @override
21 String get title => S.current.wallet_list_restore_wallet;
@@ -32,8 +25,7 @@ class SeedLanguage extends BasePage {
25 SeedLanguageForm(
26 onConfirm: onConfirm,
27 walletImage:
35 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
36 - ?? walletNameLightImage);
28 + currentTheme.isDarkTheme ? walletNameImage : walletNameLightImage);
29 }
30
31 class SeedLanguageForm extends StatefulWidget {
lib/src/screens/welcome/welcome_page.dart
+3 -11
@@ -1,4 +1,3 @@
1 -import 'package:cake_wallet/entities/item_from_theme.dart';
1 import 'package:flutter/material.dart';
2 import 'package:cake_wallet/routes.dart';
3 import 'package:cake_wallet/src/widgets/primary_button.dart';
@@ -8,14 +7,8 @@ import 'package:cake_wallet/themes.dart';
7
8 class WelcomePage extends BasePage {
9 static const aspectRatioImage = 1.25;
11 - static final welcomeImageLight = Image.asset('assets/images/welcome_light.png');
12 - static final welcomeImageDark = Image.asset('assets/images/welcome.png');
13 -
14 - final Map<Themes, Image> items = {
15 - Themes.light: welcomeImageLight,
16 - Themes.bright: welcomeImageLight,
17 - Themes.dark: welcomeImageDark
18 - };
10 + final welcomeImageLight = Image.asset('assets/images/welcome_light.png');
11 + final welcomeImageDark = Image.asset('assets/images/welcome.png');
12
13 @override
14 Widget build(BuildContext context) {
@@ -30,8 +23,7 @@ class WelcomePage extends BasePage {
23 @override
24 Widget body(BuildContext context) {
25 final welcomeImage =
33 - itemFromTheme(currentTheme: currentTheme, items: items) as Image
34 - ?? welcomeImageLight;
26 + currentTheme.isDarkTheme ? welcomeImageDark : welcomeImageLight;
27
28 final newWalletImage = Image.asset('assets/images/new_wallet.png',
29 height: 12,
lib/src/widgets/alert_with_one_action.dart
+3 -2
@@ -31,7 +31,7 @@ class AlertWithOneAction extends BaseAlertDialog {
31 width: 300,
32 height: 52,
33 padding: EdgeInsets.only(left: 12, right: 12),
34 - color: Theme.of(context).accentTextTheme.body2.color,
34 + color: Theme.of(context).accentTextTheme.body1.backgroundColor,
35 child: ButtonTheme(
36 minWidth: double.infinity,
37 child: FlatButton(
@@ -44,7 +44,8 @@ class AlertWithOneAction extends BaseAlertDialog {
44 style: TextStyle(
45 fontSize: 15,
46 fontWeight: FontWeight.w600,
47 - color: Colors.white,
47 + color: Theme.of(context).primaryTextTheme.body1
48 + .backgroundColor,
49 decoration: TextDecoration.none,
50 ),
51 )),
lib/src/widgets/base_alert_dialog.dart
+22 -3
@@ -1,4 +1,7 @@
1 import 'dart:ui';
2 +import 'package:cake_wallet/di.dart';
3 +import 'package:cake_wallet/store/settings_store.dart';
4 +import 'package:cake_wallet/themes.dart';
5 import 'package:flutter/material.dart';
6 import 'package:cake_wallet/palette.dart';
7
@@ -10,6 +13,7 @@ class BaseAlertDialog extends StatelessWidget {
13 VoidCallback get actionLeft => () {};
14 VoidCallback get actionRight => () {};
15 bool get barrierDismissible => true;
16 + Themes get currentTheme => getIt.get<SettingsStore>().currentTheme;
17
18 Widget title(BuildContext context) {
19 return Text(
@@ -61,18 +65,26 @@ class BaseAlertDialog extends StatelessWidget {
65 fontSize: 15,
66 fontFamily: 'Lato',
67 fontWeight: FontWeight.w600,
64 - color: Colors.white,
68 + color: Theme.of(context).primaryTextTheme.body2
69 + .backgroundColor,
70 decoration: TextDecoration.none,
71 ),
72 )),
73 ),
74 )
75 ),
76 + currentTheme.isLightTheme
77 + ? Container(
78 + width: 1,
79 + height: 52,
80 + color: Colors.grey[300],
81 + )
82 + : Offstage(),
83 Flexible(
84 child: Container(
85 height: 52,
86 padding: EdgeInsets.only(left: 6, right: 6),
75 - color: Theme.of(context).accentTextTheme.body2.color,
87 + color: Theme.of(context).accentTextTheme.body1.backgroundColor,
88 child: ButtonTheme(
89 minWidth: double.infinity,
90 child: FlatButton(
@@ -86,7 +98,8 @@ class BaseAlertDialog extends StatelessWidget {
98 fontSize: 15,
99 fontFamily: 'Lato',
100 fontWeight: FontWeight.w600,
89 - color: Colors.white,
101 + color: Theme.of(context).primaryTextTheme.body1
102 + .backgroundColor,
103 decoration: TextDecoration.none,
104 ),
105 )),
@@ -133,6 +146,12 @@ class BaseAlertDialog extends StatelessWidget {
146 ],
147 ),
148 ),
149 + currentTheme.isLightTheme
150 + ? Container(
151 + height: 1,
152 + color: Colors.grey[300],
153 + )
154 + : Offstage(),
155 actionButtons(context)
156 ],
157 ),
lib/themes.dart
+25 -12
@@ -43,6 +43,10 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
43 }
44 }
45
46 + bool get isLightTheme => this == Themes.light;
47 + bool get isBrightTheme => this == Themes.bright;
48 + bool get isDarkTheme => this == Themes.dark;
49 +
50 @override
51 String toString() {
52 switch (this) {
@@ -65,7 +69,7 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
69 scaffoldBackgroundColor: Colors.white, // second gradient color
70 primaryColor: Colors.white, // third gradient color
71 buttonColor: Palette.blueAlice, // action buttons on dashboard page
68 - indicatorColor: PaletteDark.darkCyanBlue, // page indicator
72 + indicatorColor: PaletteDark.darkCyanBlue.withOpacity(0.67), // page indicator
73 hoverColor: Palette.darkBlueCraiola, // amount hint text (receive page)
74 dividerColor: Palette.paleBlue,
75 hintColor: Palette.gray,
@@ -165,11 +169,13 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
169 ),
170 body1: TextStyle(
171 color: Palette.blueCraiola.withOpacity(0.7), // first gradient color bottom panel (exchange page)
168 - decorationColor: Palette.blueGreyCraiola.withOpacity(0.7) // second gradient color bottom panel (exchange page)
172 + decorationColor: Palette.blueGreyCraiola.withOpacity(0.7), // second gradient color bottom panel (exchange page)
173 + backgroundColor: Palette.protectiveBlue // alert right button text
174 ),
175 body2: TextStyle(
176 color: Colors.white.withOpacity(0.5), // text field border on top panel (exchange page)
177 decorationColor: Colors.white.withOpacity(0.5), // text field border on bottom panel (exchange page)
178 + backgroundColor: Palette.brightOrange // alert left button text
179 )
180 ),
181 focusColor: Colors.white.withOpacity(0.2), // text field button (exchange page)
@@ -211,7 +217,7 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
217 display2: TextStyle(
218 color: Palette.shadowWhite, // action button color (address text field)
219 decorationColor: Palette.darkGray, // hint text (seed widget)
214 - backgroundColor: Palette.darkBlueCraiola // text on balance page
220 + backgroundColor: Palette.darkBlueCraiola.withOpacity(0.67) // text on balance page
221 ),
222 display3: TextStyle(
223 color: Palette.darkGray, // hint text (new wallet page)
@@ -224,11 +230,12 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
230 ),
231 body1: TextStyle(
232 color: Palette.darkGray, // indicators (PIN code)
227 - decorationColor: Palette.darkGray // switch (PIN code)
233 + decorationColor: Palette.darkGray, // switch (PIN code)
234 + backgroundColor: Colors.white // alert right button
235 ),
236 body2: TextStyle(
230 - color: Palette.protectiveBlue, // primary buttons, alert right buttons
231 - decorationColor: Palette.brightOrange, // alert left button,
237 + color: Palette.protectiveBlue, // primary buttons
238 + decorationColor: Colors.white, // alert left button,
239 backgroundColor: Palette.dullGray // keyboard bar color
240 ),
241 ),
@@ -343,11 +350,13 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
350 ),
351 body1: TextStyle(
352 color: Palette.blueCraiola.withOpacity(0.7), // first gradient color bottom panel (exchange page)
346 - decorationColor: Palette.pinkFlamingo.withOpacity(0.7) // second gradient color bottom panel (exchange page)
353 + decorationColor: Palette.pinkFlamingo.withOpacity(0.7), // second gradient color bottom panel (exchange page)
354 + backgroundColor: Colors.white // alert right button text
355 ),
356 body2: TextStyle(
357 color: Colors.white.withOpacity(0.5), // text field border on top panel (exchange page)
358 decorationColor: Colors.white.withOpacity(0.5), // text field border on bottom panel (exchange page)
359 + backgroundColor: Colors.white // alert left button text
360 )
361 ),
362 focusColor: Colors.white.withOpacity(0.2), // text field button (exchange page)
@@ -403,10 +412,11 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
412 ),
413 body1: TextStyle(
414 color: Palette.darkGray, // indicators (PIN code)
406 - decorationColor: Palette.darkGray // switch (PIN code)
415 + decorationColor: Palette.darkGray, // switch (PIN code)
416 + backgroundColor: Palette.moderateSlateBlue // alert right button
417 ),
418 body2: TextStyle(
409 - color: Palette.moderateSlateBlue, // primary buttons, alert right buttons
419 + color: Palette.moderateSlateBlue, // primary buttons
420 decorationColor: Palette.brightOrange, // alert left button,
421 backgroundColor: Palette.dullGray // keyboard bar color
422 ),
@@ -521,11 +531,13 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
531 ),
532 body1: TextStyle(
533 color: PaletteDark.darkNightBlue, // first gradient color bottom panel (exchange page)
524 - decorationColor: PaletteDark.darkNightBlue // second gradient color bottom panel (exchange page)
534 + decorationColor: PaletteDark.darkNightBlue, // second gradient color bottom panel (exchange page)
535 + backgroundColor: Colors.white // alert right button text
536 ),
537 body2: TextStyle(
538 color: PaletteDark.blueGrey, // text field border on top panel (exchange page)
539 decorationColor: PaletteDark.moderateVioletBlue, // text field border on bottom panel (exchange page)
540 + backgroundColor: Colors.white // alert left button text
541 )
542 ),
543 focusColor: PaletteDark.moderateBlue, // text field button (exchange page)
@@ -581,10 +593,11 @@ class Themes extends EnumerableItem<int> with Serializable<int> {
593 ),
594 body1: TextStyle(
595 color: PaletteDark.indicatorVioletBlue, // indicators (PIN code)
584 - decorationColor: PaletteDark.lightPurpleBlue // switch (PIN code)
596 + decorationColor: PaletteDark.lightPurpleBlue, // switch (PIN code)
597 + backgroundColor: Palette.blueCraiola // alert right button
598 ),
599 body2: TextStyle(
587 - color: Palette.blueCraiola, // primary buttons, alert right buttons
600 + color: Palette.blueCraiola, // primary buttons
601 decorationColor: Palette.alizarinRed, // alert left button
602 backgroundColor: PaletteDark.granite // keyboard bar color
603 ),