diff options
Diffstat (limited to 'core/src/main/java')
| -rw-r--r-- | core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java b/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java index 0e06ac3a5..61cab98c0 100644 --- a/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java +++ b/core/src/main/java/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java @@ -167,8 +167,7 @@ public final class RSSExpandedReader extends AbstractRSSReader { } } - // TODO: verify sequence of finder patterns as in checkPairSequence() - if (checkChecksum()) { + if (checkChecksum() && isValidSequence(this.pairs, true)) { return this.pairs; } @@ -229,7 +228,7 @@ public final class RSSExpandedReader extends AbstractRSSReader { } this.pairs.addAll(row.getPairs()); - if (isValidSequence(this.pairs)) { + if (isValidSequence(this.pairs, false)) { if (checkChecksum()) { return this.pairs; } @@ -249,10 +248,11 @@ public final class RSSExpandedReader extends AbstractRSSReader { } // Whether the pairs form a valid finder pattern sequence, either complete or a prefix - private static boolean isValidSequence(List<ExpandedPair> pairs) { + private static boolean isValidSequence(List<ExpandedPair> pairs, boolean complete) { for (int[] sequence : FINDER_PATTERN_SEQUENCES) { - if (pairs.size() <= sequence.length) { + boolean sizeOk = (complete ? pairs.size() == sequence.length : pairs.size() <= sequence.length); + if (sizeOk) { boolean stop = true; for (int j = 0; j < pairs.size(); j++) { if (pairs.get(j).getFinderPattern().getValue() != sequence[j]) { |
