ConcurrencyTaskBus.smali
.class public Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;
.super Lcom/cleanmaster/junk/scan/TaskBus;
.source "ConcurrencyTaskBus.java"
# static fields
.field private static final TAG:Ljava/lang/String; = "CTB"
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 15
invoke-direct {p0}, Lcom/cleanmaster/junk/scan/TaskBus;-><init>()V
return-void
.end method
.method private asyncRunEssentialTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;J)J
.registers 16
.prologue
const-wide/16 v0, 0x0
.line 71
new-instance v6, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-direct {v6}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;-><init>()V
.line 72
iget-object v7, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
.line 73
new-instance v2, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1;
invoke-direct {v2, p0, v7, v6}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1;-><init>(Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;Lcom/cleanmaster/junk/scan/IScanTask;Lcom/cleanmaster/junk/scan/TaskCtrlImpl;)V
.line 84
iget-object v3, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
new-instance v4, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$2;
invoke-direct {v4, p0, v6}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$2;-><init>(Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;Lcom/cleanmaster/junk/scan/TaskCtrlImpl;)V
invoke-virtual {v3, v4}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->addObserver(Lcom/cleanmaster/junk/scan/IScanTaskControllerObserver;)I
move-result v8
.line 114
invoke-interface {v7}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V
.line 115
invoke-virtual {v2}, Ljava/lang/Thread;->start()V
.line 118
:try_start_23
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
:try_end_26
.catch Ljava/lang/InterruptedException; {:try_start_23 .. :try_end_26} :catch_70
.catchall {:try_start_23 .. :try_end_26} :catchall_b7
move-result-wide v4
.line 119
:try_start_27
iget v3, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTaskTime:I
int-to-long v10, v3
add-long/2addr v10, p2
invoke-virtual {v2, v10, v11}, Ljava/lang/Thread;->join(J)V
.line 120
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
:try_end_31
.catch Ljava/lang/InterruptedException; {:try_start_27 .. :try_end_31} :catch_f8
.catchall {:try_start_27 .. :try_end_31} :catchall_f6
move-result-wide v2
sub-long/2addr v2, v4
.line 125
iget v4, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTaskTime:I
int-to-long v4, v4
add-long/2addr v4, p2
sub-long v2, v4, v2
.line 127
cmp-long v4, v2, v0
if-gtz v4, :cond_fd
.line 129
invoke-virtual {v6}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->notifyTimeOut()V
.line 131
const-string v2, "CTB"
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "("
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 132
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Thread;->getId()J
move-result-wide v4
.line 131
invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, ")(A)timeout: "
.line 132
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
.line 133
invoke-interface {v7}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 131
invoke-static {v2, v3}, Lcom/cleanmaster/junk/util/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V
.line 136
:goto_6a
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-virtual {v2, v8}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->removeObserver(I)V
.line 139
:goto_6f
return-wide v0
.line 121
:catch_70
move-exception v2
move-wide v4, v0
.line 122
:goto_72
:try_start_72
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v10
sub-long v4, v10, v4
.line 123
invoke-virtual {v2}, Ljava/lang/InterruptedException;->printStackTrace()V
:try_end_7b
.catchall {:try_start_72 .. :try_end_7b} :catchall_f6
.line 125
iget v2, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTaskTime:I
int-to-long v2, v2
add-long/2addr v2, p2
sub-long/2addr v2, v4
.line 127
cmp-long v4, v2, v0
if-gtz v4, :cond_fb
.line 129
invoke-virtual {v6}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->notifyTimeOut()V
.line 131
const-string v2, "CTB"
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "("
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 132
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Thread;->getId()J
move-result-wide v4
.line 131
invoke-virtual {v3, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, ")(A)timeout: "
.line 132
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
.line 133
invoke-interface {v7}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 131
invoke-static {v2, v3}, Lcom/cleanmaster/junk/util/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V
.line 136
:goto_b1
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-virtual {v2, v8}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->removeObserver(I)V
goto :goto_6f
.line 125
:catchall_b7
move-exception v2
move-wide v4, v0
:goto_b9
iget v3, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTaskTime:I
int-to-long v10, v3
add-long/2addr v10, p2
sub-long v4, v10, v4
.line 127
cmp-long v0, v4, v0
if-gtz v0, :cond_f0
.line 129
invoke-virtual {v6}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->notifyTimeOut()V
.line 131
const-string v0, "CTB"
new-instance v1, Ljava/lang/StringBuilder;
const-string v3, "("
invoke-direct {v1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 132
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Thread;->getId()J
move-result-wide v4
.line 131
invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v3, ")(A)timeout: "
.line 132
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 133
invoke-interface {v7}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 131
invoke-static {v0, v1}, Lcom/cleanmaster/junk/util/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V
.line 136
:cond_f0
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-virtual {v0, v8}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->removeObserver(I)V
throw v2
.line 125
:catchall_f6
move-exception v2
goto :goto_b9
.line 121
:catch_f8
move-exception v2
goto/16 :goto_72
:cond_fb
move-wide v0, v2
goto :goto_b1
:cond_fd
move-wide v0, v2
goto/16 :goto_6a
.end method
.method private concurrentRunTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;)V
.registers 5
.prologue
.line 165
new-instance v0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1TaskCtrlTimeoutImpl;
invoke-direct {v0, p0, p1}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1TaskCtrlTimeoutImpl;-><init>(Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;)V
.line 167
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
new-instance v2, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$3;
invoke-direct {v2, p0, v0}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$3;-><init>(Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1TaskCtrlTimeoutImpl;)V
invoke-virtual {v1, v2}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->addObserver(Lcom/cleanmaster/junk/scan/IScanTaskControllerObserver;)I
move-result v1
.line 195
new-instance v2, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$4;
invoke-direct {v2, p0, p1, v0, v1}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$4;-><init>(Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1TaskCtrlTimeoutImpl;I)V
.line 210
iget-object v1, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
invoke-interface {v1}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V
.line 211
invoke-virtual {v0}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus$1TaskCtrlTimeoutImpl;->recordStartTime()V
.line 212
invoke-virtual {v2}, Ljava/lang/Thread;->start()V
.line 213
return-void
.end method
.method private syncRunTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;)V
.registers 10
.prologue
.line 59
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->getId()J
move-result-wide v0
.line 60
iget-object v2, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
invoke-interface {v2}, Lcom/cleanmaster/junk/scan/IScanTask;->getTaskDesc()Ljava/lang/String;
move-result-object v2
.line 61
const-string v3, "CTB"
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "("
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, ")start: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, " Time : "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v6
invoke-virtual {v4, v6, v7}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Lcom/cleanmaster/junk/util/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V
.line 62
iget-object v3, p1, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
iget-object v4, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-interface {v3, v4}, Lcom/cleanmaster/junk/scan/IScanTask;->scan(Lcom/cleanmaster/junk/scan/IScanTaskController;)Z
.line 63
const-string v3, "CTB"
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "("
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v4, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ")end: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " Time : "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v4
invoke-virtual {v0, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Lcom/cleanmaster/junk/util/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V
.line 64
return-void
.end method
# virtual methods
.method protected getThreadName()Ljava/lang/String;
.registers 2
.prologue
.line 20
const-string v0, "con-taskbus-thread"
return-object v0
.end method
.method protected scanTaskList(Lcom/cleanmaster/junk/scan/TaskBus$IScanTaskListParams;)V
.registers 6
.prologue
.line 26
if-nez p1, :cond_3
.line 56
:cond_2
:goto_2
return-void
.line 30
:cond_3
invoke-interface {p1}, Lcom/cleanmaster/junk/scan/TaskBus$IScanTaskListParams;->getTaskQueue()Ljava/util/Queue;
move-result-object v1
.line 31
if-eqz v1, :cond_2
invoke-interface {v1}, Ljava/util/Queue;->isEmpty()Z
move-result v0
if-nez v0, :cond_2
.line 35
invoke-interface {v1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;
:goto_15
if-eqz v0, :cond_2
.line 36
iget-object v2, v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
if-nez v2, :cond_22
.line 35
:goto_1b
invoke-interface {v1}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;
goto :goto_15
.line 40
:cond_22
iget-object v2, p0, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->mTaskCtrl:Lcom/cleanmaster/junk/scan/TaskCtrlImpl;
invoke-virtual {v2}, Lcom/cleanmaster/junk/scan/TaskCtrlImpl;->checkStop()Z
move-result v2
if-eqz v2, :cond_36
.line 41
invoke-virtual {p0}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->getTaskBusCallback()Lcom/cleanmaster/junk/scan/TaskBus$ITaskBusCallback;
move-result-object v1
.line 42
if-eqz v1, :cond_2
.line 43
iget-object v0, v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTask:Lcom/cleanmaster/junk/scan/IScanTask;
invoke-interface {v1, v0}, Lcom/cleanmaster/junk/scan/TaskBus$ITaskBusCallback;->notifySkipScan(Lcom/cleanmaster/junk/scan/IScanTask;)V
goto :goto_2
.line 48
:cond_36
iget v2, v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mTaskTime:I
if-gtz v2, :cond_3e
.line 49
invoke-direct {p0, v0}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->syncRunTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;)V
goto :goto_1b
.line 50
:cond_3e
iget-boolean v2, v0, Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;->mEssentialTask:Z
if-eqz v2, :cond_4e
.line 51
invoke-interface {p1}, Lcom/cleanmaster/junk/scan/TaskBus$IScanTaskListParams;->getLeftTime()J
move-result-wide v2
invoke-direct {p0, v0, v2, v3}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->asyncRunEssentialTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;J)J
move-result-wide v2
invoke-interface {p1, v2, v3}, Lcom/cleanmaster/junk/scan/TaskBus$IScanTaskListParams;->setLeftTime(J)V
goto :goto_1b
.line 53
:cond_4e
invoke-direct {p0, v0}, Lcom/cleanmaster/junk/scan/ConcurrencyTaskBus;->concurrentRunTask(Lcom/cleanmaster/junk/scan/TaskBus$TaskInfo;)V
goto :goto_1b
.end method