CAKE-120 | added xmr.to exchange description to exchange and exchange template pages; made observable isReceiveAmountEntered parameter in the exchange view model; added isReceiveAmountEntered parameter to applyTemplate() (exchange page) and reset() (exchange view model); added possibility to enter amount in receive card (exchange template page)
OleksandrSobol committed
Oct 12, 2020 at 19:47 UTC
20c35451d59a76ff0b991ae11c4ce671a33ce09d
3 files changed
+21
-3
lib/src/screens/exchange/exchange_page.dart
+4
-1
@@ -373,7 +373,9 @@ class ExchangePage extends BasePage {
373
child: Observer(builder: (_) {
374
final description =
375
exchangeViewModel.provider is XMRTOExchangeProvider
376
- ? S.of(context).amount_is_guaranteed
376
+ ? exchangeViewModel.isReceiveAmountEntered
377
+ ? S.of(context).amount_is_guaranteed
378
+ : S.of(context).amount_is_estimate
379
: S.of(context).amount_is_estimate;
380
return Center(
381
child: Text(
@@ -433,6 +435,7 @@ class ExchangePage extends BasePage {
435
exchangeViewModel.changeDepositAmount(amount: template.amount);
436
exchangeViewModel.depositAddress = template.depositAddress;
437
exchangeViewModel.receiveAddress = template.receiveAddress;
438
+ exchangeViewModel.isReceiveAmountEntered = false;
439
}
440
441
void _setReactions(
lib/src/screens/exchange/exchange_template_page.dart
+15
-2
@@ -1,4 +1,5 @@
1
import 'dart:ui';
2
+import 'package:cake_wallet/exchange/exchange_provider.dart';
3
import 'package:cake_wallet/exchange/exchange_template.dart';
4
import 'package:cake_wallet/src/screens/base_page.dart';
5
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
@@ -169,7 +170,9 @@ class ExchangeTemplatePage extends BasePage {
170
exchangeViewModel.wallet.currency
171
? exchangeViewModel.wallet.address
172
: exchangeViewModel.receiveAddress,
172
- initialIsAmountEditable: false,
173
+ initialIsAmountEditable:
174
+ exchangeViewModel.provider is
175
+ XMRTOExchangeProvider ? true : false,
176
initialIsAddressEditable:
177
exchangeViewModel.isReceiveAddressEnabled,
178
isAmountEstimated: true,
@@ -202,7 +205,9 @@ class ExchangeTemplatePage extends BasePage {
205
child: Observer(builder: (_) {
206
final description =
207
exchangeViewModel.provider is XMRTOExchangeProvider
205
- ? S.of(context).amount_is_guaranteed
208
+ ? exchangeViewModel.isReceiveAmountEntered
209
+ ? S.of(context).amount_is_guaranteed
210
+ : S.of(context).amount_is_estimate
211
: S.of(context).amount_is_estimate;
212
return Center(
213
child: Text(
@@ -328,6 +333,12 @@ class ExchangeTemplatePage extends BasePage {
333
receiveKey.currentState.isAddressEditable(isEditable: isEnabled);
334
});
335
336
+ reaction((_) => exchangeViewModel.provider, (ExchangeProvider provider) {
337
+ provider is XMRTOExchangeProvider
338
+ ? receiveKey.currentState.isAmountEditable(isEditable: true)
339
+ : receiveKey.currentState.isAmountEditable(isEditable: false);
340
+ });
341
+
342
/*reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
343
String min;
344
String max;
@@ -358,6 +369,7 @@ class ExchangeTemplatePage extends BasePage {
369
if (depositAmountController.text != exchangeViewModel.depositAmount) {
370
exchangeViewModel.changeDepositAmount(
371
amount: depositAmountController.text);
372
+ exchangeViewModel.isReceiveAmountEntered = false;
373
}
374
});
375
@@ -368,6 +380,7 @@ class ExchangeTemplatePage extends BasePage {
380
if (receiveAmountController.text != exchangeViewModel.receiveAmount) {
381
exchangeViewModel.changeReceiveAmount(
382
amount: receiveAmountController.text);
383
+ exchangeViewModel.isReceiveAmountEntered = true;
384
}
385
});
386
lib/view_model/exchange/exchange_view_model.dart
+2
@@ -93,6 +93,7 @@ abstract class ExchangeViewModelBase with Store {
93
@observable
94
bool isReceiveAddressEnabled;
95
96
+ @observable
97
bool isReceiveAmountEntered;
98
99
Limits limits;
@@ -256,6 +257,7 @@ abstract class ExchangeViewModelBase with Store {
257
258
@action
259
void reset() {
260
+ isReceiveAmountEntered = false;
261
depositAmount = '';
262
receiveAmount = '';
263
depositCurrency = CryptoCurrency.xmr;