mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-18 14:55:53 -04:00
Fix missing update for trade state (#285)
This commit is contained in:
parent
b9b50da190
commit
82325f615f
@ -139,7 +139,7 @@ class PendingTradesModel extends UIModel {
|
||||
super.deactivate();
|
||||
|
||||
tradeManager.getPendingTrades().removeListener(mapChangeListener);
|
||||
selectTrade(null);
|
||||
cleanUpSelectedTrade();
|
||||
}
|
||||
|
||||
|
||||
@ -149,14 +149,7 @@ class PendingTradesModel extends UIModel {
|
||||
|
||||
void selectTrade(PendingTradesListItem item) {
|
||||
// clean up previous selectedItem
|
||||
if (selectedItem != null) {
|
||||
Trade trade = getTrade();
|
||||
trade.stateProperty().removeListener(stateChangeListener);
|
||||
trade.faultProperty().removeListener(faultChangeListener);
|
||||
|
||||
if (txConfidenceListener != null)
|
||||
walletService.removeTxConfidenceListener(txConfidenceListener);
|
||||
}
|
||||
cleanUpSelectedTrade();
|
||||
|
||||
selectedItem = item;
|
||||
|
||||
@ -177,7 +170,14 @@ class PendingTradesModel extends UIModel {
|
||||
updateConfidence(walletService.getConfidenceForTxId(txId.get()));
|
||||
|
||||
trade.stateProperty().addListener(stateChangeListener);
|
||||
tradeState.set(trade.stateProperty().get());
|
||||
|
||||
// It might be that we receive first the DEPOSIT_CONFIRMED (coming form bitcoin network)
|
||||
// and then the OFFERER_ACCEPTED (coming from tomP2P network.
|
||||
// So we don't allow to overwrite the already set DEPOSIT_CONFIRMED as that will only be possible if
|
||||
// the offer has already accepted
|
||||
// TODO: The Trade.State handling should be refactored to remove that unclear situation
|
||||
if (tradeState.get() != Trade.State.DEPOSIT_CONFIRMED)
|
||||
tradeState.set(trade.stateProperty().get());
|
||||
|
||||
trade.faultProperty().addListener(faultChangeListener);
|
||||
fault.set(trade.faultProperty().get());
|
||||
@ -322,6 +322,17 @@ class PendingTradesModel extends UIModel {
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanUpSelectedTrade() {
|
||||
if (selectedItem != null) {
|
||||
Trade trade = getTrade();
|
||||
trade.stateProperty().removeListener(stateChangeListener);
|
||||
trade.faultProperty().removeListener(faultChangeListener);
|
||||
}
|
||||
|
||||
if (txConfidenceListener != null)
|
||||
walletService.removeTxConfidenceListener(txConfidenceListener);
|
||||
}
|
||||
|
||||
private void sortList() {
|
||||
list.sort((o1, o2) -> o2.getTrade().getDate().compareTo(o1.getTrade().getDate()));
|
||||
}
|
||||
|
@ -266,7 +266,7 @@ public class PendingTradesPM extends PresentationModel<PendingTradesModel> {
|
||||
// TODO error states not implemented yet
|
||||
break;
|
||||
default:
|
||||
log.warn("unhandled state " + state);
|
||||
log.warn("unhandled state " + model.tradeState.get());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user