X-Git-Url: https://git.hedgecode.org/?p=chesshog.git;a=blobdiff_plain;f=chesshog-qrcode%2Fsrc%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fqrcode%2FChessQRCodeReader.java;h=b10caa4bfe35bf221923617979b3833e33f78542;hp=a0bbbdf5886ee0d6d080717c7ed7e91e3927c8e0;hb=6f233e90e111f983e0ef401697859bb677bc0929;hpb=0b24d5b71c19ba38060297084ad39685f76a8539 diff --git a/chesshog-qrcode/src/main/java/org/hedgecode/chess/qrcode/ChessQRCodeReader.java b/chesshog-qrcode/src/main/java/org/hedgecode/chess/qrcode/ChessQRCodeReader.java index a0bbbdf..b10caa4 100644 --- a/chesshog-qrcode/src/main/java/org/hedgecode/chess/qrcode/ChessQRCodeReader.java +++ b/chesshog-qrcode/src/main/java/org/hedgecode/chess/qrcode/ChessQRCodeReader.java @@ -36,8 +36,6 @@ import com.google.zxing.common.HybridBinarizer; import com.google.zxing.qrcode.decoder.Decoder; import com.google.zxing.qrcode.detector.Detector; -import org.hedgecode.chess.ChessQRCodeConstants; - /** * Chess-specific QR Codes reader (image decoder). * @@ -49,7 +47,7 @@ public class ChessQRCodeReader { private static ChessQRCodeReader _instance = new ChessQRCodeReader(); - private ChessQRCodeReader() { + protected ChessQRCodeReader() { decoder = new Decoder(); } @@ -126,20 +124,7 @@ public class ChessQRCodeReader { ); } - ChessQRCodeMode mode = ChessQRCodeMode.byCode( - decoderResult.getText().substring(0, ChessQRCodeMode.CODE_LENGTH) - ); - - if (mode == null) { - throw new ChessQRCodeException( - ChessQRCodeException.Type.READ, "read.unknown.chess.mode" - ); - } - - return new ChessQRResult( - mode, - decoderResult.getText().substring(ChessQRCodeMode.CODE_LENGTH) - ); + return createResult(decoderResult); /* ResultPoint[] points = detectorResult.getPoints(); @@ -176,6 +161,22 @@ public class ChessQRCodeReader { */ } + protected ChessQRResult createResult(DecoderResult decoderResult) throws ChessQRCodeException { + String result = decoderResult.getText(); + + ChessQRCodeMode mode = ChessQRResult.getMode(result); + if (mode == null) { + throw new ChessQRCodeException( + ChessQRCodeException.Type.READ, "read.unknown.chess.mode" + ); + } + + return new ChessQRResult( + mode, + ChessQRResult.getContents(result) + ); + } + public static ChessQRCodeReader getInstance() { return _instance; } @@ -184,7 +185,7 @@ public class ChessQRCodeReader { public static void main(String[] args) { try { ChessQRResult qrCodeResult = ChessQRCodeReader.getInstance().read( - new File("MyQRCode.png") + new File("qrcode.png") ); System.out.println("Decoded format = " + qrCodeResult.getMode()); System.out.println("Decoded text = " + qrCodeResult.getContents());