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