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