From 7a6c066ad3ab8f29cfe7711bcb0dde1c076f7848 Mon Sep 17 00:00:00 2001
From: woodser <13068859+woodser@users.noreply.github.com>
Date: Fri, 14 Mar 2025 08:26:11 -0400
Subject: [PATCH] fix summary info not populated on normal payout after dispute

---
 core/src/main/java/haveno/core/trade/Trade.java           | 5 ++---
 .../portfolio/pendingtrades/PendingTradesViewModel.java   | 8 ++++++--
 .../pendingtrades/steps/buyer/BuyerStep4View.java         | 8 ++++----
 .../pendingtrades/steps/seller/SellerStep4View.java       | 2 +-
 4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/core/src/main/java/haveno/core/trade/Trade.java b/core/src/main/java/haveno/core/trade/Trade.java
index 72d77de7d6..57767a5757 100644
--- a/core/src/main/java/haveno/core/trade/Trade.java
+++ b/core/src/main/java/haveno/core/trade/Trade.java
@@ -1903,10 +1903,9 @@ public abstract class Trade extends XmrWalletBase implements Tradable, Model {
             getSeller().setPayoutTxFee(splitTxFee);
             getBuyer().setPayoutAmount(getBuyer().getSecurityDeposit().subtract(getBuyer().getPayoutTxFee()).add(getAmount()));
             getSeller().setPayoutAmount(getSeller().getSecurityDeposit().subtract(getSeller().getPayoutTxFee()));
-        } else if (getDisputeState().isClosed()) {
+        } else {
             DisputeResult disputeResult = getDisputeResult();
-            if (disputeResult == null) log.warn("Dispute result is not set for {} {}", getClass().getSimpleName(), getId());
-            else {
+            if (disputeResult != null) {
                 BigInteger[] buyerSellerPayoutTxFees = ArbitrationManager.getBuyerSellerPayoutTxCost(disputeResult, payoutTx.getFee());
                 getBuyer().setPayoutTxFee(buyerSellerPayoutTxFees[0]);
                 getSeller().setPayoutTxFee(buyerSellerPayoutTxFees[1]);
diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java
index b19d6dcc26..1db4d944c0 100644
--- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java
+++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java
@@ -416,8 +416,12 @@ public class PendingTradesViewModel extends ActivatableWithDataModel<PendingTrad
 
             // payment received
             case SELLER_SENT_PAYMENT_RECEIVED_MSG:
-                if (trade instanceof BuyerTrade) buyerState.set(BuyerState.STEP4);
-                else if (trade instanceof SellerTrade) sellerState.set(trade.isPayoutPublished() ? SellerState.STEP4 : SellerState.STEP3);
+                if (trade instanceof BuyerTrade) {
+                    buyerState.set(BuyerState.UNDEFINED); // TODO: resetting screen to populate summary information which can be missing before payout message processed
+                    buyerState.set(BuyerState.STEP4);
+                } else if (trade instanceof SellerTrade) {
+                    sellerState.set(trade.isPayoutPublished() ? SellerState.STEP4 : SellerState.STEP3);
+                }
                 break;
 
             // seller step 3
diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java
index 34bfc75223..e589443301 100644
--- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java
+++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/buyer/BuyerStep4View.java
@@ -79,7 +79,7 @@ public class BuyerStep4View extends TradeStepView {
         TitledGroupBg completedTradeLabel = new TitledGroupBg();
         if (trade.getDisputeState().isMediated()) {
             completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle.mediated"));
-        } else if (trade.getDisputeState().isArbitrated() && trade.getDisputes().get(0).getDisputeResultProperty().get() != null) {
+        } else if (trade.getDisputeState().isArbitrated() && trade.getDisputeResult() != null) {
             completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle.arbitrated"));
         } else {
             completedTradeLabel.setText(Res.get("portfolio.pending.step5_buyer.groupTitle"));
@@ -90,8 +90,8 @@ public class BuyerStep4View extends TradeStepView {
         gridPane.getChildren().add(hBox2);
         GridPane.setRowSpan(hBox2, 5);
 
-        if (trade.getDisputeState().isNotDisputed()) {
-            addCompactTopLabelTextField(gridPane, gridRow, getBtcTradeAmountLabel(), model.getTradeVolume(), Layout.TWICE_FIRST_ROW_DISTANCE);
+        if (trade.isPaymentReceived()) {
+            addCompactTopLabelTextField(gridPane, gridRow, getXmrTradeAmountLabel(), model.getTradeVolume(), Layout.TWICE_FIRST_ROW_DISTANCE);
             addCompactTopLabelTextField(gridPane, ++gridRow, getTraditionalTradeAmountLabel(), model.getFiatVolume());
             addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("portfolio.pending.step5_buyer.refunded"), model.getSecurityDeposit());
             addCompactTopLabelTextField(gridPane, ++gridRow, Res.get("portfolio.pending.step5_buyer.tradeFee"), model.getTradeFee());
@@ -149,7 +149,7 @@ public class BuyerStep4View extends TradeStepView {
         }
     }
 
-    protected String getBtcTradeAmountLabel() {
+    protected String getXmrTradeAmountLabel() {
         return Res.get("portfolio.pending.step5_buyer.bought");
     }
 
diff --git a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java
index 82927e1d50..12bcf6317b 100644
--- a/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java
+++ b/desktop/src/main/java/haveno/desktop/main/portfolio/pendingtrades/steps/seller/SellerStep4View.java
@@ -32,7 +32,7 @@ public class SellerStep4View extends BuyerStep4View {
     }
 
     @Override
-    protected String getBtcTradeAmountLabel() {
+    protected String getXmrTradeAmountLabel() {
         return Res.get("portfolio.pending.step5_seller.sold");
     }