StreamHelper.smali
.class public Lcom/imo/android/imoim/network/StreamHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field static final TAG:Ljava/lang/String; = "Helper"
# instance fields
.field out:Lcom/imo/android/imoim/network/ByteStream;
.field out2:Lcom/imo/android/imoim/network/ByteStream;
# direct methods
.method public constructor <init>()V
.registers 3
.line 14
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 20
new-instance v0, Lcom/imo/android/imoim/network/ByteStream;
const/16 v1, 0x400
invoke-direct {v0, v1}, Lcom/imo/android/imoim/network/ByteStream;-><init>(I)V
iput-object v0, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
.line 22
new-instance v0, Lcom/imo/android/imoim/network/ByteStream;
invoke-direct {v0, v1}, Lcom/imo/android/imoim/network/ByteStream;-><init>(I)V
iput-object v0, p0, Lcom/imo/android/imoim/network/StreamHelper;->out2:Lcom/imo/android/imoim/network/ByteStream;
return-void
.end method
.method public static getMoreMemoryInfo()V
.registers 11
.line 57
new-instance v0, Landroid/os/Debug$MemoryInfo;
invoke-direct {v0}, Landroid/os/Debug$MemoryInfo;-><init>()V
.line 58
invoke-static {v0}, Landroid/os/Debug;->getMemoryInfo(Landroid/os/Debug$MemoryInfo;)V
.line 60
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
const/4 v2, 0x3
new-array v3, v2, [Ljava/lang/Object;
.line 62
invoke-virtual {v0}, Landroid/os/Debug$MemoryInfo;->getTotalPss()I
move-result v4
int-to-double v4, v4
const-wide/high16 v6, 0x4090000000000000L # 1024.0
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v4, v6
invoke-static {v4, v5}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v4
const/4 v5, 0x0
aput-object v4, v3, v5
.line 63
invoke-virtual {v0}, Landroid/os/Debug$MemoryInfo;->getTotalPrivateDirty()I
move-result v4
int-to-double v8, v4
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v8, v6
invoke-static {v8, v9}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v4
const/4 v8, 0x1
aput-object v4, v3, v8
.line 64
invoke-virtual {v0}, Landroid/os/Debug$MemoryInfo;->getTotalSharedDirty()I
move-result v0
int-to-double v9, v0
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v9, v6
invoke-static {v9, v10}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v0
const/4 v4, 0x2
aput-object v0, v3, v4
const-string v0, "App Memory: Pss=%.2f MB, Private=%.2f MB, Shared=%.2f MB"
.line 60
invoke-static {v1, v0, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
.line 66
sget-object v1, Ljava/util/Locale;->US:Ljava/util/Locale;
new-array v2, v2, [Ljava/lang/Object;
.line 69
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Runtime;->maxMemory()J
move-result-wide v9
long-to-double v9, v9
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v9, v6
div-double/2addr v9, v6
invoke-static {v9, v10}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v2, v5
.line 70
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Runtime;->totalMemory()J
move-result-wide v9
long-to-double v9, v9
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v9, v6
div-double/2addr v9, v6
invoke-static {v9, v10}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v2, v8
.line 71
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Runtime;->freeMemory()J
move-result-wide v8
long-to-double v8, v8
invoke-static {v8, v9}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v8, v6
div-double/2addr v8, v6
invoke-static {v8, v9}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object v3
aput-object v3, v2, v4
const-string v3, "Heap Memory: Max Heap=%.2f MB, Current Heap=%.2f MB Free=%.2f MB "
.line 67
invoke-static {v1, v3, v2}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
.line 73
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "memMessage="
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, ";memMessage2="
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "Helper"
.line 4071
invoke-static {v1, v0}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public json2Bytes([BLcom/imo/android/imoim/util/eu;)Ljava/nio/ByteBuffer;
.registers 7
const/4 v0, 0x1
.line 26
:try_start_1
new-instance v1, Lcom/imo/android/imoim/network/ByteStream;
invoke-direct {v1, p1}, Lcom/imo/android/imoim/network/ByteStream;-><init>([B)V
.line 27
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->reset()V
.line 28
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
.line 1073
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v2}, Ljava/util/zip/Deflater;->reset()V
.line 1074
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v1}, Lcom/imo/android/imoim/network/ByteStream;->getRawBytes()[B
move-result-object v1
invoke-virtual {v2, v1}, Ljava/util/zip/Deflater;->setInput([B)V
.line 1075
iget-object v1, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
sget-object v2, Lcom/imo/android/imoim/util/eu;->b:[B
invoke-virtual {v1, v2}, Ljava/util/zip/Deflater;->setDictionary([B)V
.line 1076
iget-object v1, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v1}, Ljava/util/zip/Deflater;->finish()V
const/16 v1, 0x400
new-array v1, v1, [B
.line 1079
:goto_2b
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v2}, Ljava/util/zip/Deflater;->finished()Z
move-result v2
const/4 v3, 0x0
if-nez v2, :cond_3e
.line 1080
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v2, v1}, Ljava/util/zip/Deflater;->deflate([B)I
move-result v2
.line 1081
invoke-virtual {p1, v1, v3, v2}, Lcom/imo/android/imoim/network/ByteStream;->append([BII)V
goto :goto_2b
.line 29
:cond_3e
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out2:Lcom/imo/android/imoim/network/ByteStream;
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->reset()V
.line 30
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
iget-object p2, p0, Lcom/imo/android/imoim/network/StreamHelper;->out2:Lcom/imo/android/imoim/network/ByteStream;
sget-object v1, Lcom/imo/android/imoim/j/a;->a:Ljavax/crypto/SecretKey;
invoke-static {p1, p2, v1}, Lcom/imo/android/imoim/j/a;->a(Lcom/imo/android/imoim/network/ByteStream;Lcom/imo/android/imoim/network/ByteStream;Ljavax/crypto/SecretKey;)V
.line 31
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out2:Lcom/imo/android/imoim/network/ByteStream;
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->getBytes()[B
move-result-object p1
.line 32
array-length p2, p1
if-eqz p2, :cond_56
const/4 v3, 0x1
:cond_56
invoke-static {v3}, Ljunit/framework/Assert;->assertTrue(Z)V
.line 33
invoke-static {p1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object p1
:try_end_5d
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_5d} :catch_5e
return-object p1
:catch_5e
move-exception p1
.line 36
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
const-string v1, "json/encrypt: "
invoke-virtual {v1, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
const-string v1, "Helper"
.line 2079
invoke-static {v1, p2, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
.line 37
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
goto :goto_75
:goto_74
throw p2
:goto_75
goto :goto_74
.end method
.method public json2Bytes2([BLcom/imo/android/imoim/util/eu;)Ljava/nio/ByteBuffer;
.registers 13
const/4 v0, 0x1
.line 43
:try_start_1
new-instance v1, Lcom/imo/android/imoim/network/ByteStream;
invoke-direct {v1, p1}, Lcom/imo/android/imoim/network/ByteStream;-><init>([B)V
.line 44
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->reset()V
.line 45
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
.line 2087
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v2}, Ljava/util/zip/Deflater;->reset()V
.line 2088
iget-object v2, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v1}, Lcom/imo/android/imoim/network/ByteStream;->getRawBytes()[B
move-result-object v1
invoke-virtual {v2, v1}, Ljava/util/zip/Deflater;->setInput([B)V
.line 2089
iget-object v1, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
sget-object v2, Lcom/imo/android/imoim/util/eu;->b:[B
invoke-virtual {v1, v2}, Ljava/util/zip/Deflater;->setDictionary([B)V
.line 2090
iget-object v1, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v1}, Ljava/util/zip/Deflater;->finish()V
const/16 v1, 0xc
.line 2092
invoke-static {v1}, Lcom/imo/android/imoim/j/a;->a(I)[B
move-result-object v1
.line 2093
sget-object v2, Lcom/imo/android/imoim/j/a;->a:Ljavax/crypto/SecretKey;
invoke-static {v1, v2}, Lcom/imo/android/imoim/j/a;->c([BLjavax/crypto/SecretKey;)Ljavax/crypto/Cipher;
move-result-object v2
const/16 v3, 0x10
.line 2094
invoke-virtual {p1, v3}, Lcom/imo/android/imoim/network/ByteStream;->increaseCount(I)V
const/16 v3, 0x400
new-array v9, v3, [B
.line 2096
:goto_3c
iget-object v3, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v3}, Ljava/util/zip/Deflater;->finished()Z
move-result v3
if-nez v3, :cond_64
.line 2097
iget-object v3, p2, Lcom/imo/android/imoim/util/eu;->d:Ljava/util/zip/Deflater;
invoke-virtual {v3, v9}, Ljava/util/zip/Deflater;->deflate([B)I
move-result v6
.line 2099
invoke-virtual {v2, v6}, Ljavax/crypto/Cipher;->getOutputSize(I)I
move-result v3
.line 2100
invoke-virtual {p1, v3}, Lcom/imo/android/imoim/network/ByteStream;->expand(I)V
const/4 v5, 0x0
.line 2102
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->getRawBytes()[B
move-result-object v7
.line 2103
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->size()I
move-result v8
move-object v3, v2
move-object v4, v9
.line 2102
invoke-virtual/range {v3 .. v8}, Ljavax/crypto/Cipher;->update([BII[BI)I
move-result v3
.line 2104
invoke-virtual {p1, v3}, Lcom/imo/android/imoim/network/ByteStream;->increaseCount(I)V
goto :goto_3c
.line 2109
:cond_64
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->getRawBytes()[B
move-result-object p2
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->size()I
move-result v3
invoke-virtual {v2, p2, v3}, Ljavax/crypto/Cipher;->doFinal([BI)I
move-result p2
.line 2111
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->size()I
move-result v2
sget-object v3, Lcom/imo/android/imoim/j/a;->a:Ljavax/crypto/SecretKey;
invoke-static {v2, v1, v3}, Lcom/imo/android/imoim/j/a;->a(I[BLjavax/crypto/SecretKey;)[B
move-result-object v1
.line 2112
array-length v2, v1
const/4 v3, 0x0
invoke-virtual {p1, v1, v3, v2, v3}, Lcom/imo/android/imoim/network/ByteStream;->write([BIII)V
.line 2113
invoke-virtual {p1, p2}, Lcom/imo/android/imoim/network/ByteStream;->increaseCount(I)V
.line 46
iget-object p1, p0, Lcom/imo/android/imoim/network/StreamHelper;->out:Lcom/imo/android/imoim/network/ByteStream;
invoke-virtual {p1}, Lcom/imo/android/imoim/network/ByteStream;->getBytes()[B
move-result-object p1
.line 47
array-length p2, p1
if-eqz p2, :cond_8c
const/4 v3, 0x1
:cond_8c
invoke-static {v3}, Ljunit/framework/Assert;->assertTrue(Z)V
.line 48
invoke-static {p1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object p1
:try_end_93
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_93} :catch_94
return-object p1
:catch_94
move-exception p1
.line 51
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
const-string v1, "json/encrypt: "
invoke-virtual {v1, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
const-string v1, "Helper"
.line 3079
invoke-static {v1, p2, v0}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
.line 52
new-instance p2, Ljava/lang/RuntimeException;
invoke-direct {p2, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
goto :goto_ab
:goto_aa
throw p2
:goto_ab
goto :goto_aa
.end method