DecodeThread.smali

.class final Lcom/king/zxing/DecodeThread;
.super Ljava/lang/Thread;
.source "DecodeThread.java"


# static fields
.field public static final BARCODE_BITMAP:Ljava/lang/String; = "barcode_bitmap"

.field public static final BARCODE_SCALED_FACTOR:Ljava/lang/String; = "barcode_scaled_factor"


# instance fields
.field private final cameraManager:Lcom/king/zxing/camera/CameraManager;

.field private captureHandler:Lcom/king/zxing/CaptureHandler;

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

.field private handler:Landroid/os/Handler;

.field private final handlerInitLatch:Ljava/util/concurrent/CountDownLatch;

.field private final hints:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Lcom/google/zxing/DecodeHintType;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field


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

    return-void
.end method

.method constructor <init>(Landroid/content/Context;Lcom/king/zxing/camera/CameraManager;Lcom/king/zxing/CaptureHandler;Ljava/util/Collection;Ljava/util/Map;Ljava/lang/String;Lcom/google/zxing/ResultPointCallback;)V
    .registers 11
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "cameraManager"    # Lcom/king/zxing/camera/CameraManager;
    .param p3, "captureHandler"    # Lcom/king/zxing/CaptureHandler;
    .param p6, "characterSet"    # Ljava/lang/String;
    .param p7, "resultPointCallback"    # Lcom/google/zxing/ResultPointCallback;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Landroid/content/Context;",
            "Lcom/king/zxing/camera/CameraManager;",
            "Lcom/king/zxing/CaptureHandler;",
            "Ljava/util/Collection<",
            "Lcom/google/zxing/BarcodeFormat;",
            ">;",
            "Ljava/util/Map<",
            "Lcom/google/zxing/DecodeHintType;",
            "Ljava/lang/Object;",
            ">;",
            "Ljava/lang/String;",
            "Lcom/google/zxing/ResultPointCallback;",
            ")V"
        }
    .end annotation

    .line 60
    .local p4, "decodeFormats":Ljava/util/Collection;, "Ljava/util/Collection<Lcom/google/zxing/BarcodeFormat;>;"
    .local p5, "baseHints":Ljava/util/Map;, "Ljava/util/Map<Lcom/google/zxing/DecodeHintType;Ljava/lang/Object;>;"
    invoke-direct {p0}, Ljava/lang/Thread;-><init>()V

    .line 62
    iput-object p1, p0, Lcom/king/zxing/DecodeThread;->context:Landroid/content/Context;

    .line 63
    iput-object p2, p0, Lcom/king/zxing/DecodeThread;->cameraManager:Lcom/king/zxing/camera/CameraManager;

    .line 64
    iput-object p3, p0, Lcom/king/zxing/DecodeThread;->captureHandler:Lcom/king/zxing/CaptureHandler;

    .line 65
    new-instance v0, Ljava/util/concurrent/CountDownLatch;

    const/4 v1, 0x1

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

    iput-object v0, p0, Lcom/king/zxing/DecodeThread;->handlerInitLatch:Ljava/util/concurrent/CountDownLatch;

    .line 67
    new-instance v0, Ljava/util/EnumMap;

    const-class v2, Lcom/google/zxing/DecodeHintType;

    invoke-direct {v0, v2}, Ljava/util/EnumMap;-><init>(Ljava/lang/Class;)V

    iput-object v0, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

    .line 68
    if-eqz p5, :cond_1f

    .line 69
    invoke-interface {v0, p5}, Ljava/util/Map;->putAll(Ljava/util/Map;)V

    .line 73
    :cond_1f
    if-eqz p4, :cond_27

    invoke-interface {p4}, Ljava/util/Collection;->isEmpty()Z

    move-result v0

    if-eqz v0, :cond_80

    .line 74
    :cond_27
    invoke-static {p1}, Landroid/preference/PreferenceManager;->getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;

    move-result-object v0

    .line 75
    .local v0, "prefs":Landroid/content/SharedPreferences;
    const-class v2, Lcom/google/zxing/BarcodeFormat;

    invoke-static {v2}, Ljava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;

    move-result-object p4

    .line 76
    const-string v2, "preferences_decode_1D_product"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v2

    if-eqz v2, :cond_3e

    .line 77
    sget-object v2, Lcom/king/zxing/DecodeFormatManager;->PRODUCT_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v2}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 79
    :cond_3e
    const-string v2, "preferences_decode_1D_industrial"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v2

    if-eqz v2, :cond_4b

    .line 80
    sget-object v2, Lcom/king/zxing/DecodeFormatManager;->INDUSTRIAL_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v2}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 82
    :cond_4b
    const-string v2, "preferences_decode_QR"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v2

    if-eqz v2, :cond_58

    .line 83
    sget-object v2, Lcom/king/zxing/DecodeFormatManager;->QR_CODE_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v2}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 85
    :cond_58
    const-string v2, "preferences_decode_Data_Matrix"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v1

    if-eqz v1, :cond_65

    .line 86
    sget-object v1, Lcom/king/zxing/DecodeFormatManager;->DATA_MATRIX_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v1}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 88
    :cond_65
    const/4 v1, 0x0

    const-string v2, "preferences_decode_Aztec"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v2

    if-eqz v2, :cond_73

    .line 89
    sget-object v2, Lcom/king/zxing/DecodeFormatManager;->AZTEC_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v2}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 91
    :cond_73
    const-string v2, "preferences_decode_PDF417"

    invoke-interface {v0, v2, v1}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z

    move-result v1

    if-eqz v1, :cond_80

    .line 92
    sget-object v1, Lcom/king/zxing/DecodeFormatManager;->PDF417_FORMATS:Ljava/util/Set;

    invoke-interface {p4, v1}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z

    .line 95
    .end local v0    # "prefs":Landroid/content/SharedPreferences;
    :cond_80
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

    sget-object v1, Lcom/google/zxing/DecodeHintType;->POSSIBLE_FORMATS:Lcom/google/zxing/DecodeHintType;

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

    .line 97
    if-eqz p6, :cond_90

    .line 98
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

    sget-object v1, Lcom/google/zxing/DecodeHintType;->CHARACTER_SET:Lcom/google/zxing/DecodeHintType;

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

    .line 100
    :cond_90
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

    sget-object v1, Lcom/google/zxing/DecodeHintType;->NEED_RESULT_POINT_CALLBACK:Lcom/google/zxing/DecodeHintType;

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

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

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

    const-string v1, "Hints: "

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

    iget-object v1, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

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

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

    move-result-object v0

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

    .line 102
    return-void
.end method


# virtual methods
.method getHandler()Landroid/os/Handler;
    .registers 2

    .line 106
    :try_start_0
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->handlerInitLatch:Ljava/util/concurrent/CountDownLatch;

    invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->await()V
    :try_end_5
    .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_5} :catch_6

    .line 109
    goto :goto_7

    .line 107
    :catch_6
    move-exception v0

    .line 110
    :goto_7
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->handler:Landroid/os/Handler;

    return-object v0
.end method

.method public run()V
    .registers 6

    .line 115
    invoke-static {}, Landroid/os/Looper;->prepare()V

    .line 116
    new-instance v0, Lcom/king/zxing/DecodeHandler;

    iget-object v1, p0, Lcom/king/zxing/DecodeThread;->context:Landroid/content/Context;

    iget-object v2, p0, Lcom/king/zxing/DecodeThread;->cameraManager:Lcom/king/zxing/camera/CameraManager;

    iget-object v3, p0, Lcom/king/zxing/DecodeThread;->captureHandler:Lcom/king/zxing/CaptureHandler;

    iget-object v4, p0, Lcom/king/zxing/DecodeThread;->hints:Ljava/util/Map;

    invoke-direct {v0, v1, v2, v3, v4}, Lcom/king/zxing/DecodeHandler;-><init>(Landroid/content/Context;Lcom/king/zxing/camera/CameraManager;Lcom/king/zxing/CaptureHandler;Ljava/util/Map;)V

    iput-object v0, p0, Lcom/king/zxing/DecodeThread;->handler:Landroid/os/Handler;

    .line 117
    iget-object v0, p0, Lcom/king/zxing/DecodeThread;->handlerInitLatch:Ljava/util/concurrent/CountDownLatch;

    invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->countDown()V

    .line 118
    invoke-static {}, Landroid/os/Looper;->loop()V

    .line 119
    return-void
.end method