SingleThreadTaskRunnerImpl.smali
.class public Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;
.super Laegon/chrome/base/task/TaskRunnerImpl;
# interfaces
.implements Laegon/chrome/base/task/SingleThreadTaskRunner;
# annotations
.annotation runtime Laegon/chrome/base/annotations/JNINamespace;
value = "base"
.end annotation
# static fields
.field static final synthetic $assertionsDisabled:Z
# instance fields
.field private final mHandler:Landroid/os/Handler;
.annotation build Landroid/support/annotation/Nullable;
.end annotation
.end field
.field private final mPostTaskAtFrontOfQueue:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
const-class v0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_c
const/4 v0, 0x1
:goto_9
sput-boolean v0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->$assertionsDisabled:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>(Landroid/os/Handler;Laegon/chrome/base/task/TaskTraits;)V
.registers 4
const/4 v0, 0x0
invoke-direct {p0, p1, p2, v0}, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;-><init>(Landroid/os/Handler;Laegon/chrome/base/task/TaskTraits;Z)V
return-void
.end method
.method public constructor <init>(Landroid/os/Handler;Laegon/chrome/base/task/TaskTraits;Z)V
.registers 6
const-string v0, "SingleThreadTaskRunnerImpl"
const/4 v1, 0x2
invoke-direct {p0, p2, v0, v1}, Laegon/chrome/base/task/TaskRunnerImpl;-><init>(Laegon/chrome/base/task/TaskTraits;Ljava/lang/String;I)V
iput-object p1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
iput-boolean p3, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mPostTaskAtFrontOfQueue:Z
return-void
.end method
.method private postAtFrontOfQueue()V
.registers 3
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_18
iget-object v0, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mRunPreNativeTaskClosure:Ljava/lang/Runnable;
invoke-static {v0, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message;
move-result-object v0
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/os/Message;->setAsynchronous(Z)V
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
invoke-virtual {v1, v0}, Landroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z
:goto_17
return-void
:cond_18
iget-object v0, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mRunPreNativeTaskClosure:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->postAtFrontOfQueue(Ljava/lang/Runnable;)Z
goto :goto_17
.end method
# virtual methods
.method public belongsToCurrentThread()Z
.registers 7
const/4 v0, 0x0
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mLock:Ljava/lang/Object;
monitor-enter v1
:try_start_4
iget-wide v2, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mNativeTaskRunnerAndroid:J
const-wide/16 v4, 0x0
cmp-long v2, v2, v4
if-eqz v2, :cond_14
iget-wide v2, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mNativeTaskRunnerAndroid:J
invoke-virtual {p0, v2, v3}, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->nativeBelongsToCurrentThread(J)Z
move-result v0
monitor-exit v1
:cond_13
:goto_13
return v0
:cond_14
monitor-exit v1
:try_end_15
.catchall {:try_start_4 .. :try_end_15} :catchall_2b
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
if-eqz v1, :cond_2e
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
invoke-virtual {v1}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v1}, Landroid/os/Looper;->getThread()Ljava/lang/Thread;
move-result-object v1
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v2
if-ne v1, v2, :cond_13
const/4 v0, 0x1
goto :goto_13
:catchall_2b
move-exception v0
:try_start_2c
monitor-exit v1
:try_end_2d
.catchall {:try_start_2c .. :try_end_2d} :catchall_2b
throw v0
:cond_2e
sget-boolean v1, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->$assertionsDisabled:Z
if-nez v1, :cond_13
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.end method
.method protected schedulePreNativeTask()V
.registers 3
iget-object v0, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
if-nez v0, :cond_5
:goto_4
return-void
:cond_5
iget-boolean v0, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mPostTaskAtFrontOfQueue:Z
if-eqz v0, :cond_d
invoke-direct {p0}, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->postAtFrontOfQueue()V
goto :goto_4
:cond_d
iget-object v0, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Laegon/chrome/base/task/SingleThreadTaskRunnerImpl;->mRunPreNativeTaskClosure:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
goto :goto_4
.end method