.class public abstract Lcom/google/zxing/oned/UPCEANReader; .super Lcom/google/zxing/oned/OneDReader; .source "UPCEANReader.java" # static fields .field static final END_PATTERN:[I .field static final L_AND_G_PATTERNS:[[I .field static final L_PATTERNS:[[I .field private static final MAX_AVG_VARIANCE:F = 0.48f .field private static final MAX_INDIVIDUAL_VARIANCE:F = 0.7f .field static final MIDDLE_PATTERN:[I .field static final START_END_PATTERN:[I # instance fields .field private final decodeRowStringBuffer:Ljava/lang/StringBuilder; .field private final eanManSupport:Lcom/google/zxing/oned/EANManufacturerOrgSupport; .field private final extensionReader:Lcom/google/zxing/oned/UPCEANExtensionSupport; # direct methods .method static constructor ()V .locals 10 const/4 v0, 0x1 filled-new-array {v0, v0, v0}, [I move-result-object v1 sput-object v1, Lcom/google/zxing/oned/UPCEANReader;->START_END_PATTERN:[I filled-new-array {v0, v0, v0, v0, v0}, [I move-result-object v1 sput-object v1, Lcom/google/zxing/oned/UPCEANReader;->MIDDLE_PATTERN:[I const/4 v1, 0x6 new-array v2, v1, [I fill-array-data v2, :array_0 sput-object v2, Lcom/google/zxing/oned/UPCEANReader;->END_PATTERN:[I const/16 v2, 0xa new-array v3, v2, [[I const/4 v4, 0x3 const/4 v5, 0x2 filled-new-array {v4, v5, v0, v0}, [I move-result-object v6 const/4 v7, 0x0 aput-object v6, v3, v7 filled-new-array {v5, v5, v5, v0}, [I move-result-object v6 aput-object v6, v3, v0 filled-new-array {v5, v0, v5, v5}, [I move-result-object v6 aput-object v6, v3, v5 const/4 v6, 0x4 filled-new-array {v0, v6, v0, v0}, [I move-result-object v8 aput-object v8, v3, v4 filled-new-array {v0, v0, v4, v5}, [I move-result-object v8 aput-object v8, v3, v6 const/4 v8, 0x5 filled-new-array {v0, v5, v4, v0}, [I move-result-object v9 aput-object v9, v3, v8 filled-new-array {v0, v0, v0, v6}, [I move-result-object v6 aput-object v6, v3, v1 const/4 v1, 0x7 filled-new-array {v0, v4, v0, v5}, [I move-result-object v6 aput-object v6, v3, v1 const/16 v1, 0x8 filled-new-array {v0, v5, v0, v4}, [I move-result-object v6 aput-object v6, v3, v1 const/16 v1, 0x9 filled-new-array {v4, v0, v0, v5}, [I move-result-object v4 aput-object v4, v3, v1 sput-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_PATTERNS:[[I const/16 v1, 0x14 new-array v4, v1, [[I sput-object v4, Lcom/google/zxing/oned/UPCEANReader;->L_AND_G_PATTERNS:[[I .line 86 invoke-static {v3, v7, v4, v7, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :goto_0 if-ge v2, v1, :cond_1 sget-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_PATTERNS:[[I add-int/lit8 v4, v2, -0xa .line 88 aget-object v3, v3, v4 .line 89 array-length v4, v3 new-array v4, v4, [I move v5, v7 .line 90 :goto_1 array-length v6, v3 if-ge v5, v6, :cond_0 .line 91 array-length v6, v3 sub-int/2addr v6, v5 sub-int/2addr v6, v0 aget v6, v3, v6 aput v6, v4, v5 add-int/lit8 v5, v5, 0x1 goto :goto_1 :cond_0 sget-object v3, Lcom/google/zxing/oned/UPCEANReader;->L_AND_G_PATTERNS:[[I .line 93 aput-object v4, v3, v2 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 return-void nop :array_0 .array-data 4 0x1 0x1 0x1 0x1 0x1 0x1 .end array-data .end method .method protected constructor ()V .locals 2 .line 101 invoke-direct {p0}, Lcom/google/zxing/oned/OneDReader;->()V .line 102 new-instance v0, Ljava/lang/StringBuilder; const/16 v1, 0x14 invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(I)V iput-object v0, p0, Lcom/google/zxing/oned/UPCEANReader;->decodeRowStringBuffer:Ljava/lang/StringBuilder; .line 103 new-instance v0, Lcom/google/zxing/oned/UPCEANExtensionSupport; invoke-direct {v0}, Lcom/google/zxing/oned/UPCEANExtensionSupport;->()V iput-object v0, p0, Lcom/google/zxing/oned/UPCEANReader;->extensionReader:Lcom/google/zxing/oned/UPCEANExtensionSupport; .line 104 new-instance v0, Lcom/google/zxing/oned/EANManufacturerOrgSupport; invoke-direct {v0}, Lcom/google/zxing/oned/EANManufacturerOrgSupport;->()V iput-object v0, p0, Lcom/google/zxing/oned/UPCEANReader;->eanManSupport:Lcom/google/zxing/oned/EANManufacturerOrgSupport; return-void .end method .method static checkStandardUPCEANChecksum(Ljava/lang/CharSequence;)Z .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation .line 264 invoke-interface {p0}, Ljava/lang/CharSequence;->length()I move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 return v1 :cond_0 const/4 v2, 0x1 sub-int/2addr v0, v2 .line 268 invoke-interface {p0, v0}, Ljava/lang/CharSequence;->charAt(I)C move-result v3 const/16 v4, 0xa invoke-static {v3, v4}, Ljava/lang/Character;->digit(CI)I move-result v3 .line 269 invoke-interface {p0, v1, v0}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; move-result-object p0 invoke-static {p0}, Lcom/google/zxing/oned/UPCEANReader;->getStandardUPCEANChecksum(Ljava/lang/CharSequence;)I move-result p0 if-ne p0, v3, :cond_1 return v2 :cond_1 return v1 .end method .method static decodeDigit(Lcom/google/zxing/common/BitArray;[II[[I)I .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation .line 363 invoke-static {p0, p2, p1}, Lcom/google/zxing/oned/UPCEANReader;->recordPattern(Lcom/google/zxing/common/BitArray;I[I)V .line 366 array-length p0, p3 const p2, 0x3ef5c28f # 0.48f const/4 v0, -0x1 const/4 v1, 0x0 :goto_0 if-ge v1, p0, :cond_1 .line 368 aget-object v2, p3, v1 const v3, 0x3f333333 # 0.7f .line 369 invoke-static {p1, v2, v3}, Lcom/google/zxing/oned/UPCEANReader;->patternMatchVariance([I[IF)F move-result v2 cmpg-float v3, v2, p2 if-gez v3, :cond_0 move v0, v1 move p2, v2 :cond_0 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_1 if-ltz v0, :cond_2 return v0 .line 378 :cond_2 invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException; move-result-object p0 throw p0 .end method .method static findGuardPattern(Lcom/google/zxing/common/BitArray;IZ[I)[I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation .line 301 array-length v0, p3 new-array v0, v0, [I invoke-static {p0, p1, p2, p3, v0}, Lcom/google/zxing/oned/UPCEANReader;->findGuardPattern(Lcom/google/zxing/common/BitArray;IZ[I[I)[I move-result-object p0 return-object p0 .end method .method private static findGuardPattern(Lcom/google/zxing/common/BitArray;IZ[I[I)[I .locals 8 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation .line 320 invoke-virtual {p0}, Lcom/google/zxing/common/BitArray;->getSize()I move-result v0 if-eqz p2, :cond_0 .line 321 invoke-virtual {p0, p1}, Lcom/google/zxing/common/BitArray;->getNextUnset(I)I move-result p1 goto :goto_0 :cond_0 invoke-virtual {p0, p1}, Lcom/google/zxing/common/BitArray;->getNextSet(I)I move-result p1 .line 324 :goto_0 array-length v1, p3 const/4 v2, 0x0 move v3, p2 move v4, v2 move p2, p1 :goto_1 if-ge p1, v0, :cond_4 .line 327 invoke-virtual {p0, p1}, Lcom/google/zxing/common/BitArray;->get(I)Z move-result v5 const/4 v6, 0x1 if-eq v5, v3, :cond_1 .line 328 aget v5, p4, v4 add-int/2addr v5, v6 aput v5, p4, v4 goto :goto_3 :cond_1 add-int/lit8 v5, v1, -0x1 if-ne v4, v5, :cond_3 const v5, 0x3f333333 # 0.7f .line 331 invoke-static {p4, p3, v5}, Lcom/google/zxing/oned/UPCEANReader;->patternMatchVariance([I[IF)F move-result v5 const v7, 0x3ef5c28f # 0.48f cmpg-float v5, v5, v7 if-gez v5, :cond_2 filled-new-array {p2, p1}, [I move-result-object p0 return-object p0 .line 334 :cond_2 aget v5, p4, v2 aget v7, p4, v6 add-int/2addr v5, v7 add-int/2addr p2, v5 add-int/lit8 v5, v4, -0x1 const/4 v7, 0x2 .line 335 invoke-static {p4, v7, p4, v2, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 336 aput v2, p4, v5 .line 337 aput v2, p4, v4 add-int/lit8 v4, v4, -0x1 goto :goto_2 :cond_3 add-int/lit8 v4, v4, 0x1 .line 342 :goto_2 aput v6, p4, v4 xor-int/lit8 v3, v3, 0x1 :goto_3 add-int/lit8 p1, p1, 0x1 goto :goto_1 .line 346 :cond_4 invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException; move-result-object p0 throw p0 .end method .method static findStartGuardPattern(Lcom/google/zxing/common/BitArray;)[I .locals 7 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation sget-object v0, Lcom/google/zxing/oned/UPCEANReader;->START_END_PATTERN:[I .line 111 array-length v0, v0 new-array v0, v0, [I const/4 v1, 0x0 const/4 v2, 0x0 move v3, v1 move v4, v3 :goto_0 if-nez v3, :cond_1 sget-object v2, Lcom/google/zxing/oned/UPCEANReader;->START_END_PATTERN:[I .line 113 array-length v5, v2 invoke-static {v0, v1, v5, v1}, Ljava/util/Arrays;->fill([IIII)V .line 114 invoke-static {p0, v4, v1, v2, v0}, Lcom/google/zxing/oned/UPCEANReader;->findGuardPattern(Lcom/google/zxing/common/BitArray;IZ[I[I)[I move-result-object v2 .line 115 aget v4, v2, v1 const/4 v5, 0x1 .line 116 aget v5, v2, v5 sub-int v6, v5, v4 sub-int v6, v4, v6 if-ltz v6, :cond_0 .line 122 invoke-virtual {p0, v6, v4, v1}, Lcom/google/zxing/common/BitArray;->isRange(IIZ)Z move-result v3 :cond_0 move v4, v5 goto :goto_0 :cond_1 return-object v2 .end method .method static getStandardUPCEANChecksum(Ljava/lang/CharSequence;)I .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation .line 273 invoke-interface {p0}, Ljava/lang/CharSequence;->length()I move-result v0 add-int/lit8 v1, v0, -0x1 const/4 v2, 0x0 :goto_0 const/16 v3, 0x9 if-ltz v1, :cond_1 .line 276 invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C move-result v4 add-int/lit8 v4, v4, -0x30 if-ltz v4, :cond_0 if-gt v4, v3, :cond_0 add-int/2addr v2, v4 add-int/lit8 v1, v1, -0x2 goto :goto_0 .line 278 :cond_0 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :cond_1 mul-int/lit8 v2, v2, 0x3 add-int/lit8 v0, v0, -0x2 :goto_1 if-ltz v0, :cond_3 .line 284 invoke-interface {p0, v0}, Ljava/lang/CharSequence;->charAt(I)C move-result v1 add-int/lit8 v1, v1, -0x30 if-ltz v1, :cond_2 if-gt v1, v3, :cond_2 add-int/2addr v2, v1 add-int/lit8 v0, v0, -0x2 goto :goto_1 .line 286 :cond_2 invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 :cond_3 rsub-int p0, v2, 0x3e8 .line 290 rem-int/lit8 p0, p0, 0xa return p0 .end method # virtual methods .method checkChecksum(Ljava/lang/String;)Z .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/FormatException; } .end annotation .line 252 invoke-static {p1}, Lcom/google/zxing/oned/UPCEANReader;->checkStandardUPCEANChecksum(Ljava/lang/CharSequence;)Z move-result p0 return p0 .end method .method decodeEnd(Lcom/google/zxing/common/BitArray;I)[I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation const/4 p0, 0x0 sget-object v0, Lcom/google/zxing/oned/UPCEANReader;->START_END_PATTERN:[I .line 294 invoke-static {p1, p2, p0, v0}, Lcom/google/zxing/oned/UPCEANReader;->findGuardPattern(Lcom/google/zxing/common/BitArray;IZ[I)[I move-result-object p0 return-object p0 .end method .method protected abstract decodeMiddle(Lcom/google/zxing/common/BitArray;[ILjava/lang/StringBuilder;)I .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException; } .end annotation .end method .method public decodeRow(ILcom/google/zxing/common/BitArray;Ljava/util/Map;)Lcom/google/zxing/Result; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(I", "Lcom/google/zxing/common/BitArray;", "Ljava/util/Map<", "Lcom/google/zxing/DecodeHintType;", "*>;)", "Lcom/google/zxing/Result;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException;, Lcom/google/zxing/ChecksumException;, Lcom/google/zxing/FormatException; } .end annotation .line 131 invoke-static {p2}, Lcom/google/zxing/oned/UPCEANReader;->findStartGuardPattern(Lcom/google/zxing/common/BitArray;)[I move-result-object v0 invoke-virtual {p0, p1, p2, v0, p3}, Lcom/google/zxing/oned/UPCEANReader;->decodeRow(ILcom/google/zxing/common/BitArray;[ILjava/util/Map;)Lcom/google/zxing/Result; move-result-object p0 return-object p0 .end method .method public decodeRow(ILcom/google/zxing/common/BitArray;[ILjava/util/Map;)Lcom/google/zxing/Result; .locals 11 .annotation system Ldalvik/annotation/Signature; value = { "(I", "Lcom/google/zxing/common/BitArray;", "[I", "Ljava/util/Map<", "Lcom/google/zxing/DecodeHintType;", "*>;)", "Lcom/google/zxing/Result;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/google/zxing/NotFoundException;, Lcom/google/zxing/ChecksumException;, Lcom/google/zxing/FormatException; } .end annotation const/4 v0, 0x0 if-nez p4, :cond_0 move-object v1, v0 goto :goto_0 .line 154 :cond_0 sget-object v1, Lcom/google/zxing/DecodeHintType;->NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType; .line 155 invoke-interface {p4, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/google/zxing/ResultPointCallback; :goto_0 const/high16 v2, 0x40000000 # 2.0f const/4 v3, 0x1 const/4 v4, 0x0 if-eqz v1, :cond_1 .line 158 new-instance v5, Lcom/google/zxing/ResultPoint; aget v6, p3, v4 aget v7, p3, v3 add-int/2addr v6, v7 int-to-float v6, v6 div-float/2addr v6, v2 int-to-float v7, p1 invoke-direct {v5, v6, v7}, Lcom/google/zxing/ResultPoint;->(FF)V invoke-interface {v1, v5}, Lcom/google/zxing/ResultPointCallback;->foundPossibleResultPoint(Lcom/google/zxing/ResultPoint;)V :cond_1 iget-object v5, p0, Lcom/google/zxing/oned/UPCEANReader;->decodeRowStringBuffer:Ljava/lang/StringBuilder; .line 164 invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->setLength(I)V .line 165 invoke-virtual {p0, p2, p3, v5}, Lcom/google/zxing/oned/UPCEANReader;->decodeMiddle(Lcom/google/zxing/common/BitArray;[ILjava/lang/StringBuilder;)I move-result v6 if-eqz v1, :cond_2 .line 168 new-instance v7, Lcom/google/zxing/ResultPoint; int-to-float v8, v6 int-to-float v9, p1 invoke-direct {v7, v8, v9}, Lcom/google/zxing/ResultPoint;->(FF)V invoke-interface {v1, v7}, Lcom/google/zxing/ResultPointCallback;->foundPossibleResultPoint(Lcom/google/zxing/ResultPoint;)V .line 173 :cond_2 invoke-virtual {p0, p2, v6}, Lcom/google/zxing/oned/UPCEANReader;->decodeEnd(Lcom/google/zxing/common/BitArray;I)[I move-result-object v6 if-eqz v1, :cond_3 .line 176 new-instance v7, Lcom/google/zxing/ResultPoint; aget v8, v6, v4 aget v9, v6, v3 add-int/2addr v8, v9 int-to-float v8, v8 div-float/2addr v8, v2 int-to-float v9, p1 invoke-direct {v7, v8, v9}, Lcom/google/zxing/ResultPoint;->(FF)V invoke-interface {v1, v7}, Lcom/google/zxing/ResultPointCallback;->foundPossibleResultPoint(Lcom/google/zxing/ResultPoint;)V .line 184 :cond_3 aget v1, v6, v3 .line 185 aget v7, v6, v4 sub-int v7, v1, v7 add-int/2addr v7, v1 .line 186 invoke-virtual {p2}, Lcom/google/zxing/common/BitArray;->getSize()I move-result v8 if-ge v7, v8, :cond_c invoke-virtual {p2, v1, v7, v4}, Lcom/google/zxing/common/BitArray;->isRange(IIZ)Z move-result v1 if-eqz v1, :cond_c .line 190 invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 192 invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v5 const/16 v7, 0x8 if-lt v5, v7, :cond_b .line 195 invoke-virtual {p0, v1}, Lcom/google/zxing/oned/UPCEANReader;->checkChecksum(Ljava/lang/String;)Z move-result v5 if-eqz v5, :cond_a .line 199 aget v5, p3, v3 aget p3, p3, v4 add-int/2addr v5, p3 int-to-float p3, v5 div-float/2addr p3, v2 .line 200 aget v5, v6, v3 aget v7, v6, v4 add-int/2addr v5, v7 int-to-float v5, v5 div-float/2addr v5, v2 .line 201 invoke-virtual {p0}, Lcom/google/zxing/oned/UPCEANReader;->getBarcodeFormat()Lcom/google/zxing/BarcodeFormat; move-result-object v2 .line 202 new-instance v7, Lcom/google/zxing/Result; const/4 v8, 0x2 new-array v8, v8, [Lcom/google/zxing/ResultPoint; new-instance v9, Lcom/google/zxing/ResultPoint; int-to-float v10, p1 invoke-direct {v9, p3, v10}, Lcom/google/zxing/ResultPoint;->(FF)V aput-object v9, v8, v4 new-instance p3, Lcom/google/zxing/ResultPoint; invoke-direct {p3, v5, v10}, Lcom/google/zxing/ResultPoint;->(FF)V aput-object p3, v8, v3 invoke-direct {v7, v1, v0, v8, v2}, Lcom/google/zxing/Result;->(Ljava/lang/String;[B[Lcom/google/zxing/ResultPoint;Lcom/google/zxing/BarcodeFormat;)V :try_start_0 iget-object p3, p0, Lcom/google/zxing/oned/UPCEANReader;->extensionReader:Lcom/google/zxing/oned/UPCEANExtensionSupport; .line 212 aget v3, v6, v3 invoke-virtual {p3, p1, p2, v3}, Lcom/google/zxing/oned/UPCEANExtensionSupport;->decodeRow(ILcom/google/zxing/common/BitArray;I)Lcom/google/zxing/Result; move-result-object p1 .line 213 sget-object p2, Lcom/google/zxing/ResultMetadataType;->UPC_EAN_EXTENSION:Lcom/google/zxing/ResultMetadataType; invoke-virtual {p1}, Lcom/google/zxing/Result;->getText()Ljava/lang/String; move-result-object p3 invoke-virtual {v7, p2, p3}, Lcom/google/zxing/Result;->putMetadata(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V .line 214 invoke-virtual {p1}, Lcom/google/zxing/Result;->getResultMetadata()Ljava/util/Map; move-result-object p2 invoke-virtual {v7, p2}, Lcom/google/zxing/Result;->putAllMetadata(Ljava/util/Map;)V .line 215 invoke-virtual {p1}, Lcom/google/zxing/Result;->getResultPoints()[Lcom/google/zxing/ResultPoint; move-result-object p2 invoke-virtual {v7, p2}, Lcom/google/zxing/Result;->addResultPoints([Lcom/google/zxing/ResultPoint;)V .line 216 invoke-virtual {p1}, Lcom/google/zxing/Result;->getText()Ljava/lang/String; move-result-object p1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p1 :try_end_0 .catch Lcom/google/zxing/ReaderException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_1 :catch_0 move p1, v4 :goto_1 if-nez p4, :cond_4 goto :goto_2 .line 221 :cond_4 sget-object p2, Lcom/google/zxing/DecodeHintType;->ALLOWED_EAN_EXTENSIONS:Lcom/google/zxing/DecodeHintType; .line 222 invoke-interface {p4, p2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p2 check-cast p2, [I move-object v0, p2 check-cast v0, [I :goto_2 if-eqz v0, :cond_7 .line 225 array-length p2, v0 :goto_3 if-ge v4, p2, :cond_6 aget p3, v0, v4 if-ne p1, p3, :cond_5 goto :goto_4 :cond_5 add-int/lit8 v4, v4, 0x1 goto :goto_3 .line 232 :cond_6 invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException; move-result-object p0 throw p0 .line 236 :cond_7 :goto_4 sget-object p1, Lcom/google/zxing/BarcodeFormat;->EAN_13:Lcom/google/zxing/BarcodeFormat; if-eq v2, p1, :cond_8 sget-object p1, Lcom/google/zxing/BarcodeFormat;->UPC_A:Lcom/google/zxing/BarcodeFormat; if-ne v2, p1, :cond_9 :cond_8 iget-object p0, p0, Lcom/google/zxing/oned/UPCEANReader;->eanManSupport:Lcom/google/zxing/oned/EANManufacturerOrgSupport; .line 237 invoke-virtual {p0, v1}, Lcom/google/zxing/oned/EANManufacturerOrgSupport;->lookupCountryIdentifier(Ljava/lang/String;)Ljava/lang/String; move-result-object p0 if-eqz p0, :cond_9 .line 239 sget-object p1, Lcom/google/zxing/ResultMetadataType;->POSSIBLE_COUNTRY:Lcom/google/zxing/ResultMetadataType; invoke-virtual {v7, p1, p0}, Lcom/google/zxing/Result;->putMetadata(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V :cond_9 return-object v7 .line 196 :cond_a invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException; move-result-object p0 throw p0 .line 193 :cond_b invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException; move-result-object p0 throw p0 .line 187 :cond_c invoke-static {}, Lcom/google/zxing/NotFoundException;->getNotFoundInstance()Lcom/google/zxing/NotFoundException; move-result-object p0 throw p0 .end method .method abstract getBarcodeFormat()Lcom/google/zxing/BarcodeFormat; .end method