AsyncConsumer.smali
.class public Lcom/cleanmaster/junk/util/AsyncConsumer;
.super Ljava/lang/Object;
.source "AsyncConsumer.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;,
Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<E:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;"
}
.end annotation
# instance fields
.field protected final mAsyncConsumerName:Ljava/lang/String;
.field protected final mCallback:Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback",
"<TE;>;"
}
.end annotation
.end field
.field protected mConsumerThread:Ljava/lang/Thread;
.field private mIsSwitchEffect:Z
.field protected final mProductQueue:Ljava/util/Queue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Queue",
"<TE;>;"
}
.end annotation
.end field
.field protected final mWaitTime:I
# direct methods
.method protected constructor <init>(Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/cleanmaster/junk/util/AsyncConsumer$Builder",
"<TE;>;)V"
}
.end annotation
.prologue
.line 135
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 142
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
.line 143
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
.line 147
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
.line 136
# getter for: Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->mWaitTime:I
invoke-static {p1}, Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->access$000(Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;)I
move-result v0
iput v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mWaitTime:I
.line 137
# getter for: Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->mCallback:Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback;
invoke-static {p1}, Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->access$100(Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;)Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mCallback:Lcom/cleanmaster/junk/util/AsyncConsumer$ConsumerCallback;
.line 138
# getter for: Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->mAsyncConsumerName:Ljava/lang/String;
invoke-static {p1}, Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;->access$200(Lcom/cleanmaster/junk/util/AsyncConsumer$Builder;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mAsyncConsumerName:Ljava/lang/String;
.line 139
return-void
.end method
# virtual methods
.method public addProduct(Ljava/lang/Object;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(TE;)V"
}
.end annotation
.prologue
.line 51
if-nez p1, :cond_3
.line 65
:goto_2
return-void
.line 55
:cond_3
iget-object v1, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
monitor-enter v1
.line 56
:try_start_6
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
invoke-interface {v0, p1}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z
.line 58
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
if-nez v0, :cond_16
iget-boolean v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
if-nez v0, :cond_16
.line 59
invoke-virtual {p0}, Lcom/cleanmaster/junk/util/AsyncConsumer;->createThread()V
.line 61
:cond_16
iget-boolean v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
if-nez v0, :cond_1f
.line 62
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
invoke-virtual {v0}, Ljava/lang/Object;->notify()V
.line 64
:cond_1f
monitor-exit v1
goto :goto_2
:catchall_21
move-exception v0
monitor-exit v1
:try_end_23
.catchall {:try_start_6 .. :try_end_23} :catchall_21
throw v0
.end method
.method protected createThread()V
.registers 3
.prologue
.line 99
new-instance v0, Lcom/cleanmaster/junk/util/AsyncConsumer$1;
invoke-direct {v0, p0}, Lcom/cleanmaster/junk/util/AsyncConsumer$1;-><init>(Lcom/cleanmaster/junk/util/AsyncConsumer;)V
iput-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
.line 129
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
iget-object v1, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mAsyncConsumerName:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/Thread;->setName(Ljava/lang/String;)V
.line 131
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
invoke-virtual {v0}, Ljava/lang/Thread;->start()V
.line 132
return-void
.end method
.method public enableConsume()V
.registers 3
.prologue
.line 72
invoke-virtual {p0}, Lcom/cleanmaster/junk/util/AsyncConsumer;->peekProductSize()I
move-result v0
if-gtz v0, :cond_7
.line 84
:cond_6
:goto_6
return-void
.line 75
:cond_7
iget-boolean v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
if-eqz v0, :cond_12
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mConsumerThread:Ljava/lang/Thread;
if-nez v0, :cond_12
.line 76
invoke-virtual {p0}, Lcom/cleanmaster/junk/util/AsyncConsumer;->createThread()V
.line 79
:cond_12
iget-boolean v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
if-eqz v0, :cond_6
.line 80
iget-object v1, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
monitor-enter v1
.line 81
:try_start_19
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
invoke-virtual {v0}, Ljava/lang/Object;->notify()V
.line 82
monitor-exit v1
goto :goto_6
:catchall_20
move-exception v0
monitor-exit v1
:try_end_22
.catchall {:try_start_19 .. :try_end_22} :catchall_20
throw v0
.end method
.method public peekProductSize()I
.registers 3
.prologue
.line 87
.line 88
iget-object v1, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
monitor-enter v1
.line 89
:try_start_3
iget-object v0, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mProductQueue:Ljava/util/Queue;
invoke-interface {v0}, Ljava/util/Queue;->size()I
move-result v0
.line 90
monitor-exit v1
.line 91
return v0
.line 90
:catchall_b
move-exception v0
monitor-exit v1
:try_end_d
.catchall {:try_start_3 .. :try_end_d} :catchall_b
throw v0
.end method
.method public setSwitchEffect(Z)V
.registers 2
.prologue
.line 95
iput-boolean p1, p0, Lcom/cleanmaster/junk/util/AsyncConsumer;->mIsSwitchEffect:Z
.line 96
return-void
.end method