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: