QRCodeMultiReader.smali
.class public final Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;
.super Lcom/google/zxing/qrcode/a;
.source "QRCodeMultiReader.java"
# static fields
.field private static final bpl:[Lcom/google/zxing/e;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 50
const/4 v0, 0x0
new-array v0, v0, [Lcom/google/zxing/e;
sput-object v0, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->bpl:[Lcom/google/zxing/e;
.line 51
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 48
invoke-direct {p0}, Lcom/google/zxing/qrcode/a;-><init>()V
return-void
.end method
.method private static V(Ljava/util/List;)Ljava/util/List;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Lcom/google/zxing/e;",
">;)",
"Ljava/util/List",
"<",
"Lcom/google/zxing/e;",
">;"
}
.end annotation
.prologue
const/4 v2, 0x0
.line 100
.line 103
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_5
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_10b
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/zxing/e;
.line 7112
iget-object v0, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 104
sget-object v3, Lcom/google/zxing/ResultMetadataType;->STRUCTURED_APPEND_SEQUENCE:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v0, v3}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_5
.line 105
const/4 v0, 0x1
.line 109
:goto_1c
if-nez v0, :cond_1f
.line 163
:goto_1e
return-object p0
.line 114
:cond_1f
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
.line 115
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
.line 116
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_2d
:goto_2d
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_4a
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/zxing/e;
.line 117
invoke-interface {v5, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 8112
iget-object v3, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 118
sget-object v6, Lcom/google/zxing/ResultMetadataType;->STRUCTURED_APPEND_SEQUENCE:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v3, v6}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_2d
.line 119
invoke-interface {v4, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_2d
.line 123
:cond_4a
new-instance v0, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader$SAComparator;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader$SAComparator;-><init>(Lcom/google/zxing/multi/qrcode/QRCodeMultiReader$1;)V
invoke-static {v4, v0}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 124
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
.line 127
invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v7
move v1, v2
move v3, v2
:goto_5e
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_9d
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/zxing/e;
.line 9072
iget-object v8, v0, Lcom/google/zxing/e;->text:Ljava/lang/String;
.line 128
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 9079
iget-object v8, v0, Lcom/google/zxing/e;->boy:[B
.line 129
array-length v8, v8
add-int/2addr v3, v8
.line 9112
iget-object v8, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 130
sget-object v9, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v8, v9}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_9a
.line 10112
iget-object v0, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 133
sget-object v8, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v0, v8}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Iterable;
.line 134
invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object v8
:goto_8b
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_9a
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
.line 135
array-length v0, v0
add-int/2addr v1, v0
.line 136
goto :goto_8b
:cond_9a
move v0, v1
move v1, v0
.line 138
goto :goto_5e
.line 139
:cond_9d
new-array v7, v3, [B
.line 140
new-array v8, v1, [B
.line 143
invoke-interface {v4}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v9
move v3, v2
move v4, v2
:cond_a7
invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_eb
invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/google/zxing/e;
.line 11079
iget-object v10, v0, Lcom/google/zxing/e;->boy:[B
.line 12079
iget-object v11, v0, Lcom/google/zxing/e;->boy:[B
.line 144
array-length v11, v11
invoke-static {v10, v2, v7, v4, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 13079
iget-object v10, v0, Lcom/google/zxing/e;->boy:[B
.line 145
array-length v10, v10
add-int/2addr v4, v10
.line 13112
iget-object v10, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 146
sget-object v11, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v10, v11}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_a7
.line 14112
iget-object v0, v0, Lcom/google/zxing/e;->boz:Ljava/util/Map;
.line 149
sget-object v10, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-interface {v0, v10}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Iterable;
.line 150
invoke-interface {v0}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator;
move-result-object v10
:goto_d7
invoke-interface {v10}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_a7
invoke-interface {v10}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, [B
.line 151
array-length v11, v0
invoke-static {v0, v2, v8, v3, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 152
array-length v0, v0
add-int/2addr v0, v3
move v3, v0
.line 153
goto :goto_d7
.line 156
:cond_eb
new-instance v0, Lcom/google/zxing/e;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
sget-object v3, Lcom/google/zxing/BarcodeFormat;->QR_CODE:Lcom/google/zxing/BarcodeFormat;
invoke-direct {v0, v2, v7}, Lcom/google/zxing/e;-><init>(Ljava/lang/String;[B)V
.line 157
if-lez v1, :cond_105
.line 158
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 159
invoke-interface {v1, v8}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 160
sget-object v2, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-virtual {v0, v2, v1}, Lcom/google/zxing/e;->a(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V
.line 162
:cond_105
invoke-interface {v5, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
move-object p0, v5
.line 163
goto/16 :goto_1e
:cond_10b
move v0, v2
goto/16 :goto_1c
.end method
# virtual methods
.method public final a(Lcom/google/zxing/b;Ljava/util/Map;)[Lcom/google/zxing/e;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/zxing/b;",
"Ljava/util/Map",
"<",
"Lcom/google/zxing/DecodeHintType;",
"*>;)[",
"Lcom/google/zxing/e;"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 60
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 61
new-instance v0, Lcom/google/zxing/multi/qrcode/detector/a;
invoke-virtual {p1}, Lcom/google/zxing/b;->FC()Lcom/google/zxing/common/b;
move-result-object v2
invoke-direct {v0, v2}, Lcom/google/zxing/multi/qrcode/detector/a;-><init>(Lcom/google/zxing/common/b;)V
invoke-virtual {v0, p2}, Lcom/google/zxing/multi/qrcode/detector/a;->q(Ljava/util/Map;)[Lcom/google/zxing/common/f;
move-result-object v4
.line 62
array-length v5, v4
move v2, v1
:goto_15
if-ge v2, v5, :cond_85
aget-object v0, v4, v2
.line 1051
:try_start_19
iget-object v6, p0, Lcom/google/zxing/qrcode/a;->bpo:Lcom/google/zxing/qrcode/decoder/d;
.line 2039
iget-object v7, v0, Lcom/google/zxing/common/f;->boN:Lcom/google/zxing/common/b;
.line 64
invoke-virtual {v6, v7, p2}, Lcom/google/zxing/qrcode/decoder/d;->a(Lcom/google/zxing/common/b;Ljava/util/Map;)Lcom/google/zxing/common/d;
move-result-object v6
.line 2043
iget-object v0, v0, Lcom/google/zxing/common/f;->boO:[Lcom/google/zxing/f;
.line 2133
iget-object v7, v6, Lcom/google/zxing/common/d;->boK:Ljava/lang/Object;
.line 67
instance-of v7, v7, Lcom/google/zxing/qrcode/decoder/f;
if-eqz v7, :cond_2f
.line 4048
if-eqz v0, :cond_2f
array-length v7, v0
const/4 v8, 0x3
if-ge v7, v8, :cond_74
.line 70
:cond_2f
:goto_2f
new-instance v7, Lcom/google/zxing/e;
.line 4090
iget-object v0, v6, Lcom/google/zxing/common/d;->text:Ljava/lang/String;
.line 5067
iget-object v8, v6, Lcom/google/zxing/common/d;->boy:[B
.line 70
sget-object v9, Lcom/google/zxing/BarcodeFormat;->QR_CODE:Lcom/google/zxing/BarcodeFormat;
invoke-direct {v7, v0, v8}, Lcom/google/zxing/e;-><init>(Ljava/lang/String;[B)V
.line 5097
iget-object v0, v6, Lcom/google/zxing/common/d;->boI:Ljava/util/List;
.line 73
if-eqz v0, :cond_43
.line 74
sget-object v8, Lcom/google/zxing/ResultMetadataType;->BYTE_SEGMENTS:Lcom/google/zxing/ResultMetadataType;
invoke-virtual {v7, v8, v0}, Lcom/google/zxing/e;->a(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V
.line 5104
:cond_43
iget-object v0, v6, Lcom/google/zxing/common/d;->boJ:Ljava/lang/String;
.line 77
if-eqz v0, :cond_4c
.line 78
sget-object v8, Lcom/google/zxing/ResultMetadataType;->ERROR_CORRECTION_LEVEL:Lcom/google/zxing/ResultMetadataType;
invoke-virtual {v7, v8, v0}, Lcom/google/zxing/e;->a(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V
.line 5141
:cond_4c
iget v0, v6, Lcom/google/zxing/common/d;->boL:I
if-ltz v0, :cond_83
iget v0, v6, Lcom/google/zxing/common/d;->boM:I
if-ltz v0, :cond_83
const/4 v0, 0x1
.line 80
:goto_55
if-eqz v0, :cond_6d
.line 81
sget-object v0, Lcom/google/zxing/ResultMetadataType;->STRUCTURED_APPEND_SEQUENCE:Lcom/google/zxing/ResultMetadataType;
.line 5149
iget v8, v6, Lcom/google/zxing/common/d;->boM:I
.line 82
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
.line 81
invoke-virtual {v7, v0, v8}, Lcom/google/zxing/e;->a(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V
.line 83
sget-object v0, Lcom/google/zxing/ResultMetadataType;->STRUCTURED_APPEND_PARITY:Lcom/google/zxing/ResultMetadataType;
.line 6145
iget v6, v6, Lcom/google/zxing/common/d;->boL:I
.line 84
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
.line 83
invoke-virtual {v7, v0, v6}, Lcom/google/zxing/e;->a(Lcom/google/zxing/ResultMetadataType;Ljava/lang/Object;)V
.line 86
:cond_6d
invoke-interface {v3, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 62
:goto_70
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_15
.line 4051
:cond_74
const/4 v7, 0x0
aget-object v7, v0, v7
.line 4052
const/4 v8, 0x0
const/4 v9, 0x2
aget-object v9, v0, v9
aput-object v9, v0, v8
.line 4053
const/4 v8, 0x2
aput-object v7, v0, v8
:try_end_80
.catch Lcom/google/zxing/ReaderException; {:try_start_19 .. :try_end_80} :catch_81
goto :goto_2f
:catch_81
move-exception v0
goto :goto_70
:cond_83
move v0, v1
.line 5141
goto :goto_55
.line 91
:cond_85
invoke-interface {v3}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_8e
.line 92
sget-object v0, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->bpl:[Lcom/google/zxing/e;
.line 95
:goto_8d
return-object v0
.line 94
:cond_8e
invoke-static {v3}, Lcom/google/zxing/multi/qrcode/QRCodeMultiReader;->V(Ljava/util/List;)Ljava/util/List;
move-result-object v0
.line 95
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lcom/google/zxing/e;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Lcom/google/zxing/e;
goto :goto_8d
.end method