SocketBinderClient.smali

.class public Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;
.super Ljava/lang/Object;
.source "SocketBinderClient.java"

# interfaces
.implements Landroid/os/IBinder;


# static fields
.field private static CONNECTION_TIMEOUT_MILLIS:I


# instance fields
.field private mSocketName:Ljava/lang/String;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 24
    const/16 v0, 0x1388

    sput v0, Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;->CONNECTION_TIMEOUT_MILLIS:I

    return-void
.end method

.method public constructor <init>(Ljava/lang/String;)V
    .registers 3

    .prologue
    .line 27
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 25
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;->mSocketName:Ljava/lang/String;

    .line 28
    iput-object p1, p0, Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;->mSocketName:Ljava/lang/String;

    .line 29
    return-void
.end method


# virtual methods
.method public TransferBufferClient([B)[B
    .registers 12

    .prologue
    const/4 v8, 0x3

    const/4 v7, 0x2

    const/4 v1, 0x0

    const/4 v6, 0x4

    const/4 v2, 0x1

    .line 97
    new-instance v3, Landroid/net/LocalSocket;

    invoke-direct {v3}, Landroid/net/LocalSocket;-><init>()V

    .line 98
    const/4 v0, 0x0

    .line 102
    const/16 v4, 0x8

    new-array v4, v4, [B

    .line 103
    const/16 v5, 0x4b

    aput-byte v5, v4, v1

    .line 104
    const/16 v5, 0x49

    aput-byte v5, v4, v2

    .line 105
    const/16 v5, 0x4e

    aput-byte v5, v4, v7

    .line 106
    const/16 v5, 0x47

    aput-byte v5, v4, v8

    .line 107
    const/16 v5, 0x53

    aput-byte v5, v4, v6

    .line 108
    const/4 v5, 0x5

    const/16 v6, 0x4f

    aput-byte v6, v4, v5

    .line 109
    const/4 v5, 0x6

    const/16 v6, 0x46

    aput-byte v6, v4, v5

    .line 110
    const/4 v5, 0x7

    const/16 v6, 0x54

    aput-byte v6, v4, v5

    .line 114
    :try_start_32
    new-instance v5, Landroid/net/LocalSocketAddress;

    iget-object v6, p0, Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;->mSocketName:Ljava/lang/String;

    invoke-direct {v5, v6}, Landroid/net/LocalSocketAddress;-><init>(Ljava/lang/String;)V

    invoke-virtual {v3, v5}, Landroid/net/LocalSocket;->connect(Landroid/net/LocalSocketAddress;)V

    .line 116
    invoke-virtual {v3}, Landroid/net/LocalSocket;->isConnected()Z
    :try_end_3f
    .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_3f} :catch_100

    move-result v5

    if-eqz v5, :cond_c8

    .line 119
    const v5, 0x8000

    :try_start_45
    invoke-virtual {v3, v5}, Landroid/net/LocalSocket;->setReceiveBufferSize(I)V

    .line 120
    const v5, 0x8000

    invoke-virtual {v3, v5}, Landroid/net/LocalSocket;->setSendBufferSize(I)V
    :try_end_4e
    .catch Ljava/lang/Exception; {:try_start_45 .. :try_end_4e} :catch_133
    .catchall {:try_start_45 .. :try_end_4e} :catchall_113

    .line 125
    :goto_4e
    :try_start_4e
    invoke-virtual {v3}, Landroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v5

    .line 127
    if-eqz v5, :cond_71

    .line 140
    array-length v6, p1

    sget-object v7, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

    invoke-static {v6, v7}, Lcom/cleanmaster/base/util/misc/UnitConvert;->int2bytes(ILjava/nio/ByteOrder;)[B

    move-result-object v6

    .line 142
    const/4 v7, 0x1

    sget-object v8, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

    invoke-static {v7, v8}, Lcom/cleanmaster/base/util/misc/UnitConvert;->int2bytes(ILjava/nio/ByteOrder;)[B

    move-result-object v7

    .line 144
    invoke-virtual {v5, v4}, Ljava/io/OutputStream;->write([B)V

    .line 145
    invoke-virtual {v5, v7}, Ljava/io/OutputStream;->write([B)V

    .line 146
    invoke-virtual {v5, v6}, Ljava/io/OutputStream;->write([B)V

    .line 147
    invoke-virtual {v5, p1}, Ljava/io/OutputStream;->write([B)V

    .line 148
    invoke-virtual {v5}, Ljava/io/OutputStream;->flush()V

    .line 151
    :cond_71
    invoke-virtual {v3}, Landroid/net/LocalSocket;->getInputStream()Ljava/io/InputStream;

    move-result-object v4

    .line 152
    if-eqz v4, :cond_b9

    .line 154
    const/16 v6, 0x8

    new-array v6, v6, [B

    .line 155
    invoke-virtual {v4, v6}, Ljava/io/InputStream;->read([B)I

    .line 158
    const/4 v7, 0x0

    aget-byte v7, v6, v7

    const/16 v8, 0x4b

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x1

    aget-byte v7, v6, v7

    const/16 v8, 0x49

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x2

    aget-byte v7, v6, v7

    const/16 v8, 0x4e

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x3

    aget-byte v7, v6, v7

    const/16 v8, 0x47

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x4

    aget-byte v7, v6, v7

    const/16 v8, 0x53

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x5

    aget-byte v7, v6, v7

    const/16 v8, 0x4f

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x6

    aget-byte v7, v6, v7

    const/16 v8, 0x46

    if-ne v7, v8, :cond_b7

    const/4 v7, 0x7

    aget-byte v6, v6, v7
    :try_end_b2
    .catch Ljava/lang/Exception; {:try_start_4e .. :try_end_b2} :catch_f1
    .catchall {:try_start_4e .. :try_end_b2} :catchall_113

    const/16 v7, 0x54

    if-ne v6, v7, :cond_b7

    move v1, v2

    .line 169
    :cond_b7
    if-nez v1, :cond_c9

    .line 191
    :cond_b9
    :goto_b9
    if-eqz v4, :cond_be

    .line 192
    :try_start_bb
    invoke-virtual {v4}, Ljava/io/InputStream;->close()V

    .line 194
    :cond_be
    if-eqz v5, :cond_c3

    .line 195
    invoke-virtual {v5}, Ljava/io/OutputStream;->close()V
    :try_end_c3
    .catch Ljava/lang/Exception; {:try_start_bb .. :try_end_c3} :catch_f1
    .catchall {:try_start_bb .. :try_end_c3} :catchall_129

    .line 202
    :cond_c3
    if-eqz v3, :cond_c8

    .line 203
    :try_start_c5
    invoke-virtual {v3}, Landroid/net/LocalSocket;->close()V
    :try_end_c8
    .catch Ljava/lang/Exception; {:try_start_c5 .. :try_end_c8} :catch_10e

    .line 213
    :cond_c8
    :goto_c8
    return-object v0

    .line 172
    :cond_c9
    const/4 v1, 0x4

    :try_start_ca
    new-array v1, v1, [B

    .line 173
    invoke-virtual {v4, v1}, Ljava/io/InputStream;->read([B)I

    .line 174
    sget-object v6, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

    invoke-static {v1, v6}, Lcom/cleanmaster/base/util/misc/UnitConvert;->bytes2int([BLjava/nio/ByteOrder;)I

    move-result v1

    .line 176
    const/4 v6, 0x4

    new-array v6, v6, [B

    .line 177
    invoke-virtual {v4, v6}, Ljava/io/InputStream;->read([B)I

    .line 178
    sget-object v7, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;

    invoke-static {v6, v7}, Lcom/cleanmaster/base/util/misc/UnitConvert;->bytes2int([BLjava/nio/ByteOrder;)I

    move-result v6

    .line 180
    invoke-virtual {v3}, Landroid/net/LocalSocket;->getSendBufferSize()I

    move-result v7

    if-gt v6, v7, :cond_b9

    .line 181
    if-ge v1, v2, :cond_105

    .line 182
    const-string v1, "SocketBinder"

    const-string v2, "PROTOCAL_VER ERROR"

    invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_f0
    .catch Ljava/lang/Exception; {:try_start_ca .. :try_end_f0} :catch_f1
    .catchall {:try_start_ca .. :try_end_f0} :catchall_113

    goto :goto_b9

    .line 197
    :catch_f1
    move-exception v1

    .line 198
    :goto_f2
    :try_start_f2
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_f5
    .catchall {:try_start_f2 .. :try_end_f5} :catchall_129

    .line 202
    if-eqz v3, :cond_c8

    .line 203
    :try_start_f7
    invoke-virtual {v3}, Landroid/net/LocalSocket;->close()V
    :try_end_fa
    .catch Ljava/lang/Exception; {:try_start_f7 .. :try_end_fa} :catch_fb

    goto :goto_c8

    .line 204
    :catch_fb
    move-exception v1

    .line 205
    :try_start_fc
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_ff
    .catch Ljava/lang/Exception; {:try_start_fc .. :try_end_ff} :catch_100

    goto :goto_c8

    .line 209
    :catch_100
    move-exception v1

    .line 210
    :goto_101
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_c8

    .line 184
    :cond_105
    if-lez v6, :cond_b9

    .line 185
    :try_start_107
    new-array v1, v6, [B
    :try_end_109
    .catch Ljava/lang/Exception; {:try_start_107 .. :try_end_109} :catch_f1
    .catchall {:try_start_107 .. :try_end_109} :catchall_113

    .line 186
    :try_start_109
    invoke-virtual {v4, v1}, Ljava/io/InputStream;->read([B)I
    :try_end_10c
    .catch Ljava/lang/Exception; {:try_start_109 .. :try_end_10c} :catch_12e
    .catchall {:try_start_109 .. :try_end_10c} :catchall_127

    move-object v0, v1

    goto :goto_b9

    .line 204
    :catch_10e
    move-exception v1

    .line 205
    :try_start_10f
    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_112
    .catch Ljava/lang/Exception; {:try_start_10f .. :try_end_112} :catch_100

    goto :goto_c8

    .line 201
    :catchall_113
    move-exception v1

    move-object v9, v1

    move-object v1, v0

    move-object v0, v9

    .line 202
    :goto_117
    if-eqz v3, :cond_11c

    .line 203
    :try_start_119
    invoke-virtual {v3}, Landroid/net/LocalSocket;->close()V
    :try_end_11c
    .catch Ljava/lang/Exception; {:try_start_119 .. :try_end_11c} :catch_122

    .line 206
    :cond_11c
    :goto_11c
    :try_start_11c
    throw v0

    .line 209
    :catch_11d
    move-exception v0

    move-object v9, v0

    move-object v0, v1

    move-object v1, v9

    goto :goto_101

    .line 204
    :catch_122
    move-exception v2

    .line 205
    invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_126
    .catch Ljava/lang/Exception; {:try_start_11c .. :try_end_126} :catch_11d

    goto :goto_11c

    .line 201
    :catchall_127
    move-exception v0

    goto :goto_117

    :catchall_129
    move-exception v1

    move-object v9, v1

    move-object v1, v0

    move-object v0, v9

    goto :goto_117

    .line 197
    :catch_12e
    move-exception v0

    move-object v9, v0

    move-object v0, v1

    move-object v1, v9

    goto :goto_f2

    .line 123
    :catch_133
    move-exception v5

    goto/16 :goto_4e
.end method

.method public dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 53
    return-void
.end method

.method public dumpAsync(Ljava/io/FileDescriptor;[Ljava/lang/String;)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 218
    return-void
.end method

.method public getInterfaceDescriptor()Ljava/lang/String;
    .registers 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 33
    const/4 v0, 0x0

    return-object v0
.end method

.method public isBinderAlive()Z
    .registers 2

    .prologue
    .line 43
    const/4 v0, 0x0

    return v0
.end method

.method public linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V
    .registers 3
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 89
    return-void
.end method

.method public pingBinder()Z
    .registers 2

    .prologue
    .line 38
    const/4 v0, 0x0

    return v0
.end method

.method public queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;
    .registers 3

    .prologue
    .line 48
    const/4 v0, 0x0

    return-object v0
.end method

.method public transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
    .registers 10
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v4, 0x0

    .line 59
    invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;

    move-result-object v0

    .line 60
    invoke-virtual {p2, v4}, Landroid/os/Parcel;->setDataPosition(I)V

    .line 62
    invoke-virtual {v0, p1}, Landroid/os/Parcel;->writeInt(I)V

    .line 63
    invoke-virtual {p2}, Landroid/os/Parcel;->marshall()[B

    move-result-object v1

    .line 64
    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 65
    invoke-virtual {v0, v4}, Landroid/os/Parcel;->setDataPosition(I)V

    .line 67
    invoke-virtual {v0}, Landroid/os/Parcel;->marshall()[B

    move-result-object v1

    .line 68
    array-length v2, v1

    new-array v2, v2, [B

    .line 69
    array-length v3, v1

    invoke-static {v1, v4, v2, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 72
    invoke-virtual {p0, v2}, Lcom/cleanmaster/hpsharelib/base/ipc/client/SocketBinderClient;->TransferBufferClient([B)[B

    move-result-object v1

    .line 74
    if-eqz v1, :cond_30

    .line 75
    invoke-virtual {p3, v4}, Landroid/os/Parcel;->setDataPosition(I)V

    .line 76
    array-length v2, v1

    invoke-virtual {p3, v1, v4, v2}, Landroid/os/Parcel;->unmarshall([BII)V

    .line 77
    invoke-virtual {p3, v4}, Landroid/os/Parcel;->setDataPosition(I)V

    .line 80
    :cond_30
    invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V

    .line 82
    return v4
.end method

.method public unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z
    .registers 4

    .prologue
    .line 93
    const/4 v0, 0x0

    return v0
.end method