CAKE-49 | merged new-world into current branch

OleksandrSobol committed Sep 22, 2020 at 22:26 UTC 3212f5041f27bbcbc652270b27cae54cf51613b1
5 files changed +177 -131
lib/src/screens/base_page.dart
+1
@@ -75,6 +75,7 @@ abstract class BasePage extends StatelessWidget {
75 style: TextStyle(
76 fontSize: 18.0,
77 fontWeight: FontWeight.bold,
78 + fontFamily: 'Poppins',
79 color: titleColor ??
80 Theme.of(context).primaryTextTheme.title.color),
81 );
lib/src/screens/exchange/exchange_page.dart
+78 -71
@@ -1,29 +1,28 @@
1 import 'dart:ui';
2 -import 'package:cake_wallet/core/address_validator.dart';
3 -import 'package:cake_wallet/core/amount_validator.dart';
4 -import 'package:cake_wallet/routes.dart';
5 -import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
6 -import 'package:cake_wallet/src/domain/exchange/exchange_template.dart';
7 -import 'package:cake_wallet/src/domain/exchange/xmrto/xmrto_exchange_provider.dart';
8 -import 'package:cake_wallet/src/screens/exchange/widgets/exchange_card.dart';
9 -import 'package:cake_wallet/src/stores/exchange/exchange_trade_state.dart';
10 -import 'package:cake_wallet/src/stores/exchange/limits_state.dart';
11 -import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
2 +import 'package:cake_wallet/exchange/exchange_template.dart';
3 +import 'package:cake_wallet/src/screens/base_page.dart';
4 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
13 -import 'package:cake_wallet/src/widgets/primary_button.dart';
14 -import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
5 import 'package:cake_wallet/src/widgets/template_tile.dart';
6 +import 'package:cake_wallet/src/widgets/trail_button.dart';
7 import 'package:dotted_border/dotted_border.dart';
8 import 'package:flutter/cupertino.dart';
9 import 'package:flutter/material.dart';
19 -import 'package:cake_wallet/palette.dart';
20 -import 'package:cake_wallet/generated/i18n.dart';
21 -import 'package:cake_wallet/src/screens/base_page.dart';
22 -import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker.dart';
23 -import 'package:cake_wallet/src/widgets/trail_button.dart';
24 -import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
10 import 'package:flutter_mobx/flutter_mobx.dart';
11 import 'package:mobx/mobx.dart';
12 +import 'package:cake_wallet/routes.dart';
13 +import 'package:cake_wallet/generated/i18n.dart';
14 +import 'package:cake_wallet/entities/crypto_currency.dart';
15 +import 'package:cake_wallet/exchange/xmrto/xmrto_exchange_provider.dart';
16 +// import 'package:cake_wallet/exchange/exchange_trade_state.dart';
17 +// import 'package:cake_wallet/exchange/limits_state.dart';
18 +import 'package:cake_wallet/src/screens/exchange/widgets/exchange_card.dart';
19 +import 'package:cake_wallet/src/widgets/primary_button.dart';
20 +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
21 +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
22 +import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
23 +import 'package:cake_wallet/core/address_validator.dart';
24 +import 'package:cake_wallet/core/amount_validator.dart';
25 +import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker.dart';
26
27 class ExchangePage extends BasePage {
28 ExchangePage(this.exchangeViewModel);
@@ -365,10 +364,10 @@ class ExchangePage extends BasePage {
364 exchangeViewModel.createTrade();
365 }
366 },
368 - color: Palette.blueCraiola,
367 + color: Theme.of(context).accentTextTheme.body2.color,
368 textColor: Colors.white,
369 isLoading:
371 - exchangeViewModel.tradeState is TradeIsCreating,
370 + false, // FIXME: FIXME exchangeViewModel.tradeState is TradeIsCreating,
371 )),
372 ]),
373 )),
@@ -414,16 +413,20 @@ class ExchangePage extends BasePage {
413 final receiveAmountController = receiveKey.currentState.amountController;
414 final limitsState = exchangeViewModel.limitsState;
415
417 - if (limitsState is LimitsLoadedSuccessfully) {
418 - final min = limitsState.limits.min != null
419 - ? limitsState.limits.min.toString()
420 - : null;
421 - final max = limitsState.limits.max != null
422 - ? limitsState.limits.max.toString()
423 - : null;
424 - final key = depositKey;
425 - key.currentState.changeLimits(min: min, max: max);
426 - }
416 + // FIXME: FIXME
417 +
418 + // final limitsState = exchangeViewModel.limitsState;
419 + //
420 + // if (limitsState is LimitsLoadedSuccessfully) {
421 + // final min = limitsState.limits.min != null
422 + // ? limitsState.limits.min.toString()
423 + // : null;
424 + // final max = limitsState.limits.max != null
425 + // ? limitsState.limits.max.toString()
426 + // : null;
427 + // final key = depositKey;
428 + // key.currentState.changeLimits(min: min, max: max);
429 + // }
430
431 _onCurrencyChange(
432 exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey);
@@ -484,47 +487,51 @@ class ExchangePage extends BasePage {
487 receiveKey.currentState.isAddressEditable(isEditable: isEnabled);
488 });
489
487 - reaction((_) => exchangeViewModel.tradeState, (ExchangeTradeState state) {
488 - if (state is TradeIsCreatedFailure) {
489 - WidgetsBinding.instance.addPostFrameCallback((_) {
490 - showDialog<void>(
491 - context: context,
492 - builder: (BuildContext context) {
493 - return AlertWithOneAction(
494 - alertTitle: S.of(context).error,
495 - alertContent: state.error,
496 - buttonText: S.of(context).ok,
497 - buttonAction: () => Navigator.of(context).pop());
498 - });
499 - });
500 - }
501 - if (state is TradeIsCreatedSuccessfully) {
502 - Navigator.of(context).pushNamed(Routes.exchangeConfirm);
503 - }
504 - });
505 -
506 - reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
507 - String min;
508 - String max;
509 -
510 - if (state is LimitsLoadedSuccessfully) {
511 - min = state.limits.min != null ? state.limits.min.toString() : null;
512 - max = state.limits.max != null ? state.limits.max.toString() : null;
513 - }
514 -
515 - if (state is LimitsLoadedFailure) {
516 - min = '0';
517 - max = '0';
518 - }
519 -
520 - if (state is LimitsIsLoading) {
521 - min = '...';
522 - max = '...';
523 - }
524 -
525 - depositKey.currentState.changeLimits(min: min, max: max);
526 - receiveKey.currentState.changeLimits(min: null, max: null);
527 - });
490 + // FIXME: FIXME
491 +
492 + // reaction((_) => exchangeViewModel.tradeState, (ExchangeTradeState state) {
493 + // if (state is TradeIsCreatedFailure) {
494 + // WidgetsBinding.instance.addPostFrameCallback((_) {
495 + // showDialog<void>(
496 + // context: context,
497 + // builder: (BuildContext context) {
498 + // return AlertWithOneAction(
499 + // alertTitle: S.of(context).error,
500 + // alertContent: state.error,
501 + // buttonText: S.of(context).ok,
502 + // buttonAction: () => Navigator.of(context).pop());
503 + // });
504 + // });
505 + // }
506 + // if (state is TradeIsCreatedSuccessfully) {
507 + // Navigator.of(context).pushNamed(Routes.exchangeConfirm);
508 + // }
509 + // });
510 +
511 + // FIXME: FIXME
512 +
513 + // reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
514 + // String min;
515 + // String max;
516 + //
517 + // if (state is LimitsLoadedSuccessfully) {
518 + // min = state.limits.min != null ? state.limits.min.toString() : null;
519 + // max = state.limits.max != null ? state.limits.max.toString() : null;
520 + // }
521 + //
522 + // if (state is LimitsLoadedFailure) {
523 + // min = '0';
524 + // max = '0';
525 + // }
526 + //
527 + // if (state is LimitsIsLoading) {
528 + // min = '...';
529 + // max = '...';
530 + // }
531 + //
532 + // depositKey.currentState.changeLimits(min: min, max: max);
533 + // receiveKey.currentState.changeLimits(min: null, max: null);
534 + // });
535
536 depositAddressController.addListener(
537 () => exchangeViewModel.depositAddress = depositAddressController.text);
lib/src/screens/exchange/exchange_template_page.dart
+32 -24
@@ -1,20 +1,24 @@
1 import 'dart:ui';
2 -import 'package:cake_wallet/core/address_validator.dart';
3 -import 'package:cake_wallet/core/amount_validator.dart';
4 -import 'package:cake_wallet/src/domain/common/crypto_currency.dart';
5 -import 'package:cake_wallet/src/domain/exchange/xmrto/xmrto_exchange_provider.dart';
6 -import 'package:cake_wallet/src/screens/exchange/widgets/exchange_card.dart';
7 -import 'package:cake_wallet/src/stores/exchange/limits_state.dart';
8 -import 'package:cake_wallet/src/widgets/primary_button.dart';
9 -import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
2 +import 'package:cake_wallet/exchange/exchange_template.dart';
3 +import 'package:cake_wallet/src/screens/base_page.dart';
4 +import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
5 import 'package:flutter/cupertino.dart';
6 import 'package:flutter/material.dart';
12 -import 'package:cake_wallet/src/screens/base_page.dart';
13 -import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker.dart';
14 -import 'package:cake_wallet/generated/i18n.dart';
15 -import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
7 import 'package:flutter_mobx/flutter_mobx.dart';
8 import 'package:mobx/mobx.dart';
9 +import 'package:cake_wallet/generated/i18n.dart';
10 +import 'package:cake_wallet/entities/crypto_currency.dart';
11 +import 'package:cake_wallet/exchange/xmrto/xmrto_exchange_provider.dart';
12 +// import 'package:cake_wallet/exchange/exchange_trade_state.dart';
13 +// import 'package:cake_wallet/exchange/limits_state.dart';
14 +import 'package:cake_wallet/src/screens/exchange/widgets/exchange_card.dart';
15 +import 'package:cake_wallet/src/widgets/primary_button.dart';
16 +import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
17 +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
18 +import 'package:cake_wallet/view_model/exchange/exchange_view_model.dart';
19 +import 'package:cake_wallet/core/address_validator.dart';
20 +import 'package:cake_wallet/core/amount_validator.dart';
21 +import 'package:cake_wallet/src/screens/exchange/widgets/present_provider_picker.dart';
22
23 class ExchangeTemplatePage extends BasePage {
24 ExchangeTemplatePage(this.exchangeViewModel);
@@ -249,16 +253,20 @@ class ExchangeTemplatePage extends BasePage {
253 final receiveAmountController = receiveKey.currentState.amountController;
254 final limitsState = exchangeViewModel.limitsState;
255
252 - if (limitsState is LimitsLoadedSuccessfully) {
253 - final min = limitsState.limits.min != null
254 - ? limitsState.limits.min.toString()
255 - : null;
256 - final max = limitsState.limits.max != null
257 - ? limitsState.limits.max.toString()
258 - : null;
259 - final key = depositKey;
260 - key.currentState.changeLimits(min: min, max: max);
261 - }
256 + // FIXME: FIXME
257 +
258 + // final limitsState = exchangeViewModel.limitsState;
259 + //
260 + // if (limitsState is LimitsLoadedSuccessfully) {
261 + // final min = limitsState.limits.min != null
262 + // ? limitsState.limits.min.toString()
263 + // : null;
264 + // final max = limitsState.limits.max != null
265 + // ? limitsState.limits.max.toString()
266 + // : null;
267 + // final key = depositKey;
268 + // key.currentState.changeLimits(min: min, max: max);
269 + // }
270
271 _onCurrencyChange(
272 exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey);
@@ -319,7 +327,7 @@ class ExchangeTemplatePage extends BasePage {
327 receiveKey.currentState.isAddressEditable(isEditable: isEnabled);
328 });
329
322 - reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
330 + /*reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
331 String min;
332 String max;
333
@@ -340,7 +348,7 @@ class ExchangeTemplatePage extends BasePage {
348
349 depositKey.currentState.changeLimits(min: min, max: max);
350 receiveKey.currentState.changeLimits(min: null, max: null);
343 - });
351 + });*/
352
353 depositAddressController.addListener(
354 () => exchangeViewModel.depositAddress = depositAddressController.text);
lib/src/screens/send/send_page.dart
+35 -33
@@ -1,26 +1,28 @@
1 import 'dart:ui';
2 -import 'package:cake_wallet/src/domain/common/transaction_priority.dart';
3 -import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
2 +// import 'package:cake_wallet/src/domain/common/transaction_priority.dart';
3 +import 'package:cake_wallet/core/execution_state.dart';
4 +import 'package:cake_wallet/src/screens/base_page.dart';
5 import 'package:cake_wallet/src/widgets/picker.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/widgets/trail_button.dart';
9 +import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
10 import 'package:flutter/cupertino.dart';
11 import 'package:flutter/material.dart';
12 +import 'package:cake_wallet/view_model/send/send_view_model.dart';
13 import 'package:flutter/services.dart';
14 import 'package:flutter_mobx/flutter_mobx.dart';
15 import 'package:mobx/mobx.dart';
10 -import 'package:cake_wallet/palette.dart';
11 -import 'package:cake_wallet/routes.dart';
12 -import 'package:cake_wallet/src/screens/auth/auth_page.dart';
16 import 'package:cake_wallet/src/widgets/address_text_field.dart';
14 -import 'package:cake_wallet/src/widgets/primary_button.dart';
15 -import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
16 -import 'package:cake_wallet/view_model/send/send_view_model.dart';
17 -import 'package:cake_wallet/src/screens/base_page.dart';
17 import 'package:cake_wallet/generated/i18n.dart';
18 +import 'package:dotted_border/dotted_border.dart';
19 import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
20 import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
21 -import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
22 -import 'package:cake_wallet/src/widgets/trail_button.dart';
23 -import 'package:dotted_border/dotted_border.dart';
21 +import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart';
22 +// import 'package:cake_wallet/src/screens/send/widgets/sending_alert.dart';
23 +import 'package:cake_wallet/src/widgets/template_tile.dart';
24 +import 'package:cake_wallet/src/widgets/base_text_form_field.dart';
25 +import 'package:cake_wallet/routes.dart';
26
27 class SendPage extends BasePage {
28 SendPage({@required this.sendViewModel});
@@ -429,13 +431,13 @@ class SendPage extends BasePage {
431 return LoadingPrimaryButton(
432 onPressed: () {
433 if (_formKey.currentState.validate()) {
432 - print('SENT!!!');
434 +
435 }
436 },
437 text: S.of(context).send,
436 - color: Palette.blueCraiola,
438 + color: Theme.of(context).accentTextTheme.body2.color,
439 textColor: Colors.white,
438 - isLoading: sendViewModel.state is TransactionIsCreating ||
440 + isLoading: sendViewModel.state is IsExecutingState ||
441 sendViewModel.state is TransactionCommitting,
442 isDisabled:
443 false // FIXME !(syncStore.status is SyncedSyncStatus),
@@ -487,8 +489,8 @@ class SendPage extends BasePage {
489 }
490 });
491
490 - reaction((_) => sendViewModel.state, (SendViewModelState state) {
491 - if (state is SendingFailed) {
492 + reaction((_) => sendViewModel.state, (ExecutionState state) {
493 + if (state is FailureState) {
494 WidgetsBinding.instance.addPostFrameCallback((_) {
495 showDialog<void>(
496 context: context,
@@ -502,7 +504,7 @@ class SendPage extends BasePage {
504 });
505 }
506
505 - if (state is TransactionCreatedSuccessfully) {
507 + if (state is ExecutedSuccessfullyState) {
508 WidgetsBinding.instance.addPostFrameCallback((_) {
509 showDialog<void>(
510 context: context,
@@ -562,7 +564,7 @@ class SendPage extends BasePage {
564 onPressed: () =>
565 Navigator.of(context).pop(),
566 text: S.of(context).send_got_it,
565 - color: Colors.blue,
567 + color: Theme.of(context).accentTextTheme.body2.color,
568 textColor: Colors.white))
569 ],
570 );
@@ -648,19 +650,19 @@ class SendPage extends BasePage {
650 }
651
652 Future<void> _setTransactionPriority(BuildContext context) async {
651 - final items = TransactionPriority.all;
652 - final selectedItem = items.indexOf(sendViewModel.transactionPriority);
653 -
654 - await showDialog<void>(
655 - builder: (_) => Picker(
656 - items: items,
657 - selectedAtIndex: selectedItem,
658 - title: S.of(context).please_select,
659 - mainAxisAlignment: MainAxisAlignment.center,
660 - onItemSelected: (TransactionPriority priority) => null,
661 - // sendViewModel.setTransactionPriority(priority),
662 - isAlwaysShowScrollThumb: true,
663 - ),
664 - context: context);
653 + // final items = TransactionPriority.all;
654 + // final selectedItem = items.indexOf(sendViewModel.transactionPriority);
655 + //
656 + // await showDialog<void>(
657 + // builder: (_) => Picker(
658 + // items: items,
659 + // selectedAtIndex: selectedItem,
660 + // title: S.of(context).please_select,
661 + // mainAxisAlignment: MainAxisAlignment.center,
662 + // onItemSelected: (TransactionPriority priority) => null,
663 + // // sendViewModel.setTransactionPriority(priority),
664 + // isAlwaysShowScrollThumb: true,
665 + // ),
666 + // context: context);
667 }
668 }
pubspec.lock
+31 -3
@@ -9,7 +9,7 @@ packages:
9 source: hosted
10 version: "6.0.0"
11 analyzer:
12 - dependency: "direct overridden"
12 + dependency: transitive
13 description:
14 name: analyzer
15 url: "https://pub.dartlang.org"
@@ -211,6 +211,34 @@ packages:
211 url: "https://pub.dartlang.org"
212 source: hosted
213 version: "1.14.12"
214 + connectivity:
215 + dependency: "direct main"
216 + description:
217 + name: connectivity
218 + url: "https://pub.dartlang.org"
219 + source: hosted
220 + version: "0.4.9+2"
221 + connectivity_for_web:
222 + dependency: transitive
223 + description:
224 + name: connectivity_for_web
225 + url: "https://pub.dartlang.org"
226 + source: hosted
227 + version: "0.3.1+2"
228 + connectivity_macos:
229 + dependency: transitive
230 + description:
231 + name: connectivity_macos
232 + url: "https://pub.dartlang.org"
233 + source: hosted
234 + version: "0.1.0+5"
235 + connectivity_platform_interface:
236 + dependency: transitive
237 + description:
238 + name: connectivity_platform_interface
239 + url: "https://pub.dartlang.org"
240 + source: hosted
241 + version: "1.0.6"
242 convert:
243 dependency: transitive
244 description:
@@ -252,7 +280,7 @@ packages:
280 name: dart_style
281 url: "https://pub.dartlang.org"
282 source: hosted
255 - version: "1.2.9"
283 + version: "1.3.6"
284 dartx:
285 dependency: "direct overridden"
286 description:
@@ -809,7 +837,7 @@ packages:
837 name: source_gen
838 url: "https://pub.dartlang.org"
839 source: hosted
812 - version: "0.9.4+4"
840 + version: "0.9.7+1"
841 source_span:
842 dependency: transitive
843 description: