Skip to content

Commit

Permalink
Revert "Remove base side value"
Browse files Browse the repository at this point in the history
This reverts commit 2a293b5.
  • Loading branch information
axpoems committed Jan 24, 2025
1 parent 9d5fa3a commit d187a8e
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public class AmountSelectionController implements Controller {
private final ChangeListener<PriceQuote> quoteListener;
private final PriceInput price;
private final ChangeListener<Number> maxOrFixedSliderListener, minSliderListener;
private Subscription maxOrFixedQuoteAmountFromModelPin, maxOrFixedQuoteAmountFromCompPin,
maxOrFixedQuoteSideAmountValidPin, minQuoteAmountFromModelPin, minQuoteAmountFromCompPin,
private Subscription maxOrFixedQuoteAmountFromModelPin, maxOrFixedBaseAmountFromCompPin, maxOrFixedQuoteAmountFromCompPin,
maxOrFixedQuoteSideAmountValidPin, minQuoteAmountFromModelPin, minBaseAmountFromCompPin, minQuoteAmountFromCompPin,
minQuoteSideAmountValidPin, priceFromCompPin, minRangeCustomValuePin, maxRangeCustomValuePin, isRangeAmountEnabledPin;

public AmountSelectionController(ServiceProvider serviceProvider) {
Expand Down Expand Up @@ -85,6 +85,8 @@ public AmountSelectionController(ServiceProvider serviceProvider) {
maxOrFixedQuoteSideAmountFromModelListener = (observable, oldValue, newValue) -> UIThread.runOnNextRenderFrame(this::setMaxOrFixedBaseFromQuote);
minQuoteSideAmountFromModelListener = (observable, oldValue, newValue) -> UIThread.runOnNextRenderFrame(this::setMinBaseFromQuote);
quoteListener = (observable, oldValue, newValue) -> {
model.getMinRangeBaseSideValue().set(null);
model.getMaxRangeBaseSideValue().set(null);
model.getMinRangeQuoteSideValue().set(null);
model.getMaxRangeQuoteSideValue().set(null);
applyInitialRangeValues();
Expand Down Expand Up @@ -211,6 +213,8 @@ public void reset() {

@Override
public void onActivate() {
model.getMinRangeBaseSideValue().set(null);
model.getMaxRangeBaseSideValue().set(null);
model.getMinRangeQuoteSideValue().set(null);
model.getMaxRangeQuoteSideValue().set(null);
applyInitialRangeValues();
Expand Down Expand Up @@ -249,6 +253,40 @@ public void onActivate() {
}
});

maxOrFixedBaseAmountFromCompPin = EasyBind.subscribe(maxOrFixedBaseSideAmountInput.amountProperty(),
amount -> {
Monetary minRangeValue = model.getMinRangeBaseSideValue().get();
Monetary maxRangeValue = model.getMaxRangeBaseSideValue().get();
if (amount != null && amount.getValue() > maxRangeValue.getValue()) {
model.getMaxOrFixedBaseSideAmount().set(maxRangeValue);
setMaxOrFixedQuoteFromBase();
maxOrFixedBaseSideAmountInput.setAmount(maxRangeValue);
} else if (amount != null && amount.getValue() < minRangeValue.getValue()) {
model.getMaxOrFixedBaseSideAmount().set(minRangeValue);
setMaxOrFixedQuoteFromBase();
maxOrFixedBaseSideAmountInput.setAmount(minRangeValue);
} else {
model.getMaxOrFixedBaseSideAmount().set(amount);
}
});

minBaseAmountFromCompPin = EasyBind.subscribe(minBaseSideAmountInput.amountProperty(),
amount -> {
Monetary minRangeValue = model.getMinRangeBaseSideValue().get();
Monetary maxRangeValue = model.getMaxRangeBaseSideValue().get();
if (amount != null && amount.getValue() > maxRangeValue.getValue()) {
model.getMinBaseSideAmount().set(maxRangeValue);
setMinQuoteFromBase();
minBaseSideAmountInput.setAmount(maxRangeValue);
} else if (amount != null && amount.getValue() < minRangeValue.getValue()) {
model.getMinBaseSideAmount().set(minRangeValue);
setMinQuoteFromBase();
minBaseSideAmountInput.setAmount(minRangeValue);
} else {
model.getMinBaseSideAmount().set(amount);
}
});

maxOrFixedQuoteAmountFromCompPin = EasyBind.subscribe(maxOrFixedQuoteSideAmountInput.amountProperty(),
amount -> {
Monetary minRangeValue = model.getMinRangeQuoteSideValue().get();
Expand Down Expand Up @@ -312,6 +350,8 @@ public void onDeactivate() {

maxOrFixedQuoteAmountFromModelPin.unsubscribe();
minQuoteAmountFromModelPin.unsubscribe();
maxOrFixedBaseAmountFromCompPin.unsubscribe();
minBaseAmountFromCompPin.unsubscribe();
maxOrFixedQuoteAmountFromCompPin.unsubscribe();
minQuoteAmountFromCompPin.unsubscribe();
priceFromCompPin.unsubscribe();
Expand Down Expand Up @@ -372,6 +412,12 @@ private void applyInitialRangeValues() {
boolean isMinRangeMonetaryFiat = TradeCurrency.isFiat(minRangeMonetary.getCode());
boolean isMaxRangeMonetaryFiat = TradeCurrency.isFiat(maxRangeMonetary.getCode());

Monetary minRangeMonetaryAsCoin = !isMinRangeMonetaryFiat ? minRangeMonetary : priceQuote.toBaseSideMonetary(minRangeMonetary);
model.getMinRangeBaseSideValue().set(minRangeMonetaryAsCoin);

Monetary maxRangeMonetaryAsCoin = !isMaxRangeMonetaryFiat ? maxRangeMonetary : priceQuote.toBaseSideMonetary(maxRangeMonetary);
model.getMaxRangeBaseSideValue().set(maxRangeMonetaryAsCoin);

Monetary minRangeMonetaryAsFiat = isMinRangeMonetaryFiat ? minRangeMonetary : priceQuote.toQuoteSideMonetary(minRangeMonetary).round(0);
model.getMinRangeQuoteSideValue().set(minRangeMonetaryAsFiat);
model.getMinRangeValueAsString().set(AmountFormatter.formatAmount(minRangeMonetaryAsFiat));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public class AmountSelectionModel implements Model {
@Setter
private ObjectProperty<Monetary> maxRangeMonetary = new SimpleObjectProperty<>(BisqEasyTradeAmountLimits.DEFAULT_MAX_BTC_TRADE_AMOUNT);
@Setter
private ObjectProperty<Monetary> minRangeBaseSideValue = new SimpleObjectProperty<>();
@Setter
private ObjectProperty<Monetary> maxRangeBaseSideValue = new SimpleObjectProperty<>();
@Setter
private ObjectProperty<Monetary> minRangeQuoteSideValue = new SimpleObjectProperty<>();
@Setter
private ObjectProperty<Monetary> maxRangeQuoteSideValue = new SimpleObjectProperty<>();
Expand Down Expand Up @@ -89,6 +93,8 @@ void reset() {
isRangeAmountEnabled.set(false);
minRangeMonetary.set(BisqEasyTradeAmountLimits.DEFAULT_MIN_BTC_TRADE_AMOUNT);
maxRangeMonetary.set(BisqEasyTradeAmountLimits.DEFAULT_MAX_BTC_TRADE_AMOUNT);
minRangeBaseSideValue.set(null);
maxRangeBaseSideValue.set(null);
minRangeQuoteSideValue.set(null);
maxRangeQuoteSideValue.set(null);
maxQuoteAllowedLimitation.set(null);
Expand Down

0 comments on commit d187a8e

Please sign in to comment.