mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2024-12-25 05:06:45 +00:00
enlarge qr display dialog and increase default qr code density
This commit is contained in:
parent
ddae1a12d8
commit
24578dcf88
4 changed files with 23 additions and 9 deletions
|
@ -565,6 +565,11 @@ public class AppServices {
|
||||||
return windowIcon;
|
return windowIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isReducedWindowHeight() {
|
||||||
|
Window activeWindow = getActiveWindow();
|
||||||
|
return (activeWindow != null && activeWindow.getHeight() < 768);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isReducedWindowHeight(Node node) {
|
public static boolean isReducedWindowHeight(Node node) {
|
||||||
return (node.getScene() != null && node.getScene().getWindow().getHeight() < 768);
|
return (node.getScene() != null && node.getScene().getWindow().getHeight() < 768);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.sparrowwallet.sparrow.control;
|
package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
public enum QRDensity {
|
public enum QRDensity {
|
||||||
NORMAL("Normal", 250),
|
NORMAL("Normal", 400),
|
||||||
LOW("Low", 80);
|
LOW("Low", 80);
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.sparrowwallet.sparrow.control;
|
package com.sparrowwallet.sparrow.control;
|
||||||
|
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
|
import com.google.zxing.EncodeHintType;
|
||||||
import com.google.zxing.client.j2se.MatrixToImageConfig;
|
import com.google.zxing.client.j2se.MatrixToImageConfig;
|
||||||
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||||
import com.google.zxing.common.BitMatrix;
|
import com.google.zxing.common.BitMatrix;
|
||||||
|
@ -29,6 +30,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
|
@ -39,8 +41,10 @@ public class QRDisplayDialog extends Dialog<ButtonType> {
|
||||||
|
|
||||||
private static final int ANIMATION_PERIOD_MILLIS = 200;
|
private static final int ANIMATION_PERIOD_MILLIS = 200;
|
||||||
|
|
||||||
private static final int QR_WIDTH = 480;
|
private static final int DEFAULT_QR_SIZE = 580;
|
||||||
private static final int QR_HEIGHT = 480;
|
private static final int REDUCED_QR_SIZE = 520;
|
||||||
|
|
||||||
|
private final int qrSize = getQRSize();
|
||||||
|
|
||||||
private final UR ur;
|
private final UR ur;
|
||||||
private UREncoder encoder;
|
private UREncoder encoder;
|
||||||
|
@ -103,8 +107,8 @@ public class QRDisplayDialog extends Dialog<ButtonType> {
|
||||||
dialogPane.getButtonTypes().add(scanButtonType);
|
dialogPane.getButtonTypes().add(scanButtonType);
|
||||||
}
|
}
|
||||||
|
|
||||||
dialogPane.setPrefWidth(40 + QR_WIDTH + 40);
|
dialogPane.setPrefWidth(40 + qrSize + 40);
|
||||||
dialogPane.setPrefHeight(40 + QR_HEIGHT + 85);
|
dialogPane.setPrefHeight(40 + qrSize + 85);
|
||||||
AppServices.moveToActiveWindowScreen(this);
|
AppServices.moveToActiveWindowScreen(this);
|
||||||
|
|
||||||
setResultConverter(dialogButton -> dialogButton);
|
setResultConverter(dialogButton -> dialogButton);
|
||||||
|
@ -137,13 +141,17 @@ public class QRDisplayDialog extends Dialog<ButtonType> {
|
||||||
dialogPane.getButtonTypes().add(scanButtonType);
|
dialogPane.getButtonTypes().add(scanButtonType);
|
||||||
}
|
}
|
||||||
|
|
||||||
dialogPane.setPrefWidth(40 + QR_WIDTH + 40);
|
dialogPane.setPrefWidth(40 + qrSize + 40);
|
||||||
dialogPane.setPrefHeight(40 + QR_HEIGHT + 85);
|
dialogPane.setPrefHeight(40 + qrSize + 85);
|
||||||
AppServices.moveToActiveWindowScreen(this);
|
AppServices.moveToActiveWindowScreen(this);
|
||||||
|
|
||||||
setResultConverter(dialogButton -> dialogButton);
|
setResultConverter(dialogButton -> dialogButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getQRSize() {
|
||||||
|
return AppServices.isReducedWindowHeight() ? REDUCED_QR_SIZE : DEFAULT_QR_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
private void createAnimateQRService() {
|
private void createAnimateQRService() {
|
||||||
animateQRService = new AnimateQRService();
|
animateQRService = new AnimateQRService();
|
||||||
animateQRService.setPeriod(Duration.millis(ANIMATION_PERIOD_MILLIS));
|
animateQRService.setPeriod(Duration.millis(ANIMATION_PERIOD_MILLIS));
|
||||||
|
@ -169,7 +177,7 @@ public class QRDisplayDialog extends Dialog<ButtonType> {
|
||||||
protected Image getQrCode(String fragment) {
|
protected Image getQrCode(String fragment) {
|
||||||
try {
|
try {
|
||||||
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
||||||
BitMatrix qrMatrix = qrCodeWriter.encode(fragment, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT);
|
BitMatrix qrMatrix = qrCodeWriter.encode(fragment, BarcodeFormat.QR_CODE, qrSize, qrSize, Map.of(EncodeHintType.MARGIN, "2"));
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
MatrixToImageWriter.writeToStream(qrMatrix, "PNG", baos, new MatrixToImageConfig());
|
MatrixToImageWriter.writeToStream(qrMatrix, "PNG", baos, new MatrixToImageConfig());
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.sparrowwallet.sparrow.io;
|
package com.sparrowwallet.sparrow.io;
|
||||||
|
|
||||||
import com.google.zxing.BarcodeFormat;
|
import com.google.zxing.BarcodeFormat;
|
||||||
|
import com.google.zxing.EncodeHintType;
|
||||||
import com.google.zxing.WriterException;
|
import com.google.zxing.WriterException;
|
||||||
import com.google.zxing.client.j2se.MatrixToImageConfig;
|
import com.google.zxing.client.j2se.MatrixToImageConfig;
|
||||||
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||||
|
@ -104,7 +105,7 @@ public class PdfUtils {
|
||||||
|
|
||||||
private static javafx.scene.image.Image getQrCode(String fragment) throws IOException, WriterException {
|
private static javafx.scene.image.Image getQrCode(String fragment) throws IOException, WriterException {
|
||||||
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
QRCodeWriter qrCodeWriter = new QRCodeWriter();
|
||||||
BitMatrix qrMatrix = qrCodeWriter.encode(fragment.toUpperCase(Locale.ROOT), BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT);
|
BitMatrix qrMatrix = qrCodeWriter.encode(fragment.toUpperCase(Locale.ROOT), BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, Map.of(EncodeHintType.MARGIN, "2"));
|
||||||
|
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
MatrixToImageWriter.writeToStream(qrMatrix, "PNG", baos, new MatrixToImageConfig());
|
MatrixToImageWriter.writeToStream(qrMatrix, "PNG", baos, new MatrixToImageConfig());
|
||||||
|
|
Loading…
Reference in a new issue