PDF417HighLevelEncoder.smali
.class final Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;
.super Ljava/lang/Object;
.source "PDF417HighLevelEncoder.java"
# static fields
.field private static final BYTE_COMPACTION:I = 0x1
.field private static final DEFAULT_ENCODING:Ljava/nio/charset/Charset;
.field private static final ECI_CHARSET:I = 0x39f
.field private static final ECI_GENERAL_PURPOSE:I = 0x39e
.field private static final ECI_USER_DEFINED:I = 0x39d
.field private static final LATCH_TO_BYTE:I = 0x39c
.field private static final LATCH_TO_BYTE_PADDED:I = 0x385
.field private static final LATCH_TO_NUMERIC:I = 0x386
.field private static final LATCH_TO_TEXT:I = 0x384
.field private static final MIXED:[B
.field private static final NUMERIC_COMPACTION:I = 0x2
.field private static final PUNCTUATION:[B
.field private static final SHIFT_TO_BYTE:I = 0x391
.field private static final SUBMODE_ALPHA:I = 0x0
.field private static final SUBMODE_LOWER:I = 0x1
.field private static final SUBMODE_MIXED:I = 0x2
.field private static final SUBMODE_PUNCTUATION:I = 0x3
.field private static final TEXT_COMPACTION:I
.field private static final TEXT_MIXED_RAW:[B
.field private static final TEXT_PUNCTUATION_RAW:[B
# direct methods
.method static constructor <clinit>()V
.registers 5
.line 116
const/16 v0, 0x1e
new-array v1, v0, [B
fill-array-data v1, :array_52
sput-object v1, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_MIXED_RAW:[B
.line 123
new-array v0, v0, [B
fill-array-data v0, :array_66
sput-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_PUNCTUATION_RAW:[B
.line 127
const/16 v0, 0x80
new-array v1, v0, [B
sput-object v1, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
.line 128
new-array v0, v0, [B
sput-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
.line 130
sget-object v0, Ljava/nio/charset/StandardCharsets;->ISO_8859_1:Ljava/nio/charset/Charset;
sput-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
.line 137
sget-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
const/4 v1, -0x1
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([BB)V
.line 138
const/4 v0, 0x0
.local v0, "i":I
const/4 v2, 0x0
:goto_26
sget-object v3, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_MIXED_RAW:[B
array-length v4, v3
if-ge v0, v4, :cond_38
.line 139
aget-byte v3, v3, v0
.line 140
.local v2, "b":B
move v2, v3
if-lez v3, :cond_35
.line 141
sget-object v3, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
int-to-byte v4, v0
aput-byte v4, v3, v2
.line 138
.end local v2 # "b":B
:cond_35
add-int/lit8 v0, v0, 0x1
goto :goto_26
.line 144
.end local v0 # "i":I
:cond_38
sget-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
invoke-static {v0, v1}, Ljava/util/Arrays;->fill([BB)V
.line 145
const/4 v0, 0x0
.restart local v0 # "i":I
:goto_3e
sget-object v1, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_PUNCTUATION_RAW:[B
array-length v3, v1
if-ge v0, v3, :cond_50
.line 146
aget-byte v1, v1, v0
.line 147
.restart local v2 # "b":B
move v2, v1
if-lez v1, :cond_4d
.line 148
sget-object v1, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
int-to-byte v3, v0
aput-byte v3, v1, v2
.line 145
.end local v2 # "b":B
:cond_4d
add-int/lit8 v0, v0, 0x1
goto :goto_3e
.line 151
.end local v0 # "i":I
:cond_50
return-void
nop
:array_52
.array-data 1
0x30t
0x31t
0x32t
0x33t
0x34t
0x35t
0x36t
0x37t
0x38t
0x39t
0x26t
0xdt
0x9t
0x2ct
0x3at
0x23t
0x2dt
0x2et
0x24t
0x2ft
0x2bt
0x25t
0x2at
0x3dt
0x5et
0x0t
0x20t
0x0t
0x0t
0x0t
.end array-data
nop
:array_66
.array-data 1
0x3bt
0x3ct
0x3et
0x40t
0x5bt
0x5ct
0x5dt
0x5ft
0x60t
0x7et
0x21t
0xdt
0x9t
0x2ct
0x3at
0xat
0x2dt
0x2et
0x24t
0x2ft
0x22t
0x7ct
0x2at
0x28t
0x29t
0x3ft
0x7bt
0x7dt
0x27t
0x0t
.end array-data
.end method
.method private constructor <init>()V
.registers 1
.line 132
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 133
return-void
.end method
.method private static determineConsecutiveBinaryCount(Ljava/lang/String;ILjava/nio/charset/Charset;)I
.registers 11
.param p0, "msg" # Ljava/lang/String;
.param p1, "startpos" # I
.param p2, "encoding" # Ljava/nio/charset/Charset;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.line 539
invoke-virtual {p2}, Ljava/nio/charset/Charset;->newEncoder()Ljava/nio/charset/CharsetEncoder;
move-result-object v0
.line 540
.local v0, "encoder":Ljava/nio/charset/CharsetEncoder;
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
.line 541
.local v1, "len":I
move v2, p1
.local v2, "idx":I
const/4 v3, 0x0
.line 542
:goto_a
if-ge v2, v1, :cond_5b
.line 543
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 544
.local v4, "ch":C
const/4 v5, 0x0
.line 546
.local v5, "numericCount":I
:goto_11
const/16 v6, 0xd
if-ge v5, v6, :cond_27
invoke-static {v4}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v7
if-eqz v7, :cond_27
.line 547
add-int/lit8 v5, v5, 0x1
.line 549
add-int v7, v2, v5
.line 550
.local v3, "i":I
move v3, v7
if-ge v7, v1, :cond_27
.line 553
invoke-virtual {p0, v3}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 554
.end local v3 # "i":I
goto :goto_11
.line 555
:cond_27
if-lt v5, v6, :cond_2c
.line 556
sub-int v3, v2, p1
return v3
.line 558
:cond_2c
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 560
invoke-virtual {v0, v4}, Ljava/nio/charset/CharsetEncoder;->canEncode(C)Z
move-result v6
if-eqz v6, :cond_3a
.line 563
nop
.end local v4 # "ch":C
.end local v5 # "numericCount":I
add-int/lit8 v2, v2, 0x1
.line 564
goto :goto_a
.line 561
.restart local v4 # "ch":C
.restart local v5 # "numericCount":I
:cond_3a
new-instance v3, Lcom/google/zxing/WriterException;
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "Non-encodable character detected: "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string v7, " (Unicode: "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 v7, 0x29
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-direct {v3, v6}, Lcom/google/zxing/WriterException;-><init>(Ljava/lang/String;)V
throw v3
.line 565
.end local v4 # "ch":C
.end local v5 # "numericCount":I
:cond_5b
sub-int v3, v2, p1
return v3
.end method
.method private static determineConsecutiveDigitCount(Ljava/lang/CharSequence;I)I
.registers 7
.param p0, "msg" # Ljava/lang/CharSequence;
.param p1, "startpos" # I
.line 475
const/4 v0, 0x0
.line 476
.local v0, "count":I
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v1
.line 477
.local v1, "len":I
move v2, p1
.line 478
.local v2, "idx":I
if-ge p1, v1, :cond_1f
.line 479
invoke-interface {p0, p1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v3
.line 480
.local v3, "ch":C
:cond_c
:goto_c
invoke-static {v3}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v4
if-eqz v4, :cond_1f
if-ge v2, v1, :cond_1f
.line 481
add-int/lit8 v0, v0, 0x1
.line 482
add-int/lit8 v2, v2, 0x1
.line 483
if-ge v2, v1, :cond_c
.line 484
invoke-interface {p0, v2}, Ljava/lang/CharSequence;->charAt(I)C
move-result v3
goto :goto_c
.line 488
.end local v3 # "ch":C
:cond_1f
return v0
.end method
.method private static determineConsecutiveTextCount(Ljava/lang/CharSequence;I)I
.registers 8
.param p0, "msg" # Ljava/lang/CharSequence;
.param p1, "startpos" # I
.line 499
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v0
.line 500
.local v0, "len":I
move v1, p1
.line 501
.local v1, "idx":I
:cond_5
:goto_5
if-ge v1, v0, :cond_39
.line 502
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
.line 503
.local v2, "ch":C
const/4 v3, 0x0
.line 504
.local v3, "numericCount":I
:cond_c
:goto_c
const/16 v4, 0xd
if-ge v3, v4, :cond_23
invoke-static {v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v5
if-eqz v5, :cond_23
if-ge v1, v0, :cond_23
.line 505
add-int/lit8 v3, v3, 0x1
.line 506
add-int/lit8 v1, v1, 0x1
.line 507
if-ge v1, v0, :cond_c
.line 508
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
goto :goto_c
.line 511
:cond_23
if-lt v3, v4, :cond_29
.line 512
sub-int v4, v1, p1
sub-int/2addr v4, v3
return v4
.line 514
:cond_29
if-gtz v3, :cond_5
.line 518
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v4
.line 521
invoke-static {v4}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isText(C)Z
move-result v4
if-eqz v4, :cond_39
.line 524
nop
.end local v2 # "ch":C
.end local v3 # "numericCount":I
add-int/lit8 v1, v1, 0x1
.line 525
goto :goto_5
.line 526
:cond_39
sub-int v2, v1, p1
return v2
.end method
.method private static encodeBinary([BIIILjava/lang/StringBuilder;)V
.registers 16
.param p0, "bytes" # [B
.param p1, "startpos" # I
.param p2, "count" # I
.param p3, "startmode" # I
.param p4, "sb" # Ljava/lang/StringBuilder;
.line 382
const/4 v0, 0x1
if-ne p2, v0, :cond_b
if-nez p3, :cond_b
.line 383
const/16 v0, 0x391
invoke-virtual {p4, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1a
.line 385
:cond_b
rem-int/lit8 v0, p2, 0x6
if-nez v0, :cond_15
.line 386
const/16 v0, 0x39c
invoke-virtual {p4, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1a
.line 388
:cond_15
const/16 v0, 0x385
invoke-virtual {p4, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 392
:goto_1a
move v0, p1
.line 394
.local v0, "idx":I
const/4 v1, 0x6
if-lt p2, v1, :cond_59
.line 395
const/4 v2, 0x5
new-array v3, v2, [C
.line 396
.local v3, "chars":[C
:goto_21
add-int v4, p1, p2
sub-int/2addr v4, v0
if-lt v4, v1, :cond_59
.line 397
const-wide/16 v4, 0x0
.line 398
.local v4, "t":J
const/4 v6, 0x0
.local v6, "i":I
:goto_29
if-ge v6, v1, :cond_3b
.line 399
const/16 v7, 0x8
shl-long v7, v4, v7
.line 400
add-int v9, v0, v6
aget-byte v9, p0, v9
and-int/lit16 v9, v9, 0xff
int-to-long v9, v9
add-long v4, v7, v9
.line 398
add-int/lit8 v6, v6, 0x1
goto :goto_29
.line 402
.end local v6 # "i":I
:cond_3b
const/4 v6, 0x0
.restart local v6 # "i":I
:goto_3c
if-ge v6, v2, :cond_4a
.line 403
const-wide/16 v7, 0x384
rem-long v9, v4, v7
long-to-int v10, v9
int-to-char v9, v10
aput-char v9, v3, v6
.line 404
div-long/2addr v4, v7
.line 402
add-int/lit8 v6, v6, 0x1
goto :goto_3c
.line 406
.end local v6 # "i":I
:cond_4a
const/4 v6, 0x4
.restart local v6 # "i":I
:goto_4b
if-ltz v6, :cond_55
.line 407
aget-char v7, v3, v6
invoke-virtual {p4, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 406
add-int/lit8 v6, v6, -0x1
goto :goto_4b
.line 409
.end local v6 # "i":I
:cond_55
nop
.end local v4 # "t":J
add-int/lit8 v0, v0, 0x6
.line 410
goto :goto_21
.line 413
.end local v3 # "chars":[C
:cond_59
move v1, v0
.local v1, "i":I
:goto_5a
add-int v2, p1, p2
if-ge v1, v2, :cond_69
.line 414
aget-byte v2, p0, v1
and-int/lit16 v2, v2, 0xff
.line 415
.local v2, "ch":I
int-to-char v3, v2
invoke-virtual {p4, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 413
.end local v2 # "ch":I
add-int/lit8 v1, v1, 0x1
goto :goto_5a
.line 417
.end local v1 # "i":I
:cond_69
return-void
.end method
.method static encodeHighLevel(Ljava/lang/String;Lcom/google/zxing/pdf417/encoder/Compaction;Ljava/nio/charset/Charset;)Ljava/lang/String;
.registers 19
.param p0, "msg" # Ljava/lang/String;
.param p1, "compaction" # Lcom/google/zxing/pdf417/encoder/Compaction;
.param p2, "encoding" # Ljava/nio/charset/Charset;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.line 167
move-object/from16 v0, p0
move-object/from16 v1, p2
new-instance v2, Ljava/lang/StringBuilder;
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v3
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(I)V
.line 169
.local v2, "sb":Ljava/lang/StringBuilder;
const/4 v3, 0x0
if-nez v1, :cond_13
.line 170
sget-object v1, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
.end local p2 # "encoding":Ljava/nio/charset/Charset;
.local v1, "encoding":Ljava/nio/charset/Charset;
goto :goto_2e
.line 171
.end local v1 # "encoding":Ljava/nio/charset/Charset;
.restart local p2 # "encoding":Ljava/nio/charset/Charset;
:cond_13
sget-object v4, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
invoke-virtual {v4, v1}, Ljava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z
move-result v4
if-nez v4, :cond_2e
.line 172
invoke-virtual/range {p2 .. p2}, Ljava/nio/charset/Charset;->name()Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Lcom/google/zxing/common/CharacterSetECI;->getCharacterSetECIByName(Ljava/lang/String;)Lcom/google/zxing/common/CharacterSetECI;
move-result-object v4
move-object v5, v3
.line 173
.local v5, "eci":Lcom/google/zxing/common/CharacterSetECI;
move-object v5, v4
if-eqz v4, :cond_2e
.line 174
invoke-virtual {v5}, Lcom/google/zxing/common/CharacterSetECI;->getValue()I
move-result v4
invoke-static {v4, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodingECI(ILjava/lang/StringBuilder;)V
.line 178
.end local v5 # "eci":Lcom/google/zxing/common/CharacterSetECI;
.end local p2 # "encoding":Ljava/nio/charset/Charset;
.restart local v1 # "encoding":Ljava/nio/charset/Charset;
:cond_2e
:goto_2e
invoke-virtual/range {p0 .. p0}, Ljava/lang/String;->length()I
move-result v4
.line 179
.local v4, "len":I
const/4 v5, 0x0
.line 180
.local v5, "p":I
const/4 v6, 0x0
.line 183
.local v6, "textSubMode":I
sget-object v7, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder$1;->$SwitchMap$com$google$zxing$pdf417$encoder$Compaction:[I
invoke-virtual/range {p1 .. p1}, Lcom/google/zxing/pdf417/encoder/Compaction;->ordinal()I
move-result v8
aget v7, v7, v8
const/4 v8, 0x1
const/4 v9, 0x0
if-eq v7, v8, :cond_b0
const/4 v10, 0x2
if-eq v7, v10, :cond_a6
const/4 v10, 0x3
const/16 v11, 0x386
if-eq v7, v10, :cond_9f
.line 196
const/4 v7, 0x0
const/4 v10, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
.line 197
.local v7, "encodingMode":I
:goto_4c
if-ge v5, v4, :cond_b4
.line 198
invoke-static {v0, v5}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveDigitCount(Ljava/lang/CharSequence;I)I
move-result v14
.line 199
.local v10, "n":I
move v10, v14
const/16 v15, 0xd
if-lt v14, v15, :cond_61
.line 200
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 201
const/4 v7, 0x2
.line 202
const/4 v6, 0x0
.line 203
invoke-static {v0, v5, v10, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
.line 204
add-int/2addr v5, v10
goto :goto_4c
.line 206
:cond_61
invoke-static {v0, v5}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveTextCount(Ljava/lang/CharSequence;I)I
move-result v14
.line 207
.local v12, "t":I
move v12, v14
const/4 v15, 0x5
if-ge v14, v15, :cond_90
if-ne v10, v4, :cond_6c
goto :goto_90
.line 216
:cond_6c
invoke-static {v0, v5, v1}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveBinaryCount(Ljava/lang/String;ILjava/nio/charset/Charset;)I
move-result v14
.line 217
.local v13, "b":I
move v13, v14
if-nez v14, :cond_74
.line 218
const/4 v13, 0x1
.line 220
:cond_74
add-int v14, v5, v13
invoke-virtual {v0, v5, v14}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v14
invoke-virtual {v14, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object v14
.line 221
.local v3, "bytes":[B
move-object v3, v14
array-length v14, v14
if-ne v14, v8, :cond_88
if-nez v7, :cond_88
.line 223
invoke-static {v3, v9, v8, v9, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
goto :goto_8e
.line 226
:cond_88
array-length v14, v3
invoke-static {v3, v9, v14, v7, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
.line 227
const/4 v7, 0x1
.line 228
const/4 v6, 0x0
.line 230
:goto_8e
add-int/2addr v5, v13
.line 233
.end local v3 # "bytes":[B
.end local v10 # "n":I
.end local v12 # "t":I
.end local v13 # "b":I
goto :goto_4c
.line 208
.restart local v10 # "n":I
.restart local v12 # "t":I
:cond_90
:goto_90
if-eqz v7, :cond_99
.line 209
const/16 v14, 0x384
invoke-virtual {v2, v14}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 210
const/4 v7, 0x0
.line 211
const/4 v6, 0x0
.line 213
:cond_99
invoke-static {v0, v5, v12, v2, v6}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
move-result v6
.line 214
add-int/2addr v5, v12
goto :goto_4c
.line 192
.end local v7 # "encodingMode":I
.end local v10 # "n":I
.end local v12 # "t":I
:cond_9f
invoke-virtual {v2, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 193
invoke-static {v0, v9, v4, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
.line 194
goto :goto_b4
.line 188
:cond_a6
invoke-virtual {v0, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object v7
.line 189
.local v3, "msgBytes":[B
move-object v3, v7
array-length v10, v3
invoke-static {v7, v9, v10, v8, v2}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
.line 190
goto :goto_b4
.line 185
.end local v3 # "msgBytes":[B
:cond_b0
invoke-static {v0, v9, v4, v2, v9}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
.line 186
nop
.line 237
:cond_b4
:goto_b4
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
return-object v3
.end method
.method private static encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
.registers 13
.param p0, "msg" # Ljava/lang/String;
.param p1, "startpos" # I
.param p2, "count" # I
.param p3, "sb" # Ljava/lang/StringBuilder;
.line 420
const/4 v0, 0x0
.line 421
.local v0, "idx":I
new-instance v1, Ljava/lang/StringBuilder;
div-int/lit8 v2, p2, 0x3
add-int/lit8 v2, v2, 0x1
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(I)V
.line 422
.local v1, "tmp":Ljava/lang/StringBuilder;
const-wide/16 v2, 0x384
invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
move-result-object v2
.line 423
.local v2, "num900":Ljava/math/BigInteger;
const-wide/16 v3, 0x0
invoke-static {v3, v4}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
move-result-object v3
.line 424
.local v3, "num0":Ljava/math/BigInteger;
:goto_16
if-ge v0, p2, :cond_6b
.line 425
const/4 v4, 0x0
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->setLength(I)V
.line 426
const/16 v4, 0x2c
sub-int v5, p2, v0
invoke-static {v4, v5}, Ljava/lang/Math;->min(II)I
move-result v4
.line 427
.local v4, "len":I
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "1"
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
add-int v6, p1, v0
add-int v7, p1, v0
add-int/2addr v7, v4
invoke-virtual {p0, v6, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 428
.local v5, "part":Ljava/lang/String;
new-instance v6, Ljava/math/BigInteger;
invoke-direct {v6, v5}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
.line 430
.local v6, "bigint":Ljava/math/BigInteger;
:cond_40
invoke-virtual {v6, v2}, Ljava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v7
invoke-virtual {v7}, Ljava/math/BigInteger;->intValue()I
move-result v7
int-to-char v7, v7
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 431
invoke-virtual {v6, v2}, Ljava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v7
.line 432
move-object v6, v7
invoke-virtual {v7, v3}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_40
.line 435
invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I
move-result v7
add-int/lit8 v7, v7, -0x1
.local v7, "i":I
:goto_5d
if-ltz v7, :cond_69
.line 436
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v8
invoke-virtual {p3, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 435
add-int/lit8 v7, v7, -0x1
goto :goto_5d
.line 438
.end local v7 # "i":I
:cond_69
add-int/2addr v0, v4
.line 439
.end local v4 # "len":I
.end local v5 # "part":Ljava/lang/String;
.end local v6 # "bigint":Ljava/math/BigInteger;
goto :goto_16
.line 440
:cond_6b
return-void
.end method
.method private static encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
.registers 21
.param p0, "msg" # Ljava/lang/CharSequence;
.param p1, "startpos" # I
.param p2, "count" # I
.param p3, "sb" # Ljava/lang/StringBuilder;
.param p4, "initialSubmode" # I
.line 256
move-object/from16 v0, p0
move/from16 v1, p2
move-object/from16 v2, p3
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v1}, Ljava/lang/StringBuilder;-><init>(I)V
.line 257
.local v3, "tmp":Ljava/lang/StringBuilder;
move/from16 v4, p4
.line 258
.local v4, "submode":I
const/4 v5, 0x0
.local v5, "idx":I
const/4 v6, 0x0
const/4 v7, 0x0
.line 260
:cond_10
:goto_10
add-int v8, p1, v5
invoke-interface {v0, v8}, Ljava/lang/CharSequence;->charAt(I)C
move-result v8
.line 261
.local v8, "ch":C
const/16 v9, 0x1a
const/16 v10, 0x20
const/16 v11, 0x1c
const/16 v12, 0x1b
const/16 v13, 0x1d
const/4 v14, 0x1
if-eqz v4, :cond_c4
if-eq v4, v14, :cond_89
const/4 v9, 0x2
if-eq v4, v9, :cond_3d
.line 336
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isPunctuation(C)Z
move-result v9
if-eqz v9, :cond_38
.line 337
sget-object v9, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v8
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_fb
.line 339
:cond_38
const/4 v4, 0x0
.line 340
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 341
goto :goto_10
.line 310
:cond_3d
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v9
if-eqz v9, :cond_4d
.line 311
sget-object v9, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
aget-byte v9, v9, v8
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_fb
.line 313
:cond_4d
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v9
if-eqz v9, :cond_58
.line 314
const/4 v4, 0x0
.line 315
invoke-virtual {v3, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 316
goto :goto_10
.line 317
:cond_58
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v9
if-eqz v9, :cond_63
.line 318
const/4 v4, 0x1
.line 319
invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 320
goto :goto_10
.line 322
:cond_63
add-int v9, p1, v5
add-int/2addr v9, v14
if-ge v9, v1, :cond_7c
.line 323
add-int v9, p1, v5
add-int/2addr v9, v14
invoke-interface {v0, v9}, Ljava/lang/CharSequence;->charAt(I)C
move-result v9
.line 324
.local v7, "next":C
invoke-static {v9}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isPunctuation(C)Z
move-result v9
if-eqz v9, :cond_7c
.line 325
const/4 v4, 0x3
.line 326
const/16 v9, 0x19
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 327
goto :goto_10
.line 330
.end local v7 # "next":C
:cond_7c
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 331
sget-object v9, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v8
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 334
goto/16 :goto_fb
.line 286
:cond_89
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v15
if-eqz v15, :cond_9c
.line 287
if-ne v8, v10, :cond_95
.line 288
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_fb
.line 290
:cond_95
add-int/lit8 v9, v8, -0x61
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_fb
.line 293
:cond_9c
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v9
if-eqz v9, :cond_ac
.line 294
invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 295
add-int/lit8 v9, v8, -0x41
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 297
goto :goto_fb
.line 298
:cond_ac
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v9
if-eqz v9, :cond_b8
.line 299
const/4 v4, 0x2
.line 300
invoke-virtual {v3, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 301
goto/16 :goto_10
.line 303
:cond_b8
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 304
sget-object v9, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v8
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 305
goto :goto_fb
.line 263
:cond_c4
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v15
if-eqz v15, :cond_d7
.line 264
if-ne v8, v10, :cond_d0
.line 265
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_fb
.line 267
:cond_d0
add-int/lit8 v9, v8, -0x41
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_fb
.line 270
:cond_d7
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v9
if-eqz v9, :cond_e3
.line 271
const/4 v4, 0x1
.line 272
invoke-virtual {v3, v12}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 273
goto/16 :goto_10
.line 274
:cond_e3
invoke-static {v8}, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v9
if-eqz v9, :cond_ef
.line 275
const/4 v4, 0x2
.line 276
invoke-virtual {v3, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 277
goto/16 :goto_10
.line 279
:cond_ef
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 280
sget-object v9, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v8
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 281
nop
.line 344
:goto_fb
add-int/lit8 v5, v5, 0x1
.line 345
if-lt v5, v1, :cond_10
.line 349
.end local v8 # "ch":C
const/4 v7, 0x0
.line 350
.local v7, "h":C
invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I
move-result v8
.line 351
.local v8, "len":I
const/4 v9, 0x0
.local v9, "i":I
:goto_105
if-ge v9, v8, :cond_123
.line 352
rem-int/lit8 v10, v9, 0x2
if-eqz v10, :cond_10d
const/4 v10, 0x1
goto :goto_10e
:cond_10d
const/4 v10, 0x0
.line 353
:goto_10e
if-eqz v10, :cond_11c
.line 354
mul-int/lit8 v10, v7, 0x1e
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v11
add-int/2addr v10, v11
int-to-char v7, v10
.line 355
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_120
.line 357
:cond_11c
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v7
.line 351
:goto_120
add-int/lit8 v9, v9, 0x1
goto :goto_105
.line 360
.end local v9 # "i":I
:cond_123
rem-int/lit8 v6, v8, 0x2
if-eqz v6, :cond_12e
.line 361
mul-int/lit8 v6, v7, 0x1e
add-int/2addr v6, v13
int-to-char v6, v6
invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 363
:cond_12e
return v4
.end method
.method private static encodingECI(ILjava/lang/StringBuilder;)V
.registers 5
.param p0, "eci" # I
.param p1, "sb" # Ljava/lang/StringBuilder;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.line 569
if-ltz p0, :cond_10
const/16 v0, 0x384
if-ge p0, v0, :cond_10
.line 570
const/16 v0, 0x39f
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 571
int-to-char v0, p0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
return-void
.line 572
:cond_10
const v0, 0xc5f94
if-ge p0, v0, :cond_29
.line 573
const/16 v0, 0x39e
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 574
div-int/lit16 v0, p0, 0x384
add-int/lit8 v0, v0, -0x1
int-to-char v0, v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 575
rem-int/lit16 v0, p0, 0x384
int-to-char v0, v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
return-void
.line 576
:cond_29
const v1, 0xc6318
if-ge p0, v1, :cond_39
.line 577
const/16 v1, 0x39d
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 578
sub-int/2addr v0, p0
int-to-char v0, v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
return-void
.line 580
:cond_39
new-instance v0, Lcom/google/zxing/WriterException;
invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
const-string v2, "ECI number not in valid range from 0..811799, but was "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/google/zxing/WriterException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static isAlphaLower(C)Z
.registers 2
.param p0, "ch" # C
.line 452
const/16 v0, 0x20
if-eq p0, v0, :cond_f
const/16 v0, 0x61
if-lt p0, v0, :cond_d
const/16 v0, 0x7a
if-gt p0, v0, :cond_d
goto :goto_f
:cond_d
const/4 v0, 0x0
return v0
:cond_f
:goto_f
const/4 v0, 0x1
return v0
.end method
.method private static isAlphaUpper(C)Z
.registers 2
.param p0, "ch" # C
.line 448
const/16 v0, 0x20
if-eq p0, v0, :cond_f
const/16 v0, 0x41
if-lt p0, v0, :cond_d
const/16 v0, 0x5a
if-gt p0, v0, :cond_d
goto :goto_f
:cond_d
const/4 v0, 0x0
return v0
:cond_f
:goto_f
const/4 v0, 0x1
return v0
.end method
.method private static isDigit(C)Z
.registers 2
.param p0, "ch" # C
.line 444
const/16 v0, 0x30
if-lt p0, v0, :cond_a
const/16 v0, 0x39
if-gt p0, v0, :cond_a
const/4 v0, 0x1
return v0
:cond_a
const/4 v0, 0x0
return v0
.end method
.method private static isMixed(C)Z
.registers 3
.param p0, "ch" # C
.line 456
sget-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
aget-byte v0, v0, p0
const/4 v1, -0x1
if-eq v0, v1, :cond_9
const/4 v0, 0x1
return v0
:cond_9
const/4 v0, 0x0
return v0
.end method
.method private static isPunctuation(C)Z
.registers 3
.param p0, "ch" # C
.line 460
sget-object v0, Lcom/google/zxing/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v0, v0, p0
const/4 v1, -0x1
if-eq v0, v1, :cond_9
const/4 v0, 0x1
return v0
:cond_9
const/4 v0, 0x0
return v0
.end method
.method private static isText(C)Z
.registers 2
.param p0, "ch" # C
.line 464
const/16 v0, 0x9
if-eq p0, v0, :cond_17
const/16 v0, 0xa
if-eq p0, v0, :cond_17
const/16 v0, 0xd
if-eq p0, v0, :cond_17
const/16 v0, 0x20
if-lt p0, v0, :cond_15
const/16 v0, 0x7e
if-gt p0, v0, :cond_15
goto :goto_17
:cond_15
const/4 v0, 0x0
return v0
:cond_17
:goto_17
const/4 v0, 0x1
return v0
.end method