Set explicit console colors for qr code

This commit is contained in:
AsamK 2026-02-25 21:36:53 +01:00
parent 52d4d61e2b
commit 4a35d47515

View File

@ -52,7 +52,7 @@ public class LinkCommand implements ProvisioningCommand {
try {
final URI deviceLinkUri = m.getDeviceLinkUri();
if (System.console() != null) {
printQrCode(writer, deviceLinkUri);
printQrCode(writer, deviceLinkUri.toString());
}
writer.println("{}", deviceLinkUri);
var number = m.finishDeviceLink(deviceName);
@ -70,12 +70,14 @@ public class LinkCommand implements ProvisioningCommand {
}
}
private void printQrCode(final PlainTextWriter writer, final URI deviceLinkUri) {
private void printQrCode(final PlainTextWriter writer, final String contents) {
try {
var bitMatrix = new QRCodeWriter().encode(deviceLinkUri.toString(), BarcodeFormat.QR_CODE, 0, 0);
var bitMatrix = new QRCodeWriter().encode(contents, BarcodeFormat.QR_CODE, 0, 0);
writer.println("\033[37;40m");
for (int y = 0; y < bitMatrix.getHeight(); y += 2) {
writer.println(formatQRCodeLinePair(bitMatrix, y));
}
writer.println("\033[39;49m");
} catch (WriterException e) {
logger.error("Failed to generate QR code", e);
}
@ -86,7 +88,7 @@ public class LinkCommand implements ProvisioningCommand {
for (int x = 0; x < bitMatrix.getWidth(); x++) {
boolean upper = bitMatrix.get(x, y);
boolean lower = y + 1 < bitMatrix.getHeight() && bitMatrix.get(x, y + 1);
line.append((upper && lower) ? "" : (upper ? "" : (lower ? "" : " ")));
line.append((upper && lower) ? " " : (upper ? "" : (lower ? "" : "")));
}
return line.toString();
}