CameraManager.smali

.class public final Lcom/king/zxing/camera/CameraManager;
.super Ljava/lang/Object;
.source "CameraManager.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/king/zxing/camera/CameraManager$OnSensorListener;,
        Lcom/king/zxing/camera/CameraManager$OnTorchListener;
    }
.end annotation


# static fields
.field private static final MAX_FRAME_HEIGHT:I

.field private static final MAX_FRAME_WIDTH:I

.field private static final MIN_FRAME_HEIGHT:I

.field private static final MIN_FRAME_WIDTH:I


# instance fields
.field private autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

.field private camera:Lcom/king/zxing/camera/open/OpenCamera;

.field private final configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

.field private final context:Landroid/content/Context;

.field private framingRect:Landroid/graphics/Rect;

.field private framingRectHorizontalOffset:I

.field private framingRectInPreview:Landroid/graphics/Rect;

.field private framingRectRatio:F

.field private framingRectVerticalOffset:I

.field private initialized:Z

.field private isFullScreenScan:Z

.field private isTorch:Z

.field private onSensorListener:Lcom/king/zxing/camera/CameraManager$OnSensorListener;

.field private onTorchListener:Lcom/king/zxing/camera/CameraManager$OnTorchListener;

.field private final previewCallback:Lcom/king/zxing/camera/PreviewCallback;

.field private previewing:Z

.field private requestedCameraId:I

.field private requestedFramingRectHeight:I

.field private requestedFramingRectWidth:I


# direct methods
.method static constructor <clinit>()V
    .registers 1

    const v0, 0x17cc

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/king/zxing/camera/CameraManager;->MAX_FRAME_HEIGHT:I

    const v0, 0x11df

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/king/zxing/camera/CameraManager;->MAX_FRAME_WIDTH:I

    const v0, 0x159f

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/king/zxing/camera/CameraManager;->MIN_FRAME_HEIGHT:I

    const v0, 0x159f

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/king/zxing/camera/CameraManager;->MIN_FRAME_WIDTH:I

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;)V
    .registers 4
    .param p1, "context"    # Landroid/content/Context;

    .line 79
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 59
    const/4 v0, -0x1

    iput v0, p0, Lcom/king/zxing/camera/CameraManager;->requestedCameraId:I

    .line 80
    invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;

    move-result-object v0

    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->context:Landroid/content/Context;

    .line 81
    new-instance v0, Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-direct {v0, p1}, Lcom/king/zxing/camera/CameraConfigurationManager;-><init>(Landroid/content/Context;)V

    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    .line 82
    new-instance v0, Lcom/king/zxing/camera/PreviewCallback;

    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-direct {v0, v1}, Lcom/king/zxing/camera/PreviewCallback;-><init>(Lcom/king/zxing/camera/CameraConfigurationManager;)V

    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->previewCallback:Lcom/king/zxing/camera/PreviewCallback;

    .line 83
    return-void
.end method


# virtual methods
.method public buildLuminanceSource([BII)Lcom/google/zxing/PlanarYUVLuminanceSource;
    .registers 19
    .param p1, "data"    # [B
    .param p2, "width"    # I
    .param p3, "height"    # I

    .line 379
    move-object v0, p0

    invoke-virtual {p0}, Lcom/king/zxing/camera/CameraManager;->getFramingRectInPreview()Landroid/graphics/Rect;

    move-result-object v1

    .line 380
    .local v1, "rect":Landroid/graphics/Rect;
    if-nez v1, :cond_9

    .line 381
    const/4 v2, 0x0

    return-object v2

    .line 384
    :cond_9
    iget-boolean v2, v0, Lcom/king/zxing/camera/CameraManager;->isFullScreenScan:Z

    if-eqz v2, :cond_21

    .line 385
    new-instance v2, Lcom/google/zxing/PlanarYUVLuminanceSource;

    const/4 v7, 0x0

    const/4 v8, 0x0

    const/4 v11, 0x0

    move-object v3, v2

    move-object/from16 v4, p1

    move/from16 v5, p2

    move/from16 v6, p3

    move/from16 v9, p2

    move/from16 v10, p3

    invoke-direct/range {v3 .. v11}, Lcom/google/zxing/PlanarYUVLuminanceSource;-><init>([BIIIIIIZ)V

    return-object v2

    .line 387
    :cond_21
    invoke-static/range {p2 .. p3}, Ljava/lang/Math;->min(II)I

    move-result v2

    int-to-float v2, v2

    iget v3, v0, Lcom/king/zxing/camera/CameraManager;->framingRectRatio:F

    mul-float v2, v2, v3

    float-to-int v2, v2

    .line 388
    .local v2, "size":I
    sub-int v3, p2, v2

    div-int/lit8 v3, v3, 0x2

    iget v4, v0, Lcom/king/zxing/camera/CameraManager;->framingRectHorizontalOffset:I

    add-int v12, v3, v4

    .line 389
    .local v12, "left":I
    sub-int v3, p3, v2

    div-int/lit8 v3, v3, 0x2

    iget v4, v0, Lcom/king/zxing/camera/CameraManager;->framingRectVerticalOffset:I

    add-int v13, v3, v4

    .line 391
    .local v13, "top":I
    new-instance v14, Lcom/google/zxing/PlanarYUVLuminanceSource;

    const/4 v11, 0x0

    move-object v3, v14

    move-object/from16 v4, p1

    move/from16 v5, p2

    move/from16 v6, p3

    move v7, v12

    move v8, v13

    move v9, v2

    move v10, v2

    invoke-direct/range {v3 .. v11}, Lcom/google/zxing/PlanarYUVLuminanceSource;-><init>([BIIIIIIZ)V

    return-object v14
.end method

.method public closeDriver()V
    .registers 3

    .line 149
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    if-eqz v0, :cond_12

    .line 150
    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v0

    invoke-virtual {v0}, Landroid/hardware/Camera;->release()V

    .line 151
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    .line 154
    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    .line 155
    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRectInPreview:Landroid/graphics/Rect;

    .line 157
    :cond_12
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/king/zxing/camera/CameraManager;->isTorch:Z

    .line 158
    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->onTorchListener:Lcom/king/zxing/camera/CameraManager$OnTorchListener;

    if-eqz v1, :cond_1c

    .line 159
    invoke-interface {v1, v0}, Lcom/king/zxing/camera/CameraManager$OnTorchListener;->onTorchChanged(Z)V

    .line 161
    :cond_1c
    return-void
.end method

.method public getCameraResolution()Landroid/graphics/Point;
    .registers 2

    .line 325
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/CameraConfigurationManager;->getCameraResolution()Landroid/graphics/Point;

    move-result-object v0

    return-object v0
.end method

.method public declared-synchronized getFramingRect()Landroid/graphics/Rect;
    .registers 10

    monitor-enter p0

    .line 243
    :try_start_1
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    if-nez v0, :cond_4a

    .line 244
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;
    :try_end_7
    .catchall {:try_start_1 .. :try_end_7} :catchall_4e

    const/4 v1, 0x0

    if-nez v0, :cond_c

    .line 245
    monitor-exit p0

    return-object v1

    .line 247
    :cond_c
    :try_start_c
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/CameraConfigurationManager;->getCameraResolution()Landroid/graphics/Point;

    move-result-object v0
    :try_end_12
    .catchall {:try_start_c .. :try_end_12} :catchall_4e

    .line 248
    .local v0, "point":Landroid/graphics/Point;
    if-nez v0, :cond_16

    .line 250
    monitor-exit p0

    return-object v1

    .line 253
    :cond_16
    :try_start_16
    iget v1, v0, Landroid/graphics/Point;->x:I

    .line 254
    .local v1, "width":I
    iget v2, v0, Landroid/graphics/Point;->y:I

    .line 256
    .local v2, "height":I
    iget-boolean v3, p0, Lcom/king/zxing/camera/CameraManager;->isFullScreenScan:Z

    if-eqz v3, :cond_27

    .line 257
    new-instance v3, Landroid/graphics/Rect;

    const/4 v4, 0x0

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

    iput-object v3, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    goto :goto_4a

    .line 259
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :cond_27
    invoke-static {v1, v2}, Ljava/lang/Math;->min(II)I

    move-result v3

    int-to-float v3, v3

    iget v4, p0, Lcom/king/zxing/camera/CameraManager;->framingRectRatio:F

    mul-float v3, v3, v4

    float-to-int v3, v3

    .line 261
    .local v3, "size":I
    sub-int v4, v1, v3

    div-int/lit8 v4, v4, 0x2

    iget v5, p0, Lcom/king/zxing/camera/CameraManager;->framingRectHorizontalOffset:I

    add-int/2addr v4, v5

    .line 262
    .local v4, "leftOffset":I
    sub-int v5, v2, v3

    div-int/lit8 v5, v5, 0x2

    iget v6, p0, Lcom/king/zxing/camera/CameraManager;->framingRectVerticalOffset:I

    add-int/2addr v5, v6

    .line 263
    .local v5, "topOffset":I
    new-instance v6, Landroid/graphics/Rect;

    add-int v7, v4, v3

    add-int v8, v5, v3

    invoke-direct {v6, v4, v5, v7, v8}, Landroid/graphics/Rect;-><init>(IIII)V

    iput-object v6, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    .line 267
    .end local v0    # "point":Landroid/graphics/Point;
    .end local v1    # "width":I
    .end local v2    # "height":I
    .end local v3    # "size":I
    .end local v4    # "leftOffset":I
    .end local v5    # "topOffset":I
    :cond_4a
    :goto_4a
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;
    :try_end_4c
    .catchall {:try_start_16 .. :try_end_4c} :catchall_4e

    monitor-exit p0

    return-object v0

    .line 242
    :catchall_4e
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized getFramingRectInPreview()Landroid/graphics/Rect;
    .registers 7

    monitor-enter p0

    .line 278
    :try_start_1
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRectInPreview:Landroid/graphics/Rect;

    if-nez v0, :cond_55

    .line 279
    invoke-virtual {p0}, Lcom/king/zxing/camera/CameraManager;->getFramingRect()Landroid/graphics/Rect;

    move-result-object v0
    :try_end_9
    .catchall {:try_start_1 .. :try_end_9} :catchall_59

    .line 280
    .local v0, "framingRect":Landroid/graphics/Rect;
    const/4 v1, 0x0

    if-nez v0, :cond_e

    .line 281
    monitor-exit p0

    return-object v1

    .line 283
    :cond_e
    :try_start_e
    new-instance v2, Landroid/graphics/Rect;

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

    .line 284
    .local v2, "rect":Landroid/graphics/Rect;
    iget-object v3, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v3}, Lcom/king/zxing/camera/CameraConfigurationManager;->getCameraResolution()Landroid/graphics/Point;

    move-result-object v3

    .line 285
    .local v3, "cameraResolution":Landroid/graphics/Point;
    iget-object v4, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v4}, Lcom/king/zxing/camera/CameraConfigurationManager;->getScreenResolution()Landroid/graphics/Point;

    move-result-object v4

    .line 286
    .local v4, "screenResolution":Landroid/graphics/Point;
    if-eqz v3, :cond_53

    if-nez v4, :cond_24

    goto :goto_53

    .line 296
    :cond_24
    iget v1, v2, Landroid/graphics/Rect;->left:I

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

    mul-int v1, v1, v5

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

    div-int/2addr v1, v5

    iput v1, v2, Landroid/graphics/Rect;->left:I

    .line 297
    iget v1, v2, Landroid/graphics/Rect;->right:I

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

    mul-int v1, v1, v5

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

    div-int/2addr v1, v5

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

    .line 298
    iget v1, v2, Landroid/graphics/Rect;->top:I

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

    mul-int v1, v1, v5

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

    div-int/2addr v1, v5

    iput v1, v2, Landroid/graphics/Rect;->top:I

    .line 299
    iget v1, v2, Landroid/graphics/Rect;->bottom:I

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

    mul-int v1, v1, v5

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

    div-int/2addr v1, v5

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

    .line 302
    iput-object v2, p0, Lcom/king/zxing/camera/CameraManager;->framingRectInPreview:Landroid/graphics/Rect;
    :try_end_52
    .catchall {:try_start_e .. :try_end_52} :catchall_59

    goto :goto_55

    .line 288
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :cond_53
    :goto_53
    monitor-exit p0

    return-object v1

    .line 305
    .end local v0    # "framingRect":Landroid/graphics/Rect;
    .end local v2    # "rect":Landroid/graphics/Rect;
    .end local v3    # "cameraResolution":Landroid/graphics/Point;
    .end local v4    # "screenResolution":Landroid/graphics/Point;
    :cond_55
    :goto_55
    :try_start_55
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->framingRectInPreview:Landroid/graphics/Rect;
    :try_end_57
    .catchall {:try_start_55 .. :try_end_57} :catchall_59

    monitor-exit p0

    return-object v0

    .line 277
    :catchall_59
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public getOpenCamera()Lcom/king/zxing/camera/open/OpenCamera;
    .registers 2

    .line 142
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    return-object v0
.end method

.method public getScreenResolution()Landroid/graphics/Point;
    .registers 2

    .line 329
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/CameraConfigurationManager;->getScreenResolution()Landroid/graphics/Point;

    move-result-object v0

    return-object v0
.end method

.method public declared-synchronized isOpen()Z
    .registers 2

    monitor-enter p0

    .line 138
    :try_start_1
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;
    :try_end_3
    .catchall {:try_start_1 .. :try_end_3} :catchall_a

    if-eqz v0, :cond_7

    const/4 v0, 0x1

    goto :goto_8

    :cond_7
    const/4 v0, 0x0

    :goto_8
    monitor-exit p0

    return v0

    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :catchall_a
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public openDriver(Landroid/view/SurfaceHolder;)V
    .registers 10
    .param p1, "holder"    # Landroid/view/SurfaceHolder;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .line 92
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    .line 93
    .local v0, "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    if-nez v0, :cond_17

    .line 94
    iget v1, p0, Lcom/king/zxing/camera/CameraManager;->requestedCameraId:I

    invoke-static {v1}, Lcom/king/zxing/camera/open/OpenCameraInterface;->open(I)Lcom/king/zxing/camera/open/OpenCamera;

    move-result-object v0

    .line 95
    if-eqz v0, :cond_f

    .line 98
    iput-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    goto :goto_17

    .line 96
    :cond_f
    new-instance v1, Ljava/io/IOException;

    const-string v2, "Camera.open() failed to return object from driver"

    invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 101
    :cond_17
    :goto_17
    iget-boolean v1, p0, Lcom/king/zxing/camera/CameraManager;->initialized:Z

    const/4 v2, 0x1

    const/4 v3, 0x0

    if-nez v1, :cond_33

    .line 102
    iput-boolean v2, p0, Lcom/king/zxing/camera/CameraManager;->initialized:Z

    .line 103
    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v1, v0}, Lcom/king/zxing/camera/CameraConfigurationManager;->initFromCameraParameters(Lcom/king/zxing/camera/open/OpenCamera;)V

    .line 104
    iget v1, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectWidth:I

    if-lez v1, :cond_33

    iget v4, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectHeight:I

    if-lez v4, :cond_33

    .line 105
    invoke-virtual {p0, v1, v4}, Lcom/king/zxing/camera/CameraManager;->setManualFramingRect(II)V

    .line 106
    iput v3, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectWidth:I

    .line 107
    iput v3, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectHeight:I

    .line 111
    :cond_33
    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v1

    .line 112
    .local v1, "cameraObject":Landroid/hardware/Camera;
    invoke-virtual {v1}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v4

    .line 113
    .local v4, "parameters":Landroid/hardware/Camera$Parameters;
    if-nez v4, :cond_3f

    const/4 v5, 0x0

    goto :goto_43

    :cond_3f
    invoke-virtual {v4}, Landroid/hardware/Camera$Parameters;->flatten()Ljava/lang/String;

    move-result-object v5

    .line 115
    .local v5, "parametersFlattened":Ljava/lang/String;
    :goto_43
    :try_start_43
    iget-object v6, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v6, v0, v3}, Lcom/king/zxing/camera/CameraConfigurationManager;->setDesiredCameraParameters(Lcom/king/zxing/camera/open/OpenCamera;Z)V
    :try_end_48
    .catch Ljava/lang/RuntimeException; {:try_start_43 .. :try_end_48} :catch_49

    .line 132
    goto :goto_7b

    .line 116
    :catch_49
    move-exception v3

    .line 118
    .local v3, "re":Ljava/lang/RuntimeException;
    const-string v6, "Camera rejected parameters. Setting only minimal safe-mode parameters"

    invoke-static {v6}, Lcom/king/zxing/util/LogUtils;->w(Ljava/lang/String;)V

    .line 119
    new-instance v6, Ljava/lang/StringBuilder;

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

    const-string v7, "Resetting to saved camera params: "

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

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

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

    move-result-object v6

    invoke-static {v6}, Lcom/king/zxing/util/LogUtils;->i(Ljava/lang/String;)V

    .line 121
    if-eqz v5, :cond_7b

    .line 122
    invoke-virtual {v1}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;

    move-result-object v4

    .line 123
    invoke-virtual {v4, v5}, Landroid/hardware/Camera$Parameters;->unflatten(Ljava/lang/String;)V

    .line 125
    :try_start_6c
    invoke-virtual {v1, v4}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V

    .line 126
    iget-object v6, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v6, v0, v2}, Lcom/king/zxing/camera/CameraConfigurationManager;->setDesiredCameraParameters(Lcom/king/zxing/camera/open/OpenCamera;Z)V
    :try_end_74
    .catch Ljava/lang/RuntimeException; {:try_start_6c .. :try_end_74} :catch_75

    .line 130
    goto :goto_7b

    .line 127
    :catch_75
    move-exception v2

    .line 129
    .local v2, "re2":Ljava/lang/RuntimeException;
    const-string v6, "Camera rejected even safe-mode parameters! No configuration"

    invoke-static {v6}, Lcom/king/zxing/util/LogUtils;->w(Ljava/lang/String;)V

    .line 133
    .end local v2    # "re2":Ljava/lang/RuntimeException;
    .end local v3    # "re":Ljava/lang/RuntimeException;
    :cond_7b
    :goto_7b
    invoke-virtual {v1, p1}, Landroid/hardware/Camera;->setPreviewDisplay(Landroid/view/SurfaceHolder;)V

    .line 135
    return-void
.end method

.method public declared-synchronized requestPreviewFrame(Landroid/os/Handler;I)V
    .registers 6
    .param p1, "handler"    # Landroid/os/Handler;
    .param p2, "message"    # I

    monitor-enter p0

    .line 228
    :try_start_1
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    .line 229
    .local v0, "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    if-eqz v0, :cond_17

    iget-boolean v1, p0, Lcom/king/zxing/camera/CameraManager;->previewing:Z

    if-eqz v1, :cond_17

    .line 230
    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->previewCallback:Lcom/king/zxing/camera/PreviewCallback;

    invoke-virtual {v1, p1, p2}, Lcom/king/zxing/camera/PreviewCallback;->setHandler(Landroid/os/Handler;I)V

    .line 231
    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v1

    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->previewCallback:Lcom/king/zxing/camera/PreviewCallback;

    invoke-virtual {v1, v2}, Landroid/hardware/Camera;->setOneShotPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V
    :try_end_17
    .catchall {:try_start_1 .. :try_end_17} :catchall_19

    .line 233
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :cond_17
    monitor-exit p0

    return-void

    .line 227
    .end local v0    # "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    .end local p1    # "handler":Landroid/os/Handler;
    .end local p2    # "message":I
    :catchall_19
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public sensorChanged(ZF)V
    .registers 5
    .param p1, "tooDark"    # Z
    .param p2, "ambientLightLux"    # F

    .line 412
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->onSensorListener:Lcom/king/zxing/camera/CameraManager$OnSensorListener;

    if-eqz v0, :cond_9

    .line 413
    iget-boolean v1, p0, Lcom/king/zxing/camera/CameraManager;->isTorch:Z

    invoke-interface {v0, v1, p1, p2}, Lcom/king/zxing/camera/CameraManager$OnSensorListener;->onSensorChanged(ZZF)V

    .line 415
    :cond_9
    return-void
.end method

.method public setFramingRectHorizontalOffset(I)V
    .registers 2
    .param p1, "framingRectHorizontalOffset"    # I

    .line 321
    iput p1, p0, Lcom/king/zxing/camera/CameraManager;->framingRectHorizontalOffset:I

    .line 322
    return-void
.end method

.method public setFramingRectRatio(F)V
    .registers 2
    .param p1, "framingRectRatio"    # F

    .line 313
    iput p1, p0, Lcom/king/zxing/camera/CameraManager;->framingRectRatio:F

    .line 314
    return-void
.end method

.method public setFramingRectVerticalOffset(I)V
    .registers 2
    .param p1, "framingRectVerticalOffset"    # I

    .line 317
    iput p1, p0, Lcom/king/zxing/camera/CameraManager;->framingRectVerticalOffset:I

    .line 318
    return-void
.end method

.method public setFullScreenScan(Z)V
    .registers 2
    .param p1, "fullScreenScan"    # Z

    .line 309
    iput-boolean p1, p0, Lcom/king/zxing/camera/CameraManager;->isFullScreenScan:Z

    .line 310
    return-void
.end method

.method public declared-synchronized setManualCameraId(I)V
    .registers 2
    .param p1, "cameraId"    # I

    monitor-enter p0

    .line 339
    :try_start_1
    iput p1, p0, Lcom/king/zxing/camera/CameraManager;->requestedCameraId:I
    :try_end_3
    .catchall {:try_start_1 .. :try_end_3} :catchall_5

    .line 340
    monitor-exit p0

    return-void

    .line 338
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    .end local p1    # "cameraId":I
    :catchall_5
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public declared-synchronized setManualFramingRect(II)V
    .registers 9
    .param p1, "width"    # I
    .param p2, "height"    # I

    monitor-enter p0

    .line 350
    :try_start_1
    iget-boolean v0, p0, Lcom/king/zxing/camera/CameraManager;->initialized:Z

    if-eqz v0, :cond_48

    .line 351
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/CameraConfigurationManager;->getScreenResolution()Landroid/graphics/Point;

    move-result-object v0

    .line 352
    .local v0, "screenResolution":Landroid/graphics/Point;
    iget v1, v0, Landroid/graphics/Point;->x:I

    if-le p1, v1, :cond_12

    .line 353
    iget v1, v0, Landroid/graphics/Point;->x:I

    move p1, v1

    .line 355
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :cond_12
    iget v1, v0, Landroid/graphics/Point;->y:I

    if-le p2, v1, :cond_19

    .line 356
    iget v1, v0, Landroid/graphics/Point;->y:I

    move p2, v1

    .line 358
    :cond_19
    iget v1, v0, Landroid/graphics/Point;->x:I

    sub-int/2addr v1, p1

    div-int/lit8 v1, v1, 0x2

    .line 359
    .local v1, "leftOffset":I
    iget v2, v0, Landroid/graphics/Point;->y:I

    sub-int/2addr v2, p2

    div-int/lit8 v2, v2, 0x2

    .line 360
    .local v2, "topOffset":I
    new-instance v3, Landroid/graphics/Rect;

    add-int v4, v1, p1

    add-int v5, v2, p2

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

    iput-object v3, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    .line 361
    new-instance v3, Ljava/lang/StringBuilder;

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

    const-string v4, "Calculated manual framing rect: "

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

    iget-object v4, p0, Lcom/king/zxing/camera/CameraManager;->framingRect:Landroid/graphics/Rect;

    invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

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

    move-result-object v3

    invoke-static {v3}, Lcom/king/zxing/util/LogUtils;->d(Ljava/lang/String;)V

    .line 362
    const/4 v3, 0x0

    iput-object v3, p0, Lcom/king/zxing/camera/CameraManager;->framingRectInPreview:Landroid/graphics/Rect;

    .line 363
    .end local v0    # "screenResolution":Landroid/graphics/Point;
    .end local v1    # "leftOffset":I
    .end local v2    # "topOffset":I
    goto :goto_4c

    .line 364
    :cond_48
    iput p1, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectWidth:I

    .line 365
    iput p2, p0, Lcom/king/zxing/camera/CameraManager;->requestedFramingRectHeight:I
    :try_end_4c
    .catchall {:try_start_1 .. :try_end_4c} :catchall_4e

    .line 367
    :goto_4c
    monitor-exit p0

    return-void

    .line 349
    .end local p1    # "width":I
    .end local p2    # "height":I
    :catchall_4e
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public setOnSensorListener(Lcom/king/zxing/camera/CameraManager$OnSensorListener;)V
    .registers 2
    .param p1, "listener"    # Lcom/king/zxing/camera/CameraManager$OnSensorListener;

    .line 408
    iput-object p1, p0, Lcom/king/zxing/camera/CameraManager;->onSensorListener:Lcom/king/zxing/camera/CameraManager$OnSensorListener;

    .line 409
    return-void
.end method

.method public setOnTorchListener(Lcom/king/zxing/camera/CameraManager$OnTorchListener;)V
    .registers 2
    .param p1, "listener"    # Lcom/king/zxing/camera/CameraManager$OnTorchListener;

    .line 400
    iput-object p1, p0, Lcom/king/zxing/camera/CameraManager;->onTorchListener:Lcom/king/zxing/camera/CameraManager$OnTorchListener;

    .line 401
    return-void
.end method

.method public declared-synchronized setTorch(Z)V
    .registers 7
    .param p1, "newSetting"    # Z

    monitor-enter p0

    .line 196
    :try_start_1
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    .line 197
    .local v0, "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    if-eqz v0, :cond_48

    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v2

    invoke-virtual {v1, v2}, Lcom/king/zxing/camera/CameraConfigurationManager;->getTorchState(Landroid/hardware/Camera;)Z

    move-result v1

    if-eq p1, v1, :cond_48

    .line 198
    iget-object v1, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    if-eqz v1, :cond_17

    const/4 v1, 0x1

    goto :goto_18

    :cond_17
    const/4 v1, 0x0

    .line 199
    .local v1, "wasAutoFocusManager":Z
    :goto_18
    if-eqz v1, :cond_22

    .line 200
    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    invoke-virtual {v2}, Lcom/king/zxing/camera/AutoFocusManager;->stop()V

    .line 201
    const/4 v2, 0x0

    iput-object v2, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    .line 203
    .end local p0    # "this":Lcom/king/zxing/camera/CameraManager;
    :cond_22
    iput-boolean p1, p0, Lcom/king/zxing/camera/CameraManager;->isTorch:Z

    .line 204
    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->configManager:Lcom/king/zxing/camera/CameraConfigurationManager;

    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v3

    invoke-virtual {v2, v3, p1}, Lcom/king/zxing/camera/CameraConfigurationManager;->setTorch(Landroid/hardware/Camera;Z)V

    .line 205
    if-eqz v1, :cond_3f

    .line 206
    new-instance v2, Lcom/king/zxing/camera/AutoFocusManager;

    iget-object v3, p0, Lcom/king/zxing/camera/CameraManager;->context:Landroid/content/Context;

    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v4

    invoke-direct {v2, v3, v4}, Lcom/king/zxing/camera/AutoFocusManager;-><init>(Landroid/content/Context;Landroid/hardware/Camera;)V

    iput-object v2, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    .line 207
    invoke-virtual {v2}, Lcom/king/zxing/camera/AutoFocusManager;->start()V

    .line 210
    :cond_3f
    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->onTorchListener:Lcom/king/zxing/camera/CameraManager$OnTorchListener;

    if-eqz v2, :cond_48

    .line 211
    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->onTorchListener:Lcom/king/zxing/camera/CameraManager$OnTorchListener;

    invoke-interface {v2, p1}, Lcom/king/zxing/camera/CameraManager$OnTorchListener;->onTorchChanged(Z)V
    :try_end_48
    .catchall {:try_start_1 .. :try_end_48} :catchall_4a

    .line 216
    .end local v1    # "wasAutoFocusManager":Z
    :cond_48
    monitor-exit p0

    return-void

    .line 195
    .end local v0    # "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    .end local p1    # "newSetting":Z
    :catchall_4a
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public startPreview()V
    .registers 5

    .line 167
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    .line 168
    .local v0, "theCamera":Lcom/king/zxing/camera/open/OpenCamera;
    if-eqz v0, :cond_1f

    iget-boolean v1, p0, Lcom/king/zxing/camera/CameraManager;->previewing:Z

    if-nez v1, :cond_1f

    .line 169
    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v1

    invoke-virtual {v1}, Landroid/hardware/Camera;->startPreview()V

    .line 170
    const/4 v1, 0x1

    iput-boolean v1, p0, Lcom/king/zxing/camera/CameraManager;->previewing:Z

    .line 171
    new-instance v1, Lcom/king/zxing/camera/AutoFocusManager;

    iget-object v2, p0, Lcom/king/zxing/camera/CameraManager;->context:Landroid/content/Context;

    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v3

    invoke-direct {v1, v2, v3}, Lcom/king/zxing/camera/AutoFocusManager;-><init>(Landroid/content/Context;Landroid/hardware/Camera;)V

    iput-object v1, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    .line 173
    :cond_1f
    return-void
.end method

.method public stopPreview()V
    .registers 4

    .line 179
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    const/4 v1, 0x0

    if-eqz v0, :cond_a

    .line 180
    invoke-virtual {v0}, Lcom/king/zxing/camera/AutoFocusManager;->stop()V

    .line 181
    iput-object v1, p0, Lcom/king/zxing/camera/CameraManager;->autoFocusManager:Lcom/king/zxing/camera/AutoFocusManager;

    .line 183
    :cond_a
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->camera:Lcom/king/zxing/camera/open/OpenCamera;

    if-eqz v0, :cond_21

    iget-boolean v2, p0, Lcom/king/zxing/camera/CameraManager;->previewing:Z

    if-eqz v2, :cond_21

    .line 184
    invoke-virtual {v0}, Lcom/king/zxing/camera/open/OpenCamera;->getCamera()Landroid/hardware/Camera;

    move-result-object v0

    invoke-virtual {v0}, Landroid/hardware/Camera;->stopPreview()V

    .line 185
    iget-object v0, p0, Lcom/king/zxing/camera/CameraManager;->previewCallback:Lcom/king/zxing/camera/PreviewCallback;

    const/4 v2, 0x0

    invoke-virtual {v0, v1, v2}, Lcom/king/zxing/camera/PreviewCallback;->setHandler(Landroid/os/Handler;I)V

    .line 186
    iput-boolean v2, p0, Lcom/king/zxing/camera/CameraManager;->previewing:Z

    .line 188
    :cond_21
    return-void
.end method