rhodes 2.4.1 → 3.0.0.beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +7 -0
- data/Rakefile +7 -36
- data/doc/build.txt +48 -22
- data/doc/device-caps.txt +130 -1
- data/doc/rhom.txt +9 -3
- data/doc/test-log-debug.txt +5 -2
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +40 -20
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/AUTHORS +58 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/CHANGES +266 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/COPYING +201 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ZXing_Info/README +11 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/ext_build.files +173 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +34 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/BarcodeFormat.java +103 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Binarizer.java +80 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/BinaryBitmap.java +128 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ChecksumException.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/DecodeHintType.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/EncodeHintType.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/FormatException.java +38 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/LuminanceSource.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/MultiFormatReader.java +166 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/MultiFormatWriter.java +65 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/NotFoundException.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Reader.java +64 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ReaderException.java +98 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Result.java +143 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultMetadataType.java +109 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultPoint.java +127 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/ResultPointCallback.java +29 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/Writer.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/WriterException.java +35 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AbstractDoCoMoResultParser.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookAUResultParser.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/AddressBookParsedResult.java +122 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/BizcardResultParser.java +94 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java +46 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/CalendarParsedResult.java +134 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailAddressParsedResult.java +61 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailAddressResultParser.java +64 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/EmailDoCoMoResultParser.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ExpandedProductParsedResult.java +195 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ExpandedProductResultParser.java +199 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/GeoParsedResult.java +132 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/GeoResultParser.java +77 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ISBNParsedResult.java +39 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ISBNResultParser.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ParsedResult.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ParsedResultType.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ProductParsedResult.java +49 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ProductResultParser.java +66 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/ResultParser.java +319 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSMMSResultParser.java +107 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSParsedResult.java +104 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/SMSTOMMSTOResultParser.java +57 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TelParsedResult.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TelResultParser.java +44 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/TextParsedResult.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URIParsedResult.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URIResultParser.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/URLTOResultParser.java +47 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/VCardResultParser.java +346 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/VEventResultParser.java +54 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/WifiParsedResult.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/WifiResultParser.java +50 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/AbstractNDEFResultParser.java +45 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFRecord.java +87 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFSmartPosterParsedResult.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFSmartPosterResultParser.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFTextResultParser.java +57 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/result/optional/NDEFURIResultParser.java +95 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitArray.java +247 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitMatrix.java +226 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/BitSource.java +97 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/CharacterSetECI.java +110 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/Collections.java +53 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/Comparator.java +27 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DecoderResult.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DefaultGridSampler.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/DetectorResult.java +46 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/ECI.java +52 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/GlobalHistogramBinarizer.java +196 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/GridSampler.java +171 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/HybridBinarizer.java +185 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/PerspectiveTransform.java +148 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/StringUtils.java +191 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/detector/MonochromeRectangleDetector.java +209 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/detector/WhiteRectangleDetector.java +316 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/GF256.java +139 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/GF256Poly.java +263 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java +194 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/common/reedsolomon/ReedSolomonException.java +31 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/DataMatrixReader.java +161 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/BitMatrixParser.java +446 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/DataBlock.java +118 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java +462 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/Decoder.java +134 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/decoder/Version.java +242 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/datamatrix/detector/Detector.java +348 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/ByQuadrantReader.java +96 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/GenericMultipleBarcodeReader.java +156 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/MultipleBarcodeReader.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/QRCodeMultiReader.java +80 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/detector/MultiDetector.java +72 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java +324 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/CodaBarReader.java +263 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code128Reader.java +473 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code128Writer.java +73 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Reader.java +333 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code39Writer.java +82 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/Code93Reader.java +273 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN13Reader.java +135 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN13Writer.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN8Reader.java +72 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EAN8Writer.java +76 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/EANManufacturerOrgSupport.java +170 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/ITFReader.java +348 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/ITFWriter.java +68 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/MultiFormatOneDReader.java +109 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/MultiFormatUPCEANReader.java +113 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/OneDReader.java +297 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCAReader.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANExtensionSupport.java +186 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANReader.java +355 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEANWriter.java +104 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/UPCEReader.java +153 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/AbstractRSSReader.java +110 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/DataCharacter.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/FinderPattern.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/Pair.java +41 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/RSS14Reader.java +494 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/RSSUtils.java +155 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/ExpandedPair.java +68 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java +578 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java +47 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java +55 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java +66 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java +76 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java +106 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java +56 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java +56 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java +81 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java +58 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java +85 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java +60 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java +69 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java +52 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java +44 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java +285 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java +414 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/PDF417Reader.java +79 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/BitMatrixParser.java +1163 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java +629 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/decoder/Decoder.java +150 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/pdf417/detector/Detector.java +498 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/QRCodeReader.java +166 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/QRCodeWriter.java +108 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/BitMatrixParser.java +203 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DataBlock.java +123 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DataMask.java +155 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java +261 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Decoder.java +148 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java +86 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/FormatInformation.java +171 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Mode.java +112 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/decoder/Version.java +586 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/AlignmentPattern.java +48 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java +279 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/Detector.java +400 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPattern.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java +585 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/detector/FinderPatternInfo.java +49 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/BlockPair.java +37 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/ByteMatrix.java +97 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/Encoder.java +557 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/MaskUtil.java +217 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/MatrixUtil.java +524 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/qrcode/encoder/QRCode.java +239 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +63 -0
- data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/RhoLuminanceSource.java +75 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +74 -318
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +70 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/COPYING +27 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +105 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h +60 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImage.h +69 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h +51 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h +142 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +118 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +100 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +33 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h +71 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +1476 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +201 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Exception.h +187 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Image.h +321 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h +130 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Processor.h +223 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h +162 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +529 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Video.h +170 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Window.h +136 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/LICENSE +504 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/README +59 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-back.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-help.html +88 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-helpicons.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Resources/zbar-samples.png +0 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/libzbar.a +0 -0
- data/lib/extensions/debugger/debugger.rb +215 -67
- data/lib/extensions/nfc/ext/nfc/platform/android/AndroidManifest.xml +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/Nfc.java +14 -2
- data/lib/extensions/timeout/timeout.rb +114 -0
- data/lib/framework/rho/render.rb +14 -16
- data/lib/framework/rho/rho.rb +38 -14
- data/lib/framework/rho/rhoapplication.rb +1 -1
- data/lib/framework/rho/rhocontroller.rb +3 -3
- data/lib/framework/rho/rhofsconnector.rb +18 -6
- data/lib/framework/rho/rhoviewhelpers.rb +1 -1
- data/lib/framework/rhoappmanifest.rb +44 -0
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +31 -11
- data/lib/framework/rholang/localization_simplified.rb +10 -6
- data/lib/framework/rhom/rhom_object_factory.rb +3 -3
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +2 -2
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesApplication.h +32 -8
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_RhodesService.h +21 -21
- data/platform/android/Rhodes/jni/src/rhocryptimpl.cpp +1 -0
- data/platform/android/Rhodes/jni/src/rhodes.cpp +21 -9
- data/platform/android/Rhodes/jni/src/sslimpl.cpp +1 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/BaseActivity.java +7 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/PushReceiver.java +19 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoCryptImpl.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +24 -15
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesApplication.java +39 -47
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +113 -106
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/Alert.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/StatusNotification.java +49 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/socket/SSLImpl.java +5 -1
- data/platform/android/build/RhodesSRC_build.files +1 -0
- data/platform/android/build/android.rake +93 -6
- data/platform/bb/RubyVM/src/com/rho/RhodesApp.java +5 -4
- data/platform/bb/RubyVM/src/com/rho/file/RhoFile.java +10 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +16 -15
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +2 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +21 -19
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter5.java +2 -2
- data/platform/bb/rhodes/src/com/rho/rubyext/System.java +6 -1
- data/platform/bb/rhodes/src/com/rho/rubyext/WebView.java +10 -3
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +21 -1
- data/platform/iphone/Classes/SimpleMainView.m +5 -5
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/rbuild/iphone.rake +30 -1
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +12 -0
- data/platform/shared/SyncClient/SyncClient.cpp +136 -20
- data/platform/shared/SyncClient/SyncClient.h +17 -0
- data/platform/shared/common/AppMenu.cpp +6 -1
- data/platform/shared/common/RhoConf.cpp +13 -1
- data/platform/shared/common/RhoConf.h +3 -1
- data/platform/shared/common/RhoDefs.h +10 -0
- data/platform/shared/common/RhoFile.cpp +15 -0
- data/platform/shared/common/RhoFile.h +1 -0
- data/platform/shared/common/RhodesApp.cpp +16 -3
- data/platform/shared/common/RhodesApp.h +1 -0
- data/platform/shared/common/RhodesAppBase.cpp +102 -62
- data/platform/shared/common/RhodesAppBase.h +7 -1
- data/platform/shared/curl/lib/rhossl.c +1 -0
- data/platform/shared/db/DBAdapter.cpp +14 -2
- data/platform/shared/logging/RhoLogConf.cpp +21 -0
- data/platform/shared/logging/RhoLogConf.h +11 -0
- data/platform/shared/logging/RhoLogSink.cpp +24 -0
- data/platform/shared/logging/RhoLogSink.h +20 -1
- data/platform/shared/net/HttpServer.cpp +8 -6
- data/platform/shared/net/RawSocket.cpp +130 -0
- data/platform/shared/net/RawSocket.h +74 -0
- data/platform/shared/ruby/ext/rho/rhoruby.c +37 -1
- data/platform/shared/ruby/ext/rho/rhosupport.c +74 -21
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +9 -1
- data/platform/shared/ruby/vm_eval.c +4 -3
- data/platform/shared/sync/SyncEngine.cpp +11 -12
- data/platform/shared/sync/SyncEngine.h +2 -2
- data/platform/shared/sync/SyncNotify.cpp +41 -13
- data/platform/shared/sync/SyncNotify.h +20 -3
- data/platform/shared/sync/SyncSource.cpp +21 -19
- data/platform/shared/sync/SyncThread.cpp +11 -1
- data/platform/shared/sync/SyncThread.h +3 -0
- data/platform/shared/test/test_helper.cpp +7 -0
- data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
- data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
- data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
- data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
- data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
- data/platform/win32/RhoSimulator/rhosimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +762 -14
- data/platform/wm/build/wm.rake +87 -10
- data/platform/wm/rhodes.sln +155 -72
- data/platform/wm/rhodes/MainWindow.cpp +5 -2
- data/platform/wm/rhodes/MainWindow.h +9 -1
- data/platform/wm/rhodes/RhoNativeViewManager.cpp +4 -0
- data/platform/wm/rhodes/Rhodes.cpp +60 -6
- data/platform/wm/rhodes/emulator/ExternalWebView.cpp +20 -0
- data/platform/wm/rhodes/emulator/ExternalWebView.h +23 -0
- data/platform/wm/rhodes/emulator/ExternalWebView.ui +46 -0
- data/platform/wm/rhodes/emulator/MainWindowCallback.h +18 -0
- data/platform/wm/rhodes/emulator/MainWindowProxy.cpp +268 -0
- data/platform/wm/rhodes/emulator/MainWindowProxy.h +34 -0
- data/platform/wm/rhodes/emulator/MainWindowQt.cpp +345 -0
- data/platform/wm/rhodes/emulator/MainWindowQt.h +118 -0
- data/platform/wm/rhodes/emulator/NativeToolbarQt.cpp +57 -0
- data/platform/wm/rhodes/emulator/NativeToolbarQt.h +52 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.cpp +219 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.h +62 -0
- data/platform/wm/rhodes/emulator/QtMainWindow.ui +122 -0
- data/platform/wm/rhodes/{RhoCryptImpl.cpp → rho/common/RhoCryptImpl.cpp} +0 -0
- data/platform/wm/rhodes/{RhoCryptImpl.h → rho/common/RhoCryptImpl.h} +0 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +2 -86
- data/platform/wm/rhodes/rho/rubyext/NativeToolbarExt.cpp +87 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbarExt.h +6 -0
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +60 -0
- data/platform/wm/rhodes/rhodes.vcproj +4025 -365
- data/platform/wm/rhodes/signature/Signature.cpp +29 -13
- data/platform/wm/rubylib/rubylib.vcproj +1167 -195
- data/platform/wm/shttpd/shttpd.vcproj +4 -4
- data/platform/wm/sqlite3/sqlite3.vcproj +441 -13
- data/platform/wm/syncengine/syncengine.vcproj +443 -15
- data/platform/wm/tcmalloc/tcmalloc.vcproj +0 -154
- data/platform/wm/tools/detool/LogServer.cpp +150 -0
- data/platform/wm/tools/detool/LogServer.h +23 -0
- data/platform/wm/tools/detool/detool.cpp +42 -4
- data/platform/wm/tools/detool/detool.vcproj +10 -1
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Dynamic.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Scripting.Core.dll +0 -0
- data/platform/wp7/IronRuby/Bin/Silverlight3Release/Microsoft.Scripting.dll +0 -0
- data/platform/wp7/RhoAppRunner/Program.cs +20 -3
- data/platform/wp7/RhoLogServer/Program.cs +22 -0
- data/platform/wp7/RhoLogServer/Properties/AssemblyInfo.cs +36 -0
- data/platform/wp7/RhoLogServer/RhoLogServer.csproj +65 -0
- data/platform/wp7/RhoLogServer/SocketServer.cs +210 -0
- data/platform/wp7/RhoRubyExtGen/RhoAsyncHttp.cs +6 -0
- data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +3 -2
- data/platform/wp7/RhoRubyLib/RhoRuby.cs +82 -0
- data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +7 -5
- data/platform/wp7/RhoRubyLib/WP_PlatformAdaptationLayer.cs +1 -1
- data/platform/wp7/RhoRubyLib/common/RhoParams.cs +1 -1
- data/platform/wp7/RhoRubyLib/common/ThreadQueue.cs +4 -1
- data/platform/wp7/RhoRubyLib/db/DBAdapter.cs +2 -2
- data/platform/wp7/RhoRubyLib/logging/IRhoLogSink.cs +1 -1
- data/platform/wp7/RhoRubyLib/logging/RhoEmptyLogger.cs +30 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogConf.cs +10 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogFileSink.cs +6 -1
- data/platform/wp7/RhoRubyLib/logging/RhoLogServerSink.cs +56 -0
- data/platform/wp7/RhoRubyLib/logging/RhoLogger.cs +24 -11
- data/platform/wp7/RhoRubyLib/net/AsyncHttp.cs +57 -14
- data/platform/wp7/RhoRubyLib/net/NetRequest.cs +32 -9
- data/platform/wp7/RhoRubyLib/rubyext/RhoAsyncHttp.cs +7 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoKernelOps.cs +6 -0
- data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +20 -16
- data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +2 -2
- data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +138 -40
- data/platform/wp7/WPApplication/rho/apps/app/layout.erb +3 -1
- data/platform/wp7/build/wp.rake +151 -12
- data/platform/wp7/rhodes.sln +10 -0
- data/platform/wp7/rhodes/App.xaml.cs +6 -0
- data/platform/wp7/rhodes/MainPage.xaml +3 -0
- data/platform/wp7/rhodes/MainPage.xaml.cs +19 -0
- data/platform/wp7/rhodes/Rhodes.csproj +4 -2
- data/rakefile.rb +7 -36
- data/res/build-tools/RhoAppRunner.exe +0 -0
- data/res/build-tools/RhoLogServer.exe +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/wp7explorer.exe +0 -0
- data/res/generators/templates/application/app/layout.erb +3 -1
- data/res/generators/templates/application/public/jqtouch/jqtouch.js +1 -1
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/layout.erb +1 -1
- data/spec/framework_spec/build.yml +1 -0
- data/spec/perfomance_spec/app/layout.erb +3 -0
- data/spec/phone_spec/app/Account_s/account_s.rb +4 -1
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +30 -1
- data/spec/phone_spec/app/spec_runner.rb +1 -1
- data/spec/phone_spec/build.yml +4 -1
- metadata +262 -10
- data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Builtins/ConsoleStream.cs +0 -107
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2007 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
package com.google.zxing.client.result;
|
|
18
|
+
|
|
19
|
+
import com.google.zxing.Result;
|
|
20
|
+
|
|
21
|
+
import java.util.Hashtable;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Represents a result that encodes an e-mail address, either as a plain address
|
|
25
|
+
* like "joe@example.org" or a mailto: URL like "mailto:joe@example.org".
|
|
26
|
+
*
|
|
27
|
+
* @author Sean Owen
|
|
28
|
+
*/
|
|
29
|
+
final class EmailAddressResultParser extends ResultParser {
|
|
30
|
+
|
|
31
|
+
public static EmailAddressParsedResult parse(Result result) {
|
|
32
|
+
String rawText = result.getText();
|
|
33
|
+
if (rawText == null) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
String emailAddress;
|
|
37
|
+
if (rawText.startsWith("mailto:") || rawText.startsWith("MAILTO:")) {
|
|
38
|
+
// If it starts with mailto:, assume it is definitely trying to be an email address
|
|
39
|
+
emailAddress = rawText.substring(7);
|
|
40
|
+
int queryStart = emailAddress.indexOf('?');
|
|
41
|
+
if (queryStart >= 0) {
|
|
42
|
+
emailAddress = emailAddress.substring(0, queryStart);
|
|
43
|
+
}
|
|
44
|
+
Hashtable nameValues = parseNameValuePairs(rawText);
|
|
45
|
+
String subject = null;
|
|
46
|
+
String body = null;
|
|
47
|
+
if (nameValues != null) {
|
|
48
|
+
if (emailAddress.length() == 0) {
|
|
49
|
+
emailAddress = (String) nameValues.get("to");
|
|
50
|
+
}
|
|
51
|
+
subject = (String) nameValues.get("subject");
|
|
52
|
+
body = (String) nameValues.get("body");
|
|
53
|
+
}
|
|
54
|
+
return new EmailAddressParsedResult(emailAddress, subject, body, rawText);
|
|
55
|
+
} else {
|
|
56
|
+
if (!EmailDoCoMoResultParser.isBasicallyValidEmailAddress(rawText)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
emailAddress = rawText;
|
|
60
|
+
return new EmailAddressParsedResult(emailAddress, null, null, "mailto:" + emailAddress);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2007 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
package com.google.zxing.client.result;
|
|
18
|
+
|
|
19
|
+
import com.google.zxing.Result;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Implements the "MATMSG" email message entry format.
|
|
23
|
+
*
|
|
24
|
+
* Supported keys: TO, SUB, BODY
|
|
25
|
+
*
|
|
26
|
+
* @author Sean Owen
|
|
27
|
+
*/
|
|
28
|
+
final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser {
|
|
29
|
+
|
|
30
|
+
private static final char[] ATEXT_SYMBOLS =
|
|
31
|
+
{'@','.','!','#','$','%','&','\'','*','+','-','/','=','?','^','_','`','{','|','}','~'};
|
|
32
|
+
|
|
33
|
+
public static EmailAddressParsedResult parse(Result result) {
|
|
34
|
+
String rawText = result.getText();
|
|
35
|
+
if (rawText == null || !rawText.startsWith("MATMSG:")) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
String[] rawTo = matchDoCoMoPrefixedField("TO:", rawText, true);
|
|
39
|
+
if (rawTo == null) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
String to = rawTo[0];
|
|
43
|
+
if (!isBasicallyValidEmailAddress(to)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
String subject = matchSingleDoCoMoPrefixedField("SUB:", rawText, false);
|
|
47
|
+
String body = matchSingleDoCoMoPrefixedField("BODY:", rawText, false);
|
|
48
|
+
return new EmailAddressParsedResult(to, subject, body, "mailto:" + to);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* This implements only the most basic checking for an email address's validity -- that it contains
|
|
53
|
+
* an '@' contains no characters disallowed by RFC 2822. This is an overly lenient definition of
|
|
54
|
+
* validity. We want to generally be lenient here since this class is only intended to encapsulate what's
|
|
55
|
+
* in a barcode, not "judge" it.
|
|
56
|
+
*/
|
|
57
|
+
static boolean isBasicallyValidEmailAddress(String email) {
|
|
58
|
+
if (email == null) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
boolean atFound = false;
|
|
62
|
+
for (int i = 0; i < email.length(); i++) {
|
|
63
|
+
char c = email.charAt(i);
|
|
64
|
+
if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') &&
|
|
65
|
+
!isAtextSymbol(c)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (c == '@') {
|
|
69
|
+
if (atFound) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
atFound = true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return atFound;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private static boolean isAtextSymbol(char c) {
|
|
79
|
+
for (int i = 0; i < ATEXT_SYMBOLS.length; i++) {
|
|
80
|
+
if (c == ATEXT_SYMBOLS[i]) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2010 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* These authors would like to acknowledge the Spanish Ministry of Industry,
|
|
19
|
+
* Tourism and Trade, for the support in the project TSI020301-2008-2
|
|
20
|
+
* "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled
|
|
21
|
+
* Mobile Dynamic Environments", led by Treelogic
|
|
22
|
+
* ( http://www.treelogic.com/ ):
|
|
23
|
+
*
|
|
24
|
+
* http://www.piramidepse.com/
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
package com.google.zxing.client.result;
|
|
28
|
+
|
|
29
|
+
import java.util.Hashtable;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @author Antonio Manuel Benjumea Conde, Servinform, S.A.
|
|
33
|
+
* @author Agustín Delgado, Servinform, S.A.
|
|
34
|
+
*/
|
|
35
|
+
public class ExpandedProductParsedResult extends ParsedResult {
|
|
36
|
+
|
|
37
|
+
public static final String KILOGRAM = "KG";
|
|
38
|
+
public static final String POUND = "LB";
|
|
39
|
+
|
|
40
|
+
private final String productID;
|
|
41
|
+
private final String sscc;
|
|
42
|
+
private final String lotNumber;
|
|
43
|
+
private final String productionDate;
|
|
44
|
+
private final String packagingDate;
|
|
45
|
+
private final String bestBeforeDate;
|
|
46
|
+
private final String expirationDate;
|
|
47
|
+
private final String weight;
|
|
48
|
+
private final String weightType;
|
|
49
|
+
private final String weightIncrement;
|
|
50
|
+
private final String price;
|
|
51
|
+
private final String priceIncrement;
|
|
52
|
+
private final String priceCurrency;
|
|
53
|
+
// For AIS that not exist in this object
|
|
54
|
+
private final Hashtable uncommonAIs;
|
|
55
|
+
|
|
56
|
+
ExpandedProductParsedResult() {
|
|
57
|
+
super(ParsedResultType.PRODUCT);
|
|
58
|
+
this.productID = "";
|
|
59
|
+
this.sscc = "";
|
|
60
|
+
this.lotNumber = "";
|
|
61
|
+
this.productionDate = "";
|
|
62
|
+
this.packagingDate = "";
|
|
63
|
+
this.bestBeforeDate = "";
|
|
64
|
+
this.expirationDate = "";
|
|
65
|
+
this.weight = "";
|
|
66
|
+
this.weightType = "";
|
|
67
|
+
this.weightIncrement = "";
|
|
68
|
+
this.price = "";
|
|
69
|
+
this.priceIncrement = "";
|
|
70
|
+
this.priceCurrency = "";
|
|
71
|
+
this.uncommonAIs = new Hashtable();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public ExpandedProductParsedResult(String productID, String sscc,
|
|
75
|
+
String lotNumber, String productionDate, String packagingDate,
|
|
76
|
+
String bestBeforeDate, String expirationDate, String weight,
|
|
77
|
+
String weightType, String weightIncrement, String price,
|
|
78
|
+
String priceIncrement, String priceCurrency, Hashtable uncommonAIs) {
|
|
79
|
+
super(ParsedResultType.PRODUCT);
|
|
80
|
+
this.productID = productID;
|
|
81
|
+
this.sscc = sscc;
|
|
82
|
+
this.lotNumber = lotNumber;
|
|
83
|
+
this.productionDate = productionDate;
|
|
84
|
+
this.packagingDate = packagingDate;
|
|
85
|
+
this.bestBeforeDate = bestBeforeDate;
|
|
86
|
+
this.expirationDate = expirationDate;
|
|
87
|
+
this.weight = weight;
|
|
88
|
+
this.weightType = weightType;
|
|
89
|
+
this.weightIncrement = weightIncrement;
|
|
90
|
+
this.price = price;
|
|
91
|
+
this.priceIncrement = priceIncrement;
|
|
92
|
+
this.priceCurrency = priceCurrency;
|
|
93
|
+
this.uncommonAIs = uncommonAIs;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public boolean equals(Object o){
|
|
97
|
+
if (!(o instanceof ExpandedProductParsedResult)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
ExpandedProductParsedResult other = (ExpandedProductParsedResult)o;
|
|
102
|
+
|
|
103
|
+
return this.productID.equals( other.productID)
|
|
104
|
+
&& this.sscc.equals( other.sscc)
|
|
105
|
+
&& this.lotNumber.equals( other.lotNumber)
|
|
106
|
+
&& this.productionDate.equals( other.productionDate)
|
|
107
|
+
&& this.bestBeforeDate.equals( other.bestBeforeDate)
|
|
108
|
+
&& this.expirationDate.equals( other.expirationDate)
|
|
109
|
+
&& this.weight.equals( other.weight)
|
|
110
|
+
&& this.weightType.equals( other.weightType)
|
|
111
|
+
&& this.weightIncrement.equals( other.weightIncrement)
|
|
112
|
+
&& this.price.equals( other.price)
|
|
113
|
+
&& this.priceIncrement.equals( other.priceIncrement)
|
|
114
|
+
&& this.priceCurrency.equals( other.priceCurrency)
|
|
115
|
+
&& this.uncommonAIs.equals( other.uncommonAIs);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
public int hashCode(){
|
|
119
|
+
int hash1 = this.productID.hashCode();
|
|
120
|
+
hash1 = 31 * hash1 + this.sscc.hashCode();
|
|
121
|
+
hash1 = 31 * hash1 + this.lotNumber.hashCode();
|
|
122
|
+
hash1 = 31 * hash1 + this.productionDate.hashCode();
|
|
123
|
+
hash1 = 31 * hash1 + this.bestBeforeDate.hashCode();
|
|
124
|
+
hash1 = 31 * hash1 + this.expirationDate.hashCode();
|
|
125
|
+
hash1 = 31 * hash1 + this.weight.hashCode();
|
|
126
|
+
|
|
127
|
+
int hash2 = this.weightType.hashCode();
|
|
128
|
+
hash2 = 31 * hash2 + this.weightIncrement.hashCode();
|
|
129
|
+
hash2 = 31 * hash2 + this.price.hashCode();
|
|
130
|
+
hash2 = 31 * hash2 + this.priceIncrement.hashCode();
|
|
131
|
+
hash2 = 31 * hash2 + this.priceCurrency.hashCode();
|
|
132
|
+
hash2 = 31 * hash2 + this.uncommonAIs.hashCode();
|
|
133
|
+
return hash1 ^ hash2;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
public String getProductID() {
|
|
137
|
+
return productID;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
public String getSscc() {
|
|
141
|
+
return sscc;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
public String getLotNumber() {
|
|
145
|
+
return lotNumber;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
public String getProductionDate() {
|
|
149
|
+
return productionDate;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
public String getPackagingDate() {
|
|
153
|
+
return packagingDate;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
public String getBestBeforeDate() {
|
|
157
|
+
return bestBeforeDate;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
public String getExpirationDate() {
|
|
161
|
+
return expirationDate;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
public String getWeight() {
|
|
165
|
+
return weight;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public String getWeightType() {
|
|
169
|
+
return weightType;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
public String getWeightIncrement() {
|
|
173
|
+
return weightIncrement;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
public String getPrice() {
|
|
177
|
+
return price;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
public String getPriceIncrement() {
|
|
181
|
+
return priceIncrement;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
public String getPriceCurrency() {
|
|
185
|
+
return priceCurrency;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
public Hashtable getUncommonAIs() {
|
|
189
|
+
return uncommonAIs;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
public String getDisplayResult() {
|
|
193
|
+
return productID;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) 2010 ZXing authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* These authors would like to acknowledge the Spanish Ministry of Industry,
|
|
19
|
+
* Tourism and Trade, for the support in the project TSI020301-2008-2
|
|
20
|
+
* "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled
|
|
21
|
+
* Mobile Dynamic Environments", led by Treelogic
|
|
22
|
+
* ( http://www.treelogic.com/ ):
|
|
23
|
+
*
|
|
24
|
+
* http://www.piramidepse.com/
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
package com.google.zxing.client.result;
|
|
28
|
+
|
|
29
|
+
import java.util.Hashtable;
|
|
30
|
+
|
|
31
|
+
import com.google.zxing.BarcodeFormat;
|
|
32
|
+
import com.google.zxing.Result;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Parses strings of digits that represent a RSS Extended code.
|
|
36
|
+
*
|
|
37
|
+
* @author Antonio Manuel Benjumea Conde, Servinform, S.A.
|
|
38
|
+
* @author Agustín Delgado, Servinform, S.A.
|
|
39
|
+
*/
|
|
40
|
+
final class ExpandedProductResultParser extends ResultParser {
|
|
41
|
+
|
|
42
|
+
private ExpandedProductResultParser() {
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Treat all RSS EXPANDED, in the sense that they are all
|
|
46
|
+
// product barcodes with complementary data.
|
|
47
|
+
public static ExpandedProductParsedResult parse(Result result) {
|
|
48
|
+
BarcodeFormat format = result.getBarcodeFormat();
|
|
49
|
+
if (!(BarcodeFormat.RSS_EXPANDED.equals(format))) {
|
|
50
|
+
// ExtendedProductParsedResult NOT created. Not a RSS Expanded barcode
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
// Really neither of these should happen:
|
|
54
|
+
String rawText = result.getText();
|
|
55
|
+
if (rawText == null) {
|
|
56
|
+
// ExtendedProductParsedResult NOT created. Input text is NULL
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
String productID = "-";
|
|
61
|
+
String sscc = "-";
|
|
62
|
+
String lotNumber = "-";
|
|
63
|
+
String productionDate = "-";
|
|
64
|
+
String packagingDate = "-";
|
|
65
|
+
String bestBeforeDate = "-";
|
|
66
|
+
String expirationDate = "-";
|
|
67
|
+
String weight = "-";
|
|
68
|
+
String weightType = "-";
|
|
69
|
+
String weightIncrement = "-";
|
|
70
|
+
String price = "-";
|
|
71
|
+
String priceIncrement = "-";
|
|
72
|
+
String priceCurrency = "-";
|
|
73
|
+
Hashtable uncommonAIs = new Hashtable();
|
|
74
|
+
|
|
75
|
+
int i = 0;
|
|
76
|
+
|
|
77
|
+
while (i < rawText.length()) {
|
|
78
|
+
String ai = findAIvalue(i, rawText);
|
|
79
|
+
if ("ERROR".equals(ai)) {
|
|
80
|
+
// Error. Code doesn't match with RSS expanded pattern
|
|
81
|
+
// ExtendedProductParsedResult NOT created. Not match with RSS Expanded pattern
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
i += ai.length() + 2;
|
|
85
|
+
String value = findValue(i, rawText);
|
|
86
|
+
i += value.length();
|
|
87
|
+
|
|
88
|
+
if ("00".equals(ai)) {
|
|
89
|
+
sscc = value;
|
|
90
|
+
} else if ("01".equals(ai)) {
|
|
91
|
+
productID = value;
|
|
92
|
+
} else if ("10".equals(ai)) {
|
|
93
|
+
lotNumber = value;
|
|
94
|
+
} else if ("11".equals(ai)) {
|
|
95
|
+
productionDate = value;
|
|
96
|
+
} else if ("13".equals(ai)) {
|
|
97
|
+
packagingDate = value;
|
|
98
|
+
} else if ("15".equals(ai)) {
|
|
99
|
+
bestBeforeDate = value;
|
|
100
|
+
} else if ("17".equals(ai)) {
|
|
101
|
+
expirationDate = value;
|
|
102
|
+
} else if ("3100".equals(ai) || "3101".equals(ai)
|
|
103
|
+
|| "3102".equals(ai) || "3103".equals(ai)
|
|
104
|
+
|| "3104".equals(ai) || "3105".equals(ai)
|
|
105
|
+
|| "3106".equals(ai) || "3107".equals(ai)
|
|
106
|
+
|| "3108".equals(ai) || "3109".equals(ai)) {
|
|
107
|
+
weight = value;
|
|
108
|
+
weightType = ExpandedProductParsedResult.KILOGRAM;
|
|
109
|
+
weightIncrement = ai.substring(3);
|
|
110
|
+
} else if ("3200".equals(ai) || "3201".equals(ai)
|
|
111
|
+
|| "3202".equals(ai) || "3203".equals(ai)
|
|
112
|
+
|| "3204".equals(ai) || "3205".equals(ai)
|
|
113
|
+
|| "3206".equals(ai) || "3207".equals(ai)
|
|
114
|
+
|| "3208".equals(ai) || "3209".equals(ai)) {
|
|
115
|
+
weight = value;
|
|
116
|
+
weightType = ExpandedProductParsedResult.POUND;
|
|
117
|
+
weightIncrement = ai.substring(3);
|
|
118
|
+
} else if ("3920".equals(ai) || "3921".equals(ai)
|
|
119
|
+
|| "3922".equals(ai) || "3923".equals(ai)) {
|
|
120
|
+
price = value;
|
|
121
|
+
priceIncrement = ai.substring(3);
|
|
122
|
+
} else if ("3930".equals(ai) || "3931".equals(ai)
|
|
123
|
+
|| "3932".equals(ai) || "3933".equals(ai)) {
|
|
124
|
+
if (value.length() < 4) {
|
|
125
|
+
// The value must have more of 3 symbols (3 for currency and
|
|
126
|
+
// 1 at least for the price)
|
|
127
|
+
// ExtendedProductParsedResult NOT created. Not match with RSS Expanded pattern
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
price = value.substring(3);
|
|
131
|
+
priceCurrency = value.substring(0, 3);
|
|
132
|
+
priceIncrement = ai.substring(3);
|
|
133
|
+
} else {
|
|
134
|
+
// No match with common AIs
|
|
135
|
+
uncommonAIs.put(ai, value);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return new ExpandedProductParsedResult(productID, sscc, lotNumber,
|
|
140
|
+
productionDate, packagingDate, bestBeforeDate, expirationDate,
|
|
141
|
+
weight, weightType, weightIncrement, price, priceIncrement,
|
|
142
|
+
priceCurrency, uncommonAIs);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private static String findAIvalue(int i, String rawText) {
|
|
146
|
+
StringBuffer buf = new StringBuffer();
|
|
147
|
+
char c = rawText.charAt(i);
|
|
148
|
+
// First character must be a open parenthesis.If not, ERROR
|
|
149
|
+
if (c != '(') {
|
|
150
|
+
return "ERROR";
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
String rawTextAux = rawText.substring(i + 1);
|
|
154
|
+
|
|
155
|
+
for (int index = 0; index < rawTextAux.length(); index++) {
|
|
156
|
+
char currentChar = rawTextAux.charAt(index);
|
|
157
|
+
switch (currentChar){
|
|
158
|
+
case '0':
|
|
159
|
+
case '1':
|
|
160
|
+
case '2':
|
|
161
|
+
case '3':
|
|
162
|
+
case '4':
|
|
163
|
+
case '5':
|
|
164
|
+
case '6':
|
|
165
|
+
case '7':
|
|
166
|
+
case '8':
|
|
167
|
+
case '9':
|
|
168
|
+
buf.append(currentChar);
|
|
169
|
+
break;
|
|
170
|
+
case ')':
|
|
171
|
+
return buf.toString();
|
|
172
|
+
default:
|
|
173
|
+
return "ERROR";
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return buf.toString();
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
private static String findValue(int i, String rawText) {
|
|
180
|
+
StringBuffer buf = new StringBuffer();
|
|
181
|
+
String rawTextAux = rawText.substring(i);
|
|
182
|
+
|
|
183
|
+
for (int index = 0; index < rawTextAux.length(); index++) {
|
|
184
|
+
char c = rawTextAux.charAt(index);
|
|
185
|
+
if (c == '(') {
|
|
186
|
+
// We look for a new AI. If it doesn't exist (ERROR), we coninue
|
|
187
|
+
// with the iteration
|
|
188
|
+
if ("ERROR".equals(findAIvalue(index, rawTextAux))) {
|
|
189
|
+
buf.append('(');
|
|
190
|
+
} else {
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
} else {
|
|
194
|
+
buf.append(c);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return buf.toString();
|
|
198
|
+
}
|
|
199
|
+
}
|