Code39Writer.smali
.class public final Lcom/google/zxing/oned/Code39Writer;
.super Lcom/google/zxing/oned/OneDimensionalCodeWriter;
.source "Code39Writer.java"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 31
invoke-direct {p0}, Lcom/google/zxing/oned/OneDimensionalCodeWriter;-><init>()V
return-void
.end method
.method private static toIntArray(I[I)V
.registers 5
.param p0, "a" # I
.param p1, "toReturn" # [I
.line 93
const/4 v0, 0x0
.local v0, "i":I
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_14
.line 94
rsub-int/lit8 v1, v0, 0x8
const/4 v2, 0x1
shl-int v1, v2, v1
and-int/2addr v1, p0
.line 95
.local v1, "temp":I
if-nez v1, :cond_e
goto :goto_f
:cond_e
const/4 v2, 0x2
:goto_f
aput v2, p1, v0
.line 93
.end local v1 # "temp":I
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 97
.end local v0 # "i":I
:cond_14
return-void
.end method
.method private static tryToConvertToExtendedMode(Ljava/lang/String;)Ljava/lang/String;
.registers 8
.param p0, "contents" # Ljava/lang/String;
.line 100
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 101
.local v0, "length":I
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 102
.local v1, "extendedContent":Ljava/lang/StringBuilder;
const/4 v2, 0x0
.local v2, "i":I
const/4 v3, 0x0
:goto_b
if-ge v2, v0, :cond_fc
.line 103
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v4
.line 104
.local v3, "character":C
move v3, v4
if-eqz v4, :cond_f2
const/16 v5, 0x20
if-eq v4, v5, :cond_ee
const/16 v6, 0x40
if-eq v4, v6, :cond_e8
const/16 v6, 0x60
if-eq v4, v6, :cond_e2
const/16 v6, 0x2d
if-eq v4, v6, :cond_ee
const/16 v6, 0x2e
if-eq v4, v6, :cond_ee
.line 120
const/16 v4, 0x1a
if-gt v3, v4, :cond_3b
.line 121
const/16 v4, 0x24
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 122
add-int/lit8 v4, v3, -0x1
add-int/lit8 v4, v4, 0x41
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f8
.line 123
:cond_3b
const/16 v4, 0x25
if-ge v3, v5, :cond_4c
.line 124
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 125
add-int/lit8 v4, v3, -0x1b
add-int/lit8 v4, v4, 0x41
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f8
.line 126
:cond_4c
const/16 v5, 0x2c
const/16 v6, 0x2f
if-le v3, v5, :cond_d6
if-eq v3, v6, :cond_d6
const/16 v5, 0x3a
if-ne v3, v5, :cond_5a
goto/16 :goto_d6
.line 129
:cond_5a
const/16 v5, 0x39
if-gt v3, v5, :cond_68
.line 130
add-int/lit8 v4, v3, -0x30
add-int/lit8 v4, v4, 0x30
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f8
.line 131
:cond_68
const/16 v5, 0x3f
if-gt v3, v5, :cond_79
.line 132
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 133
add-int/lit8 v4, v3, -0x3b
add-int/lit8 v4, v4, 0x46
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f8
.line 134
:cond_79
const/16 v5, 0x5a
if-gt v3, v5, :cond_87
.line 135
add-int/lit8 v4, v3, -0x41
add-int/lit8 v4, v4, 0x41
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto/16 :goto_f8
.line 136
:cond_87
const/16 v5, 0x5f
if-gt v3, v5, :cond_97
.line 137
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 138
add-int/lit8 v4, v3, -0x5b
add-int/lit8 v4, v4, 0x4b
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f8
.line 139
:cond_97
const/16 v5, 0x7a
if-gt v3, v5, :cond_a9
.line 140
const/16 v4, 0x2b
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 141
add-int/lit8 v4, v3, -0x61
add-int/lit8 v4, v4, 0x41
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f8
.line 142
:cond_a9
const/16 v5, 0x7f
if-gt v3, v5, :cond_b9
.line 143
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 144
add-int/lit8 v4, v3, -0x7b
add-int/lit8 v4, v4, 0x50
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f8
.line 146
:cond_b9
new-instance v4, Ljava/lang/IllegalArgumentException;
new-instance v5, Ljava/lang/StringBuilder;
const-string v6, "Requested content contains a non-encodable character: \'"
invoke-direct {v5, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
const-string 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
invoke-direct {v4, v5}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v4
.line 127
:cond_d6
:goto_d6
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 128
add-int/lit8 v4, v3, -0x21
add-int/lit8 v4, v4, 0x41
int-to-char v4, v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
goto :goto_f8
.line 117
:cond_e2
const-string v4, "%W"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 118
goto :goto_f8
.line 114
:cond_e8
const-string v4, "%V"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 115
goto :goto_f8
.line 111
:cond_ee
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 112
goto :goto_f8
.line 106
:cond_f2
const-string v4, "%U"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 107
nop
.line 102
.end local v3 # "character":C
:goto_f8
add-int/lit8 v2, v2, 0x1
goto/16 :goto_b
.line 152
.end local v2 # "i":I
:cond_fc
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
return-object v2
.end method
# virtual methods
.method public encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;IILjava/util/Map;)Lcom/google/zxing/common/BitMatrix;
.registers 9
.param p1, "contents" # Ljava/lang/String;
.param p2, "format" # Lcom/google/zxing/BarcodeFormat;
.param p3, "width" # I
.param p4, "height" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lcom/google/zxing/BarcodeFormat;",
"II",
"Ljava/util/Map<",
"Lcom/google/zxing/EncodeHintType;",
"*>;)",
"Lcom/google/zxing/common/BitMatrix;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/zxing/WriterException;
}
.end annotation
.line 39
.local p5, "hints":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/zxing/EncodeHintType;*>;"
sget-object v0, Lcom/google/zxing/BarcodeFormat;->CODE_39:Lcom/google/zxing/BarcodeFormat;
if-ne p2, v0, :cond_9
.line 42
invoke-super/range {p0 .. p5}, Lcom/google/zxing/oned/OneDimensionalCodeWriter;->encode(Ljava/lang/String;Lcom/google/zxing/BarcodeFormat;IILjava/util/Map;)Lcom/google/zxing/common/BitMatrix;
move-result-object v0
return-object v0
.line 40
:cond_9
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "Can only encode CODE_39, but got "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public encode(Ljava/lang/String;)[Z
.registers 16
.param p1, "contents" # Ljava/lang/String;
.line 47
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/4 v1, 0x0
move v2, v1
.line 48
.local v2, "length":I
move v2, v0
const-string v3, "Requested contents should be less than 80 digits long, but got "
const/16 v4, 0x50
if-gt v0, v4, :cond_a5
.line 53
const/4 v0, 0x0
const/4 v5, 0x0
.local v0, "i":I
:goto_f
const-string v6, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"
if-ge v0, v2, :cond_44
.line 54
invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C
move-result v7
invoke-virtual {v6, v7}, Ljava/lang/String;->indexOf(I)I
move-result v7
.line 55
.local v5, "indexInString":I
if-gez v7, :cond_41
.line 56
invoke-static {p1}, Lcom/google/zxing/oned/Code39Writer;->tryToConvertToExtendedMode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
.line 57
move-object p1, v7
invoke-virtual {v7}, Ljava/lang/String;->length()I
move-result v7
.line 58
move v2, v7
if-gt v7, v4, :cond_2a
goto :goto_44
.line 59
:cond_2a
new-instance v1, Ljava/lang/IllegalArgumentException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, " (extended full ASCII mode)"
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v1, v3}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 53
.end local v5 # "indexInString":I
:cond_41
add-int/lit8 v0, v0, 0x1
goto :goto_f
.line 66
.end local v0 # "i":I
:cond_44
:goto_44
const/16 v0, 0x9
new-array v3, v0, [I
.line 67
.local v3, "widths":[I
add-int/lit8 v4, v2, 0x19
.line 68
.local v4, "codeWidth":I
const/4 v5, 0x0
.local v5, "i":I
:goto_4b
if-ge v5, v2, :cond_68
.line 69
invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C
move-result v7
invoke-virtual {v6, v7}, Ljava/lang/String;->indexOf(I)I
move-result v7
.line 70
.local v7, "indexInString":I
sget-object v8, Lcom/google/zxing/oned/Code39Reader;->CHARACTER_ENCODINGS:[I
aget v8, v8, v7
invoke-static {v8, v3}, Lcom/google/zxing/oned/Code39Writer;->toIntArray(I[I)V
.line 71
const/4 v8, 0x0
:goto_5d
if-ge v8, v0, :cond_65
aget v9, v3, v8
.line 72
.local v9, "width":I
add-int/2addr v4, v9
.line 71
.end local v9 # "width":I
add-int/lit8 v8, v8, 0x1
goto :goto_5d
.line 68
.end local v7 # "indexInString":I
:cond_65
add-int/lit8 v5, v5, 0x1
goto :goto_4b
.line 75
.end local v5 # "i":I
:cond_68
new-array v0, v4, [Z
.line 76
.local v0, "result":[Z
const/16 v5, 0x94
invoke-static {v5, v3}, Lcom/google/zxing/oned/Code39Writer;->toIntArray(I[I)V
.line 77
const/4 v7, 0x1
invoke-static {v0, v1, v3, v7}, Lcom/google/zxing/oned/Code39Writer;->appendPattern([ZI[IZ)I
move-result v8
.line 78
.local v8, "pos":I
new-array v9, v7, [I
aput v7, v9, v1
.line 79
.local v9, "narrowWhite":[I
invoke-static {v0, v8, v9, v1}, Lcom/google/zxing/oned/Code39Writer;->appendPattern([ZI[IZ)I
move-result v10
add-int/2addr v8, v10
.line 81
const/4 v10, 0x0
.local v10, "i":I
:goto_7e
if-ge v10, v2, :cond_9e
.line 82
invoke-virtual {p1, v10}, Ljava/lang/String;->charAt(I)C
move-result v11
invoke-virtual {v6, v11}, Ljava/lang/String;->indexOf(I)I
move-result v11
.line 83
.local v11, "indexInString":I
sget-object v12, Lcom/google/zxing/oned/Code39Reader;->CHARACTER_ENCODINGS:[I
aget v12, v12, v11
invoke-static {v12, v3}, Lcom/google/zxing/oned/Code39Writer;->toIntArray(I[I)V
.line 84
invoke-static {v0, v8, v3, v7}, Lcom/google/zxing/oned/Code39Writer;->appendPattern([ZI[IZ)I
move-result v12
add-int/2addr v12, v8
.line 85
move v8, v12
invoke-static {v0, v8, v9, v1}, Lcom/google/zxing/oned/Code39Writer;->appendPattern([ZI[IZ)I
move-result v13
add-int v8, v12, v13
.line 81
.end local v11 # "indexInString":I
add-int/lit8 v10, v10, 0x1
goto :goto_7e
.line 87
.end local v10 # "i":I
:cond_9e
invoke-static {v5, v3}, Lcom/google/zxing/oned/Code39Writer;->toIntArray(I[I)V
.line 88
invoke-static {v0, v8, v3, v7}, Lcom/google/zxing/oned/Code39Writer;->appendPattern([ZI[IZ)I
.line 89
return-object v0
.line 49
.end local v0 # "result":[Z
.end local v3 # "widths":[I
.end local v4 # "codeWidth":I
.end local v8 # "pos":I
.end local v9 # "narrowWhite":[I
:cond_a5
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_b4
:goto_b3
throw v0
:goto_b4
goto :goto_b3
.end method