Browse Source

prevent potential npe on qr display dialog

terminal
Craig Raw 2 years ago
parent
commit
94c5920c27
  1. 20
      src/main/java/com/sparrowwallet/sparrow/control/QRDisplayDialog.java

20
src/main/java/com/sparrowwallet/sparrow/control/QRDisplayDialog.java

@ -78,12 +78,7 @@ public class QRDisplayDialog extends Dialog<UR> {
if(encoder.isSinglePart()) {
qrImageView.setImage(getQrCode(currentPart));
} else {
animateQRService = new AnimateQRService();
animateQRService.setPeriod(Duration.millis(ANIMATION_PERIOD_MILLIS));
animateQRService.start();
setOnCloseRequest(event -> {
animateQRService.cancel();
});
createAnimateQRService();
}
final ButtonType cancelButtonType = new javafx.scene.control.ButtonType("Cancel", ButtonBar.ButtonData.CANCEL_CLOSE);
@ -124,6 +119,15 @@ public class QRDisplayDialog extends Dialog<UR> {
setResultConverter(dialogButton -> dialogButton != cancelButtonType ? ur : null);
}
private void createAnimateQRService() {
animateQRService = new AnimateQRService();
animateQRService.setPeriod(Duration.millis(ANIMATION_PERIOD_MILLIS));
animateQRService.start();
setOnCloseRequest(event -> {
animateQRService.cancel();
});
}
private void nextPart() {
if(!useLegacyEncoding) {
String fragment = encoder.nextPart();
@ -169,6 +173,8 @@ public class QRDisplayDialog extends Dialog<UR> {
nextPart();
qrImageView.setImage(getQrCode(currentPart));
} else if(animateQRService == null) {
createAnimateQRService();
} else if(!animateQRService.isRunning()) {
animateQRService.reset();
animateQRService.start();
@ -185,6 +191,8 @@ public class QRDisplayDialog extends Dialog<UR> {
}
qrImageView.setImage(getQrCode(currentPart));
} else if(animateQRService == null) {
createAnimateQRService();
} else if(!animateQRService.isRunning()) {
animateQRService.reset();
animateQRService.start();

Loading…
Cancel
Save