DaemonSocket$b.smali
.class public Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;
.super Ljava/lang/Thread;
.source "DaemonSocket.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/cleanmaster/feedback/daemon/DaemonSocket;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "b"
.end annotation
# instance fields
.field private a:Ljava/net/ServerSocket;
.field private b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
# direct methods
.method public constructor <init>(Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 44
invoke-direct {p0}, Ljava/lang/Thread;-><init>()V
.line 45
iput-object p1, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
.line 46
new-instance v0, Ljava/net/ServerSocket;
const v1, 0x9060
invoke-direct {v0, v1}, Ljava/net/ServerSocket;-><init>(I)V
iput-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
.line 47
return-void
.end method
# virtual methods
.method protected finalize()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.prologue
.line 112
iget-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
if-eqz v0, :cond_11
iget-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
invoke-virtual {v0}, Ljava/net/ServerSocket;->isClosed()Z
move-result v0
if-nez v0, :cond_11
.line 113
iget-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
invoke-virtual {v0}, Ljava/net/ServerSocket;->close()V
.line 115
:cond_11
const/4 v0, 0x0
iput-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
.line 116
invoke-super {p0}, Ljava/lang/Object;->finalize()V
.line 117
return-void
.end method
.method public interrupt()V
.registers 3
.prologue
.line 100
iget-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
if-eqz v0, :cond_9
.line 102
:try_start_4
iget-object v0, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
invoke-virtual {v0}, Ljava/net/ServerSocket;->close()V
:try_end_9
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_9} :catch_d
.line 107
:cond_9
:goto_9
invoke-super {p0}, Ljava/lang/Thread;->interrupt()V
.line 108
return-void
.line 103
:catch_d
move-exception v0
.line 104
const-string v1, "daemon.DaemonSocket"
invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/cleanmaster/feedback/daemon/h;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_9
.end method
.method public run()V
.registers 10
.prologue
const/4 v0, 0x0
.line 51
move-object v3, v0
move-object v2, v0
.line 54
:goto_3
invoke-virtual {p0}, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->isInterrupted()Z
move-result v1
if-nez v1, :cond_12e
iget-object v1, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
invoke-virtual {v1}, Ljava/net/ServerSocket;->isClosed()Z
move-result v1
if-nez v1, :cond_12e
.line 56
:try_start_11
const-string v1, "daemon.DaemonSocket"
const-string/jumbo v4, "wait for connect..."
invoke-static {v1, v4}, Lcom/cleanmaster/util/CMLog;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 57
iget-object v1, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->a:Ljava/net/ServerSocket;
invoke-virtual {v1}, Ljava/net/ServerSocket;->accept()Ljava/net/Socket;
move-result-object v2
.line 58
new-instance v1, Ljava/io/DataInputStream;
invoke-virtual {v2}, Ljava/net/Socket;->getInputStream()Ljava/io/InputStream;
move-result-object v4
invoke-direct {v1, v4}, Ljava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V
:try_end_28
.catch Ljava/io/IOException; {:try_start_11 .. :try_end_28} :catch_141
.catch Ljava/lang/Exception; {:try_start_11 .. :try_end_28} :catch_136
.catchall {:try_start_11 .. :try_end_28} :catchall_12f
.line 59
:try_start_28
new-instance v0, Ljava/io/DataOutputStream;
invoke-virtual {v2}, Ljava/net/Socket;->getOutputStream()Ljava/io/OutputStream;
move-result-object v4
invoke-direct {v0, v4}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_31
.catch Ljava/io/IOException; {:try_start_28 .. :try_end_31} :catch_148
.catch Ljava/lang/Exception; {:try_start_28 .. :try_end_31} :catch_13c
.catchall {:try_start_28 .. :try_end_31} :catchall_134
.line 61
:try_start_31
invoke-virtual {v2}, Ljava/net/Socket;->getReceiveBufferSize()I
move-result v3
new-array v3, v3, [B
.line 62
invoke-virtual {v1, v3}, Ljava/io/DataInputStream;->read([B)I
move-result v4
.line 63
new-instance v5, Ljava/lang/String;
const/4 v6, 0x0
invoke-direct {v5, v3, v6, v4}, Ljava/lang/String;-><init>([BII)V
.line 64
const-string v3, "check"
invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_66
.line 65
invoke-static {}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a()[B
move-result-object v3
invoke-virtual {v0, v3}, Ljava/io/DataOutputStream;->write([B)V
.line 66
const-string v3, "daemon.DaemonSocket"
const-string v4, "receive check command!"
invoke-static {v3, v4}, Lcom/cleanmaster/feedback/daemon/h;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 85
:goto_57
invoke-virtual {v0}, Ljava/io/DataOutputStream;->flush()V
:try_end_5a
.catch Ljava/io/IOException; {:try_start_31 .. :try_end_5a} :catch_a7
.catch Ljava/lang/Exception; {:try_start_31 .. :try_end_5a} :catch_da
.catchall {:try_start_31 .. :try_end_5a} :catchall_120
.line 91
invoke-static {v2}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/net/Socket;)V
.line 92
invoke-static {v1}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v0}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
:goto_63
move-object v3, v0
move-object v0, v1
goto :goto_3
.line 67
:cond_66
:try_start_66
const-string/jumbo v3, "uppid:"
invoke-virtual {v5, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_b9
.line 69
const-string/jumbo v3, "uppid:"
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
invoke-virtual {v5, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v3
.line 70
iget-object v4, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
if-eqz v4, :cond_87
.line 71
iget-object v4, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
invoke-interface {v4, v3}, Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;->onNewPidReceived(Ljava/lang/String;)V
.line 73
:cond_87
invoke-static {}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->b()[B
move-result-object v4
invoke-virtual {v0, v4}, Ljava/io/DataOutputStream;->write([B)V
.line 74
const-string v4, "daemon.DaemonSocket"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "receive a new pid: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v3}, 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
invoke-static {v4, v3}, Lcom/cleanmaster/feedback/daemon/h;->a(Ljava/lang/String;Ljava/lang/String;)V
:try_end_a6
.catch Ljava/io/IOException; {:try_start_66 .. :try_end_a6} :catch_a7
.catch Ljava/lang/Exception; {:try_start_66 .. :try_end_a6} :catch_da
.catchall {:try_start_66 .. :try_end_a6} :catchall_120
goto :goto_57
.line 86
:catch_a7
move-exception v3
.line 87
:goto_a8
:try_start_a8
const-string v4, "daemon.DaemonSocket"
const-string v5, "accept: IOException"
invoke-static {v4, v5, v3}, Lcom/cleanmaster/feedback/daemon/h;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_af
.catchall {:try_start_a8 .. :try_end_af} :catchall_120
.line 91
invoke-static {v2}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/net/Socket;)V
.line 92
invoke-static {v1}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v0}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
goto :goto_63
.line 75
:cond_b9
:try_start_b9
const-string v3, "exit"
invoke-virtual {v3, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_ed
.line 76
iget-object v3, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
if-eqz v3, :cond_ca
.line 77
iget-object v3, p0, Lcom/cleanmaster/feedback/daemon/DaemonSocket$b;->b:Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;
invoke-interface {v3}, Lcom/cleanmaster/feedback/daemon/DaemonSocket$CmdHandler;->onExitReceived()V
.line 79
:cond_ca
invoke-static {}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->b()[B
move-result-object v3
invoke-virtual {v0, v3}, Ljava/io/DataOutputStream;->write([B)V
.line 80
const-string v3, "daemon.DaemonSocket"
const-string v4, "receive exit command!"
invoke-static {v3, v4}, Lcom/cleanmaster/feedback/daemon/h;->c(Ljava/lang/String;Ljava/lang/String;)V
:try_end_d8
.catch Ljava/io/IOException; {:try_start_b9 .. :try_end_d8} :catch_a7
.catch Ljava/lang/Exception; {:try_start_b9 .. :try_end_d8} :catch_da
.catchall {:try_start_b9 .. :try_end_d8} :catchall_120
goto/16 :goto_57
.line 88
:catch_da
move-exception v3
.line 89
:goto_db
:try_start_db
const-string v4, "daemon.DaemonSocket"
const-string v5, "accept: Exception"
invoke-static {v4, v5, v3}, Lcom/cleanmaster/feedback/daemon/h;->a(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:try_end_e2
.catchall {:try_start_db .. :try_end_e2} :catchall_120
.line 91
invoke-static {v2}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/net/Socket;)V
.line 92
invoke-static {v1}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v0}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
goto/16 :goto_63
.line 82
:cond_ed
:try_start_ed
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "#not support: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
const-string 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
invoke-virtual {v3}, Ljava/lang/String;->getBytes()[B
move-result-object v3
invoke-virtual {v0, v3}, Ljava/io/DataOutputStream;->write([B)V
.line 83
const-string v3, "daemon.DaemonSocket"
const-string v4, "command: %s not be support!"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x0
aput-object v5, v6, v7
invoke-static {v4, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Lcom/cleanmaster/feedback/daemon/h;->c(Ljava/lang/String;Ljava/lang/String;)V
:try_end_11e
.catch Ljava/io/IOException; {:try_start_ed .. :try_end_11e} :catch_a7
.catch Ljava/lang/Exception; {:try_start_ed .. :try_end_11e} :catch_da
.catchall {:try_start_ed .. :try_end_11e} :catchall_120
goto/16 :goto_57
.line 91
:catchall_120
move-exception v3
move-object v8, v3
move-object v3, v0
move-object v0, v8
:goto_124
invoke-static {v2}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/net/Socket;)V
.line 92
invoke-static {v1}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
.line 93
invoke-static {v3}, Lcom/cleanmaster/feedback/daemon/DaemonSocket;->a(Ljava/io/Closeable;)V
throw v0
.line 96
:cond_12e
return-void
.line 91
:catchall_12f
move-exception v1
move-object v8, v1
move-object v1, v0
move-object v0, v8
goto :goto_124
:catchall_134
move-exception v0
goto :goto_124
.line 88
:catch_136
move-exception v1
move-object v8, v1
move-object v1, v0
move-object v0, v3
move-object v3, v8
goto :goto_db
:catch_13c
move-exception v0
move-object v8, v0
move-object v0, v3
move-object v3, v8
goto :goto_db
.line 86
:catch_141
move-exception v1
move-object v8, v1
move-object v1, v0
move-object v0, v3
move-object v3, v8
goto/16 :goto_a8
:catch_148
move-exception v0
move-object v8, v0
move-object v0, v3
move-object v3, v8
goto/16 :goto_a8
.end method