Code93Writer.smali
.class public Lcom/google/zxing/oned/Code93Writer;
.super Lcom/google/zxing/oned/OneDimensionalCodeWriter;
.source "Code93Writer.java"
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 28
invoke-direct {p0}, Lcom/google/zxing/oned/OneDimensionalCodeWriter;-><init>()V
return-void
.end method
.method private static appendPattern([ZI[I)I
.registers 9
.param p0, "target" # [Z
.param p1, "pos" # I
.param p2, "pattern" # [I
.line 109
array-length v0, p2
const/4 v1, 0x0
const/4 v2, 0x0
:goto_3
if-ge v2, v0, :cond_14
aget v3, p2, v2
.line 110
.local v3, "bit":I
add-int/lit8 v4, p1, 0x1
.end local p1 # "pos":I
.local v4, "pos":I
if-eqz v3, :cond_d
const/4 v5, 0x1
goto :goto_e
:cond_d
const/4 v5, 0x0
:goto_e
aput-boolean v5, p0, p1
.line 109
.end local v3 # "bit":I
add-int/lit8 v2, v2, 0x1
move p1, v4
goto :goto_3
.line 112
.end local v4 # "pos":I
.restart local p1 # "pos":I
:cond_14
const/16 v0, 0x9
return v0
.end method
.method protected static appendPattern([ZI[IZ)I
.registers 5
.param p0, "target" # [Z
.param p1, "pos" # I
.param p2, "pattern" # [I
.param p3, "startColor" # Z
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 105
invoke-static {p0, p1, p2}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v0
return v0
.end method
.method private static computeChecksumIndex(Ljava/lang/String;I)I
.registers 7
.param p0, "contents" # Ljava/lang/String;
.param p1, "maxWeight" # I
.line 116
const/4 v0, 0x1
.line 117
.local v0, "weight":I
const/4 v1, 0x0
.line 119
.local v1, "total":I
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v2
add-int/lit8 v2, v2, -0x1
.local v2, "i":I
:goto_8
if-ltz v2, :cond_1f
.line 120
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
const-string v4, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"
invoke-virtual {v4, v3}, Ljava/lang/String;->indexOf(I)I
move-result v3
.line 121
.local v3, "indexInString":I
mul-int v4, v3, v0
add-int/2addr v1, v4
.line 122
add-int/lit8 v0, v0, 0x1
if-le v0, p1, :cond_1c
.line 123
const/4 v0, 0x1
.line 119
.end local v3 # "indexInString":I
:cond_1c
add-int/lit8 v2, v2, -0x1
goto :goto_8
.line 126
.end local v2 # "i":I
:cond_1f
rem-int/lit8 v2, v1, 0x2f
return v2
.end method
.method private static toIntArray(I[I)V
.registers 5
.param p0, "a" # I
.param p1, "toReturn" # [I
.line 89
const/4 v0, 0x0
.local v0, "i":I
:goto_1
const/16 v1, 0x9
if-ge v0, v1, :cond_13
.line 90
rsub-int/lit8 v1, v0, 0x8
const/4 v2, 0x1
shl-int v1, v2, v1
and-int/2addr v1, p0
.line 91
.local v1, "temp":I
if-nez v1, :cond_e
const/4 v2, 0x0
:cond_e
aput v2, p1, v0
.line 89
.end local v1 # "temp":I
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 93
.end local v0 # "i":I
:cond_13
return-void
.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 35
.local p5, "hints":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/zxing/EncodeHintType;*>;"
sget-object v0, Lcom/google/zxing/BarcodeFormat;->CODE_93:Lcom/google/zxing/BarcodeFormat;
if-ne p2, v0, :cond_9
.line 38
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 36
: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_93, 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 12
.param p1, "contents" # Ljava/lang/String;
.line 43
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
const/4 v1, 0x0
move v2, v1
.line 44
.local v2, "length":I
move v2, v0
const/16 v3, 0x50
if-gt v0, v3, :cond_8e
.line 49
const/16 v0, 0x9
new-array v3, v0, [I
.line 52
.local v3, "widths":[I
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v4
add-int/lit8 v4, v4, 0x2
add-int/lit8 v4, v4, 0x2
mul-int/lit8 v4, v4, 0x9
const/4 v0, 0x1
add-int/2addr v4, v0
.line 55
.local v4, "codeWidth":I
sget-object v5, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I
const/16 v6, 0x2f
aget v5, v5, v6
invoke-static {v5, v3}, Lcom/google/zxing/oned/Code93Writer;->toIntArray(I[I)V
.line 57
new-array v5, v4, [Z
const/4 v7, 0x0
.line 58
.local v7, "result":[Z
move-object v7, v5
invoke-static {v5, v1, v3}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v1
.line 60
.local v1, "pos":I
const/4 v5, 0x0
.local v5, "i":I
:goto_2d
const-string v8, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"
if-ge v5, v2, :cond_48
.line 61
invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C
move-result v9
invoke-virtual {v8, v9}, Ljava/lang/String;->indexOf(I)I
move-result v8
.line 62
.local v8, "indexInString":I
sget-object v9, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I
aget v9, v9, v8
invoke-static {v9, v3}, Lcom/google/zxing/oned/Code93Writer;->toIntArray(I[I)V
.line 63
invoke-static {v7, v1, v3}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v9
add-int/2addr v1, v9
.line 60
.end local v8 # "indexInString":I
add-int/lit8 v5, v5, 0x1
goto :goto_2d
.line 67
.end local v5 # "i":I
:cond_48
const/16 v5, 0x14
invoke-static {p1, v5}, Lcom/google/zxing/oned/Code93Writer;->computeChecksumIndex(Ljava/lang/String;I)I
move-result v5
.line 68
.local v5, "check1":I
sget-object v9, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I
aget v9, v9, v5
invoke-static {v9, v3}, Lcom/google/zxing/oned/Code93Writer;->toIntArray(I[I)V
.line 69
invoke-static {v7, v1, v3}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v9
add-int/2addr v1, v9
.line 72
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v9, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v5}, Ljava/lang/String;->charAt(I)C
move-result v8
invoke-virtual {v9, v8}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
.line 74
const/16 v9, 0xf
invoke-static {v8, v9}, Lcom/google/zxing/oned/Code93Writer;->computeChecksumIndex(Ljava/lang/String;I)I
move-result v8
.line 75
.local v8, "check2":I
sget-object v9, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I
aget v9, v9, v8
invoke-static {v9, v3}, Lcom/google/zxing/oned/Code93Writer;->toIntArray(I[I)V
.line 76
invoke-static {v7, v1, v3}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v9
add-int/2addr v1, v9
.line 79
sget-object v9, Lcom/google/zxing/oned/Code93Reader;->CHARACTER_ENCODINGS:[I
aget v6, v9, v6
invoke-static {v6, v3}, Lcom/google/zxing/oned/Code93Writer;->toIntArray(I[I)V
.line 80
invoke-static {v7, v1, v3}, Lcom/google/zxing/oned/Code93Writer;->appendPattern([ZI[I)I
move-result v6
add-int/2addr v1, v6
.line 83
aput-boolean v0, v7, v1
.line 85
return-object v7
.line 45
.end local v1 # "pos":I
.end local v3 # "widths":[I
.end local v4 # "codeWidth":I
.end local v5 # "check1":I
.end local v7 # "result":[Z
.end local v8 # "check2":I
:cond_8e
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v1
const-string v3, "Requested contents should be less than 80 digits long, but got "
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_9f
:goto_9e
throw v0
:goto_9f
goto :goto_9e
.end method