From f61bf11c6876668345763f998547ce151c1a1658 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Sat, 19 Mar 2016 13:35:45 +0100 Subject: [PATCH] Use max trade amount from offer at take offer view (allow backwards compatibility when we increase trade limits) --- .../offer/createoffer/CreateOfferViewModel.java | 4 ++-- .../main/offer/takeoffer/TakeOfferViewModel.java | 7 +++---- .../gui/util/validation/BtcValidator.java | 16 ++++++++-------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java index 31de186d0c..fc6e870d37 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferViewModel.java @@ -314,7 +314,7 @@ class CreateOfferViewModel extends ActivatableWithDataModel im offer.errorMessageProperty().addListener(offerErrorListener); errorMessage.set(offer.errorMessageProperty().get()); - btcValidator.setPaymentMethod(dataModel.paymentAccount.getPaymentMethod()); + btcValidator.setMaxTradeLimitInBitcoin(offer.getAmount()); } @@ -183,8 +183,6 @@ class TakeOfferViewModel extends ActivatableWithDataModel im takeOfferSucceededHandler = resultHandler; takeOfferRequested = true; showTransactionPublishedScreen.set(false); - //isTakeOfferSpinnerVisible.set(true); - //takeOfferSpinnerInfoText.set(BSResources.get("takeOffer.fundsBox.takeOfferSpinnerInfo")); dataModel.onTakeOffer(trade -> { this.trade = trade; trade.stateProperty().addListener(tradeStateListener); @@ -197,7 +195,8 @@ class TakeOfferViewModel extends ActivatableWithDataModel im public void onPaymentAccountSelected(PaymentAccount paymentAccount) { dataModel.onPaymentAccountSelected(paymentAccount); - btcValidator.setPaymentMethod(paymentAccount.getPaymentMethod()); + if (offer != null) + btcValidator.setMaxTradeLimitInBitcoin(offer.getAmount()); } public void onShowPayFundsScreen() { diff --git a/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java index da51abf14a..fe9ccf8f96 100644 --- a/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java +++ b/gui/src/main/java/io/bitsquare/gui/util/validation/BtcValidator.java @@ -19,10 +19,9 @@ package io.bitsquare.gui.util.validation; import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.locale.BSResources; -import io.bitsquare.payment.PaymentMethod; import org.bitcoinj.core.Coin; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nullable; import javax.inject.Inject; import java.math.BigDecimal; @@ -30,16 +29,17 @@ public class BtcValidator extends NumberValidator { private final BSFormatter formatter; - @NotNull - private PaymentMethod paymentMethod; + + @Nullable + private Coin maxTradeLimitInBitcoin; @Inject public BtcValidator(BSFormatter formatter) { this.formatter = formatter; } - public void setPaymentMethod(@NotNull PaymentMethod paymentMethod) { - this.paymentMethod = paymentMethod; + public void setMaxTradeLimitInBitcoin(Coin maxTradeLimitInBitcoin) { + this.maxTradeLimitInBitcoin = maxTradeLimitInBitcoin; } @Override @@ -70,8 +70,8 @@ public class BtcValidator extends NumberValidator { } protected ValidationResult validateIfNotExceedsMaxBtcValue(String input) { - if (paymentMethod != null && Coin.parseCoin(input).compareTo(paymentMethod.getMaxTradeLimitInBitcoin()) > 0) - return new ValidationResult(false, BSResources.get("validation.btc.toLarge", formatter.formatCoinWithCode(paymentMethod.getMaxTradeLimitInBitcoin()))); + if (maxTradeLimitInBitcoin != null && Coin.parseCoin(input).compareTo(maxTradeLimitInBitcoin) > 0) + return new ValidationResult(false, BSResources.get("validation.btc.toLarge", formatter.formatCoinWithCode(maxTradeLimitInBitcoin))); else return new ValidationResult(true); }