BarcodeView.smali

.class public Lio/dcloud/feature/weex_barcode/BarcodeView;
.super Landroid/widget/AbsoluteLayout;
.source "BarcodeView.java"

# interfaces
.implements Lio/dcloud/feature/barcode2/decoding/IBarHandler;
.implements Landroid/view/TextureView$SurfaceTextureListener;


# static fields
.field static final AZTEC:I = 0x3

.field private static final BEEP_VOLUME:F = 0.8f

.field static final CODABAR:I = 0x7

.field static final CODE128:I = 0xa

.field static final CODE39:I = 0x8

.field static final CODE93:I = 0x9

.field static final DATAMATRIX:I = 0x4

.field static final EAN13:I = 0x1

.field static final EAN8:I = 0x2

.field private static final ID_ADD_VIEW:I = 0xc9

.field private static final ID_START_SCAN:I = 0xcb

.field private static final ID_UPDATE_VIEW:I = 0xca

.field static final ITF:I = 0xb

.field static final MAXICODE:I = 0xc

.field static final PDF417:I = 0xd

.field static final QR:I = 0x0

.field static final RSS14:I = 0xe

.field static final RSSEXPANDED:I = 0xf

.field static final UNKOWN:I = -0x3e8

.field static final UPCA:I = 0x5

.field static final UPCE:I = 0x6

.field private static final VIBRATE_DURATION:J = 0xc8L


# instance fields
.field public autoDecodeCharset:Z

.field private final beepListener:Landroid/media/MediaPlayer$OnCompletionListener;

.field private characterSet:Ljava/lang/String;

.field private component:Lcom/taobao/weex/ui/component/WXComponent;

.field private context:Landroid/content/Context;

.field private decodeFormats:Ljava/util/Vector;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Vector<",
            "Lcom/dcloud/zxing2/BarcodeFormat;",
            ">;"
        }
    .end annotation
.end field

.field public errorMsg:Ljava/lang/String;

.field private handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

.field private hasSurface:Z

.field private inactivityTimer:Lio/dcloud/feature/barcode2/decoding/InactivityTimer;

.field private isCancelScan:Z

.field private isSurfaceAvaliable:Z

.field private isVerticalScreen:Z

.field private lastBiptmap:Landroid/graphics/Bitmap;

.field private mConserve:Z

.field private mFilename:Ljava/lang/String;

.field mHandler:Landroid/os/Handler;

.field private mInstance:Lcom/taobao/weex/WXSDKInstance;

.field mOrientationState:I

.field private mRunning:Z

.field private mediaPlayer:Landroid/media/MediaPlayer;

.field private nopermission:Z

.field private playBeep:Z

.field private surfaceView:Landroid/view/TextureView;

.field private vibrate:Z

.field private viewHeight:I

.field private viewWidth:I

.field private viewfinderView:Lio/dcloud/feature/barcode2/view/ViewfinderView;


# direct methods
.method public constructor <init>(Landroid/content/Context;Lcom/taobao/weex/ui/component/WXComponent;Lcom/taobao/weex/WXSDKInstance;)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "context",
            "component",
            "mInstance"
        }
    .end annotation

    .line 132
    invoke-direct {p0, p1}, Landroid/widget/AbsoluteLayout;-><init>(Landroid/content/Context;)V

    const/4 v0, 0x0

    .line 72
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    const/4 v1, 0x0

    .line 76
    iput-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->errorMsg:Ljava/lang/String;

    .line 83
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mConserve:Z

    .line 93
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isSurfaceAvaliable:Z

    .line 94
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isVerticalScreen:Z

    .line 98
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->autoDecodeCharset:Z

    .line 102
    new-instance v1, Lio/dcloud/feature/weex_barcode/BarcodeView$1;

    invoke-direct {v1, p0}, Lio/dcloud/feature/weex_barcode/BarcodeView$1;-><init>(Lio/dcloud/feature/weex_barcode/BarcodeView;)V

    iput-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mHandler:Landroid/os/Handler;

    .line 277
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isCancelScan:Z

    .line 278
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    .line 726
    new-instance v1, Lio/dcloud/feature/weex_barcode/BarcodeView$5;

    invoke-direct {v1, p0}, Lio/dcloud/feature/weex_barcode/BarcodeView$5;-><init>(Lio/dcloud/feature/weex_barcode/BarcodeView;)V

    iput-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->beepListener:Landroid/media/MediaPlayer$OnCompletionListener;

    .line 133
    iput-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->component:Lcom/taobao/weex/ui/component/WXComponent;

    .line 134
    iput-object p3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mInstance:Lcom/taobao/weex/WXSDKInstance;

    .line 135
    new-instance p2, Landroid/view/TextureView;

    invoke-direct {p2, p1}, Landroid/view/TextureView;-><init>(Landroid/content/Context;)V

    iput-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    .line 136
    new-instance p2, Lio/dcloud/feature/barcode2/view/ViewfinderView;

    invoke-direct {p2, p1, p0}, Lio/dcloud/feature/barcode2/view/ViewfinderView;-><init>(Landroid/content/Context;Lio/dcloud/feature/barcode2/decoding/IBarHandler;)V

    iput-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewfinderView:Lio/dcloud/feature/barcode2/view/ViewfinderView;

    .line 137
    new-instance p2, Lio/dcloud/feature/barcode2/decoding/InactivityTimer;

    move-object p3, p1

    check-cast p3, Landroid/app/Activity;

    invoke-direct {p2, p3}, Lio/dcloud/feature/barcode2/decoding/InactivityTimer;-><init>(Landroid/app/Activity;)V

    iput-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->inactivityTimer:Lio/dcloud/feature/barcode2/decoding/InactivityTimer;

    .line 138
    iput-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    .line 139
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->saveOrientationState()V

    .line 140
    iget-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-static {p2, v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->init(Landroid/content/Context;Z)V

    .line 141
    invoke-virtual {p3}, Landroid/app/Activity;->getWindowManager()Landroid/view/WindowManager;

    move-result-object p2

    invoke-interface {p2}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;

    move-result-object p2

    invoke-virtual {p2}, Landroid/view/Display;->getRotation()I

    move-result p2

    const/4 p3, 0x1

    if-eqz p2, :cond_81

    if-eq p2, p3, :cond_72

    const/4 v1, 0x2

    if-eq p2, v1, :cond_81

    const/4 p1, 0x3

    if-eq p2, p1, :cond_61

    goto :goto_8e

    .line 150
    :cond_61
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object p1

    invoke-virtual {p1, p3}, Lio/dcloud/feature/barcode2/camera/CameraManager;->setHorizontalOrientation(Z)V

    .line 151
    iget-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast p1, Landroid/app/Activity;

    const/16 p2, 0x8

    invoke-virtual {p1, p2}, Landroid/app/Activity;->setRequestedOrientation(I)V

    goto :goto_8e

    .line 154
    :cond_72
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object p1

    invoke-virtual {p1, v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->setHorizontalOrientation(Z)V

    .line 155
    iget-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast p1, Landroid/app/Activity;

    invoke-virtual {p1, v0}, Landroid/app/Activity;->setRequestedOrientation(I)V

    goto :goto_8e

    .line 145
    :cond_81
    iget-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast p2, Landroid/app/Activity;

    const/4 v1, 0x7

    invoke-virtual {p2, v1}, Landroid/app/Activity;->setRequestedOrientation(I)V

    .line 146
    invoke-static {p1, p3}, Lio/dcloud/feature/barcode2/camera/CameraManager;->init(Landroid/content/Context;Z)V

    .line 147
    iput-boolean p3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isVerticalScreen:Z

    .line 158
    :goto_8e
    invoke-virtual {p0, v0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->onResume(Z)V

    .line 159
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    return-void
.end method

.method static synthetic access$000(Lio/dcloud/feature/weex_barcode/BarcodeView;)Landroid/view/TextureView;
    .registers 1

    .line 63
    iget-object p0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    return-object p0
.end method

.method static synthetic access$100(Lio/dcloud/feature/weex_barcode/BarcodeView;)Lio/dcloud/feature/barcode2/view/ViewfinderView;
    .registers 1

    .line 63
    iget-object p0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewfinderView:Lio/dcloud/feature/barcode2/view/ViewfinderView;

    return-object p0
.end method

.method static synthetic access$200(Lio/dcloud/feature/weex_barcode/BarcodeView;)V
    .registers 1

    .line 63
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->startP()V

    return-void
.end method

.method static synthetic access$300(Lio/dcloud/feature/weex_barcode/BarcodeView;)V
    .registers 1

    .line 63
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->addBarcodeView()V

    return-void
.end method

.method static synthetic access$400(Lio/dcloud/feature/weex_barcode/BarcodeView;)Landroid/widget/AbsoluteLayout$LayoutParams;
    .registers 1

    .line 63
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->setLayoutParams()Landroid/widget/AbsoluteLayout$LayoutParams;

    move-result-object p0

    return-object p0
.end method

.method static synthetic access$500(Lio/dcloud/feature/weex_barcode/BarcodeView;)Z
    .registers 1

    .line 63
    iget-boolean p0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isSurfaceAvaliable:Z

    return p0
.end method

.method static synthetic access$602(Lio/dcloud/feature/weex_barcode/BarcodeView;Z)Z
    .registers 2

    .line 63
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->nopermission:Z

    return p1
.end method

.method private addBarcodeView()V
    .registers 4

    .line 201
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->setLayoutParams()Landroid/widget/AbsoluteLayout$LayoutParams;

    move-result-object v0

    if-nez v0, :cond_7

    return-void

    .line 203
    :cond_7
    new-instance v1, Landroid/os/Message;

    invoke-direct {v1}, Landroid/os/Message;-><init>()V

    const/16 v2, 0xc9

    .line 204
    iput v2, v1, Landroid/os/Message;->what:I

    .line 205
    iput-object v0, v1, Landroid/os/Message;->obj:Ljava/lang/Object;

    .line 206
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mHandler:Landroid/os/Handler;

    invoke-virtual {v0, v1}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z

    return-void
.end method

.method private byte2bitmap([BLandroid/hardware/Camera;)Landroid/graphics/Bitmap;
    .registers 14
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "data",
            "mCamera"
        }
    .end annotation

    const/4 v0, 0x0

    .line 339
    :try_start_1
    invoke-virtual {p2}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object p2

    invoke-virtual {p2}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;

    move-result-object p2

    .line 340
    new-instance v7, Landroid/graphics/YuvImage;

    const/16 v3, 0x11

    iget v4, p2, Landroid/hardware/Camera$Size;->width:I

    iget v5, p2, Landroid/hardware/Camera$Size;->height:I

    const/4 v6, 0x0

    move-object v1, v7

    move-object v2, p1

    invoke-direct/range {v1 .. v6}, Landroid/graphics/YuvImage;-><init>([BIII[I)V

    .line 341
    new-instance p1, Ljava/io/ByteArrayOutputStream;

    invoke-direct {p1}, Ljava/io/ByteArrayOutputStream;-><init>()V

    .line 342
    new-instance v1, Landroid/graphics/Rect;

    iget v2, p2, Landroid/hardware/Camera$Size;->width:I

    iget p2, p2, Landroid/hardware/Camera$Size;->height:I

    const/4 v3, 0x0

    invoke-direct {v1, v3, v3, v2, p2}, Landroid/graphics/Rect;-><init>(IIII)V

    const/16 p2, 0x50

    invoke-virtual {v7, v1, p2, p1}, Landroid/graphics/YuvImage;->compressToJpeg(Landroid/graphics/Rect;ILjava/io/OutputStream;)Z

    .line 343
    invoke-virtual {p1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object p2

    invoke-virtual {p1}, Ljava/io/ByteArrayOutputStream;->size()I

    move-result v1

    invoke-static {p2, v3, v1}, Landroid/graphics/BitmapFactory;->decodeByteArray([BII)Landroid/graphics/Bitmap;

    move-result-object v0

    .line 344
    invoke-virtual {p1}, Ljava/io/ByteArrayOutputStream;->close()V

    .line 345
    new-instance v9, Landroid/graphics/Matrix;

    invoke-direct {v9}, Landroid/graphics/Matrix;-><init>()V

    const/high16 p1, 0x42b40000    # 90.0f

    .line 346
    invoke-virtual {v9, p1}, Landroid/graphics/Matrix;->postRotate(F)Z

    const/4 v5, 0x0

    const/4 v6, 0x0

    .line 347
    invoke-virtual {v0}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v7

    invoke-virtual {v0}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v8

    const/4 v10, 0x1

    move-object v4, v0

    invoke-static/range {v4 .. v10}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object p1
    :try_end_54
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_54} :catch_55

    goto :goto_5a

    :catch_55
    move-exception p1

    .line 349
    invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V

    move-object p1, v0

    :goto_5a
    return-object p1
.end method

.method private cancel()V
    .registers 2

    .line 695
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    if-eqz v0, :cond_15

    .line 696
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    if-eqz v0, :cond_b

    .line 697
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->stopDecode()V

    .line 698
    :cond_b
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getViewfinderView()Lio/dcloud/feature/barcode2/view/ViewfinderView;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/view/ViewfinderView;->stopUpdateScreenTimer()V

    const/4 v0, 0x0

    .line 699
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    :cond_15
    return-void
.end method

.method private convertNumToBarcodeFormat(I)Lcom/dcloud/zxing2/BarcodeFormat;
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "num"
        }
    .end annotation

    packed-switch p1, :pswitch_data_36

    const/4 p1, 0x0

    goto :goto_34

    .line 609
    :pswitch_5
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->RSS_EXPANDED:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 605
    :pswitch_8
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->RSS_14:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 601
    :pswitch_b
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->PDF_417:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 597
    :pswitch_e
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->MAXICODE:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 593
    :pswitch_11
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->ITF:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 589
    :pswitch_14
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_128:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 585
    :pswitch_17
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_93:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 581
    :pswitch_1a
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_39:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 577
    :pswitch_1d
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->CODABAR:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 573
    :pswitch_20
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->UPC_E:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 569
    :pswitch_23
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->UPC_A:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 565
    :pswitch_26
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->DATA_MATRIX:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 561
    :pswitch_29
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->AZTEC:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 557
    :pswitch_2c
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_8:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 553
    :pswitch_2f
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_13:Lcom/dcloud/zxing2/BarcodeFormat;

    goto :goto_34

    .line 549
    :pswitch_32
    sget-object p1, Lcom/dcloud/zxing2/BarcodeFormat;->QR_CODE:Lcom/dcloud/zxing2/BarcodeFormat;

    :goto_34
    return-object p1

    nop

    :pswitch_data_36
    .packed-switch 0x0
        :pswitch_32
        :pswitch_2f
        :pswitch_2c
        :pswitch_29
        :pswitch_26
        :pswitch_23
        :pswitch_20
        :pswitch_1d
        :pswitch_1a
        :pswitch_17
        :pswitch_14
        :pswitch_11
        :pswitch_e
        :pswitch_b
        :pswitch_8
        :pswitch_5
    .end packed-switch
.end method

.method private convertTypestrToNum(Lcom/dcloud/zxing2/BarcodeFormat;)I
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "format"
        }
    .end annotation

    .line 617
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->QR_CODE:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_6

    const/4 p1, 0x0

    return p1

    .line 619
    :cond_6
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_13:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_c

    const/4 p1, 0x1

    return p1

    .line 621
    :cond_c
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_8:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_12

    const/4 p1, 0x2

    return p1

    .line 623
    :cond_12
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->AZTEC:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_18

    const/4 p1, 0x3

    return p1

    .line 625
    :cond_18
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->DATA_MATRIX:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_1e

    const/4 p1, 0x4

    return p1

    .line 627
    :cond_1e
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->UPC_A:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_24

    const/4 p1, 0x5

    return p1

    .line 629
    :cond_24
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->UPC_E:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_2a

    const/4 p1, 0x6

    return p1

    .line 631
    :cond_2a
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->CODABAR:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_30

    const/4 p1, 0x7

    return p1

    .line 633
    :cond_30
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_39:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_37

    const/16 p1, 0x8

    return p1

    .line 635
    :cond_37
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_93:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_3e

    const/16 p1, 0x9

    return p1

    .line 637
    :cond_3e
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->CODE_128:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_45

    const/16 p1, 0xa

    return p1

    .line 639
    :cond_45
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->ITF:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_4c

    const/16 p1, 0xb

    return p1

    .line 641
    :cond_4c
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->MAXICODE:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_53

    const/16 p1, 0xc

    return p1

    .line 643
    :cond_53
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->PDF_417:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_5a

    const/16 p1, 0xd

    return p1

    .line 645
    :cond_5a
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->RSS_14:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_61

    const/16 p1, 0xe

    return p1

    .line 647
    :cond_61
    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->RSS_EXPANDED:Lcom/dcloud/zxing2/BarcodeFormat;

    if-ne p1, v0, :cond_68

    const/16 p1, 0xf

    return p1

    :cond_68
    const/16 p1, -0x3e8

    return p1
.end method

.method private fireEvent(Ljava/lang/String;Ljava/util/Map;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "type",
            "params"
        }
    .end annotation

    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/lang/String;",
            "Ljava/util/Map<",
            "Ljava/lang/String;",
            "Ljava/lang/Object;",
            ">;)V"
        }
    .end annotation

    .line 832
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->component:Lcom/taobao/weex/ui/component/WXComponent;

    invoke-virtual {v0, p1}, Lcom/taobao/weex/ui/component/WXComponent;->containsEvent(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_17

    .line 833
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    const-string v1, "detail"

    .line 834
    invoke-interface {v0, v1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 835
    iget-object p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->component:Lcom/taobao/weex/ui/component/WXComponent;

    invoke-virtual {p2, p1, v0}, Lcom/taobao/weex/ui/component/WXComponent;->fireEvent(Ljava/lang/String;Ljava/util/Map;)V

    :cond_17
    return-void
.end method

.method private initBeepSound()V
    .registers 8

    .line 704
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    if-nez v0, :cond_52

    .line 705
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast v0, Landroid/app/Activity;

    const/4 v1, 0x3

    invoke-virtual {v0, v1}, Landroid/app/Activity;->setVolumeControlStream(I)V

    .line 706
    new-instance v0, Landroid/media/MediaPlayer;

    invoke-direct {v0}, Landroid/media/MediaPlayer;-><init>()V

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    .line 707
    invoke-virtual {v0, v1}, Landroid/media/MediaPlayer;->setAudioStreamType(I)V

    .line 708
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->beepListener:Landroid/media/MediaPlayer$OnCompletionListener;

    invoke-virtual {v0, v1}, Landroid/media/MediaPlayer;->setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V

    .line 711
    :try_start_1d
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-virtual {v0}, Landroid/content/res/Resources;->getAssets()Landroid/content/res/AssetManager;

    move-result-object v0

    const-string v1, "res/dcloud_beep.ogg"

    invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;

    move-result-object v0

    .line 712
    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;

    move-result-object v2

    .line 713
    invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->getStartOffset()J

    move-result-wide v3

    invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->getLength()J

    move-result-wide v5

    .line 712
    invoke-virtual/range {v1 .. v6}, Landroid/media/MediaPlayer;->setDataSource(Ljava/io/FileDescriptor;JJ)V

    .line 714
    invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->close()V

    .line 715
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    const v1, 0x3f4ccccd    # 0.8f

    invoke-virtual {v0, v1, v1}, Landroid/media/MediaPlayer;->setVolume(FF)V

    .line 716
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    invoke-virtual {v0}, Landroid/media/MediaPlayer;->prepare()V
    :try_end_4e
    .catch Ljava/io/IOException; {:try_start_1d .. :try_end_4e} :catch_4f

    goto :goto_52

    :catch_4f
    const/4 v0, 0x0

    .line 718
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    :cond_52
    :goto_52
    return-void
.end method

.method private initCamera()V
    .registers 5

    .line 211
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    invoke-virtual {v0}, Landroid/view/TextureView;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;

    move-result-object v0

    .line 213
    :try_start_6
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v1

    invoke-virtual {v1, v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->openDriver(Landroid/graphics/SurfaceTexture;)V
    :try_end_d
    .catch Ljava/io/IOException; {:try_start_6 .. :try_end_d} :catch_2a

    .line 218
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    if-nez v0, :cond_26

    .line 219
    new-instance v0, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    iget-object v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->characterSet:Ljava/lang/String;

    iget-boolean v3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->autoDecodeCharset:Z

    invoke-direct {v0, p0, v1, v2, v3}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;-><init>(Lio/dcloud/feature/barcode2/decoding/IBarHandler;Ljava/util/Vector;Ljava/lang/String;Z)V

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    .line 220
    iget-boolean v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    if-eqz v1, :cond_29

    .line 221
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->restartPreviewAndDecode()V

    goto :goto_29

    .line 224
    :cond_26
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->resume()V

    :cond_29
    :goto_29
    return-void

    :catch_2a
    move-exception v0

    .line 215
    invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->errorMsg:Ljava/lang/String;

    return-void
.end method

.method private playBeepSoundAndVibrate()V
    .registers 4

    .line 735
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->playBeep:Z

    if-eqz v0, :cond_b

    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mediaPlayer:Landroid/media/MediaPlayer;

    if-eqz v0, :cond_b

    .line 736
    invoke-virtual {v0}, Landroid/media/MediaPlayer;->start()V

    .line 738
    :cond_b
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->vibrate:Z

    if-eqz v0, :cond_23

    .line 740
    :try_start_f
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    const-string v1, "vibrator"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/os/Vibrator;

    const-wide/16 v1, 0xc8

    .line 741
    invoke-virtual {v0, v1, v2}, Landroid/os/Vibrator;->vibrate(J)V
    :try_end_1e
    .catch Ljava/lang/Exception; {:try_start_f .. :try_end_1e} :catch_1f

    goto :goto_23

    :catch_1f
    move-exception v0

    .line 743
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    :cond_23
    :goto_23
    return-void
.end method

.method private resumeOrientationState()V
    .registers 3

    .line 169
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast v0, Landroid/app/Activity;

    iget v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mOrientationState:I

    invoke-virtual {v0, v1}, Landroid/app/Activity;->setRequestedOrientation(I)V

    return-void
.end method

.method private saveOrientationState()V
    .registers 2

    .line 165
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast v0, Landroid/app/Activity;

    invoke-virtual {v0}, Landroid/app/Activity;->getRequestedOrientation()I

    move-result v0

    iput v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mOrientationState:I

    return-void
.end method

.method private setLayoutParams()Landroid/widget/AbsoluteLayout$LayoutParams;
    .registers 8

    .line 440
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;

    move-result-object v0

    iget v0, v0, Landroid/util/DisplayMetrics;->widthPixels:I

    sput v0, Lio/dcloud/feature/barcode2/camera/CameraManager;->sScreenWidth:I

    .line 441
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v0

    invoke-virtual {v0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;

    move-result-object v0

    iget v0, v0, Landroid/util/DisplayMetrics;->heightPixels:I

    sput v0, Lio/dcloud/feature/barcode2/camera/CameraManager;->sScreenAllHeight:I

    .line 442
    invoke-static {}, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->getInstance()Lio/dcloud/feature/barcode2/view/DetectorViewConfig;

    move-result-object v0

    iget-object v0, v0, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->gatherRect:Landroid/graphics/Rect;

    const/4 v1, 0x0

    .line 443
    iput v1, v0, Landroid/graphics/Rect;->left:I

    .line 444
    iput v1, v0, Landroid/graphics/Rect;->top:I

    .line 445
    iget v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    iput v2, v0, Landroid/graphics/Rect;->right:I

    .line 446
    iget v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    iput v2, v0, Landroid/graphics/Rect;->bottom:I

    .line 450
    iget-boolean v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isVerticalScreen:Z

    if-eqz v2, :cond_40

    .line 451
    invoke-virtual {v0}, Landroid/graphics/Rect;->height()I

    move-result v2

    invoke-virtual {v0}, Landroid/graphics/Rect;->width()I

    move-result v0

    invoke-static {v2, v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->getCR(II)Landroid/graphics/Point;

    move-result-object v0

    goto :goto_4c

    .line 453
    :cond_40
    invoke-virtual {v0}, Landroid/graphics/Rect;->width()I

    move-result v2

    invoke-virtual {v0}, Landroid/graphics/Rect;->height()I

    move-result v0

    invoke-static {v2, v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->getCR(II)Landroid/graphics/Point;

    move-result-object v0

    :goto_4c
    if-nez v0, :cond_57

    .line 455
    new-instance v0, Landroid/graphics/Point;

    iget v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    iget v3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    invoke-direct {v0, v2, v3}, Landroid/graphics/Point;-><init>(II)V

    .line 462
    :cond_57
    iget-boolean v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isVerticalScreen:Z

    if-eqz v2, :cond_88

    .line 463
    iget v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    .line 464
    iget v3, v0, Landroid/graphics/Point;->x:I

    mul-int/2addr v3, v2

    iget v4, v0, Landroid/graphics/Point;->y:I

    div-int/2addr v3, v4

    .line 466
    iget v4, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    if-ge v3, v4, :cond_77

    .line 468
    iget v2, v0, Landroid/graphics/Point;->y:I

    mul-int/2addr v2, v4

    iget v0, v0, Landroid/graphics/Point;->x:I

    div-int/2addr v2, v0

    .line 469
    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    sub-int/2addr v0, v2

    div-int/lit8 v0, v0, 0x2

    .line 470
    sput v0, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestLeft:I

    .line 471
    sput v1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestTop:I

    goto :goto_b5

    .line 473
    :cond_77
    iget v3, v0, Landroid/graphics/Point;->x:I

    mul-int/2addr v3, v2

    iget v0, v0, Landroid/graphics/Point;->y:I

    div-int v4, v3, v0

    .line 474
    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    sub-int/2addr v0, v4

    div-int/lit8 v0, v0, 0x2

    .line 475
    sput v0, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestTop:I

    .line 476
    sput v1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestLeft:I

    goto :goto_b8

    .line 479
    :cond_88
    iget v4, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    .line 480
    iget v2, v0, Landroid/graphics/Point;->x:I

    mul-int/2addr v2, v4

    iget v3, v0, Landroid/graphics/Point;->y:I

    div-int/2addr v2, v3

    .line 482
    iget v3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    if-ge v2, v3, :cond_a6

    .line 484
    iget v2, v0, Landroid/graphics/Point;->y:I

    mul-int/2addr v2, v3

    iget v0, v0, Landroid/graphics/Point;->x:I

    div-int v4, v2, v0

    .line 485
    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    sub-int/2addr v0, v4

    div-int/lit8 v0, v0, 0x2

    .line 486
    sput v0, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestTop:I

    .line 487
    sput v1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestLeft:I

    move v2, v3

    goto :goto_b8

    .line 489
    :cond_a6
    iget v2, v0, Landroid/graphics/Point;->x:I

    mul-int/2addr v2, v4

    iget v0, v0, Landroid/graphics/Point;->y:I

    div-int/2addr v2, v0

    .line 490
    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    sub-int/2addr v0, v2

    div-int/lit8 v0, v0, 0x2

    .line 491
    sput v0, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestLeft:I

    .line 492
    sput v1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->detectorRectOffestTop:I

    :goto_b5
    move v6, v1

    move v1, v0

    move v0, v6

    .line 495
    :goto_b8
    new-instance v3, Landroid/widget/AbsoluteLayout$LayoutParams;

    invoke-direct {v3, v2, v4, v1, v0}, Landroid/widget/AbsoluteLayout$LayoutParams;-><init>(IIII)V

    .line 496
    invoke-static {}, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->getInstance()Lio/dcloud/feature/barcode2/view/DetectorViewConfig;

    move-result-object v5

    invoke-virtual {v5, v1, v0, v2, v4}, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->initSurfaceViewRect(IIII)V

    return-object v3
.end method

.method private startP()V
    .registers 4

    .line 388
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->initCamera()V

    .line 390
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    const/4 v1, 0x0

    if-nez v0, :cond_b

    .line 391
    invoke-virtual {p0, v1}, Lio/dcloud/feature/weex_barcode/BarcodeView;->initDecodeFormats(Lcom/alibaba/fastjson/JSONArray;)V

    .line 393
    :cond_b
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->errorMsg:Ljava/lang/String;

    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-nez v0, :cond_37

    .line 394
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    const/16 v1, 0x8

    .line 395
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    const-string v2, "code"

    invoke-interface {v0, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 396
    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->errorMsg:Ljava/lang/String;

    const-string v2, "message"

    invoke-interface {v0, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string v1, "type"

    const-string v2, "fail"

    .line 397
    invoke-interface {v0, v1, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string v1, "error"

    .line 398
    invoke-direct {p0, v1, v0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->fireEvent(Ljava/lang/String;Ljava/util/Map;)V

    return-void

    .line 401
    :cond_37
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    if-nez v0, :cond_7c

    .line 402
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getViewfinderView()Lio/dcloud/feature/barcode2/view/ViewfinderView;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/view/ViewfinderView;->startUpdateScreenTimer()V

    .line 403
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    const/4 v2, 0x0

    if-eqz v0, :cond_4b

    .line 404
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->restartPreviewAndDecode()V

    goto :goto_4e

    .line 406
    :cond_4b
    invoke-virtual {p0, v2}, Lio/dcloud/feature/weex_barcode/BarcodeView;->onResume(Z)V

    .line 407
    :goto_4e
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isCancelScan:Z

    if-eqz v0, :cond_77

    .line 408
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    invoke-virtual {v0, v1}, Landroid/view/TextureView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    .line 409
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    if-eqz v0, :cond_68

    invoke-virtual {v0}, Landroid/graphics/Bitmap;->isRecycled()Z

    move-result v0

    if-nez v0, :cond_68

    .line 410
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V

    .line 411
    iput-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    .line 413
    :cond_68
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->clearLastBitmapData()V

    .line 414
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    invoke-virtual {v0}, Landroid/view/TextureView;->postInvalidate()V

    .line 415
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->initCamera()V

    :cond_77
    const/4 v0, 0x1

    .line 417
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    .line 418
    iput-boolean v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isCancelScan:Z

    :cond_7c
    return-void
.end method


# virtual methods
.method public autoFocus()V
    .registers 2

    .line 660
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->autoFocus()V

    return-void
.end method

.method public cancelScan()V
    .registers 3

    .line 282
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    if-eqz v0, :cond_4a

    .line 283
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    if-eqz v0, :cond_e

    .line 284
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->quitSynchronously()V

    const/4 v0, 0x0

    .line 285
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    .line 287
    :cond_e
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getViewfinderView()Lio/dcloud/feature/barcode2/view/ViewfinderView;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/view/ViewfinderView;->stopUpdateScreenTimer()V

    .line 288
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->removeAutoFocus()V

    .line 289
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->stopPreview()V

    .line 290
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->getLastBitmapData()[B

    move-result-object v0

    .line 291
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v1

    invoke-virtual {v1}, Lio/dcloud/feature/barcode2/camera/CameraManager;->getCameraHandler()Landroid/hardware/Camera;

    move-result-object v1

    if-eqz v0, :cond_3d

    if-eqz v1, :cond_3d

    .line 293
    invoke-direct {p0, v0, v1}, Lio/dcloud/feature/weex_barcode/BarcodeView;->byte2bitmap([BLandroid/hardware/Camera;)Landroid/graphics/Bitmap;

    move-result-object v0

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    .line 294
    :cond_3d
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->closeDriver()V

    const/4 v0, 0x0

    .line 295
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    const/4 v0, 0x1

    .line 296
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isCancelScan:Z

    :cond_4a
    return-void
.end method

.method public closeScan()V
    .registers 3

    .line 301
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->onPause()V

    .line 302
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->closeDriver()V

    .line 303
    invoke-static {}, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->clearData()V

    const/4 v0, 0x0

    .line 304
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    .line 305
    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    if-eqz v1, :cond_21

    invoke-virtual {v1}, Landroid/graphics/Bitmap;->isRecycled()Z

    move-result v1

    if-nez v1, :cond_21

    .line 306
    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V

    .line 307
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    .line 309
    :cond_21
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->clearLastBitmapData()V

    .line 313
    invoke-static {}, Ljava/lang/System;->gc()V

    return-void
.end method

.method public drawViewfinder()V
    .registers 2

    .line 750
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewfinderView:Lio/dcloud/feature/barcode2/view/ViewfinderView;

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/view/ViewfinderView;->drawViewfinder()V

    return-void
.end method

.method public getHandler()Landroid/os/Handler;
    .registers 2

    .line 760
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    return-object v0
.end method

.method public getViewfinderView()Lio/dcloud/feature/barcode2/view/ViewfinderView;
    .registers 2

    .line 655
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewfinderView:Lio/dcloud/feature/barcode2/view/ViewfinderView;

    return-object v0
.end method

.method public handleDecode(Lcom/dcloud/zxing2/Result;Landroid/graphics/Bitmap;)V
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "obj",
            "barcode"
        }
    .end annotation

    .line 665
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->inactivityTimer:Lio/dcloud/feature/barcode2/decoding/InactivityTimer;

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/InactivityTimer;->onActivity()V

    .line 666
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->playBeepSoundAndVibrate()V

    .line 669
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mConserve:Z

    if-eqz v0, :cond_50

    .line 670
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    invoke-static {v0}, Lio/dcloud/common/util/PdrUtil;->isEmpty(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_39

    .line 671
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    invoke-static {v0}, Lio/dcloud/common/util/PdrUtil;->isDeviceRootDir(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_39

    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    const-string v1, "_doc"

    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_39

    .line 672
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    .line 675
    :cond_39
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mInstance:Lcom/taobao/weex/WXSDKInstance;

    iget-object v1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;

    move-result-object v1

    const-string v2, "image"

    invoke-virtual {v0, v1, v2}, Lcom/taobao/weex/WXSDKInstance;->rewriteUri(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;

    move-result-object v0

    invoke-virtual {v0}, Landroid/net/Uri;->getPath()Ljava/lang/String;

    move-result-object v0

    .line 676
    invoke-static {p2, v0}, Lio/dcloud/common/util/PdrUtil;->saveBitmapToFile(Landroid/graphics/Bitmap;Ljava/lang/String;)Z

    move-result p2

    goto :goto_52

    :cond_50
    const/4 p2, 0x0

    const/4 v0, 0x0

    .line 678
    :goto_52
    invoke-virtual {p1}, Lcom/dcloud/zxing2/Result;->getBarcodeFormat()Lcom/dcloud/zxing2/BarcodeFormat;

    move-result-object v1

    invoke-direct {p0, v1}, Lio/dcloud/feature/weex_barcode/BarcodeView;->convertTypestrToNum(Lcom/dcloud/zxing2/BarcodeFormat;)I

    move-result v1

    .line 680
    new-instance v2, Ljava/util/HashMap;

    invoke-direct {v2}, Ljava/util/HashMap;-><init>()V

    .line 681
    invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    const-string v3, "code"

    invoke-interface {v2, v3, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 682
    invoke-virtual {p1}, Lcom/dcloud/zxing2/Result;->getText()Ljava/lang/String;

    move-result-object v1

    const-string v3, "message"

    invoke-interface {v2, v3, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    if-eqz p2, :cond_7e

    .line 683
    invoke-static {v0}, Lio/dcloud/common/util/PdrUtil;->isEmpty(Ljava/lang/Object;)Z

    move-result p2

    if-nez p2, :cond_7e

    const-string p2, "file"

    .line 684
    invoke-interface {v2, p2, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :cond_7e
    const-string p2, "type"

    const-string v0, "success"

    .line 686
    invoke-interface {v2, p2, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 687
    iget-object p1, p1, Lcom/dcloud/zxing2/Result;->textCharset:Ljava/lang/String;

    const-string p2, "charSet"

    invoke-interface {v2, p2, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    const-string p1, "marked"

    .line 689
    invoke-direct {p0, p1, v2}, Lio/dcloud/feature/weex_barcode/BarcodeView;->fireEvent(Ljava/lang/String;Ljava/util/Map;)V

    .line 691
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->cancelScan()V

    return-void
.end method

.method public initBarcodeView(II)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "width",
            "height"
        }
    .end annotation

    .line 173
    iput p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    .line 174
    iput p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    .line 175
    invoke-static {}, Lio/dcloud/common/util/ThreadPool;->self()Lio/dcloud/common/util/ThreadPool;

    move-result-object p1

    new-instance p2, Lio/dcloud/feature/weex_barcode/BarcodeView$2;

    invoke-direct {p2, p0}, Lio/dcloud/feature/weex_barcode/BarcodeView$2;-><init>(Lio/dcloud/feature/weex_barcode/BarcodeView;)V

    invoke-virtual {p1, p2}, Lio/dcloud/common/util/ThreadPool;->addThreadTask(Ljava/lang/Runnable;)V

    return-void
.end method

.method public initDecodeFormats(Lcom/alibaba/fastjson/JSONArray;)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "filters"
        }
    .end annotation

    .line 506
    new-instance v0, Ljava/util/Vector;

    invoke-direct {v0}, Ljava/util/Vector;-><init>()V

    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    if-eqz p1, :cond_34

    .line 507
    invoke-virtual {p1}, Lcom/alibaba/fastjson/JSONArray;->size()I

    move-result v0

    if-nez v0, :cond_10

    goto :goto_34

    .line 512
    :cond_10
    invoke-virtual {p1}, Lcom/alibaba/fastjson/JSONArray;->size()I

    move-result v0

    const/4 v1, 0x0

    :goto_15
    if-ge v1, v0, :cond_49

    const/4 v2, -0x1

    .line 516
    :try_start_18
    invoke-virtual {p1, v1}, Lcom/alibaba/fastjson/JSONArray;->getInteger(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I

    move-result v3
    :try_end_20
    .catch Lcom/alibaba/fastjson/JSONException; {:try_start_18 .. :try_end_20} :catch_21

    goto :goto_26

    :catch_21
    move-exception v3

    .line 518
    invoke-virtual {v3}, Lcom/alibaba/fastjson/JSONException;->printStackTrace()V

    move v3, v2

    :goto_26
    if-eq v3, v2, :cond_31

    .line 521
    iget-object v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    invoke-direct {p0, v3}, Lio/dcloud/feature/weex_barcode/BarcodeView;->convertNumToBarcodeFormat(I)Lcom/dcloud/zxing2/BarcodeFormat;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/util/Vector;->add(Ljava/lang/Object;)Z

    :cond_31
    add-int/lit8 v1, v1, 0x1

    goto :goto_15

    .line 508
    :cond_34
    :goto_34
    iget-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_13:Lcom/dcloud/zxing2/BarcodeFormat;

    invoke-virtual {p1, v0}, Ljava/util/Vector;->add(Ljava/lang/Object;)Z

    .line 509
    iget-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->EAN_8:Lcom/dcloud/zxing2/BarcodeFormat;

    invoke-virtual {p1, v0}, Ljava/util/Vector;->add(Ljava/lang/Object;)Z

    .line 510
    iget-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    sget-object v0, Lcom/dcloud/zxing2/BarcodeFormat;->QR_CODE:Lcom/dcloud/zxing2/BarcodeFormat;

    invoke-virtual {p1, v0}, Ljava/util/Vector;->add(Ljava/lang/Object;)Z

    :cond_49
    return-void
.end method

.method public isRunning()Z
    .registers 2

    .line 755
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    return v0
.end method

.method public onDestory()V
    .registers 2

    .line 329
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->resumeOrientationState()V

    .line 330
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->inactivityTimer:Lio/dcloud/feature/barcode2/decoding/InactivityTimer;

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/InactivityTimer;->shutdown()V

    const/4 v0, 0x0

    .line 331
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    const/4 v0, 0x0

    .line 332
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->decodeFormats:Ljava/util/Vector;

    .line 333
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->characterSet:Ljava/lang/String;

    return-void
.end method

.method protected onDraw(Landroid/graphics/Canvas;)V
    .registers 8
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "canvas"
        }
    .end annotation

    .line 792
    invoke-super {p0, p1}, Landroid/widget/AbsoluteLayout;->onDraw(Landroid/graphics/Canvas;)V

    .line 793
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->nopermission:Z

    if-eqz v0, :cond_bf

    .line 794
    new-instance v0, Landroid/text/TextPaint;

    invoke-direct {v0}, Landroid/text/TextPaint;-><init>()V

    const/4 v1, -0x1

    .line 795
    invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setColor(I)V

    const/high16 v1, 0x41900000    # 18.0f

    .line 796
    iget-object v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v2

    invoke-virtual {v2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;

    move-result-object v2

    invoke-static {v1, v2}, Lio/dcloud/common/util/PdrUtil;->pxFromDp(FLandroid/util/DisplayMetrics;)I

    move-result v1

    int-to-float v1, v1

    invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextSize(F)V

    .line 797
    sget-object v1, Landroid/graphics/Paint$Align;->CENTER:Landroid/graphics/Paint$Align;

    invoke-virtual {v0, v1}, Landroid/graphics/Paint;->setTextAlign(Landroid/graphics/Paint$Align;)V

    .line 798
    invoke-virtual {v0}, Landroid/graphics/Paint;->getFontMetrics()Landroid/graphics/Paint$FontMetrics;

    move-result-object v1

    .line 799
    iget v2, v1, Landroid/graphics/Paint$FontMetrics;->top:F

    .line 800
    iget v1, v1, Landroid/graphics/Paint$FontMetrics;->bottom:F

    .line 801
    iget v3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    int-to-float v3, v3

    const/high16 v4, 0x40000000    # 2.0f

    div-float/2addr v3, v4

    div-float/2addr v2, v4

    sub-float/2addr v3, v2

    div-float/2addr v1, v4

    sub-float/2addr v3, v1

    float-to-int v1, v3

    .line 802
    iget v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    div-int/lit8 v2, v2, 0x2

    .line 805
    sget v3, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v4, 0x18

    const/4 v5, 0x0

    if-lt v3, v4, :cond_6f

    .line 806
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getResources()Landroid/content/res/Resources;

    move-result-object v3

    invoke-virtual {v3}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;

    move-result-object v3

    invoke-virtual {v3}, Landroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList;

    move-result-object v3

    invoke-virtual {v3, v5}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale;

    move-result-object v3

    invoke-virtual {v3}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;

    move-result-object v3

    .line 807
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getResources()Landroid/content/res/Resources;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList;

    move-result-object v4

    invoke-virtual {v4, v5}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale;

    move-result-object v4

    invoke-virtual {v4}, Ljava/util/Locale;->getScript()Ljava/lang/String;

    goto :goto_90

    .line 809
    :cond_6f
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getResources()Landroid/content/res/Resources;

    move-result-object v3

    invoke-virtual {v3}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;

    move-result-object v3

    iget-object v3, v3, Landroid/content/res/Configuration;->locale:Ljava/util/Locale;

    invoke-virtual {v3}, Ljava/util/Locale;->getLanguage()Ljava/lang/String;

    move-result-object v3

    .line 810
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getResources()Landroid/content/res/Resources;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList;

    move-result-object v4

    invoke-virtual {v4, v5}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale;

    move-result-object v4

    invoke-virtual {v4}, Ljava/util/Locale;->getScript()Ljava/lang/String;

    .line 813
    :goto_90
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->getResources()Landroid/content/res/Resources;

    move-result-object v4

    sget v5, Lio/dcloud/base/R$string;->dcloud_scan_no_permission_text:I

    invoke-virtual {v4, v5}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;

    move-result-object v4

    const-string v5, "ja"

    .line 814
    invoke-virtual {v3, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v5

    if-eqz v5, :cond_aa

    int-to-float v2, v2

    int-to-float v1, v1

    const-string v3, "\u30ab\u30e1\u30e9\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093"

    .line 816
    invoke-virtual {p1, v3, v2, v1, v0}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V

    goto :goto_bf

    :cond_aa
    const-string v5, "ru"

    .line 817
    invoke-virtual {v3, v5}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_ba

    int-to-float v2, v2

    int-to-float v1, v1

    const-string v3, "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u044b."

    .line 819
    invoke-virtual {p1, v3, v2, v1, v0}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V

    goto :goto_bf

    :cond_ba
    int-to-float v2, v2

    int-to-float v1, v1

    .line 822
    invoke-virtual {p1, v4, v2, v1, v0}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V

    :cond_bf
    :goto_bf
    return-void
.end method

.method public onPause()V
    .registers 2

    .line 317
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    if-eqz v0, :cond_a

    .line 318
    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->quitSynchronously()V

    const/4 v0, 0x0

    .line 319
    iput-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->handler:Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;

    .line 321
    :cond_a
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->nopermission:Z

    if-nez v0, :cond_15

    .line 322
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0}, Lio/dcloud/feature/barcode2/camera/CameraManager;->closeDriver()V

    .line 323
    :cond_15
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    .line 324
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->cancel()V

    .line 325
    iput-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    return-void
.end method

.method public onResume(Z)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "isSysEvent"
        }
    .end annotation

    .line 423
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    if-eqz v0, :cond_1c

    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isCancelScan:Z

    if-eqz v0, :cond_1c

    if-eqz p1, :cond_1c

    .line 424
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    new-instance v1, Landroid/graphics/drawable/BitmapDrawable;

    iget-object v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

    move-result-object v2

    iget-object v3, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->lastBiptmap:Landroid/graphics/Bitmap;

    invoke-direct {v1, v2, v3}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V

    invoke-virtual {v0, v1}, Landroid/view/TextureView;->setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V

    .line 425
    :cond_1c
    iget-boolean v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    if-eqz v0, :cond_21

    goto :goto_26

    .line 428
    :cond_21
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->surfaceView:Landroid/view/TextureView;

    invoke-virtual {v0, p0}, Landroid/view/TextureView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V

    .line 429
    :goto_26
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    const-string v1, "audio"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/media/AudioManager;

    .line 430
    invoke-virtual {v0}, Landroid/media/AudioManager;->getRingerMode()I

    move-result v0

    const/4 v1, 0x2

    const/4 v2, 0x0

    if-eq v0, v1, :cond_3a

    .line 431
    iput-boolean v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->playBeep:Z

    .line 432
    :cond_3a
    invoke-direct {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->initBeepSound()V

    if-eqz p1, :cond_48

    .line 433
    iget-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    if-eqz p1, :cond_48

    .line 434
    iput-boolean v2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mRunning:Z

    .line 435
    invoke-virtual {p0}, Lio/dcloud/feature/weex_barcode/BarcodeView;->start()V

    :cond_48
    return-void
.end method

.method public onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "surface",
            "width",
            "height"
        }
    .end annotation

    const/4 p1, 0x1

    .line 765
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->isSurfaceAvaliable:Z

    .line 766
    iget-boolean p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    if-nez p2, :cond_9

    .line 767
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    :cond_9
    return-void
.end method

.method public onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "surface"
        }
    .end annotation

    const/4 p1, 0x0

    .line 781
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->hasSurface:Z

    return p1
.end method

.method public onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "surface",
            "width",
            "height"
        }
    .end annotation

    return-void
.end method

.method public onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "surface"
        }
    .end annotation

    return-void
.end method

.method public setAutoDecodeCharset(Z)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "autoDecodeCharsetParam"
        }
    .end annotation

    .line 238
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->autoDecodeCharset:Z

    return-void
.end method

.method public setAutoZoom(Z)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "isAutoZoomParam"
        }
    .end annotation

    .line 243
    sput-boolean p1, Lio/dcloud/feature/barcode2/decoding/CaptureActivityHandler;->isAutoZoom:Z

    return-void
.end method

.method public setBackground(I)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "color"
        }
    .end annotation

    const/4 v0, -0x1

    if-eq p1, v0, :cond_4

    goto :goto_6

    .line 248
    :cond_4
    sget p1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->laserColor:I

    .line 249
    :goto_6
    invoke-virtual {p0, p1}, Lio/dcloud/feature/weex_barcode/BarcodeView;->setBackgroundColor(I)V

    return-void
.end method

.method public setConserve(Z)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "mConserve"
        }
    .end annotation

    .line 266
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mConserve:Z

    return-void
.end method

.method public setFilename(Ljava/lang/String;)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "mFilename"
        }
    .end annotation

    .line 270
    iput-object p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->mFilename:Ljava/lang/String;

    return-void
.end method

.method public setFlash(Z)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "enable"
        }
    .end annotation

    .line 274
    invoke-static {}, Lio/dcloud/feature/barcode2/camera/CameraManager;->get()Lio/dcloud/feature/barcode2/camera/CameraManager;

    move-result-object v0

    invoke-virtual {v0, p1}, Lio/dcloud/feature/barcode2/camera/CameraManager;->setFlashlight(Z)V

    return-void
.end method

.method public setFrameColor(I)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "color"
        }
    .end annotation

    const/4 v0, -0x1

    if-eq p1, v0, :cond_4

    goto :goto_6

    .line 229
    :cond_4
    sget p1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->laserColor:I

    .line 230
    :goto_6
    sput p1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->cornerColor:I

    return-void
.end method

.method public setPlayBeep(Z)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "playBeep"
        }
    .end annotation

    .line 258
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->playBeep:Z

    return-void
.end method

.method public setScanBarColor(I)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "color"
        }
    .end annotation

    const/4 v0, -0x1

    if-eq p1, v0, :cond_4

    goto :goto_6

    .line 253
    :cond_4
    sget p1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->laserColor:I

    .line 254
    :goto_6
    sput p1, Lio/dcloud/feature/barcode2/view/DetectorViewConfig;->laserColor:I

    return-void
.end method

.method public setVibrate(Z)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "vibrate"
        }
    .end annotation

    .line 262
    iput-boolean p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->vibrate:Z

    return-void
.end method

.method public start()V
    .registers 4

    .line 356
    iget-object v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->context:Landroid/content/Context;

    check-cast v0, Landroid/app/Activity;

    const-string v1, "android.permission.CAMERA"

    filled-new-array {v1}, [Ljava/lang/String;

    move-result-object v1

    new-instance v2, Lio/dcloud/feature/weex_barcode/BarcodeView$4;

    invoke-direct {v2, p0}, Lio/dcloud/feature/weex_barcode/BarcodeView$4;-><init>(Lio/dcloud/feature/weex_barcode/BarcodeView;)V

    invoke-static {v0, v1, v2}, Lio/dcloud/common/adapter/util/PermissionUtil;->useSystemPermissions(Landroid/app/Activity;[Ljava/lang/String;Lio/dcloud/common/adapter/util/PermissionUtil$Request;)V

    return-void
.end method

.method public updateStyles(II)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "viewWidth",
            "viewHeight"
        }
    .end annotation

    .line 184
    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    if-ne v0, p2, :cond_9

    iget v0, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    if-ne v0, p1, :cond_9

    return-void

    .line 185
    :cond_9
    iput p1, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewWidth:I

    .line 186
    iput p2, p0, Lio/dcloud/feature/weex_barcode/BarcodeView;->viewHeight:I

    .line 187
    invoke-static {}, Lio/dcloud/common/util/ThreadPool;->self()Lio/dcloud/common/util/ThreadPool;

    move-result-object p1

    new-instance p2, Lio/dcloud/feature/weex_barcode/BarcodeView$3;

    invoke-direct {p2, p0}, Lio/dcloud/feature/weex_barcode/BarcodeView$3;-><init>(Lio/dcloud/feature/weex_barcode/BarcodeView;)V

    invoke-virtual {p1, p2}, Lio/dcloud/common/util/ThreadPool;->addThreadTask(Ljava/lang/Runnable;)V

    return-void
.end method