DefaultTaskExecutor.smali
.class Laegon/chrome/base/task/DefaultTaskExecutor;
.super Ljava/lang/Object;
# interfaces
.implements Laegon/chrome/base/task/TaskExecutor;
# instance fields
.field private final mTraitsToRunnerMap:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Laegon/chrome/base/task/TaskTraits;",
"Laegon/chrome/base/task/TaskRunner;",
">;"
}
.end annotation
.end field
# direct methods
.method constructor <init>()V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
iput-object v0, p0, Laegon/chrome/base/task/DefaultTaskExecutor;->mTraitsToRunnerMap:Ljava/util/Map;
return-void
.end method
.method private declared-synchronized createChoreographerTaskRunner()Laegon/chrome/base/task/ChoreographerTaskRunner;
.registers 2
monitor-enter p0
:try_start_1
invoke-static {}, Laegon/chrome/base/task/DefaultTaskExecutor$$Lambda$1;->lambdaFactory$()Ljava/util/concurrent/Callable;
move-result-object v0
invoke-static {v0}, Laegon/chrome/base/ThreadUtils;->runOnUiThreadBlockingNoException(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/task/ChoreographerTaskRunner;
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_d
monitor-exit p0
return-object v0
:catchall_d
move-exception v0
monitor-exit p0
throw v0
.end method
.method static synthetic lambda$createChoreographerTaskRunner$0()Laegon/chrome/base/task/ChoreographerTaskRunner;
.registers 2
new-instance v0, Laegon/chrome/base/task/ChoreographerTaskRunner;
invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer;
move-result-object v1
invoke-direct {v0, v1}, Laegon/chrome/base/task/ChoreographerTaskRunner;-><init>(Landroid/view/Choreographer;)V
return-object v0
.end method
# virtual methods
.method public canRunTaskImmediately(Laegon/chrome/base/task/TaskTraits;)Z
.registers 3
const/4 v0, 0x0
return v0
.end method
.method public createSequencedTaskRunner(Laegon/chrome/base/task/TaskTraits;)Laegon/chrome/base/task/SequencedTaskRunner;
.registers 3
iget-boolean v0, p1, Laegon/chrome/base/task/TaskTraits;->mIsChoreographerFrame:Z
if-eqz v0, :cond_9
invoke-direct {p0}, Laegon/chrome/base/task/DefaultTaskExecutor;->createChoreographerTaskRunner()Laegon/chrome/base/task/ChoreographerTaskRunner;
move-result-object v0
:goto_8
return-object v0
:cond_9
new-instance v0, Laegon/chrome/base/task/SequencedTaskRunnerImpl;
invoke-direct {v0, p1}, Laegon/chrome/base/task/SequencedTaskRunnerImpl;-><init>(Laegon/chrome/base/task/TaskTraits;)V
goto :goto_8
.end method
.method public createSingleThreadTaskRunner(Laegon/chrome/base/task/TaskTraits;)Laegon/chrome/base/task/SingleThreadTaskRunner;
.registers 4
iget-boolean v0, p1, Laegon/chrome/base/task/TaskTraits;->mIsChoreographerFrame:Z
if-eqz v0, :cond_9
invoke-direct {p0}, Laegon/chrome/base/task/DefaultTaskExecutor;->createChoreographerTaskRunner()Laegon/chrome/base/task/ChoreographerTaskRunner;
move-result-object v0
:goto_8
return-object v0
:cond_9
new-instance v0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;
const/4 v1, 0x0
invoke-direct {v0, v1, p1}, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;-><init>(Landroid/os/Handler;Laegon/chrome/base/task/TaskTraits;)V
goto :goto_8
.end method
.method public createTaskRunner(Laegon/chrome/base/task/TaskTraits;)Laegon/chrome/base/task/TaskRunner;
.registers 3
iget-boolean v0, p1, Laegon/chrome/base/task/TaskTraits;->mIsChoreographerFrame:Z
if-eqz v0, :cond_9
invoke-direct {p0}, Laegon/chrome/base/task/DefaultTaskExecutor;->createChoreographerTaskRunner()Laegon/chrome/base/task/ChoreographerTaskRunner;
move-result-object v0
:goto_8
return-object v0
:cond_9
new-instance v0, Laegon/chrome/base/task/TaskRunnerImpl;
invoke-direct {v0, p1}, Laegon/chrome/base/task/TaskRunnerImpl;-><init>(Laegon/chrome/base/task/TaskTraits;)V
goto :goto_8
.end method
.method public declared-synchronized postDelayedTask(Laegon/chrome/base/task/TaskTraits;Ljava/lang/Runnable;J)V
.registers 8
monitor-enter p0
:try_start_1
invoke-virtual {p1}, Laegon/chrome/base/task/TaskTraits;->hasExtension()Z
move-result v0
if-eqz v0, :cond_13
invoke-virtual {p0, p1}, Laegon/chrome/base/task/DefaultTaskExecutor;->createTaskRunner(Laegon/chrome/base/task/TaskTraits;)Laegon/chrome/base/task/TaskRunner;
move-result-object v0
invoke-interface {v0, p2, p3, p4}, Laegon/chrome/base/task/TaskRunner;->postDelayedTask(Ljava/lang/Runnable;J)V
invoke-interface {v0}, Laegon/chrome/base/task/TaskRunner;->destroy()V
:try_end_11
.catchall {:try_start_1 .. :try_end_11} :catchall_2d
:goto_11
monitor-exit p0
return-void
:cond_13
:try_start_13
iget-object v0, p0, Laegon/chrome/base/task/DefaultTaskExecutor;->mTraitsToRunnerMap:Ljava/util/Map;
invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Laegon/chrome/base/task/TaskRunner;
if-nez v0, :cond_29
invoke-virtual {p0, p1}, Laegon/chrome/base/task/DefaultTaskExecutor;->createTaskRunner(Laegon/chrome/base/task/TaskTraits;)Laegon/chrome/base/task/TaskRunner;
move-result-object v0
invoke-interface {v0}, Laegon/chrome/base/task/TaskRunner;->disableLifetimeCheck()V
iget-object v1, p0, Laegon/chrome/base/task/DefaultTaskExecutor;->mTraitsToRunnerMap:Ljava/util/Map;
invoke-interface {v1, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_29
invoke-interface {v0, p2, p3, p4}, Laegon/chrome/base/task/TaskRunner;->postDelayedTask(Ljava/lang/Runnable;J)V
:try_end_2c
.catchall {:try_start_13 .. :try_end_2c} :catchall_2d
goto :goto_11
:catchall_2d
move-exception v0
monitor-exit p0
throw v0
.end method