h.smali
.class public Lk7/h;
.super Ljava/lang/Object;
.source "WorkerHandler.java"
# static fields
.field public static final e:Lw6/c;
.field public static final f:Ljava/util/concurrent/ConcurrentHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentHashMap<",
"Ljava/lang/String;",
"Ljava/lang/ref/WeakReference<",
"Lk7/h;",
">;>;"
}
.end annotation
.end field
.field public static g:Lk7/h;
# instance fields
.field public a:Ljava/lang/String;
.field public b:Landroid/os/HandlerThread;
.field public c:Landroid/os/Handler;
.field public d:Ljava/util/concurrent/Executor;
# direct methods
.method public static constructor <clinit>()V
.registers 2
const-class v0, Lk7/h;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lw6/c;->a(Ljava/lang/String;)Lw6/c;
move-result-object v0
sput-object v0, Lk7/h;->e:Lw6/c;
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
const/4 v1, 0x4
invoke-direct {v0, v1}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(I)V
sput-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 4
.param p1 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lk7/h;->a:Ljava/lang/String;
new-instance v0, Lk7/h$a;
invoke-direct {v0, p0, p1}, Lk7/h$a;-><init>(Lk7/h;Ljava/lang/String;)V
iput-object v0, p0, Lk7/h;->b:Landroid/os/HandlerThread;
const/4 p1, 0x1
invoke-virtual {v0, p1}, Landroid/os/HandlerThread;->setDaemon(Z)V
iget-object v0, p0, Lk7/h;->b:Landroid/os/HandlerThread;
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
new-instance v0, Landroid/os/Handler;
iget-object v1, p0, Lk7/h;->b:Landroid/os/HandlerThread;
invoke-virtual {v1}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Lk7/h;->c:Landroid/os/Handler;
new-instance v0, Lk7/h$b;
invoke-direct {v0, p0}, Lk7/h$b;-><init>(Lk7/h;)V
iput-object v0, p0, Lk7/h;->d:Ljava/util/concurrent/Executor;
new-instance v0, Ljava/util/concurrent/CountDownLatch;
invoke-direct {v0, p1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
new-instance p1, Lk7/h$c;
invoke-direct {p1, p0, v0}, Lk7/h$c;-><init>(Lk7/h;Ljava/util/concurrent/CountDownLatch;)V
invoke-virtual {p0, p1}, Lk7/h;->a(Ljava/lang/Runnable;)V
:try_start_36
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->await()V
:try_end_39
.catch Ljava/lang/InterruptedException; {:try_start_36 .. :try_end_39} :catch_39
:catch_39
return-void
.end method
.method public static a(Ljava/lang/String;)Lk7/h;
.registers 9
.param p0 # Ljava/lang/String;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p0}, Ljava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x2
const/4 v2, 0x1
const-string v3, "get:"
const/4 v4, 0x0
const/4 v5, 0x3
if-eqz v0, :cond_73
sget-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p0}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/ref/WeakReference;
invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lk7/h;
if-eqz v0, :cond_5f
invoke-virtual {v0}, Lk7/h;->d()Landroid/os/HandlerThread;
move-result-object v6
invoke-virtual {v6}, Landroid/os/HandlerThread;->isAlive()Z
move-result v6
if-eqz v6, :cond_42
invoke-virtual {v0}, Lk7/h;->d()Landroid/os/HandlerThread;
move-result-object v6
invoke-virtual {v6}, Landroid/os/HandlerThread;->isInterrupted()Z
move-result v6
if-nez v6, :cond_42
sget-object v6, Lk7/h;->e:Lw6/c;
new-array v5, v5, [Ljava/lang/Object;
aput-object v3, v5, v4
const-string v3, "Reusing cached worker handler."
aput-object v3, v5, v2
aput-object p0, v5, v1
invoke-virtual {v6, v5}, Lw6/c;->d([Ljava/lang/Object;)Ljava/lang/String;
return-object v0
:cond_42
invoke-virtual {v0}, Lk7/h;->a()V
sget-object v0, Lk7/h;->e:Lw6/c;
const/4 v6, 0x4
new-array v6, v6, [Ljava/lang/Object;
aput-object v3, v6, v4
const-string v7, "Thread reference found, but not alive or interrupted."
aput-object v7, v6, v2
const-string v7, "Removing."
aput-object v7, v6, v1
aput-object p0, v6, v5
invoke-virtual {v0, v6}, Lw6/c;->d([Ljava/lang/Object;)Ljava/lang/String;
sget-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p0}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_73
:cond_5f
sget-object v0, Lk7/h;->e:Lw6/c;
new-array v6, v5, [Ljava/lang/Object;
aput-object v3, v6, v4
const-string v7, "Thread reference died. Removing."
aput-object v7, v6, v2
aput-object p0, v6, v1
invoke-virtual {v0, v6}, Lw6/c;->d([Ljava/lang/Object;)Ljava/lang/String;
sget-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p0}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
:cond_73
:goto_73
sget-object v0, Lk7/h;->e:Lw6/c;
new-array v5, v5, [Ljava/lang/Object;
aput-object v3, v5, v4
const-string v3, "Creating new handler."
aput-object v3, v5, v2
aput-object p0, v5, v1
invoke-virtual {v0, v5}, Lw6/c;->b([Ljava/lang/Object;)Ljava/lang/String;
new-instance v0, Lk7/h;
invoke-direct {v0, p0}, Lk7/h;-><init>(Ljava/lang/String;)V
sget-object v1, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
new-instance v2, Ljava/lang/ref/WeakReference;
invoke-direct {v2, v0}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
invoke-virtual {v1, p0, v2}, Ljava/util/concurrent/ConcurrentHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-object v0
.end method
.method public static d(Ljava/lang/Runnable;)V
.registers 2
.param p0 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
invoke-static {}, Lk7/h;->e()Lk7/h;
move-result-object v0
invoke-virtual {v0, p0}, Lk7/h;->a(Ljava/lang/Runnable;)V
return-void
.end method
.method public static e()Lk7/h;
.registers 1
.annotation build Landroidx/annotation/NonNull;
.end annotation
const-string v0, "FallbackCameraThread"
invoke-static {v0}, Lk7/h;->a(Ljava/lang/String;)Lk7/h;
move-result-object v0
sput-object v0, Lk7/h;->g:Lk7/h;
return-object v0
.end method
# virtual methods
.method public a()V
.registers 3
invoke-virtual {p0}, Lk7/h;->d()Landroid/os/HandlerThread;
move-result-object v0
invoke-virtual {v0}, Landroid/os/HandlerThread;->isAlive()Z
move-result v1
if-eqz v1, :cond_10
invoke-virtual {v0}, Landroid/os/HandlerThread;->interrupt()V
invoke-virtual {v0}, Landroid/os/HandlerThread;->quit()Z
:cond_10
sget-object v0, Lk7/h;->f:Ljava/util/concurrent/ConcurrentHashMap;
iget-object v1, p0, Lk7/h;->a:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public a(JLjava/lang/Runnable;)V
.registers 5
.param p1 # J
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Lk7/h;->c:Landroid/os/Handler;
invoke-virtual {v0, p3, p1, p2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method public a(Ljava/lang/Runnable;)V
.registers 3
.param p1 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Lk7/h;->c:Landroid/os/Handler;
invoke-virtual {v0, p1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public b()Ljava/util/concurrent/Executor;
.registers 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Lk7/h;->d:Ljava/util/concurrent/Executor;
return-object v0
.end method
.method public b(Ljava/lang/Runnable;)V
.registers 3
.param p1 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
iget-object v0, p0, Lk7/h;->c:Landroid/os/Handler;
invoke-virtual {v0, p1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method
.method public c()Landroid/os/Handler;
.registers 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Lk7/h;->c:Landroid/os/Handler;
return-object v0
.end method
.method public c(Ljava/lang/Runnable;)V
.registers 4
.param p1 # Ljava/lang/Runnable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {p0}, Lk7/h;->d()Landroid/os/HandlerThread;
move-result-object v1
if-ne v0, v1, :cond_e
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
goto :goto_11
:cond_e
invoke-virtual {p0, p1}, Lk7/h;->a(Ljava/lang/Runnable;)V
:goto_11
return-void
.end method
.method public d()Landroid/os/HandlerThread;
.registers 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Lk7/h;->b:Landroid/os/HandlerThread;
return-object v0
.end method