package com.evsuite.abrp; import android.graphics.Bitmap; import android.graphics.Color; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.common.BitMatrix; import java.util.EnumMap; import java.util.Map; /** Generates the repository QR locally; no network capability is involved. */ final class QrCode { private QrCode() {} static Bitmap generate(String content, int sizePx) { try { Map hints = new EnumMap<>(EncodeHintType.class); hints.put(EncodeHintType.MARGIN, 1); hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); BitMatrix matrix = new MultiFormatWriter().encode( content, BarcodeFormat.QR_CODE, sizePx, sizePx, hints); Bitmap bitmap = Bitmap.createBitmap(sizePx, sizePx, Bitmap.Config.RGB_565); for (int x = 0; x < sizePx; x++) { for (int y = 0; y < sizePx; y++) { bitmap.setPixel(x, y, matrix.get(x, y) ? Color.BLACK : Color.WHITE); } } return bitmap; } catch (Exception ignored) { return null; } } }