.class public final Lcom/google/zxing/multi/qrcode/QRCodeMultiReader; .super Lcom/google/zxing/qrcode/QRCodeReader; .source "QRCodeMultiReader.java" # interfaces .implements Lcom/google/zxing/multi/MultipleBarcodeReader; # static fields .field private static final EMPTY_RESULT_ARRAY:[Lcom/google/zxing/Result; # direct methods .method public static constructor ()V .locals 1 const/4 v0, 0x0 new-array v0, v0, [Lcom/google/zxing/Result; .line 1 sput-object v0, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->EMPTY_RESULT_ARRAY:[Lcom/google/zxing/Result; return-void .end method .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Lcom/google/zxing/qrcode/QRCodeReader;->()V return-void .end method # virtual methods .method public decodeMultiple(Lcom/google/zxing/BinaryBitmap;)[Lcom/google/zxing/Result; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation const/4 v0, 0x0 .line 1 invoke-virtual {p0, p1, v0}, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->decodeMultiple(Lcom/google/zxing/BinaryBitmap;Ljava/util/Map;)[Lcom/google/zxing/Result; move-result-object p1 return-object p1 .end method .method public decodeMultiple(Lcom/google/zxing/BinaryBitmap;Ljava/util/Map;)[Lcom/google/zxing/Result; .locals 9 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/google/zxing/BinaryBitmap;", "Ljava/util/Map<", "Lcom/google/zxing/DecodeHintType;", "*>;)[", "Lcom/google/zxing/Result;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation .line 2 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V .line 3 new-instance v1, Lcom/google/zxing/multi/qrcode/detector/MultiDetector; invoke-virtual {p1}, Lcom/google/zxing/BinaryBitmap;->getBlackMatrix()Lcom/google/zxing/common/BitMatrix; move-result-object p1 invoke-direct {v1, p1}, Lcom/google/zxing/multi/qrcode/detector/MultiDetector;->(Lcom/google/zxing/common/BitMatrix;)V invoke-virtual {v1, p2}, Lcom/google/zxing/multi/qrcode/detector/MultiDetector;->detectMulti(Ljava/util/Map;)[Lcom/google/zxing/common/DetectorResult; move-result-object p1 .line 4 array-length v1, p1 const/4 v2, 0x0 :goto_0 if-lt v2, v1, :cond_1 .line 5 invoke-virtual {v0}, Ljava/util/ArrayList;->isEmpty()Z move-result p1 if-eqz p1, :cond_0 .line 6 sget-object p1, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->EMPTY_RESULT_ARRAY:[Lcom/google/zxing/Result; return-object p1 .line 7 :cond_0 invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result p1 new-array p1, p1, [Lcom/google/zxing/Result; invoke-virtual {v0, p1}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object; move-result-object p1 check-cast p1, [Lcom/google/zxing/Result; return-object p1 .line 8 :cond_1 aget-object v3, p1, v2 .line 9 :try_start_0 invoke-virtual {p0}, Lcom/google/zxing/qrcode/QRCodeReader;->getDecoder()Lcom/google/zxing/qrcode/decoder/Decoder; move-result-object v4 invoke-virtual {v3}, Lcom/google/zxing/common/DetectorResult;->getBits()Lcom/google/zxing/common/BitMatrix; move-result-object v5 invoke-virtual {v4, v5, p2}, Lcom/google/zxing/qrcode/decoder/Decoder;->decode(Lcom/google/zxing/common/BitMatrix;Ljava/util/Map;)Lcom/google/zxing/common/DecoderResult; move-result-object v4 .line 10 invoke-virtual {v3}, Lcom/google/zxing/common/DetectorResult;->getPoints()[Lcom/google/zxing/ResultPoint; move-result-object v3 .line 11 new-instance v5, Lcom/google/zxing/Result; invoke-virtual {v4}, Lcom/google/zxing/common/DecoderResult;->getText()Ljava/lang/String; move-result-object v6 invoke-virtual {v4}, Lcom/google/zxing/common/DecoderResult;->getRawBytes()[B move-result-object v7 .line 12 sget-object v8, Lcom/google/zxing/BarcodeFormat;->QR_CODE:Lcom/google/zxing/BarcodeFormat; .line 13 invoke-direct {v5, v6, v7, v3, v8}, Lcom/google/zxing/Result;->(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V .line 14 invoke-virtual {v4}, Lcom/google/zxing/common/DecoderResult;->getByteSegments()Ljava/util/List; move-result-object v3 if-eqz v3, :cond_2 .line 15 sget-object v6, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType; invoke-virtual {v5, v6, v3}, Lcom/google/zxing/Result;->putMetadata(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V .line 16 :cond_2 invoke-virtual {v4}, Lcom/google/zxing/common/DecoderResult;->getECLevel()Ljava/lang/String; move-result-object v3 if-eqz v3, :cond_3 .line 17 sget-object v4, Lcom/google/zxing/ResultMetadataType;->ERROR_CORRECTION_LEVEL:Lcom/google/zxing/ResultMetadataType; invoke-virtual {v5, v4, v3}, Lcom/google/zxing/Result;->putMetadata(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V .line 18 :cond_3 invoke-virtual {v0, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z :try_end_0 .catch Lcom/google/zxing/ReaderException; {:try_start_0 .. :try_end_0} :catch_0 :catch_0 add-int/lit8 v2, v2, 0x1 goto :goto_0 .end method