mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-24 23:18:17 +01:00
Add spinner, status info and blocking popup at take offer
This commit is contained in:
parent
ba727ebb16
commit
de569b4700
5 changed files with 21 additions and 17 deletions
|
@ -529,7 +529,7 @@ public class CreateOfferView extends ActivatableViewAndModel<AnchorPane, CreateO
|
|||
})
|
||||
.onClose(this::close)
|
||||
.show(),
|
||||
100, TimeUnit.MILLISECONDS);
|
||||
500, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -342,8 +342,8 @@ class CreateOfferViewModel extends ActivatableWithDataModel<CreateOfferDataModel
|
|||
offer.errorMessageProperty().addListener(errorMessageListener);
|
||||
dataModel.onPlaceOffer(offer, transaction -> {
|
||||
stopTimeoutTimer();
|
||||
placeOfferCompleted.set(true);
|
||||
resultHandler.run();
|
||||
placeOfferCompleted.set(true);
|
||||
errorMessage.set(null);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -217,12 +217,9 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
|
|||
});
|
||||
showTransactionPublishedScreenSubscription = EasyBind.subscribe(model.showTransactionPublishedScreen, newValue -> {
|
||||
if (newValue && BitsquareApp.DEV_MODE) {
|
||||
newValue = false;
|
||||
close();
|
||||
navigation.navigateTo(MainView.class, PortfolioView.class, PendingTradesView.class);
|
||||
}
|
||||
|
||||
if (newValue && model.getTrade() != null && model.getTrade().errorMessageProperty().get() == null) {
|
||||
} else if (newValue && model.getTrade() != null && model.getTrade().errorMessageProperty().get() == null) {
|
||||
UserThread.runAfter(
|
||||
() -> new Popup().headLine(BSResources.get("takeOffer.success.headline"))
|
||||
.feedback(BSResources.get("takeOffer.success.info"))
|
||||
|
@ -234,7 +231,7 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
|
|||
, 100, TimeUnit.MILLISECONDS);
|
||||
})
|
||||
.onClose(this::close)
|
||||
.show(), 100, TimeUnit.MILLISECONDS);
|
||||
.show(), 500, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -373,9 +370,10 @@ public class TakeOfferView extends ActivatableViewAndModel<AnchorPane, TakeOffer
|
|||
|
||||
private void onTakeOffer() {
|
||||
if (model.hasAcceptedArbitrators()) {
|
||||
offerDetailsWindow.onTakeOffer(() -> model.onTakeOffer())
|
||||
offerDetailsWindow.onTakeOffer(() ->
|
||||
model.onTakeOffer(() ->
|
||||
offerDetailsWindow.hide()))
|
||||
.show(model.getOffer(), model.dataModel.amountAsCoin.get());
|
||||
|
||||
} else {
|
||||
new Popup().warning("You have no arbitrator selected.\n" +
|
||||
"You need to select at least one arbitrator.")
|
||||
|
|
|
@ -91,6 +91,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
|
|||
private ChangeListener<String> offerErrorListener;
|
||||
private ConnectionListener connectionListener;
|
||||
private ChangeListener<Coin> feeFromFundingTxListener;
|
||||
private Runnable takeOfferSucceededHandler;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -177,11 +178,12 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
|
|||
// UI actions
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void onTakeOffer() {
|
||||
void onTakeOffer(Runnable resultHandler) {
|
||||
takeOfferSucceededHandler = resultHandler;
|
||||
takeOfferRequested = true;
|
||||
showTransactionPublishedScreen.set(false);
|
||||
isTakeOfferSpinnerVisible.set(true);
|
||||
takeOfferSpinnerInfoText.set(BSResources.get("takeOffer.fundsBox.takeOfferSpinnerInfo"));
|
||||
//isTakeOfferSpinnerVisible.set(true);
|
||||
//takeOfferSpinnerInfoText.set(BSResources.get("takeOffer.fundsBox.takeOfferSpinnerInfo"));
|
||||
dataModel.onTakeOffer(trade -> {
|
||||
this.trade = trade;
|
||||
trade.stateProperty().addListener(tradeStateListener);
|
||||
|
@ -329,10 +331,14 @@ class TakeOfferViewModel extends ActivatableWithDataModel<TakeOfferDataModel> im
|
|||
|| trade.getState() == Trade.State.DEPOSIT_SEEN_IN_NETWORK
|
||||
|| trade.getState() == Trade.State.DEPOSIT_PUBLISHED_MSG_SENT
|
||||
|| trade.getState() == Trade.State.DEPOSIT_PUBLISHED_MSG_RECEIVED) {
|
||||
if (trade.getDepositTx() != null)
|
||||
if (trade.getDepositTx() != null) {
|
||||
if (takeOfferSucceededHandler != null)
|
||||
takeOfferSucceededHandler.run();
|
||||
|
||||
showTransactionPublishedScreen.set(true);
|
||||
else
|
||||
} else {
|
||||
log.error("trade.getDepositTx() == null. That must not happen");
|
||||
}
|
||||
}
|
||||
|
||||
takeOfferSpinnerInfoText.set("");
|
||||
|
|
|
@ -237,13 +237,13 @@ public class OfferDetailsWindow extends Overlay<OfferDetailsWindow> {
|
|||
String takeOfferButtonText = isBuyerRole ? "Confirm take offer for buying bitcoin" : "Confirm take offer for selling bitcoin";
|
||||
|
||||
ImageView iconView = new ImageView();
|
||||
iconView.setId(isBuyOffer ? "image-buy-white" : "image-sell-white");
|
||||
iconView.setId(isBuyerRole ? "image-buy-white" : "image-sell-white");
|
||||
|
||||
Tuple3<Button, ProgressIndicator, Label> placeOfferTuple = addButtonWithStatusAfterGroup(gridPane, ++rowIndex, isPlaceOffer ? placeOfferButtonText : takeOfferButtonText);
|
||||
|
||||
Button button = placeOfferTuple.first;
|
||||
button.setGraphic(iconView);
|
||||
button.setId(isBuyOffer ? "buy-button" : "sell-button");
|
||||
button.setId(isBuyerRole ? "buy-button" : "sell-button");
|
||||
button.setText(isPlaceOffer ? placeOfferButtonText : takeOfferButtonText);
|
||||
|
||||
spinner = placeOfferTuple.second;
|
||||
|
@ -269,7 +269,7 @@ public class OfferDetailsWindow extends Overlay<OfferDetailsWindow> {
|
|||
spinnerInfoLabel.setText(BSResources.get("createOffer.fundsBox.placeOfferSpinnerInfo"));
|
||||
placeOfferHandlerOptional.get().run();
|
||||
} else {
|
||||
spinnerInfoLabel.setText("Take offer in progress...");
|
||||
spinnerInfoLabel.setText(BSResources.get("takeOffer.fundsBox.takeOfferSpinnerInfo"));
|
||||
takeOfferHandlerOptional.get().run();
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue