a.smali

.class final Lcom/cmcm/qrcodelib/camera/a;
.super Ljava/lang/Object;
.source "AutoFocusManager.java"

# interfaces
.implements Landroid/hardware/Camera$AutoFocusCallback;


# static fields
.field private static final Ly:Ljava/util/Collection;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Collection",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field


# instance fields
.field private final LA:Z

.field private final LB:Landroid/hardware/Camera;

.field private LC:Landroid/os/AsyncTask;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Landroid/os/AsyncTask",
            "<***>;"
        }
    .end annotation
.end field

.field private Lz:Z

.field private stopped:Z


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

    .prologue
    .line 34
    new-instance v0, Ljava/util/ArrayList;

    const/4 v1, 0x2

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

    .line 35
    sput-object v0, Lcom/cmcm/qrcodelib/camera/a;->Ly:Ljava/util/Collection;

    const-string v1, "auto"

    invoke-interface {v0, v1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    .line 36
    sget-object v0, Lcom/cmcm/qrcodelib/camera/a;->Ly:Ljava/util/Collection;

    const-string v1, "macro"

    invoke-interface {v0, v1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    .line 37
    return-void
.end method

.method constructor <init>(Landroid/hardware/Camera;)V
    .registers 4

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

    .line 46
    iput-object p1, p0, Lcom/cmcm/qrcodelib/camera/a;->LB:Landroid/hardware/Camera;

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

    move-result-object v0

    invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getFocusMode()Ljava/lang/String;

    move-result-object v0

    .line 49
    sget-object v1, Lcom/cmcm/qrcodelib/camera/a;->Ly:Ljava/util/Collection;

    invoke-interface {v1, v0}, Ljava/util/Collection;->contains(Ljava/lang/Object;)Z

    move-result v0

    iput-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LA:Z

    .line 51
    invoke-virtual {p0}, Lcom/cmcm/qrcodelib/camera/a;->start()V

    .line 52
    return-void
.end method

.method private declared-synchronized fi()V
    .registers 4

    .prologue
    .line 61
    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->stopped:Z

    if-nez v0, :cond_19

    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;

    if-nez v0, :cond_19

    .line 62
    new-instance v0, Lcom/cmcm/qrcodelib/camera/b;

    const/4 v1, 0x0

    invoke-direct {v0, p0, v1}, Lcom/cmcm/qrcodelib/camera/b;-><init>(Lcom/cmcm/qrcodelib/camera/a;B)V
    :try_end_f
    .catchall {:try_start_1 .. :try_end_f} :catchall_1b

    .line 64
    :try_start_f
    sget-object v1, Landroid/os/AsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;

    const/4 v2, 0x0

    new-array v2, v2, [Ljava/lang/Object;

    invoke-virtual {v0, v1, v2}, Lcom/cmcm/qrcodelib/camera/b;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;

    .line 65
    iput-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;
    :try_end_19
    .catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_f .. :try_end_19} :catch_1e
    .catchall {:try_start_f .. :try_end_19} :catchall_1b

    .line 70
    :cond_19
    :goto_19
    monitor-exit p0

    return-void

    .line 61
    :catchall_1b
    move-exception v0

    monitor-exit p0

    throw v0

    :catch_1e
    move-exception v0

    goto :goto_19
.end method

.method private declared-synchronized fj()V
    .registers 3

    .prologue
    .line 91
    monitor-enter p0

    :try_start_1
    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;

    if-eqz v0, :cond_18

    .line 92
    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;

    invoke-virtual {v0}, Landroid/os/AsyncTask;->getStatus()Landroid/os/AsyncTask$Status;

    move-result-object v0

    sget-object v1, Landroid/os/AsyncTask$Status;->FINISHED:Landroid/os/AsyncTask$Status;

    if-eq v0, v1, :cond_15

    .line 93
    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/os/AsyncTask;->cancel(Z)Z

    .line 95
    :cond_15
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;
    :try_end_18
    .catchall {:try_start_1 .. :try_end_18} :catchall_1a

    .line 97
    :cond_18
    monitor-exit p0

    return-void

    .line 91
    :catchall_1a
    move-exception v0

    monitor-exit p0

    throw v0
.end method


# virtual methods
.method public final declared-synchronized onAutoFocus(ZLandroid/hardware/Camera;)V
    .registers 4

    .prologue
    .line 56
    monitor-enter p0

    const/4 v0, 0x0

    :try_start_2
    iput-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->Lz:Z

    .line 57
    invoke-direct {p0}, Lcom/cmcm/qrcodelib/camera/a;->fi()V
    :try_end_7
    .catchall {:try_start_2 .. :try_end_7} :catchall_9

    .line 58
    monitor-exit p0

    return-void

    .line 56
    :catchall_9
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method final declared-synchronized start()V
    .registers 2

    .prologue
    .line 73
    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LA:Z

    if-eqz v0, :cond_18

    .line 74
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LC:Landroid/os/AsyncTask;

    .line 75
    iget-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->stopped:Z

    if-nez v0, :cond_18

    iget-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->Lz:Z
    :try_end_e
    .catchall {:try_start_1 .. :try_end_e} :catchall_1f

    if-nez v0, :cond_18

    .line 77
    :try_start_10
    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LB:Landroid/hardware/Camera;

    invoke-virtual {v0, p0}, Landroid/hardware/Camera;->autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V

    .line 78
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->Lz:Z
    :try_end_18
    .catch Ljava/lang/RuntimeException; {:try_start_10 .. :try_end_18} :catch_1a
    .catchall {:try_start_10 .. :try_end_18} :catchall_1f

    .line 88
    :cond_18
    :goto_18
    monitor-exit p0

    return-void

    .line 84
    :catch_1a
    move-exception v0

    :try_start_1b
    invoke-direct {p0}, Lcom/cmcm/qrcodelib/camera/a;->fi()V
    :try_end_1e
    .catchall {:try_start_1b .. :try_end_1e} :catchall_1f

    goto :goto_18

    .line 73
    :catchall_1f
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method final declared-synchronized stop()V
    .registers 2

    .prologue
    .line 100
    monitor-enter p0

    const/4 v0, 0x1

    :try_start_2
    iput-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->stopped:Z

    .line 101
    iget-boolean v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LA:Z

    if-eqz v0, :cond_10

    .line 102
    invoke-direct {p0}, Lcom/cmcm/qrcodelib/camera/a;->fj()V
    :try_end_b
    .catchall {:try_start_2 .. :try_end_b} :catchall_12

    .line 105
    :try_start_b
    iget-object v0, p0, Lcom/cmcm/qrcodelib/camera/a;->LB:Landroid/hardware/Camera;

    invoke-virtual {v0}, Landroid/hardware/Camera;->cancelAutoFocus()V
    :try_end_10
    .catch Ljava/lang/RuntimeException; {:try_start_b .. :try_end_10} :catch_15
    .catchall {:try_start_b .. :try_end_10} :catchall_12

    .line 112
    :cond_10
    :goto_10
    monitor-exit p0

    return-void

    .line 100
    :catchall_12
    move-exception v0

    monitor-exit p0

    throw v0

    :catch_15
    move-exception v0

    goto :goto_10
.end method