This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,941 @@
.class final Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;
.super Ljava/lang/Object;
.source "DecodedBitStreamParser.java"
# static fields
.field private static final ECI:C = '\ufffa'
.field private static final FS:C = '\u001c'
.field private static final GS:C = '\u001d'
.field private static final LATCHA:C = '\ufff7'
.field private static final LATCHB:C = '\ufff8'
.field private static final LOCK:C = '\ufff9'
.field private static final NINE_DIGITS:Ljava/text/NumberFormat;
.field private static final NS:C = '\ufffb'
.field private static final PAD:C = '\ufffc'
.field private static final RS:C = '\u001e'
.field private static final SETS:[Ljava/lang/String;
.field private static final SHIFTA:C = '\ufff0'
.field private static final SHIFTB:C = '\ufff1'
.field private static final SHIFTC:C = '\ufff2'
.field private static final SHIFTD:C = '\ufff3'
.field private static final SHIFTE:C = '\ufff4'
.field private static final THREESHIFTA:C = '\ufff6'
.field private static final THREE_DIGITS:Ljava/text/NumberFormat;
.field private static final TWOSHIFTA:C = '\ufff5'
# direct methods
.method public static constructor <clinit>()V
.locals 8
.line 1
new-instance v0, Ljava/text/DecimalFormat;
const-string v1, "000000000"
invoke-direct {v0, v1}, Ljava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
sput-object v0, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->NINE_DIGITS:Ljava/text/NumberFormat;
.line 2
new-instance v0, Ljava/text/DecimalFormat;
const-string v1, "000"
invoke-direct {v0, v1}, Ljava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
sput-object v0, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->THREE_DIGITS:Ljava/text/NumberFormat;
const-string v2, "\nABCDEFGHIJKLMNOPQRSTUVWXYZ\ufffa\u001c\u001d\u001e\ufffb \ufffc\"#$%&\'()*+,-./0123456789:\ufff1\ufff2\ufff3\ufff4\ufff8"
const-string v3, "`abcdefghijklmnopqrstuvwxyz\ufffa\u001c\u001d\u001e\ufffb{\ufffc}~\u007f;<=>?[\\]^_ ,./:@!|\ufffc\ufff5\ufff6\ufffc\ufff0\ufff2\ufff3\ufff4\ufff7"
const-string v4, "\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\ufffa\u001c\u001d\u001e\u00db\u00dc\u00dd\u00de\u00df\u00aa\u00ac\u00b1\u00b2\u00b3\u00b5\u00b9\u00ba\u00bc\u00bd\u00be\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089\ufff7 \ufff9\ufff3\ufff4\ufff8"
const-string v5, "\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\ufffa\u001c\u001d\u001e\ufffb\u00fb\u00fc\u00fd\u00fe\u00ff\u00a1\u00a8\u00ab\u00af\u00b0\u00b4\u00b7\u00b8\u00bb\u00bf\u008a\u008b\u008c\u008d\u008e\u008f\u0090\u0091\u0092\u0093\u0094\ufff7 \ufff2\ufff9\ufff4\ufff8"
const-string v6, "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\t\n\u000b\u000c\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\ufffa\ufffc\ufffc\u001b\ufffb\u001c\u001d\u001e\u001f\u009f\u00a0\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a9\u00ad\u00ae\u00b6\u0095\u0096\u0097\u0098\u0099\u009a\u009b\u009c\u009d\u009e\ufff7 \ufff2\ufff3\ufff9\ufff8"
const-string v7, "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\t\n\u000b\u000c\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&\'()*+,-./0123456789:;<=>?"
.line 3
filled-new-array/range {v2 .. v7}, [Ljava/lang/String;
move-result-object v0
.line 4
sput-object v0, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->SETS:[Ljava/lang/String;
return-void
.end method
.method private constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static decode([BI)Lcom/google/zxing/common/DecoderResult;
.locals 7
.line 1
new-instance v0, Ljava/lang/StringBuilder;
const/16 v1, 0x90
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const/4 v1, 0x2
if-eq p1, v1, :cond_2
const/4 v2, 0x3
if-eq p1, v2, :cond_2
const/4 v1, 0x4
const/4 v2, 0x1
if-eq p1, v1, :cond_1
const/4 v1, 0x5
if-eq p1, v1, :cond_0
goto/16 :goto_1
:cond_0
const/16 v1, 0x4d
.line 2
invoke-static {p0, v2, v1}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getMessage([BII)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto/16 :goto_1
:cond_1
const/16 v1, 0x5d
.line 3
invoke-static {p0, v2, v1}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getMessage([BII)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto/16 :goto_1
:cond_2
const/4 v2, 0x0
if-ne p1, v1, :cond_3
.line 4
invoke-static {p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getPostCode2([B)I
move-result v1
.line 5
new-instance v3, Ljava/text/DecimalFormat;
invoke-static {p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getPostCode2Length([B)I
move-result v4
const-string v5, "0000000000"
invoke-virtual {v5, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Ljava/text/DecimalFormat;-><init>(Ljava/lang/String;)V
int-to-long v4, v1
.line 6
invoke-virtual {v3, v4, v5}, Ljava/text/NumberFormat;->format(J)Ljava/lang/String;
move-result-object v1
goto :goto_0
.line 7
:cond_3
invoke-static {p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getPostCode3([B)Ljava/lang/String;
move-result-object v1
.line 8
:goto_0
sget-object v3, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->THREE_DIGITS:Ljava/text/NumberFormat;
invoke-static {p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getCountry([B)I
move-result v4
int-to-long v4, v4
invoke-virtual {v3, v4, v5}, Ljava/text/NumberFormat;->format(J)Ljava/lang/String;
move-result-object v4
.line 9
invoke-static {p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getServiceClass([B)I
move-result v5
int-to-long v5, v5
invoke-virtual {v3, v5, v6}, Ljava/text/NumberFormat;->format(J)Ljava/lang/String;
move-result-object v3
const/16 v5, 0xa
const/16 v6, 0x54
.line 10
invoke-static {p0, v5, v6}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getMessage([BII)Ljava/lang/String;
move-result-object v5
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 11
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
const-string v6, "[)>\u001e01\u001d"
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v5
const/16 v6, 0x1d
if-eqz v5, :cond_4
const/16 v2, 0x9
.line 12
new-instance v5, Ljava/lang/StringBuilder;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v5, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_1
.line 13
:cond_4
new-instance v5, Ljava/lang/StringBuilder;
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-direct {v5, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v2, v1}, Ljava/lang/StringBuilder;->insert(ILjava/lang/String;)Ljava/lang/StringBuilder;
.line 14
:goto_1
new-instance v1, Lcom/google/zxing/common/DecoderResult;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v2, 0x0
invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p0, v0, v2, p1}, Lcom/google/zxing/common/DecoderResult;-><init>([BLjava/lang/String;Ljava/util/List;Ljava/lang/String;)V
return-object v1
.end method
.method private static getBit(I[B)I
.locals 1
add-int/lit8 p0, p0, -0x1
.line 1
div-int/lit8 v0, p0, 0x6
aget-byte p1, p1, v0
rem-int/lit8 p0, p0, 0x6
rsub-int/lit8 p0, p0, 0x5
const/4 v0, 0x1
shl-int p0, v0, p0
and-int/2addr p0, p1
if-nez p0, :cond_0
const/4 v0, 0x0
:cond_0
return v0
.end method
.method private static getCountry([B)I
.locals 1
const/16 v0, 0xa
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
invoke-static {p0, v0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result p0
return p0
:array_0
.array-data 1
0x35t
0x36t
0x2bt
0x2ct
0x2dt
0x2et
0x2ft
0x30t
0x25t
0x26t
.end array-data
.end method
.method private static getInt([B[B)I
.locals 4
const/4 v0, 0x0
move v1, v0
.line 1
:goto_0
array-length v2, p1
if-lt v0, v2, :cond_0
return v1
.line 2
:cond_0
aget-byte v2, p1, v0
invoke-static {v2, p0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getBit(I[B)I
move-result v2
array-length v3, p1
sub-int/2addr v3, v0
add-int/lit8 v3, v3, -0x1
shl-int/2addr v2, v3
add-int/2addr v1, v2
add-int/lit8 v0, v0, 0x1
goto :goto_0
.end method
.method private static getMessage([BII)Ljava/lang/String;
.locals 12
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const/4 v1, 0x0
const/4 v2, -0x1
move v3, p1
move v4, v1
move v6, v4
move v5, v2
:goto_0
add-int v7, p1, p2
const/4 v8, 0x1
if-lt v3, v7, :cond_2
.line 2
:goto_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result p0
if-lez p0, :cond_1
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result p0
sub-int/2addr p0, v8
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->charAt(I)C
move-result p0
const p1, 0xfffc
if-eq p0, p1, :cond_0
goto :goto_2
.line 3
:cond_0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result p0
sub-int/2addr p0, v8
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->setLength(I)V
goto :goto_1
.line 4
:cond_1
:goto_2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.line 5
:cond_2
sget-object v7, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->SETS:[Ljava/lang/String;
aget-object v7, v7, v4
aget-byte v9, p0, v3
invoke-virtual {v7, v9}, Ljava/lang/String;->charAt(I)C
move-result v7
packed-switch v7, :pswitch_data_0
.line 6
:pswitch_0
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_4
:pswitch_1
add-int/lit8 v3, v3, 0x1
.line 7
aget-byte v7, p0, v3
shl-int/lit8 v7, v7, 0x18
add-int/2addr v3, v8
aget-byte v9, p0, v3
shl-int/lit8 v9, v9, 0x12
add-int/2addr v7, v9
add-int/2addr v3, v8
aget-byte v9, p0, v3
shl-int/lit8 v9, v9, 0xc
add-int/2addr v7, v9
add-int/2addr v3, v8
aget-byte v9, p0, v3
shl-int/lit8 v9, v9, 0x6
add-int/2addr v7, v9
add-int/2addr v3, v8
aget-byte v9, p0, v3
add-int/2addr v7, v9
.line 8
sget-object v9, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->NINE_DIGITS:Ljava/text/NumberFormat;
int-to-long v10, v7
invoke-virtual {v9, v10, v11}, Ljava/text/NumberFormat;->format(J)Ljava/lang/String;
move-result-object v7
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_4
:pswitch_2
move v5, v2
move v4, v8
goto :goto_4
:pswitch_3
move v4, v1
:pswitch_4
move v5, v2
goto :goto_4
:pswitch_5
const/4 v5, 0x3
goto :goto_3
:pswitch_6
const/4 v5, 0x2
:goto_3
move v6, v4
move v4, v1
goto :goto_4
:pswitch_7
const v5, 0xfff0
sub-int/2addr v7, v5
move v6, v4
move v4, v7
move v5, v8
:goto_4
add-int/lit8 v7, v5, -0x1
if-nez v5, :cond_3
move v4, v6
:cond_3
add-int/2addr v3, v8
move v5, v7
goto :goto_0
:pswitch_data_0
.packed-switch 0xfff0
:pswitch_7
:pswitch_7
:pswitch_7
:pswitch_7
:pswitch_7
:pswitch_6
:pswitch_5
:pswitch_3
:pswitch_2
:pswitch_4
:pswitch_0
:pswitch_1
.end packed-switch
.end method
.method private static getPostCode2([B)I
.locals 1
const/16 v0, 0x1e
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
invoke-static {p0, v0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result p0
return p0
:array_0
.array-data 1
0x21t
0x22t
0x23t
0x24t
0x19t
0x1at
0x1bt
0x1ct
0x1dt
0x1et
0x13t
0x14t
0x15t
0x16t
0x17t
0x18t
0xdt
0xet
0xft
0x10t
0x11t
0x12t
0x7t
0x8t
0x9t
0xat
0xbt
0xct
0x1t
0x2t
.end array-data
.end method
.method private static getPostCode2Length([B)I
.locals 1
const/4 v0, 0x6
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
invoke-static {p0, v0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result p0
return p0
nop
:array_0
.array-data 1
0x27t
0x28t
0x29t
0x2at
0x1ft
0x20t
.end array-data
.end method
.method private static getPostCode3([B)Ljava/lang/String;
.locals 6
const/4 v0, 0x6
new-array v1, v0, [C
.line 1
sget-object v2, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->SETS:[Ljava/lang/String;
const/4 v3, 0x0
aget-object v4, v2, v3
new-array v5, v0, [B
fill-array-data v5, :array_0
invoke-static {p0, v5}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/String;->charAt(I)C
move-result v4
aput-char v4, v1, v3
.line 2
aget-object v4, v2, v3
new-array v5, v0, [B
fill-array-data v5, :array_1
invoke-static {p0, v5}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/String;->charAt(I)C
move-result v4
const/4 v5, 0x1
aput-char v4, v1, v5
.line 3
aget-object v4, v2, v3
new-array v5, v0, [B
fill-array-data v5, :array_2
invoke-static {p0, v5}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/String;->charAt(I)C
move-result v4
const/4 v5, 0x2
aput-char v4, v1, v5
.line 4
aget-object v4, v2, v3
new-array v5, v0, [B
fill-array-data v5, :array_3
invoke-static {p0, v5}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/String;->charAt(I)C
move-result v4
const/4 v5, 0x3
aput-char v4, v1, v5
.line 5
aget-object v4, v2, v3
new-array v5, v0, [B
fill-array-data v5, :array_4
invoke-static {p0, v5}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/String;->charAt(I)C
move-result v4
const/4 v5, 0x4
aput-char v4, v1, v5
.line 6
aget-object v2, v2, v3
new-array v0, v0, [B
fill-array-data v0, :array_5
invoke-static {p0, v0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result p0
invoke-virtual {v2, p0}, Ljava/lang/String;->charAt(I)C
move-result p0
const/4 v0, 0x5
aput-char p0, v1, v0
.line 7
invoke-static {v1}, Ljava/lang/String;->valueOf([C)Ljava/lang/String;
move-result-object p0
return-object p0
:array_0
.array-data 1
0x27t
0x28t
0x29t
0x2at
0x1ft
0x20t
.end array-data
nop
:array_1
.array-data 1
0x21t
0x22t
0x23t
0x24t
0x19t
0x1at
.end array-data
nop
:array_2
.array-data 1
0x1bt
0x1ct
0x1dt
0x1et
0x13t
0x14t
.end array-data
nop
:array_3
.array-data 1
0x15t
0x16t
0x17t
0x18t
0xdt
0xet
.end array-data
nop
:array_4
.array-data 1
0xft
0x10t
0x11t
0x12t
0x7t
0x8t
.end array-data
nop
:array_5
.array-data 1
0x9t
0xat
0xbt
0xct
0x1t
0x2t
.end array-data
.end method
.method private static getServiceClass([B)I
.locals 1
const/16 v0, 0xa
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
invoke-static {p0, v0}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->getInt([B[B)I
move-result p0
return p0
:array_0
.array-data 1
0x37t
0x38t
0x39t
0x3at
0x3bt
0x3ct
0x31t
0x32t
0x33t
0x34t
.end array-data
.end method
@@ -0,0 +1,316 @@
.class public final Lcom/google/zxing/maxicode/decoder/Decoder;
.super Ljava/lang/Object;
.source "Decoder.java"
# static fields
.field private static final ALL:I = 0x0
.field private static final EVEN:I = 0x1
.field private static final ODD:I = 0x2
# instance fields
.field private final rsDecoder:Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;
# direct methods
.method public constructor <init>()V
.locals 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;
sget-object v1, Lcom/google/zxing/common/reedsolomon/GenericGF;->MAXICODE_FIELD_64:Lcom/google/zxing/common/reedsolomon/GenericGF;
invoke-direct {v0, v1}, Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;-><init>(Lcom/google/zxing/common/reedsolomon/GenericGF;)V
iput-object v0, p0, Lcom/google/zxing/maxicode/decoder/Decoder;->rsDecoder:Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;
return-void
.end method
.method private correctErrors([BIIII)V
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;
}
.end annotation
add-int v0, p3, p4
if-nez p5, :cond_0
const/4 v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x2
.line 1
:goto_0
div-int v2, v0, v1
new-array v2, v2, [I
const/4 v3, 0x0
move v4, v3
:goto_1
if-lt v4, v0, :cond_4
.line 2
:try_start_0
iget-object v0, p0, Lcom/google/zxing/maxicode/decoder/Decoder;->rsDecoder:Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;
div-int/2addr p4, v1
invoke-virtual {v0, v2, p4}, Lcom/google/zxing/common/reedsolomon/ReedSolomonDecoder;->decode([II)V
:try_end_0
.catch Lcom/google/zxing/common/reedsolomon/ReedSolomonException; {:try_start_0 .. :try_end_0} :catch_0
:goto_2
if-lt v3, p3, :cond_1
return-void
:cond_1
if-eqz p5, :cond_2
.line 3
rem-int/lit8 p4, v3, 0x2
add-int/lit8 v0, p5, -0x1
if-ne p4, v0, :cond_3
:cond_2
add-int p4, v3, p2
.line 4
div-int v0, v3, v1
aget v0, v2, v0
int-to-byte v0, v0
aput-byte v0, p1, p4
:cond_3
add-int/lit8 v3, v3, 0x1
goto :goto_2
.line 5
:catch_0
invoke-static {}, Lcom/google/zxing/ChecksumException;->getChecksumInstance()Lcom/google/zxing/ChecksumException;
move-result-object p1
throw p1
:cond_4
if-eqz p5, :cond_5
.line 6
rem-int/lit8 v5, v4, 0x2
add-int/lit8 v6, p5, -0x1
if-ne v5, v6, :cond_6
.line 7
:cond_5
div-int v5, v4, v1
add-int v6, v4, p2
aget-byte v6, p1, v6
and-int/lit16 v6, v6, 0xff
aput v6, v2, v5
:cond_6
add-int/lit8 v4, v4, 0x1
goto :goto_1
.end method
# virtual methods
.method public decode(Lcom/google/zxing/common/BitMatrix;)Lcom/google/zxing/common/DecoderResult;
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/ChecksumException;,
Lcom/google/zxing/FormatException;
}
.end annotation
const/4 v0, 0x0
.line 1
invoke-virtual {p0, p1, v0}, Lcom/google/zxing/maxicode/decoder/Decoder;->decode(Lcom/google/zxing/common/BitMatrix;Ljava/util/Map;)Lcom/google/zxing/common/DecoderResult;
move-result-object p1
return-object p1
.end method
.method public decode(Lcom/google/zxing/common/BitMatrix;Ljava/util/Map;)Lcom/google/zxing/common/DecoderResult;
.locals 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/common/BitMatrix;",
"Ljava/util/Map<",
"Lcom/google/zxing/DecodeHintType;",
"*>;)",
"Lcom/google/zxing/common/DecoderResult;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/FormatException;,
Lcom/google/zxing/ChecksumException;
}
.end annotation
.line 2
new-instance p2, Lcom/google/zxing/maxicode/decoder/BitMatrixParser;
invoke-direct {p2, p1}, Lcom/google/zxing/maxicode/decoder/BitMatrixParser;-><init>(Lcom/google/zxing/common/BitMatrix;)V
.line 3
invoke-virtual {p2}, Lcom/google/zxing/maxicode/decoder/BitMatrixParser;->readCodewords()[B
move-result-object p1
const/4 v2, 0x0
const/16 v3, 0xa
const/16 v4, 0xa
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
.line 4
invoke-direct/range {v0 .. v5}, Lcom/google/zxing/maxicode/decoder/Decoder;->correctErrors([BIIII)V
const/4 p2, 0x0
.line 5
aget-byte v0, p1, p2
and-int/lit8 v6, v0, 0xf
const/4 v0, 0x2
if-eq v6, v0, :cond_1
const/4 v0, 0x3
if-eq v6, v0, :cond_1
const/4 v0, 0x4
if-eq v6, v0, :cond_1
const/4 v0, 0x5
if-ne v6, v0, :cond_0
const/16 v2, 0x14
const/16 v3, 0x44
const/16 v4, 0x38
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
.line 6
invoke-direct/range {v0 .. v5}, Lcom/google/zxing/maxicode/decoder/Decoder;->correctErrors([BIIII)V
const/4 v5, 0x2
.line 7
invoke-direct/range {v0 .. v5}, Lcom/google/zxing/maxicode/decoder/Decoder;->correctErrors([BIIII)V
const/16 v0, 0x4e
new-array v0, v0, [B
goto :goto_0
.line 8
:cond_0
invoke-static {}, Lcom/google/zxing/FormatException;->getFormatInstance()Lcom/google/zxing/FormatException;
move-result-object p1
throw p1
:cond_1
const/16 v2, 0x14
const/16 v3, 0x54
const/16 v4, 0x28
const/4 v5, 0x1
move-object v0, p0
move-object v1, p1
.line 9
invoke-direct/range {v0 .. v5}, Lcom/google/zxing/maxicode/decoder/Decoder;->correctErrors([BIIII)V
const/4 v5, 0x2
.line 10
invoke-direct/range {v0 .. v5}, Lcom/google/zxing/maxicode/decoder/Decoder;->correctErrors([BIIII)V
const/16 v0, 0x5e
new-array v0, v0, [B
:goto_0
const/16 v1, 0xa
.line 11
invoke-static {p1, p2, v0, p2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
const/16 p2, 0x14
.line 12
array-length v2, v0
sub-int/2addr v2, v1
invoke-static {p1, p2, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 13
invoke-static {v0, v6}, Lcom/google/zxing/maxicode/decoder/DecodedBitStreamParser;->decode([BI)Lcom/google/zxing/common/DecoderResult;
move-result-object p1
return-object p1
.end method