diff --git a/android/src/com/google/zxing/client/android/result/AddressBookResultHandler.java b/android/src/com/google/zxing/client/android/result/AddressBookResultHandler.java index d6070c81ae..a633805610 100644 --- a/android/src/com/google/zxing/client/android/result/AddressBookResultHandler.java +++ b/android/src/com/google/zxing/client/android/result/AddressBookResultHandler.java @@ -21,6 +21,7 @@ import com.google.zxing.client.result.ParsedResult; import android.app.Activity; +import android.graphics.Typeface; import android.telephony.PhoneNumberUtils; import android.text.Spannable; import android.text.SpannableString; @@ -205,7 +206,7 @@ public CharSequence getDisplayContents() { if (namesLength > 0) { // Bold the full name to make it stand out a bit. Spannable styled = new SpannableString(contents.toString()); - styled.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, namesLength, 0); + styled.setSpan(new StyleSpan(Typeface.BOLD), 0, namesLength, 0); return styled; } else { return contents.toString(); diff --git a/androidtest/src/com/google/zxing/client/androidtest/BenchmarkItem.java b/androidtest/src/com/google/zxing/client/androidtest/BenchmarkItem.java index fd728bc705..5418b13afa 100644 --- a/androidtest/src/com/google/zxing/client/androidtest/BenchmarkItem.java +++ b/androidtest/src/com/google/zxing/client/androidtest/BenchmarkItem.java @@ -53,7 +53,7 @@ void setFormat(BarcodeFormat format) { @Override public String toString() { StringBuilder result = new StringBuilder(30); - result.append(decoded ? "DECODED " + format.toString() + ": " : "FAILED: "); + result.append(decoded ? "DECODED " + format + ": " : "FAILED: "); result.append(path); result.append(" ("); result.append(getAverageTime()); diff --git a/core/src/main/java/com/google/zxing/Reader.java b/core/src/main/java/com/google/zxing/Reader.java index bd3732e02e..7208c94d9e 100644 --- a/core/src/main/java/com/google/zxing/Reader.java +++ b/core/src/main/java/com/google/zxing/Reader.java @@ -24,7 +24,7 @@ * decode a QR code. The decoder may optionally receive hints from the caller which may help * it decode more quickly or accurately. * - * See {@link com.google.zxing.MultiFormatReader}, which attempts to determine what barcode + * See {@link MultiFormatReader}, which attempts to determine what barcode * format is present within the image as well, and then decodes it accordingly. * * @author Sean Owen @@ -48,7 +48,7 @@ public interface Reader { * hints, each possibly associated to some data, which may help the implementation decode. * * @param image image of barcode to decode - * @param hints passed as a {@link java.util.Map} from {@link com.google.zxing.DecodeHintType} + * @param hints passed as a {@link java.util.Map} from {@link DecodeHintType} * to arbitrary data. The * meaning of the data depends upon the hint type. The implementation may or may not do * anything with these hints. diff --git a/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java b/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java index d0304a9a15..142be41a9b 100644 --- a/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java +++ b/core/src/main/java/com/google/zxing/aztec/decoder/Decoder.java @@ -271,7 +271,7 @@ private boolean[] correctBits(boolean[] rawbits) throws FormatException { boolean[] extractBits(BitMatrix matrix) { boolean compact = ddata.isCompact(); int layers = ddata.getNbLayers(); - int baseMatrixSize = compact ? 11 + layers * 4 : 14 + layers * 4; // not including alignment lines + int baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines int[] alignmentMap = new int[baseMatrixSize]; boolean[] rawbits = new boolean[totalBitsInLayer(layers, compact)]; @@ -290,7 +290,7 @@ boolean[] extractBits(BitMatrix matrix) { } } for (int i = 0, rowOffset = 0; i < layers; i++) { - int rowSize = compact ? (layers - i) * 4 + 9 : (layers - i) * 4 + 12; + int rowSize = (layers - i) * 4 + (compact ? 9 : 12); // The top-left most point of this layer is (not including alignment lines) int low = i * 2; // The bottom-right most point of this layer is (not including alignment lines) diff --git a/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java b/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java index 3a36554115..518daecee0 100644 --- a/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java +++ b/core/src/main/java/com/google/zxing/aztec/encoder/Encoder.java @@ -129,7 +129,7 @@ public static AztecCode encode(byte[] data, int minECCPercent, int userSpecified BitArray modeMessage = generateModeMessage(compact, layers, messageSizeInWords); // allocate symbol - int baseMatrixSize = compact ? 11 + layers * 4 : 14 + layers * 4; // not including alignment lines + int baseMatrixSize = (compact ? 11 : 14) + layers * 4; // not including alignment lines int[] alignmentMap = new int[baseMatrixSize]; int matrixSize; if (compact) { @@ -152,7 +152,7 @@ public static AztecCode encode(byte[] data, int minECCPercent, int userSpecified // draw data bits for (int i = 0, rowOffset = 0; i < layers; i++) { - int rowSize = compact ? (layers - i) * 4 + 9 : (layers - i) * 4 + 12; + int rowSize = (layers - i) * 4 + (compact ? 9 : 12); for (int j = 0; j < rowSize; j++) { int columnOffset = j * 2; for (int k = 0; k < 2; k++) { diff --git a/core/src/main/java/com/google/zxing/common/BitArray.java b/core/src/main/java/com/google/zxing/common/BitArray.java index 0af7dd72ce..6177a8ceda 100644 --- a/core/src/main/java/com/google/zxing/common/BitArray.java +++ b/core/src/main/java/com/google/zxing/common/BitArray.java @@ -307,7 +307,7 @@ public int[] getBitArray() { public void reverse() { int[] newBits = new int[bits.length]; // reverse all int's first - int len = ((size-1) / 32); + int len = (size - 1) / 32; int oldBitsLen = len + 1; for (int i = 0; i < oldBitsLen; i++) { long x = (long) bits[i]; diff --git a/core/src/main/java/com/google/zxing/common/detector/MonochromeRectangleDetector.java b/core/src/main/java/com/google/zxing/common/detector/MonochromeRectangleDetector.java index 1ce8452ee2..6f58452ccf 100644 --- a/core/src/main/java/com/google/zxing/common/detector/MonochromeRectangleDetector.java +++ b/core/src/main/java/com/google/zxing/common/detector/MonochromeRectangleDetector.java @@ -128,7 +128,7 @@ private ResultPoint findCornerFromCenter(int centerX, if (lastRange[0] < centerX) { if (lastRange[1] > centerX) { // straddle, choose one or the other based on direction - return new ResultPoint(deltaY > 0 ? lastRange[0] : lastRange[1], lastY); + return new ResultPoint(lastRange[deltaY > 0 ? 0 : 1], lastY); } return new ResultPoint(lastRange[0], lastY); } else { @@ -138,7 +138,7 @@ private ResultPoint findCornerFromCenter(int centerX, int lastX = x - deltaX; if (lastRange[0] < centerY) { if (lastRange[1] > centerY) { - return new ResultPoint(lastX, deltaX < 0 ? lastRange[0] : lastRange[1]); + return new ResultPoint(lastX, lastRange[deltaX < 0 ? 0 : 1]); } return new ResultPoint(lastX, lastRange[0]); } else { diff --git a/core/src/main/java/com/google/zxing/datamatrix/encoder/DefaultPlacement.java b/core/src/main/java/com/google/zxing/datamatrix/encoder/DefaultPlacement.java index 5efb5a5800..dc5045c22e 100644 --- a/core/src/main/java/com/google/zxing/datamatrix/encoder/DefaultPlacement.java +++ b/core/src/main/java/com/google/zxing/datamatrix/encoder/DefaultPlacement.java @@ -60,7 +60,7 @@ public final boolean getBit(int col, int row) { } final void setBit(int col, int row, boolean bit) { - bits[row * numcols + col] = bit ? (byte) 1 : (byte) 0; + bits[row * numcols + col] = (byte) (bit ? 1 : 0); } final boolean hasBit(int col, int row) { diff --git a/core/src/main/java/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java b/core/src/main/java/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java index caec109708..b7a70ec0ec 100644 --- a/core/src/main/java/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java +++ b/core/src/main/java/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java @@ -128,7 +128,7 @@ public static byte[] getBytesForMessage(String msg) { private static char randomize253State(char ch, int codewordPosition) { int pseudoRandom = ((149 * codewordPosition) % 253) + 1; int tempVariable = ch + pseudoRandom; - return tempVariable <= 254 ? (char) tempVariable : (char) (tempVariable - 254); + return (char) (tempVariable <= 254 ? tempVariable : tempVariable - 254); } /** diff --git a/core/src/main/java/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java b/core/src/main/java/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java index 4744d4db23..eb40362632 100644 --- a/core/src/main/java/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java +++ b/core/src/main/java/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java @@ -45,8 +45,6 @@ final class DecodedBitStreamParser { private static final char FS = '\u001C'; private static final char GS = '\u001D'; private static final char RS = '\u001E'; - private static final NumberFormat NINE_DIGITS = new DecimalFormat("000000000"); - private static final NumberFormat THREE_DIGITS = new DecimalFormat("000"); private static final String[] SETS = { "\nABCDEFGHIJKLMNOPQRSTUVWXYZ"+ECI+FS+GS+RS+NS+' '+PAD+"\"#$%&'()*+,-./0123456789:"+SHIFTB+SHIFTC+SHIFTD+SHIFTE+LATCHB, @@ -73,8 +71,9 @@ static DecoderResult decode(byte[] bytes, int mode) { } else { postcode = getPostCode3(bytes); } - String country = THREE_DIGITS.format(getCountry(bytes)); - String service = THREE_DIGITS.format(getServiceClass(bytes)); + NumberFormat threeDigits = new DecimalFormat("000"); + String country = threeDigits.format(getCountry(bytes)); + String service = threeDigits.format(getServiceClass(bytes)); result.append(getMessage(bytes, 10, 84)); if (result.toString().startsWith("[)>"+RS+"01"+GS)) { result.insert(9, postcode + GS + country + GS + service + GS); @@ -175,7 +174,7 @@ private static String getMessage(byte[] bytes, int start, int len) { break; case NS: int nsval = (bytes[++i] << 24) + (bytes[++i] << 18) + (bytes[++i] << 12) + (bytes[++i] << 6) + bytes[++i]; - sb.append(NINE_DIGITS.format(nsval)); + sb.append(new DecimalFormat("000000000").format(nsval)); break; case LOCK: shift = -1; diff --git a/core/src/main/java/com/google/zxing/multi/qrcode/QRCodeMultiReader.java b/core/src/main/java/com/google/zxing/multi/qrcode/QRCodeMultiReader.java index 7f4a531bc1..083fcf3e46 100644 --- a/core/src/main/java/com/google/zxing/multi/qrcode/QRCodeMultiReader.java +++ b/core/src/main/java/com/google/zxing/multi/qrcode/QRCodeMultiReader.java @@ -166,8 +166,8 @@ private static List processStructuredAppend(List results) { private static final class SAComparator implements Comparator, Serializable { @Override public int compare(Result a, Result b) { - int aNumber = (int) (a.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)); - int bNumber = (int) (b.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)); + int aNumber = (int) a.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE); + int bNumber = (int) b.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE); if (aNumber < bNumber) { return -1; } diff --git a/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java b/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java index b477b7bb30..e30e1d4ad4 100644 --- a/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java +++ b/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java @@ -468,8 +468,8 @@ private static int[] getModuleBitCount(BitMatrix image, int moduleNumber = 0; int increment = leftToRight ? 1 : -1; boolean previousPixelValue = leftToRight; - while (((leftToRight && imageColumn < maxColumn) || (!leftToRight && imageColumn >= minColumn)) && - moduleNumber < moduleBitCount.length) { + while ((leftToRight ? imageColumn < maxColumn : imageColumn >= minColumn) && + moduleNumber < moduleBitCount.length) { if (image.get(imageColumn, imageRow) == previousPixelValue) { moduleBitCount[moduleNumber]++; imageColumn += increment; @@ -479,7 +479,8 @@ private static int[] getModuleBitCount(BitMatrix image, } } if (moduleNumber == moduleBitCount.length || - (((leftToRight && imageColumn == maxColumn) || (!leftToRight && imageColumn == minColumn)) && moduleNumber == moduleBitCount.length - 1)) { + ((imageColumn == (leftToRight ? maxColumn : minColumn)) && + moduleNumber == moduleBitCount.length - 1)) { return moduleBitCount; } return null; @@ -499,8 +500,8 @@ private static int adjustCodewordStartColumn(BitMatrix image, int increment = leftToRight ? -1 : 1; // there should be no black pixels before the start column. If there are, then we need to start earlier. for (int i = 0; i < 2; i++) { - while (((leftToRight && correctedStartColumn >= minColumn) || (!leftToRight && correctedStartColumn < maxColumn)) && - leftToRight == image.get(correctedStartColumn, imageRow)) { + while ((leftToRight ? correctedStartColumn >= minColumn : correctedStartColumn < maxColumn) && + leftToRight == image.get(correctedStartColumn, imageRow)) { if (Math.abs(codewordStartColumn - correctedStartColumn) > CODEWORD_SKEW_SIZE) { return codewordStartColumn; } diff --git a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java index 125017c000..0f0e3a8381 100644 --- a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java +++ b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java @@ -379,11 +379,10 @@ private static void encodeBinary(byte[] bytes, if (count == 1 && startmode == TEXT_COMPACTION) { sb.append((char) SHIFT_TO_BYTE); } else { - boolean sixpack = ((count % 6) == 0); - if (sixpack) { - sb.append((char)LATCH_TO_BYTE); + if ((count % 6) == 0) { + sb.append((char) LATCH_TO_BYTE); } else { - sb.append((char)LATCH_TO_BYTE_PADDED); + sb.append((char) LATCH_TO_BYTE_PADDED); } } @@ -534,7 +533,7 @@ private static int determineConsecutiveTextCount(CharSequence msg, int startpos) */ private static int determineConsecutiveBinaryCount(String msg, int startpos, Charset encoding) throws WriterException { - final CharsetEncoder encoder = encoding.newEncoder(); + CharsetEncoder encoder = encoding.newEncoder(); int len = msg.length(); int idx = startpos; while (idx < len) { diff --git a/core/src/main/java/com/google/zxing/qrcode/decoder/FormatInformation.java b/core/src/main/java/com/google/zxing/qrcode/decoder/FormatInformation.java index 894e321754..699e2a72c1 100644 --- a/core/src/main/java/com/google/zxing/qrcode/decoder/FormatInformation.java +++ b/core/src/main/java/com/google/zxing/qrcode/decoder/FormatInformation.java @@ -85,14 +85,15 @@ private FormatInformation(int formatInfo) { static int numBitsDiffering(int a, int b) { a ^= b; // a now has a 1 bit exactly where its bit differs with b's // Count bits set quickly with a series of lookups: - return BITS_SET_IN_HALF_BYTE[a & 0x0F] + - BITS_SET_IN_HALF_BYTE[(a >>> 4 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 8 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 12 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 16 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 20 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 24 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 28 & 0x0F)]; + return + BITS_SET_IN_HALF_BYTE[a & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 4) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 8) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 12) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 16) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 20) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 24) & 0x0F] + + BITS_SET_IN_HALF_BYTE[(a >>> 28) & 0x0F]; } /** diff --git a/core/src/main/java/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java b/core/src/main/java/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java index b6e1b5dbe3..062d4d7734 100644 --- a/core/src/main/java/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java +++ b/core/src/main/java/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java @@ -110,7 +110,7 @@ AlignmentPattern find() throws NotFoundException { if (image.get(j, i)) { // Black pixel if (currentState == 1) { // Counting black pixels - stateCount[currentState]++; + stateCount[1]++; } else { // Counting white pixels if (currentState == 2) { // A winner? if (foundPatternCross(stateCount)) { // Yes diff --git a/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java b/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java index b2204d4a97..b96a2003dc 100644 --- a/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java +++ b/core/src/main/java/com/google/zxing/qrcode/encoder/MaskUtil.java @@ -103,8 +103,10 @@ static int applyMaskPenaltyRule3(ByteMatrix matrix) { } private static boolean isWhiteHorizontal(byte[] rowArray, int from, int to) { + from = Math.max(from, 0); + to = Math.min(to, rowArray.length); for (int i = from; i < to; i++) { - if (i >= 0 && i < rowArray.length && rowArray[i] == 1) { + if (rowArray[i] == 1) { return false; } } @@ -112,8 +114,10 @@ private static boolean isWhiteHorizontal(byte[] rowArray, int from, int to) { } private static boolean isWhiteVertical(byte[][] array, int col, int from, int to) { + from = Math.max(from, 0); + to = Math.min(to, array.length); for (int i = from; i < to; i++) { - if (i >= 0 && i < array.length && array[i][col] == 1) { + if (array[i][col] == 1) { return false; } } diff --git a/core/src/test/java/com/google/zxing/client/result/GeoParsedResultTestCase.java b/core/src/test/java/com/google/zxing/client/result/GeoParsedResultTestCase.java index 91b079de63..803cc0bb02 100644 --- a/core/src/test/java/com/google/zxing/client/result/GeoParsedResultTestCase.java +++ b/core/src/test/java/com/google/zxing/client/result/GeoParsedResultTestCase.java @@ -22,7 +22,7 @@ import org.junit.Test; /** - * Tests {@link com.google.zxing.client.result.GeoParsedResult}. + * Tests {@link GeoParsedResult}. * * @author Sean Owen */ diff --git a/core/src/test/java/com/google/zxing/qrcode/decoder/DecodedBitStreamParserTestCase.java b/core/src/test/java/com/google/zxing/qrcode/decoder/DecodedBitStreamParserTestCase.java index f1ed5d72d4..220b2b7774 100644 --- a/core/src/test/java/com/google/zxing/qrcode/decoder/DecodedBitStreamParserTestCase.java +++ b/core/src/test/java/com/google/zxing/qrcode/decoder/DecodedBitStreamParserTestCase.java @@ -21,7 +21,7 @@ import org.junit.Test; /** - * Tests {@link com.google.zxing.qrcode.decoder.DecodedBitStreamParser}. + * Tests {@link DecodedBitStreamParser}. * * @author Sean Owen */ diff --git a/javase/pom.xml b/javase/pom.xml index c8dffbcc72..97a40652be 100644 --- a/javase/pom.xml +++ b/javase/pom.xml @@ -34,7 +34,7 @@ com.github.jai-imageio jai-imageio-core - 1.3.0 + 1.3.1 diff --git a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java index c4501c3cdd..4e5e9ac8db 100644 --- a/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java +++ b/javase/src/main/java/com/google/zxing/client/j2se/CommandLineEncoder.java @@ -23,7 +23,7 @@ import com.beust.jcommander.JCommander; import java.nio.file.Paths; -import java.util.HashMap; +import java.util.EnumMap; import java.util.Locale; import java.util.Map; @@ -50,7 +50,7 @@ public static void main(String[] args) throws Exception { if (EncoderConfig.DEFAULT_OUTPUT_FILE_BASE.equals(outFileString)) { outFileString += '.' + config.imageFormat.toLowerCase(Locale.ENGLISH); } - Map hints = new HashMap<>(); + Map hints = new EnumMap<>(EncodeHintType.class); if (config.errorCorrectionLevel != null) { hints.put(EncodeHintType.ERROR_CORRECTION, config.errorCorrectionLevel); } diff --git a/pom.xml b/pom.xml index 15c7a8e9c4..372db19951 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ com.google.guava guava - 18.0 + 19.0 com.google.android @@ -168,7 +168,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.3 + 3.5 ${java.version} ${java.version} @@ -333,7 +333,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.19 + 2.19.1 0.5C diff --git a/zxing.appspot.com/pom.xml b/zxing.appspot.com/pom.xml index 93220a2616..2d8455defa 100644 --- a/zxing.appspot.com/pom.xml +++ b/zxing.appspot.com/pom.xml @@ -37,7 +37,7 @@ - 2.7.0 + 2.8.0-beta1 diff --git a/zxingorg/pom.xml b/zxingorg/pom.xml index 637b539832..dda9155b4d 100644 --- a/zxingorg/pom.xml +++ b/zxingorg/pom.xml @@ -61,7 +61,7 @@ org.eclipse.jetty jetty-maven-plugin - 9.3.6.v20151106 + 9.3.7.v20160115 src/web