request user attention via taskbar when soroban communication requires action

This commit is contained in:
Craig Raw 2022-10-24 14:00:20 +02:00
parent 7cdb7319ee
commit 0c213294ad
2 changed files with 8 additions and 0 deletions

View file

@ -32,6 +32,7 @@ import org.controlsfx.glyphfont.Glyph;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.awt.Taskbar;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -247,6 +248,7 @@ public class CounterpartyController extends SorobanController {
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(JavaFxScheduler.platform()) .observeOn(JavaFxScheduler.platform())
.subscribe(responseMessage -> { .subscribe(responseMessage -> {
Taskbar.getTaskbar().requestUserAttention(true, false);
if(accepted) { if(accepted) {
startCounterpartyCollaboration(counterpartyCahootsWallet, paymentCodeInitiator, cahootsType); startCounterpartyCollaboration(counterpartyCahootsWallet, paymentCodeInitiator, cahootsType);
followPaymentCode(paymentCodeInitiator); followPaymentCode(paymentCodeInitiator);
@ -254,10 +256,12 @@ public class CounterpartyController extends SorobanController {
}, error -> { }, error -> {
log.error("Error sending meeting response", error); log.error("Error sending meeting response", error);
mixingPartner.setVisible(false); mixingPartner.setVisible(false);
Taskbar.getTaskbar().requestUserAttention(true, false);
}); });
}, error -> { }, error -> {
log.error("Failed to receive meeting request", error); log.error("Failed to receive meeting request", error);
mixingPartner.setVisible(false); mixingPartner.setVisible(false);
Taskbar.getTaskbar().requestUserAttention(true, false);
}); });
} catch(Exception e) { } catch(Exception e) {
log.error("Error sending meeting response", e); log.error("Error sending meeting response", e);

View file

@ -56,6 +56,7 @@ import org.controlsfx.validation.decoration.StyleClassValidationDecoration;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.awt.Taskbar;
import java.util.*; import java.util.*;
import java.util.function.UnaryOperator; import java.util.function.UnaryOperator;
@ -423,6 +424,7 @@ public class InitiatorController extends SorobanController {
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(JavaFxScheduler.platform()) .observeOn(JavaFxScheduler.platform())
.subscribe(sorobanResponse -> { .subscribe(sorobanResponse -> {
Taskbar.getTaskbar().requestUserAttention(true, false);
if(sorobanResponse.isAccept()) { if(sorobanResponse.isAccept()) {
sorobanProgressBar.setProgress(0.1); sorobanProgressBar.setProgress(0.1);
sorobanProgressLabel.setText("Mix partner accepted!"); sorobanProgressLabel.setText("Mix partner accepted!");
@ -436,12 +438,14 @@ public class InitiatorController extends SorobanController {
step2Desc.setText(getErrorMessage(error)); step2Desc.setText(getErrorMessage(error));
sorobanProgressLabel.setVisible(false); sorobanProgressLabel.setVisible(false);
meetingFail.setVisible(true); meetingFail.setVisible(true);
Taskbar.getTaskbar().requestUserAttention(true, false);
}); });
}, error -> { }, error -> {
log.error("Error sending meeting request", error); log.error("Error sending meeting request", error);
step2Desc.setText(getErrorMessage(error)); step2Desc.setText(getErrorMessage(error));
sorobanProgressLabel.setVisible(false); sorobanProgressLabel.setVisible(false);
meetingFail.setVisible(true); meetingFail.setVisible(true);
Taskbar.getTaskbar().requestUserAttention(true, false);
}); });
} catch(Exception e) { } catch(Exception e) {
log.error("Error sending meeting request", e); log.error("Error sending meeting request", e);