@@ -161,15 +161,19 @@ public class ProcessModel implements Model, PersistablePayload {
161
161
@ Getter
162
162
@ Setter
163
163
private boolean importMultisigHexScheduled ;
164
+ private ObjectProperty <Boolean > paymentAccountDecryptedProperty = new SimpleObjectProperty <>(false );
164
165
165
- // We want to indicate the user the state of the message delivery of the
166
- // PaymentSentMessage. As well we do an automatic re-send in case it was not ACKed yet.
166
+ // We want to indicate the user the state of the message delivery of the payment
167
+ // confirmation messages. We do an automatic re-send in case it was not ACKed yet.
167
168
// To enable that even after restart we persist the state.
168
169
@ Setter
169
170
private ObjectProperty <MessageState > paymentSentMessageStatePropertySeller = new SimpleObjectProperty <>(MessageState .UNDEFINED );
170
171
@ Setter
171
172
private ObjectProperty <MessageState > paymentSentMessageStatePropertyArbitrator = new SimpleObjectProperty <>(MessageState .UNDEFINED );
172
- private ObjectProperty <Boolean > paymentAccountDecryptedProperty = new SimpleObjectProperty <>(false );
173
+ @ Setter
174
+ private ObjectProperty <MessageState > paymentReceivedMessageStatePropertyBuyer = new SimpleObjectProperty <>(MessageState .UNDEFINED );
175
+ @ Setter
176
+ private ObjectProperty <MessageState > paymentReceivedMessageStatePropertyArbitrator = new SimpleObjectProperty <>(MessageState .UNDEFINED );
173
177
174
178
public ProcessModel (String offerId , String accountId , PubKeyRing pubKeyRing ) {
175
179
this (offerId , accountId , pubKeyRing , new TradePeer (), new TradePeer (), new TradePeer ());
@@ -208,6 +212,8 @@ public protobuf.ProcessModel toProtoMessage() {
208
212
.setFundsNeededForTrade (fundsNeededForTrade )
209
213
.setPaymentSentMessageStateSeller (paymentSentMessageStatePropertySeller .get ().name ())
210
214
.setPaymentSentMessageStateArbitrator (paymentSentMessageStatePropertyArbitrator .get ().name ())
215
+ .setPaymentReceivedMessageStateBuyer (paymentReceivedMessageStatePropertyBuyer .get ().name ())
216
+ .setPaymentReceivedMessageStateArbitrator (paymentReceivedMessageStatePropertyArbitrator .get ().name ())
211
217
.setBuyerPayoutAmountFromMediation (buyerPayoutAmountFromMediation )
212
218
.setSellerPayoutAmountFromMediation (sellerPayoutAmountFromMediation )
213
219
.setTradeProtocolErrorHeight (tradeProtocolErrorHeight )
@@ -253,6 +259,14 @@ public static ProcessModel fromProto(protobuf.ProcessModel proto, CoreProtoResol
253
259
MessageState paymentSentMessageStateArbitrator = ProtoUtil .enumFromProto (MessageState .class , paymentSentMessageStateArbitratorString );
254
260
processModel .setPaymentSentMessageStateArbitrator (paymentSentMessageStateArbitrator );
255
261
262
+ String paymentReceivedMessageStateBuyerString = ProtoUtil .stringOrNullFromProto (proto .getPaymentReceivedMessageStateBuyer ());
263
+ MessageState paymentReceivedMessageStateBuyer = ProtoUtil .enumFromProto (MessageState .class , paymentReceivedMessageStateBuyerString );
264
+ processModel .setPaymentReceivedMessageStateBuyer (paymentReceivedMessageStateBuyer );
265
+
266
+ String paymentReceivedMessageStateArbitratorString = ProtoUtil .stringOrNullFromProto (proto .getPaymentReceivedMessageStateArbitrator ());
267
+ MessageState paymentReceivedMessageStateArbitrator = ProtoUtil .enumFromProto (MessageState .class , paymentReceivedMessageStateArbitratorString );
268
+ processModel .setPaymentReceivedMessageStateArbitrator (paymentReceivedMessageStateArbitrator );
269
+
256
270
return processModel ;
257
271
}
258
272
@@ -293,6 +307,20 @@ void setPaymentSentAckMessageArbitrator(AckMessage ackMessage) {
293
307
setPaymentSentMessageStateArbitrator (messageState );
294
308
}
295
309
310
+ void setPaymentReceivedAckMessageBuyer (AckMessage ackMessage ) {
311
+ MessageState messageState = ackMessage .isSuccess () ?
312
+ MessageState .ACKNOWLEDGED :
313
+ MessageState .FAILED ;
314
+ setPaymentReceivedMessageStateBuyer (messageState );
315
+ }
316
+
317
+ void setPaymentReceivedAckMessageArbitrator (AckMessage ackMessage ) {
318
+ MessageState messageState = ackMessage .isSuccess () ?
319
+ MessageState .ACKNOWLEDGED :
320
+ MessageState .FAILED ;
321
+ setPaymentReceivedMessageStateArbitrator (messageState );
322
+ }
323
+
296
324
public void setPaymentSentMessageStateSeller (MessageState paymentSentMessageStateProperty ) {
297
325
this .paymentSentMessageStatePropertySeller .set (paymentSentMessageStateProperty );
298
326
if (tradeManager != null ) {
@@ -307,6 +335,20 @@ public void setPaymentSentMessageStateArbitrator(MessageState paymentSentMessage
307
335
}
308
336
}
309
337
338
+ public void setPaymentReceivedMessageStateBuyer (MessageState paymentReceivedMessageStateProperty ) {
339
+ this .paymentReceivedMessageStatePropertyBuyer .set (paymentReceivedMessageStateProperty );
340
+ if (tradeManager != null ) {
341
+ tradeManager .requestPersistence ();
342
+ }
343
+ }
344
+
345
+ public void setPaymentReceivedMessageStateArbitrator (MessageState paymentReceivedMessageStateProperty ) {
346
+ this .paymentReceivedMessageStatePropertyArbitrator .set (paymentReceivedMessageStateProperty );
347
+ if (tradeManager != null ) {
348
+ tradeManager .requestPersistence ();
349
+ }
350
+ }
351
+
310
352
public boolean isPaymentSentMessageAckedBySeller () {
311
353
return paymentSentMessageStatePropertySeller .get () == MessageState .ACKNOWLEDGED ;
312
354
}
@@ -315,6 +357,14 @@ public boolean isPaymentSentMessageAckedByArbitrator() {
315
357
return paymentSentMessageStatePropertyArbitrator .get () == MessageState .ACKNOWLEDGED ;
316
358
}
317
359
360
+ public boolean isPaymentReceivedMessageAckedByBuyer () {
361
+ return paymentReceivedMessageStatePropertyBuyer .get () == MessageState .ACKNOWLEDGED ;
362
+ }
363
+
364
+ public boolean isPaymentReceivedMessageAckedByArbitrator () {
365
+ return paymentReceivedMessageStatePropertyArbitrator .get () == MessageState .ACKNOWLEDGED ;
366
+ }
367
+
318
368
void setDepositTxSentAckMessage (AckMessage ackMessage ) {
319
369
MessageState messageState = ackMessage .isSuccess () ?
320
370
MessageState .ACKNOWLEDGED :
0 commit comments