h.smali
.class public Lcom/cleanmaster/scanengin/h;
.super Lcom/cleanmaster/hpsharelib/scanengin/TaskBus;
.source "ThreadPoolTaskBus.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/scanengin/h$a;,
Lcom/cleanmaster/scanengin/h$c;,
Lcom/cleanmaster/scanengin/h$b;,
Lcom/cleanmaster/scanengin/h$d;
}
.end annotation
# instance fields
.field private a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
.field private b:I
.field private c:I
.field private d:Ljava/util/concurrent/CountDownLatch;
.field private e:Ljava/util/concurrent/ExecutorService;
# direct methods
.method public constructor <init>()V
.registers 3
.prologue
.line 30
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus;-><init>()V
.line 31
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I
move-result v0
.line 32
const/4 v1, 0x1
if-ne v0, v1, :cond_18
const/4 v0, 0x4
:goto_f
iput v0, p0, Lcom/cleanmaster/scanengin/h;->c:I
.line 33
const/4 v0, 0x0
iput v0, p0, Lcom/cleanmaster/scanengin/h;->b:I
.line 34
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/scanengin/h;->a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
.line 35
return-void
.line 32
:cond_18
mul-int/lit8 v0, v0, 0x2
goto :goto_f
.end method
.method public constructor <init>(I)V
.registers 3
.prologue
.line 38
invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus;-><init>()V
.line 39
iput p1, p0, Lcom/cleanmaster/scanengin/h;->c:I
.line 40
const/4 v0, 0x0
iput v0, p0, Lcom/cleanmaster/scanengin/h;->b:I
.line 41
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/scanengin/h;->a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
.line 42
return-void
.end method
.method static synthetic a(Lcom/cleanmaster/scanengin/h;)Ljava/util/concurrent/CountDownLatch;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
return-object v0
.end method
.method static synthetic b(Lcom/cleanmaster/scanengin/h;)Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->mTaskCtrl:Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
return-object v0
.end method
.method static synthetic c(Lcom/cleanmaster/scanengin/h;)Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->mTaskCtrl:Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
return-object v0
.end method
.method static synthetic d(Lcom/cleanmaster/scanengin/h;)Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->mTaskCtrl:Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
return-object v0
.end method
.method static synthetic e(Lcom/cleanmaster/scanengin/h;)Ljava/util/concurrent/ExecutorService;
.registers 2
.prologue
.line 23
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->e:Ljava/util/concurrent/ExecutorService;
return-object v0
.end method
# virtual methods
.method protected getThreadName()Ljava/lang/String;
.registers 2
.prologue
.line 46
const-string/jumbo v0, "tpool-taskbus-thread"
return-object v0
.end method
.method protected scanTaskList(Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$IScanTaskListParams;)V
.registers 13
.prologue
const-wide/16 v8, 0x0
const/4 v3, 0x0
.line 139
if-nez p1, :cond_6
.line 207
:cond_5
:goto_5
return-void
.line 143
:cond_6
invoke-interface {p1}, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$IScanTaskListParams;->getTaskQueue()Ljava/util/Queue;
move-result-object v4
.line 144
if-eqz v4, :cond_5
invoke-interface {v4}, Ljava/util/Queue;->isEmpty()Z
move-result v0
if-nez v0, :cond_5
.line 148
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
if-eqz v0, :cond_73
invoke-interface {v4}, Ljava/util/Queue;->size()I
move-result v0
add-int/lit8 v0, v0, 0x1
move v1, v0
.line 150
:goto_1d
new-instance v0, Ljava/util/concurrent/CountDownLatch;
invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V
iput-object v0, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
.line 152
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
.line 153
iget v0, p0, Lcom/cleanmaster/scanengin/h;->c:I
.line 154
if-lez v0, :cond_2f
if-le v0, v1, :cond_30
:cond_2f
move v0, v1
.line 157
:cond_30
new-instance v2, Lcom/cleanmaster/scanengin/h$c;
const/4 v6, 0x0
invoke-direct {v2, v6}, Lcom/cleanmaster/scanengin/h$c;-><init>(Lcom/cleanmaster/scanengin/i;)V
invoke-static {v0, v2}, Ljava/util/concurrent/Executors;->newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/scanengin/h;->e:Ljava/util/concurrent/ExecutorService;
.line 159
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
if-eqz v0, :cond_d9
.line 160
const/4 v0, 0x1
.line 161
new-instance v2, Lcom/cleanmaster/scanengin/h$a;
iget-object v6, p0, Lcom/cleanmaster/scanengin/h;->a:Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
invoke-direct {v2, p0, v6}, Lcom/cleanmaster/scanengin/h$a;-><init>(Lcom/cleanmaster/scanengin/h;Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;)V
.line 163
invoke-virtual {v5, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 165
iget v6, p0, Lcom/cleanmaster/scanengin/h;->b:I
if-lez v6, :cond_54
.line 166
iget v6, p0, Lcom/cleanmaster/scanengin/h;->b:I
invoke-virtual {v2, v6}, Lcom/cleanmaster/scanengin/h$a;->a(I)V
:cond_54
move v2, v0
.line 169
:goto_55
invoke-virtual {p0}, Lcom/cleanmaster/scanengin/h;->getTaskBusCallback()Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$ITaskBusCallback;
move-result-object v6
.line 170
invoke-interface {v4}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
move-object v10, v0
move v0, v2
move-object v2, v10
:goto_62
if-eqz v2, :cond_88
.line 172
iget-object v7, v2, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;->mTask:Lcom/cm/plugincluster/softmgr/interfaces/junk/IScanTask;
if-nez v7, :cond_79
move v2, v0
.line 171
:goto_69
invoke-interface {v4}, Ljava/util/Queue;->poll()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;
move-object v10, v0
move v0, v2
move-object v2, v10
goto :goto_62
.line 149
:cond_73
invoke-interface {v4}, Ljava/util/Queue;->size()I
move-result v0
move v1, v0
goto :goto_1d
.line 175
:cond_79
iget-object v7, p0, Lcom/cleanmaster/scanengin/h;->mTaskCtrl:Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;
invoke-virtual {v7}, Lcom/cleanmaster/bitloader/task/TaskCtrlImpl;->checkStop()Z
move-result v7
if-eqz v7, :cond_92
.line 176
if-eqz v6, :cond_88
.line 177
iget-object v2, v2, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;->mTask:Lcom/cm/plugincluster/softmgr/interfaces/junk/IScanTask;
invoke-interface {v6, v2}, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$ITaskBusCallback;->notifySkipScan(Lcom/cm/plugincluster/softmgr/interfaces/junk/IScanTask;)V
.line 189
:cond_88
:goto_88
if-ge v0, v1, :cond_a5
.line 190
iget-object v2, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v2}, Ljava/util/concurrent/CountDownLatch;->countDown()V
.line 189
add-int/lit8 v0, v0, 0x1
goto :goto_88
.line 182
:cond_92
new-instance v7, Lcom/cleanmaster/scanengin/h$a;
invoke-direct {v7, p0, v2}, Lcom/cleanmaster/scanengin/h$a;-><init>(Lcom/cleanmaster/scanengin/h;Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;)V
.line 183
add-int/lit8 v0, v0, 0x1
.line 184
invoke-virtual {v5, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 185
iget-boolean v2, v2, Lcom/cleanmaster/hpsharelib/scanengin/TaskBus$TaskInfo;->mEssentialTask:Z
if-eqz v2, :cond_a3
.line 186
invoke-virtual {v7, v3}, Lcom/cleanmaster/scanengin/h$a;->a(I)V
:cond_a3
move v2, v0
goto :goto_69
.line 192
:cond_a5
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->getCount()J
move-result-wide v0
cmp-long v0, v0, v8
if-eqz v0, :cond_5
.line 195
:cond_af
:try_start_af
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
const-wide/16 v2, 0xc8
sget-object v1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v0, v2, v3, v1}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
:try_end_b8
.catch Ljava/lang/Exception; {:try_start_af .. :try_end_b8} :catch_d6
.line 199
iget-object v0, p0, Lcom/cleanmaster/scanengin/h;->d:Ljava/util/concurrent/CountDownLatch;
invoke-virtual {v0}, Ljava/util/concurrent/CountDownLatch;->getCount()J
move-result-wide v0
cmp-long v0, v0, v8
if-eqz v0, :cond_5
.line 202
invoke-virtual {v5}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_c6
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_af
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/scanengin/h$a;
.line 203
invoke-virtual {v0}, Lcom/cleanmaster/scanengin/h$a;->a()Z
goto :goto_c6
.line 196
:catch_d6
move-exception v0
goto/16 :goto_5
:cond_d9
move v2, v3
goto/16 :goto_55
.end method