PDF417HighLevelEncoder.smali
.class final Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;
.super Ljava/lang/Object;
# 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
const/16 v0, 0x1e
new-array v1, v0, [B
.line 1
fill-array-data v1, :array_50
sput-object v1, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_MIXED_RAW:[B
new-array v0, v0, [B
.line 8
fill-array-data v0, :array_64
sput-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_PUNCTUATION_RAW:[B
const/16 v0, 0x80
new-array v1, v0, [B
.line 12
sput-object v1, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
new-array v0, v0, [B
.line 13
sput-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
const-string v0, "ISO-8859-1"
.line 15
invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v0
sput-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
const/4 v0, -0x1
.line 22
invoke-static {v1, v0}, Ljava/util/Arrays;->fill([BB)V
const/4 v1, 0x0
move v2, v1
.line 23
:goto_28
sget-object v3, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_MIXED_RAW:[B
array-length v4, v3
if-ge v2, v4, :cond_39
.line 24
aget-byte v3, v3, v2
if-lez v3, :cond_35
.line 26
sget-object v4, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
aput-byte v2, v4, v3
:cond_35
add-int/lit8 v2, v2, 0x1
int-to-byte v2, v2
goto :goto_28
.line 29
:cond_39
sget-object v2, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
invoke-static {v2, v0}, Ljava/util/Arrays;->fill([BB)V
.line 30
:goto_3e
sget-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->TEXT_PUNCTUATION_RAW:[B
array-length v2, v0
if-ge v1, v2, :cond_4f
.line 31
aget-byte v0, v0, v1
if-lez v0, :cond_4b
.line 33
sget-object v2, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aput-byte v1, v2, v0
:cond_4b
add-int/lit8 v1, v1, 0x1
int-to-byte v1, v1
goto :goto_3e
:cond_4f
return-void
:array_50
.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_64
.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 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static determineConsecutiveBinaryCount(Ljava/lang/String;ILjava/nio/charset/Charset;)I
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/WriterException;
}
.end annotation
.line 1
invoke-virtual {p2}, Ljava/nio/charset/Charset;->newEncoder()Ljava/nio/charset/CharsetEncoder;
move-result-object p2
.line 2
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
move v1, p1
:goto_9
if-ge v1, v0, :cond_5b
.line 5
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/4 v3, 0x0
:goto_10
const/16 v4, 0xd
if-ge v3, v4, :cond_26
.line 8
invoke-static {v2}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v2
if-eqz v2, :cond_26
add-int/lit8 v3, v3, 0x1
add-int v2, v1, v3
if-lt v2, v0, :cond_21
goto :goto_26
.line 15
:cond_21
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
goto :goto_10
:cond_26
:goto_26
if-lt v3, v4, :cond_2a
sub-int/2addr v1, p1
return v1
.line 20
:cond_2a
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 22
invoke-virtual {p2, v2}, Ljava/nio/charset/CharsetEncoder;->canEncode(C)Z
move-result v3
if-eqz v3, :cond_37
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 23
:cond_37
new-instance p0, Lcom/dcloud/zxing2/WriterException;
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string p2, "Non-encodable character detected: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string p2, " (Unicode: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const/16 p2, 0x29
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Lcom/dcloud/zxing2/WriterException;-><init>(Ljava/lang/String;)V
throw p0
:cond_5b
sub-int/2addr v1, p1
return v1
.end method
.method private static determineConsecutiveDigitCount(Ljava/lang/CharSequence;I)I
.registers 6
.line 1
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v0
const/4 v1, 0x0
if-ge p1, v0, :cond_1e
.line 4
invoke-interface {p0, p1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
.line 5
:cond_b
:goto_b
invoke-static {v2}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v3
if-eqz v3, :cond_1e
if-ge p1, v0, :cond_1e
add-int/lit8 v1, v1, 0x1
add-int/lit8 p1, p1, 0x1
if-ge p1, v0, :cond_b
.line 9
invoke-interface {p0, p1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
goto :goto_b
:cond_1e
return v1
.end method
.method private static determineConsecutiveTextCount(Ljava/lang/CharSequence;I)I
.registers 8
.line 1
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v0
move v1, p1
:goto_5
if-ge v1, v0, :cond_39
.line 4
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
const/4 v3, 0x0
:cond_c
:goto_c
const/16 v4, 0xd
if-ge v3, v4, :cond_23
.line 6
invoke-static {v2}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isDigit(C)Z
move-result v5
if-eqz v5, :cond_23
if-ge v1, v0, :cond_23
add-int/lit8 v3, v3, 0x1
add-int/lit8 v1, v1, 0x1
if-ge v1, v0, :cond_c
.line 10
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
goto :goto_c
:cond_23
if-lt v3, v4, :cond_28
sub-int/2addr v1, p1
sub-int/2addr v1, v3
return v1
:cond_28
if-lez v3, :cond_2b
goto :goto_5
.line 20
:cond_2b
invoke-interface {p0, v1}, Ljava/lang/CharSequence;->charAt(I)C
move-result v2
.line 23
invoke-static {v2}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isText(C)Z
move-result v2
if-nez v2, :cond_36
goto :goto_39
:cond_36
add-int/lit8 v1, v1, 0x1
goto :goto_5
:cond_39
:goto_39
sub-int/2addr v1, p1
return v1
.end method
.method private static encodeBinary([BIIILjava/lang/StringBuilder;)V
.registers 16
const/4 v0, 0x0
const/4 v1, 0x1
if-ne p2, v1, :cond_c
if-nez p3, :cond_c
const/16 p3, 0x391
.line 1
invoke-virtual {p4, p3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1f
.line 3
:cond_c
rem-int/lit8 p3, p2, 0x6
if-nez p3, :cond_11
goto :goto_12
:cond_11
move v1, v0
:goto_12
if-eqz v1, :cond_1a
const/16 p3, 0x39c
.line 5
invoke-virtual {p4, p3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_1f
:cond_1a
const/16 p3, 0x385
.line 7
invoke-virtual {p4, p3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_1f
const/4 p3, 0x6
if-lt p2, p3, :cond_5b
const/4 v1, 0x5
new-array v2, v1, [C
move v3, p1
:goto_26
add-int v4, p1, p2
sub-int/2addr v4, v3
if-lt v4, p3, :cond_5c
const-wide/16 v4, 0x0
move v6, v0
:goto_2e
if-ge v6, p3, :cond_3e
const/16 v7, 0x8
shl-long/2addr v4, v7
add-int v7, v3, v6
.line 19
aget-byte v7, p0, v7
and-int/lit16 v7, v7, 0xff
int-to-long v7, v7
add-long/2addr v4, v7
add-int/lit8 v6, v6, 0x1
goto :goto_2e
:cond_3e
move v6, v0
:goto_3f
if-ge v6, v1, :cond_4d
const-wide/16 v7, 0x384
.line 22
rem-long v9, v4, v7
long-to-int v9, v9
int-to-char v9, v9
aput-char v9, v2, v6
.line 23
div-long/2addr v4, v7
add-int/lit8 v6, v6, 0x1
goto :goto_3f
:cond_4d
const/4 v4, 0x4
:goto_4e
if-ltz v4, :cond_58
.line 26
aget-char v5, v2, v4
invoke-virtual {p4, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v4, v4, -0x1
goto :goto_4e
:cond_58
add-int/lit8 v3, v3, 0x6
goto :goto_26
:cond_5b
move v3, p1
:cond_5c
:goto_5c
add-int p3, p1, p2
if-ge v3, p3, :cond_6b
.line 33
aget-byte p3, p0, v3
and-int/lit16 p3, p3, 0xff
int-to-char p3, p3
.line 34
invoke-virtual {p4, p3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v3, v3, 0x1
goto :goto_5c
:cond_6b
return-void
.end method
.method static encodeHighLevel(Ljava/lang/String;Lcom/dcloud/zxing2/pdf417/encoder/Compaction;Ljava/nio/charset/Charset;)Ljava/lang/String;
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/WriterException;
}
.end annotation
.line 1
new-instance v0, Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
if-nez p2, :cond_e
.line 4
sget-object p2, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
goto :goto_27
.line 5
:cond_e
sget-object v1, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->DEFAULT_ENCODING:Ljava/nio/charset/Charset;
invoke-virtual {v1, p2}, Ljava/nio/charset/Charset;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_27
.line 6
invoke-virtual {p2}, Ljava/nio/charset/Charset;->name()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lcom/dcloud/zxing2/common/CharacterSetECI;->getCharacterSetECIByName(Ljava/lang/String;)Lcom/dcloud/zxing2/common/CharacterSetECI;
move-result-object v1
if-eqz v1, :cond_27
.line 8
invoke-virtual {v1}, Lcom/dcloud/zxing2/common/CharacterSetECI;->getValue()I
move-result v1
invoke-static {v1, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodingECI(ILjava/lang/StringBuilder;)V
.line 12
:cond_27
:goto_27
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
.line 17
sget-object v2, Lcom/dcloud/zxing2/pdf417/encoder/Compaction;->TEXT:Lcom/dcloud/zxing2/pdf417/encoder/Compaction;
const/4 v3, 0x0
if-ne p1, v2, :cond_35
.line 18
invoke-static {p0, v3, v1, v0, v3}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
goto/16 :goto_a2
.line 20
:cond_35
sget-object v2, Lcom/dcloud/zxing2/pdf417/encoder/Compaction;->BYTE:Lcom/dcloud/zxing2/pdf417/encoder/Compaction;
const/4 v4, 0x1
if-ne p1, v2, :cond_44
.line 21
invoke-virtual {p0, p2}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object p0
.line 22
array-length p1, p0
invoke-static {p0, v3, p1, v4, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
goto/16 :goto_a2
.line 24
:cond_44
sget-object v2, Lcom/dcloud/zxing2/pdf417/encoder/Compaction;->NUMERIC:Lcom/dcloud/zxing2/pdf417/encoder/Compaction;
const/16 v5, 0x386
if-ne p1, v2, :cond_51
.line 25
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 26
invoke-static {p0, v3, v1, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
goto :goto_a2
:cond_51
move p1, v3
move v2, p1
move v6, v2
:goto_54
if-ge p1, v1, :cond_a2
.line 31
invoke-static {p0, p1}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveDigitCount(Ljava/lang/CharSequence;I)I
move-result v7
const/16 v8, 0xd
if-lt v7, v8, :cond_68
.line 33
invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const/4 v2, 0x2
.line 36
invoke-static {p0, p1, v7, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
add-int/2addr p1, v7
move v6, v3
goto :goto_54
.line 39
:cond_68
invoke-static {p0, p1}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveTextCount(Ljava/lang/CharSequence;I)I
move-result v8
const/4 v9, 0x5
if-ge v8, v9, :cond_93
if-ne v7, v1, :cond_72
goto :goto_93
.line 49
:cond_72
invoke-static {p0, p1, p2}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->determineConsecutiveBinaryCount(Ljava/lang/String;ILjava/nio/charset/Charset;)I
move-result v7
if-nez v7, :cond_79
move v7, v4
:cond_79
add-int/2addr v7, p1
.line 53
invoke-virtual {p0, p1, v7}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p1
invoke-virtual {p1, p2}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object p1
.line 54
array-length v8, p1
if-ne v8, v4, :cond_8b
if-nez v2, :cond_8b
.line 56
invoke-static {p1, v3, v4, v3, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
goto :goto_91
.line 59
:cond_8b
array-length v6, p1
invoke-static {p1, v3, v6, v2, v0}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeBinary([BIIILjava/lang/StringBuilder;)V
move v6, v3
move v2, v4
:goto_91
move p1, v7
goto :goto_54
:cond_93
:goto_93
if-eqz v2, :cond_9c
const/16 v2, 0x384
.line 60
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move v2, v3
move v6, v2
.line 64
:cond_9c
invoke-static {p0, p1, v8, v0, v6}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
move-result v6
add-int/2addr p1, v8
goto :goto_54
.line 87
:cond_a2
:goto_a2
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private static encodeNumeric(Ljava/lang/String;IILjava/lang/StringBuilder;)V
.registers 13
.line 1
new-instance v0, Ljava/lang/StringBuilder;
div-int/lit8 v1, p2, 0x3
add-int/lit8 v1, v1, 0x1
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const-wide/16 v1, 0x384
.line 2
invoke-static {v1, v2}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
move-result-object v1
const-wide/16 v2, 0x0
.line 3
invoke-static {v2, v3}, Ljava/math/BigInteger;->valueOf(J)Ljava/math/BigInteger;
move-result-object v2
const/4 v3, 0x0
move v4, v3
:goto_17
if-ge v4, p2, :cond_6c
.line 5
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->setLength(I)V
sub-int v5, p2, v4
const/16 v6, 0x2c
.line 6
invoke-static {v6, v5}, Ljava/lang/Math;->min(II)I
move-result v5
.line 7
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const/16 v7, 0x31
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int v7, p1, v4
add-int v8, v7, v5
invoke-virtual {p0, v7, v8}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
.line 8
new-instance v7, Ljava/math/BigInteger;
invoke-direct {v7, v6}, Ljava/math/BigInteger;-><init>(Ljava/lang/String;)V
.line 10
:cond_42
invoke-virtual {v7, v1}, Ljava/math/BigInteger;->mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v6
invoke-virtual {v6}, Ljava/math/BigInteger;->intValue()I
move-result v6
int-to-char v6, v6
invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 11
invoke-virtual {v7, v1}, Ljava/math/BigInteger;->divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;
move-result-object v7
.line 12
invoke-virtual {v7, v2}, Ljava/math/BigInteger;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_42
.line 15
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v6
add-int/lit8 v6, v6, -0x1
:goto_5e
if-ltz v6, :cond_6a
.line 16
invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v7
invoke-virtual {p3, v7}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v6, v6, -0x1
goto :goto_5e
:cond_6a
add-int/2addr v4, v5
goto :goto_17
:cond_6c
return-void
.end method
.method private static encodeText(Ljava/lang/CharSequence;IILjava/lang/StringBuilder;I)I
.registers 21
move-object/from16 v0, p0
move/from16 v1, p2
move-object/from16 v2, p3
.line 1
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v1}, Ljava/lang/StringBuilder;-><init>(I)V
const/4 v4, 0x2
const/4 v5, 0x0
const/4 v6, 0x1
move/from16 v7, p4
move v8, v5
:cond_11
:goto_11
add-int v9, p1, v8
.line 5
invoke-interface {v0, v9}, Ljava/lang/CharSequence;->charAt(I)C
move-result v10
const/16 v11, 0x1a
const/16 v12, 0x20
const/16 v13, 0x1c
const/16 v14, 0x1b
const/16 v15, 0x1d
if-eqz v7, :cond_bc
if-eq v7, v6, :cond_83
if-eq v7, v4, :cond_3c
.line 81
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isPunctuation(C)Z
move-result v9
if-eqz v9, :cond_37
.line 82
sget-object v9, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v10
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f2
.line 85
:cond_37
invoke-virtual {v3, v15}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_3a
move v7, v5
goto :goto_11
.line 86
:cond_3c
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v11
if-eqz v11, :cond_4c
.line 87
sget-object v9, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
aget-byte v9, v9, v10
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f2
.line 89
:cond_4c
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v11
if-eqz v11, :cond_56
.line 91
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_3a
.line 93
:cond_56
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v11
if-eqz v11, :cond_61
.line 95
invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_d8
:cond_61
add-int/lit8 v9, v9, 0x1
if-ge v9, v1, :cond_76
.line 99
invoke-interface {v0, v9}, Ljava/lang/CharSequence;->charAt(I)C
move-result v9
.line 100
invoke-static {v9}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isPunctuation(C)Z
move-result v9
if-eqz v9, :cond_76
const/4 v7, 0x3
const/16 v9, 0x19
.line 102
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_11
.line 106
:cond_76
invoke-virtual {v3, v15}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 107
sget-object v9, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v10
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f2
.line 108
:cond_83
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v9
if-eqz v9, :cond_96
if-ne v10, v12, :cond_8f
.line 110
invoke-virtual {v3, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
:cond_8f
add-int/lit8 v10, v10, -0x61
int-to-char v9, v10
.line 112
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
.line 115
:cond_96
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v9
if-eqz v9, :cond_a6
.line 116
invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
add-int/lit8 v10, v10, -0x41
int-to-char v9, v10
.line 117
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
.line 120
:cond_a6
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v9
if-eqz v9, :cond_b0
.line 122
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_e4
.line 125
:cond_b0
invoke-virtual {v3, v15}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 126
sget-object v9, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v10
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
.line 127
:cond_bc
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaUpper(C)Z
move-result v9
if-eqz v9, :cond_cf
if-ne v10, v12, :cond_c8
.line 129
invoke-virtual {v3, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
:cond_c8
add-int/lit8 v10, v10, -0x41
int-to-char v9, v10
.line 131
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f2
.line 134
:cond_cf
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isAlphaLower(C)Z
move-result v9
if-eqz v9, :cond_db
.line 136
invoke-virtual {v3, v14}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_d8
move v7, v6
goto/16 :goto_11
.line 138
:cond_db
invoke-static {v10}, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->isMixed(C)Z
move-result v9
if-eqz v9, :cond_e7
.line 140
invoke-virtual {v3, v13}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_e4
move v7, v4
goto/16 :goto_11
.line 143
:cond_e7
invoke-virtual {v3, v15}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 144
sget-object v9, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte v9, v9, v10
int-to-char v9, v9
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_f2
add-int/lit8 v8, v8, 0x1
if-lt v8, v1, :cond_11
.line 214
invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I
move-result v0
move v1, v5
move v8, v1
:goto_fc
if-ge v1, v0, :cond_11a
.line 216
rem-int/lit8 v9, v1, 0x2
if-eqz v9, :cond_104
move v9, v6
goto :goto_105
:cond_104
move v9, v5
:goto_105
if-eqz v9, :cond_113
mul-int/lit8 v8, v8, 0x1e
.line 218
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v9
add-int/2addr v8, v9
int-to-char v8, v8
.line 219
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_117
.line 221
:cond_113
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v8
:goto_117
add-int/lit8 v1, v1, 0x1
goto :goto_fc
.line 224
:cond_11a
rem-int/2addr v0, v4
if-eqz v0, :cond_124
mul-int/lit8 v8, v8, 0x1e
add-int/2addr v8, v15
int-to-char v0, v8
.line 225
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:cond_124
return v7
.end method
.method private static encodingECI(ILjava/lang/StringBuilder;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/dcloud/zxing2/WriterException;
}
.end annotation
const/16 v0, 0x384
if-ltz p0, :cond_10
if-ge p0, v0, :cond_10
const/16 v0, 0x39f
.line 1
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
int-to-char p0, p0
.line 2
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_37
:cond_10
const v1, 0xc5f94
if-ge p0, v1, :cond_28
const/16 v1, 0x39e
.line 4
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 5
div-int/lit16 v1, p0, 0x384
add-int/lit8 v1, v1, -0x1
int-to-char v1, v1
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 6
rem-int/2addr p0, v0
int-to-char p0, p0
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_37
:cond_28
const v0, 0xc6318
if-ge p0, v0, :cond_38
const/16 v0, 0x39d
.line 8
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
sub-int/2addr v1, p0
int-to-char p0, v1
.line 9
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:goto_37
return-void
.line 11
:cond_38
new-instance p1, Lcom/dcloud/zxing2/WriterException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "ECI number not in valid range from 0..811799, but was "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {p1, p0}, Lcom/dcloud/zxing2/WriterException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private static isAlphaLower(C)Z
.registers 2
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 p0, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 p0, 0x1
:goto_10
return p0
.end method
.method private static isAlphaUpper(C)Z
.registers 2
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 p0, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 p0, 0x1
:goto_10
return p0
.end method
.method private static isDigit(C)Z
.registers 2
const/16 v0, 0x30
if-lt p0, v0, :cond_a
const/16 v0, 0x39
if-gt p0, v0, :cond_a
const/4 p0, 0x1
goto :goto_b
:cond_a
const/4 p0, 0x0
:goto_b
return p0
.end method
.method private static isMixed(C)Z
.registers 2
.line 1
sget-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->MIXED:[B
aget-byte p0, v0, p0
const/4 v0, -0x1
if-eq p0, v0, :cond_9
const/4 p0, 0x1
goto :goto_a
:cond_9
const/4 p0, 0x0
:goto_a
return p0
.end method
.method private static isPunctuation(C)Z
.registers 2
.line 1
sget-object v0, Lcom/dcloud/zxing2/pdf417/encoder/PDF417HighLevelEncoder;->PUNCTUATION:[B
aget-byte p0, v0, p0
const/4 v0, -0x1
if-eq p0, v0, :cond_9
const/4 p0, 0x1
goto :goto_a
:cond_9
const/4 p0, 0x0
:goto_a
return p0
.end method
.method private static isText(C)Z
.registers 2
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 p0, 0x0
goto :goto_18
:cond_17
:goto_17
const/4 p0, 0x1
:goto_18
return p0
.end method