diff --git a/assets/images/revolut_dark.svg b/assets/images/revolut_dark.svg new file mode 100644 index 000000000..abc9daea6 --- /dev/null +++ b/assets/images/revolut_dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/revolut_light.svg b/assets/images/revolut_light.svg new file mode 100644 index 000000000..1333b6b58 --- /dev/null +++ b/assets/images/revolut_light.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 228f0dc5f..2255c2b1a 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -383,6 +383,8 @@ class MoonPayProvider extends BuyProvider { return 'yellow_card_bank_transfer'; case PaymentType.fiatBalance: return 'fiat_balance'; + case PaymentType.revolutPay: + return 'revolut_pay'; default: return null; } @@ -416,6 +418,8 @@ class MoonPayProvider extends BuyProvider { return PaymentType.sepaOpenBankingPayment; case 'yellow_card_bank_transfer': return PaymentType.yellowCardBankTransfer; + case 'revolut_pay': + return PaymentType.revolutPay; default: return PaymentType.unknown; } diff --git a/lib/buy/payment_method.dart b/lib/buy/payment_method.dart index 322ca68ba..f23d6fbce 100644 --- a/lib/buy/payment_method.dart +++ b/lib/buy/payment_method.dart @@ -124,6 +124,8 @@ extension PaymentTypeTitle on PaymentType { return 'assets/images/skrill.svg'; case PaymentType.applePay: return 'assets/images/apple_pay_round_light.svg'; + case PaymentType.revolutPay: + return 'assets/images/revolut_light.svg'; default: return null; } @@ -143,6 +145,8 @@ extension PaymentTypeTitle on PaymentType { return 'assets/images/skrill.svg'; case PaymentType.applePay: return 'assets/images/apple_pay_round_dark.svg'; + case PaymentType.revolutPay: + return 'assets/images/revolut_dark.svg'; default: return null; } diff --git a/lib/view_model/buy/buy_sell_view_model.dart b/lib/view_model/buy/buy_sell_view_model.dart index bb7cc5b8a..6dc15b178 100644 --- a/lib/view_model/buy/buy_sell_view_model.dart +++ b/lib/view_model/buy/buy_sell_view_model.dart @@ -367,8 +367,7 @@ abstract class BuySellViewModelBase extends WalletChangeListenerViewModel with S for (var methods in result) { for (var method in methods) { final alreadyExists = tempPaymentMethods.any((m) { - return m.paymentMethodType == method.paymentMethodType && - m.customTitle == method.customTitle; + return m.paymentMethodType == method.paymentMethodType; }); if (!alreadyExists) { @@ -468,8 +467,7 @@ abstract class BuySellViewModelBase extends WalletChangeListenerViewModel with S if (sortedRecommendedQuotes.isNotEmpty) { sortedRecommendedQuotes.first - ..setIsBestRate = true - ..recommendations.insert(0, ProviderRecommendation.bestRate); + ..setIsBestRate = true; bestRateQuote = sortedRecommendedQuotes.first; sortedRecommendedQuotes.sort((a, b) { @@ -478,6 +476,15 @@ abstract class BuySellViewModelBase extends WalletChangeListenerViewModel with S return 0; }); + final Quote effectiveBestRateQuote = + sortedRecommendedQuotes.reduce((a, b) { + return isBuyAction ? a.rate < b.rate ? a : b : a.rate > b.rate ? a : b; + }); + + + effectiveBestRateQuote.recommendations + .add(ProviderRecommendation.bestRate); + selectedQuote = sortedRecommendedQuotes.first; sortedRecommendedQuotes.first.setIsSelected = true; }