StatsController.smali
.class public Lim/tpelyyftgw/messenger/StatsController;
.super Lim/tpelyyftgw/messenger/BaseController;
.source "StatsController.java"
# static fields
.field private static volatile Instance:[Lim/tpelyyftgw/messenger/StatsController; = null
.field private static final TYPES_COUNT:I = 0x7
.field public static final TYPE_AUDIOS:I = 0x3
.field public static final TYPE_CALLS:I = 0x0
.field public static final TYPE_FILES:I = 0x5
.field public static final TYPE_MESSAGES:I = 0x1
.field public static final TYPE_MOBILE:I = 0x0
.field public static final TYPE_PHOTOS:I = 0x4
.field public static final TYPE_ROAMING:I = 0x2
.field public static final TYPE_TOTAL:I = 0x6
.field public static final TYPE_VIDEOS:I = 0x2
.field public static final TYPE_WIFI:I = 0x1
.field private static final lastStatsSaveTime:Ljava/lang/ThreadLocal;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ThreadLocal<",
"Ljava/lang/Long;",
">;"
}
.end annotation
.end field
.field private static statsSaveQueue:Lim/tpelyyftgw/messenger/DispatchQueue;
# instance fields
.field private buffer:[B
.field private callsTotalTime:[I
.field private lastInternalStatsSaveTime:J
.field private receivedBytes:[[J
.field private receivedItems:[[I
.field private resetStatsDate:[J
.field private saveRunnable:Ljava/lang/Runnable;
.field private sentBytes:[[J
.field private sentItems:[[I
.field private statsFile:Ljava/io/RandomAccessFile;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 36
new-instance v0, Lim/tpelyyftgw/messenger/DispatchQueue;
const-string/jumbo v1, "statsSaveQueue"
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/DispatchQueue;-><init>(Ljava/lang/String;)V
sput-object v0, Lim/tpelyyftgw/messenger/StatsController;->statsSaveQueue:Lim/tpelyyftgw/messenger/DispatchQueue;
.line 38
new-instance v0, Lim/tpelyyftgw/messenger/StatsController$1;
invoke-direct {v0}, Lim/tpelyyftgw/messenger/StatsController$1;-><init>()V
sput-object v0, Lim/tpelyyftgw/messenger/StatsController;->lastStatsSaveTime:Ljava/lang/ThreadLocal;
.line 100
const/4 v0, 0x3
new-array v0, v0, [Lim/tpelyyftgw/messenger/StatsController;
sput-object v0, Lim/tpelyyftgw/messenger/StatsController;->Instance:[Lim/tpelyyftgw/messenger/StatsController;
return-void
.end method
.method private constructor <init>(I)V
.registers 21
.param p1, "account" # I
.line 116
move-object/from16 v1, p0
move/from16 v2, p1
const-class v0, I
const-class v3, J
invoke-direct/range {p0 .. p1}, Lim/tpelyyftgw/messenger/BaseController;-><init>(I)V
.line 26
const/16 v4, 0x8
new-array v5, v4, [B
iput-object v5, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
.line 29
const/4 v5, 0x2
new-array v6, v5, [I
fill-array-data v6, :array_23c
invoke-static {v3, v6}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v6
check-cast v6, [[J
iput-object v6, v1, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
.line 30
new-array v6, v5, [I
fill-array-data v6, :array_244
invoke-static {v3, v6}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v3
check-cast v3, [[J
iput-object v3, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
.line 31
new-array v3, v5, [I
fill-array-data v3, :array_24c
invoke-static {v0, v3}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v3
check-cast v3, [[I
iput-object v3, v1, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
.line 32
new-array v3, v5, [I
fill-array-data v3, :array_254
invoke-static {v0, v3}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[I
iput-object v0, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
.line 33
const/4 v3, 0x3
new-array v0, v3, [J
iput-object v0, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
.line 34
new-array v0, v3, [I
iput-object v0, v1, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
.line 73
new-instance v0, Lim/tpelyyftgw/messenger/StatsController$2;
invoke-direct {v0, v1}, Lim/tpelyyftgw/messenger/StatsController$2;-><init>(Lim/tpelyyftgw/messenger/StatsController;)V
iput-object v0, v1, Lim/tpelyyftgw/messenger/StatsController;->saveRunnable:Ljava/lang/Runnable;
.line 117
invoke-static {}, Lim/tpelyyftgw/messenger/ApplicationLoader;->getFilesDirFixed()Ljava/io/File;
move-result-object v0
.line 118
.local v0, "filesDir":Ljava/io/File;
if-eqz v2, :cond_80
.line 119
new-instance v5, Ljava/io/File;
invoke-static {}, Lim/tpelyyftgw/messenger/ApplicationLoader;->getFilesDirFixed()Ljava/io/File;
move-result-object v6
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "account"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v8, "/"
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-direct {v5, v6, v7}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
move-object v0, v5
.line 120
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
goto :goto_81
.line 118
:cond_80
move-object v5, v0
.line 123
.end local v0 # "filesDir":Ljava/io/File;
.local v5, "filesDir":Ljava/io/File;
:goto_81
const/4 v6, 0x1
.line 125
.local v6, "needConvert":Z
const/4 v7, 0x7
const-wide/16 v8, 0x0
const/4 v10, 0x0
:try_start_86
new-instance v0, Ljava/io/RandomAccessFile;
new-instance v11, Ljava/io/File;
const-string/jumbo v12, "stats2.dat"
invoke-direct {v11, v5, v12}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
const-string/jumbo v12, "rw"
invoke-direct {v0, v11, v12}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
iput-object v0, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
.line 126
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->length()J
move-result-wide v11
cmp-long v0, v11, v8
if-lez v0, :cond_134
.line 127
const/4 v0, 0x0
.line 128
.local v0, "save":Z
const/4 v11, 0x0
.local v11, "a":I
:goto_a2
if-ge v11, v3, :cond_12e
.line 129
const/4 v12, 0x0
.local v12, "b":I
:goto_a5
const/4 v13, 0x4
if-ge v12, v7, :cond_f7
.line 130
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v14, v15, v10, v4}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 131
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v14, v14, v11
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v15}, Lim/tpelyyftgw/messenger/StatsController;->bytesToLong([B)J
move-result-wide v15
aput-wide v15, v14, v12
.line 132
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v14, v15, v10, v4}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 133
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v14, v14, v11
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v15}, Lim/tpelyyftgw/messenger/StatsController;->bytesToLong([B)J
move-result-wide v15
aput-wide v15, v14, v12
.line 134
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v14, v15, v10, v13}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 135
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
aget-object v14, v14, v11
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v15}, Lim/tpelyyftgw/messenger/StatsController;->bytesToInt([B)I
move-result v15
aput v15, v14, v12
.line 136
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v15, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v14, v15, v10, v13}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 137
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
aget-object v13, v13, v11
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v14}, Lim/tpelyyftgw/messenger/StatsController;->bytesToInt([B)I
move-result v14
aput v14, v13, v12
.line 129
add-int/lit8 v12, v12, 0x1
goto :goto_a5
.line 139
.end local v12 # "b":I
:cond_f7
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v14, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v12, v14, v10, v13}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 140
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v13}, Lim/tpelyyftgw/messenger/StatsController;->bytesToInt([B)I
move-result v13
aput v13, v12, v11
.line 141
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-virtual {v12, v13, v10, v4}, Ljava/io/RandomAccessFile;->readFully([BII)V
.line 142
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
invoke-direct {v1, v13}, Lim/tpelyyftgw/messenger/StatsController;->bytesToLong([B)J
move-result-wide v13
aput-wide v13, v12, v11
.line 143
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
aget-wide v13, v12, v11
cmp-long v12, v13, v8
if-nez v12, :cond_12a
.line 144
const/4 v0, 0x1
.line 145
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v13
aput-wide v13, v12, v11
.line 128
:cond_12a
add-int/lit8 v11, v11, 0x1
goto/16 :goto_a2
.line 148
.end local v11 # "a":I
:cond_12e
if-eqz v0, :cond_133
.line 149
invoke-direct/range {p0 .. p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
:try_end_133
.catch Ljava/lang/Exception; {:try_start_86 .. :try_end_133} :catch_135
.line 151
:cond_133
const/4 v6, 0x0
.line 155
.end local v0 # "save":Z
:cond_134
goto :goto_136
.line 153
:catch_135
move-exception v0
.line 156
:goto_136
if-eqz v6, :cond_23b
.line 158
const-string/jumbo v0, "stats"
if-nez v2, :cond_144
.line 159
sget-object v4, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-virtual {v4, v0, v10}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
.local v0, "sharedPreferences":Landroid/content/SharedPreferences;
goto :goto_159
.line 161
.end local v0 # "sharedPreferences":Landroid/content/SharedPreferences;
:cond_144
sget-object v4, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v11, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v11, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v4, v0, v10}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
.line 163
.restart local v0 # "sharedPreferences":Landroid/content/SharedPreferences;
:goto_159
const/4 v4, 0x0
.line 164
.local v4, "save":Z
const/4 v11, 0x0
.restart local v11 # "a":I
:goto_15b
if-ge v11, v3, :cond_236
.line 165
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string v14, "callsTotalTime"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v0, v13, v10}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v13
aput v13, v12, v11
.line 166
iget-object v12, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v14, "resetStatsDate"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v0, v13, v8, v9}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v13
aput-wide v13, v12, v11
.line 167
const/4 v12, 0x0
.restart local v12 # "b":I
:goto_191
if-ge v12, v7, :cond_222
.line 168
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v13, v13, v11
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v15, "sentBytes"
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v15, "_"
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v14
invoke-interface {v0, v14, v8, v9}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v16
aput-wide v16, v13, v12
.line 169
iget-object v13, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v13, v13, v11
new-instance v14, Ljava/lang/StringBuilder;
invoke-direct {v14}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "receivedBytes"
invoke-virtual {v14, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-interface {v0, v3, v8, v9}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v17
aput-wide v17, v13, v12
.line 170
iget-object v3, v1, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
aget-object v3, v3, v11
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v14, "sentItems"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v0, v13, v10}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v13
aput v13, v3, v12
.line 171
iget-object v3, v1, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
aget-object v3, v3, v11
new-instance v13, Ljava/lang/StringBuilder;
invoke-direct {v13}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v14, "receivedItems"
invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v13
invoke-interface {v0, v13, v10}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I
move-result v13
aput v13, v3, v12
.line 167
add-int/lit8 v12, v12, 0x1
const/4 v3, 0x3
goto/16 :goto_191
.line 173
.end local v12 # "b":I
:cond_222
iget-object v3, v1, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
aget-wide v12, v3, v11
cmp-long v14, v12, v8
if-nez v14, :cond_231
.line 174
const/4 v4, 0x1
.line 175
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v12
aput-wide v12, v3, v11
.line 164
:cond_231
add-int/lit8 v11, v11, 0x1
const/4 v3, 0x3
goto/16 :goto_15b
.line 178
.end local v11 # "a":I
:cond_236
if-eqz v4, :cond_23b
.line 179
invoke-direct/range {p0 .. p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 182
.end local v0 # "sharedPreferences":Landroid/content/SharedPreferences;
.end local v4 # "save":Z
:cond_23b
return-void
:array_23c
.array-data 4
0x3
0x7
.end array-data
:array_244
.array-data 4
0x3
0x7
.end array-data
:array_24c
.array-data 4
0x3
0x7
.end array-data
:array_254
.array-data 4
0x3
0x7
.end array-data
.end method
.method static synthetic access$000(Lim/tpelyyftgw/messenger/StatsController;)J
.registers 3
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-wide v0, p0, Lim/tpelyyftgw/messenger/StatsController;->lastInternalStatsSaveTime:J
return-wide v0
.end method
.method static synthetic access$002(Lim/tpelyyftgw/messenger/StatsController;J)J
.registers 3
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.param p1, "x1" # J
.line 11
iput-wide p1, p0, Lim/tpelyyftgw/messenger/StatsController;->lastInternalStatsSaveTime:J
return-wide p1
.end method
.method static synthetic access$100(Lim/tpelyyftgw/messenger/StatsController;)Ljava/io/RandomAccessFile;
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->statsFile:Ljava/io/RandomAccessFile;
return-object v0
.end method
.method static synthetic access$200(Lim/tpelyyftgw/messenger/StatsController;)[[J
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
return-object v0
.end method
.method static synthetic access$300(Lim/tpelyyftgw/messenger/StatsController;J)[B
.registers 4
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.param p1, "x1" # J
.line 11
invoke-direct {p0, p1, p2}, Lim/tpelyyftgw/messenger/StatsController;->longToBytes(J)[B
move-result-object v0
return-object v0
.end method
.method static synthetic access$400(Lim/tpelyyftgw/messenger/StatsController;)[[J
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
return-object v0
.end method
.method static synthetic access$500(Lim/tpelyyftgw/messenger/StatsController;)[[I
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
return-object v0
.end method
.method static synthetic access$600(Lim/tpelyyftgw/messenger/StatsController;I)[B
.registers 3
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.param p1, "x1" # I
.line 11
invoke-direct {p0, p1}, Lim/tpelyyftgw/messenger/StatsController;->intToBytes(I)[B
move-result-object v0
return-object v0
.end method
.method static synthetic access$700(Lim/tpelyyftgw/messenger/StatsController;)[[I
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
return-object v0
.end method
.method static synthetic access$800(Lim/tpelyyftgw/messenger/StatsController;)[I
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
return-object v0
.end method
.method static synthetic access$900(Lim/tpelyyftgw/messenger/StatsController;)[J
.registers 2
.param p0, "x0" # Lim/tpelyyftgw/messenger/StatsController;
.line 11
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
return-object v0
.end method
.method private bytesToInt([B)I
.registers 4
.param p1, "bytes" # [B
.line 54
const/4 v0, 0x0
aget-byte v0, p1, v0
shl-int/lit8 v0, v0, 0x18
const/4 v1, 0x1
aget-byte v1, p1, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
const/4 v1, 0x2
aget-byte v1, p1, v1
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x8
or-int/2addr v0, v1
const/4 v1, 0x3
aget-byte v1, p1, v1
and-int/lit16 v1, v1, 0xff
or-int/2addr v0, v1
return v0
.end method
.method private bytesToLong([B)J
.registers 9
.param p1, "bytes" # [B
.line 70
const/4 v0, 0x0
aget-byte v0, p1, v0
int-to-long v0, v0
const-wide/16 v2, 0xff
and-long/2addr v0, v2
const/16 v4, 0x38
shl-long/2addr v0, v4
const/4 v4, 0x1
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x30
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x2
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x28
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x3
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x20
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x4
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x18
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x5
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x10
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x6
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v4, v2
const/16 v6, 0x8
shl-long/2addr v4, v6
or-long/2addr v0, v4
const/4 v4, 0x7
aget-byte v4, p1, v4
int-to-long v4, v4
and-long/2addr v2, v4
or-long/2addr v0, v2
return-wide v0
.end method
.method public static getInstance(I)Lim/tpelyyftgw/messenger/StatsController;
.registers 5
.param p0, "num" # I
.line 103
sget-object v0, Lim/tpelyyftgw/messenger/StatsController;->Instance:[Lim/tpelyyftgw/messenger/StatsController;
aget-object v0, v0, p0
.line 104
.local v0, "localInstance":Lim/tpelyyftgw/messenger/StatsController;
if-nez v0, :cond_1f
.line 105
const-class v1, Lim/tpelyyftgw/messenger/StatsController;
monitor-enter v1
.line 106
:try_start_9
sget-object v2, Lim/tpelyyftgw/messenger/StatsController;->Instance:[Lim/tpelyyftgw/messenger/StatsController;
aget-object v2, v2, p0
move-object v0, v2
.line 107
if-nez v0, :cond_1a
.line 108
sget-object v2, Lim/tpelyyftgw/messenger/StatsController;->Instance:[Lim/tpelyyftgw/messenger/StatsController;
new-instance v3, Lim/tpelyyftgw/messenger/StatsController;
invoke-direct {v3, p0}, Lim/tpelyyftgw/messenger/StatsController;-><init>(I)V
move-object v0, v3
aput-object v3, v2, p0
.line 110
:cond_1a
monitor-exit v1
goto :goto_1f
:catchall_1c
move-exception v2
monitor-exit v1
:try_end_1e
.catchall {:try_start_9 .. :try_end_1e} :catchall_1c
throw v2
.line 112
:cond_1f
:goto_1f
return-object v0
.end method
.method private intToBytes(I)[B
.registers 5
.param p1, "value" # I
.line 46
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
ushr-int/lit8 v1, p1, 0x18
int-to-byte v1, v1
const/4 v2, 0x0
aput-byte v1, v0, v2
.line 47
ushr-int/lit8 v1, p1, 0x10
int-to-byte v1, v1
const/4 v2, 0x1
aput-byte v1, v0, v2
.line 48
ushr-int/lit8 v1, p1, 0x8
int-to-byte v1, v1
const/4 v2, 0x2
aput-byte v1, v0, v2
.line 49
int-to-byte v1, p1
const/4 v2, 0x3
aput-byte v1, v0, v2
.line 50
return-object v0
.end method
.method private longToBytes(J)[B
.registers 6
.param p1, "value" # J
.line 58
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->buffer:[B
const/16 v1, 0x38
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x0
aput-byte v1, v0, v2
.line 59
const/16 v1, 0x30
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x1
aput-byte v1, v0, v2
.line 60
const/16 v1, 0x28
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x2
aput-byte v1, v0, v2
.line 61
const/16 v1, 0x20
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x3
aput-byte v1, v0, v2
.line 62
const/16 v1, 0x18
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x4
aput-byte v1, v0, v2
.line 63
const/16 v1, 0x10
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x5
aput-byte v1, v0, v2
.line 64
const/16 v1, 0x8
ushr-long v1, p1, v1
long-to-int v2, v1
int-to-byte v1, v2
const/4 v2, 0x6
aput-byte v1, v0, v2
.line 65
long-to-int v1, p1
int-to-byte v1, v1
const/4 v2, 0x7
aput-byte v1, v0, v2
.line 66
return-object v0
.end method
.method private saveStats()V
.registers 8
.line 252
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
.line 253
.local v0, "newTime":J
sget-object v2, Lim/tpelyyftgw/messenger/StatsController;->lastStatsSaveTime:Ljava/lang/ThreadLocal;
invoke-virtual {v2}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Long;
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v2
sub-long v2, v0, v2
invoke-static {v2, v3}, Ljava/lang/Math;->abs(J)J
move-result-wide v2
const-wide/16 v4, 0x7d0
cmp-long v6, v2, v4
if-ltz v6, :cond_2c
.line 254
sget-object v2, Lim/tpelyyftgw/messenger/StatsController;->lastStatsSaveTime:Ljava/lang/ThreadLocal;
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
.line 255
sget-object v2, Lim/tpelyyftgw/messenger/StatsController;->statsSaveQueue:Lim/tpelyyftgw/messenger/DispatchQueue;
iget-object v3, p0, Lim/tpelyyftgw/messenger/StatsController;->saveRunnable:Ljava/lang/Runnable;
invoke-virtual {v2, v3}, Lim/tpelyyftgw/messenger/DispatchQueue;->postRunnable(Ljava/lang/Runnable;)V
.line 257
:cond_2c
return-void
.end method
# virtual methods
.method public getCallsTotalTime(I)I
.registers 3
.param p1, "networkType" # I
.line 232
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
aget v0, v0, p1
return v0
.end method
.method public getReceivedBytesCount(II)J
.registers 9
.param p1, "networkType" # I
.param p2, "dataType" # I
.line 225
const/4 v0, 0x1
if-ne p2, v0, :cond_23
.line 226
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v1, v0, p1
const/4 v2, 0x6
aget-wide v2, v1, v2
aget-object v1, v0, p1
const/4 v4, 0x5
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v1, v0, p1
const/4 v4, 0x3
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v1, v0, p1
const/4 v4, 0x2
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v0, v0, p1
const/4 v1, 0x4
aget-wide v4, v0, v1
sub-long/2addr v2, v4
return-wide v2
.line 228
:cond_23
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v0, v0, p1
aget-wide v1, v0, p2
return-wide v1
.end method
.method public getRecivedItemsCount(II)I
.registers 4
.param p1, "networkType" # I
.param p2, "dataType" # I
.line 210
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
aget-object v0, v0, p1
aget v0, v0, p2
return v0
.end method
.method public getResetStatsDate(I)J
.registers 5
.param p1, "networkType" # I
.line 236
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
aget-wide v1, v0, p1
return-wide v1
.end method
.method public getSentBytesCount(II)J
.registers 9
.param p1, "networkType" # I
.param p2, "dataType" # I
.line 218
const/4 v0, 0x1
if-ne p2, v0, :cond_23
.line 219
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v1, v0, p1
const/4 v2, 0x6
aget-wide v2, v1, v2
aget-object v1, v0, p1
const/4 v4, 0x5
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v1, v0, p1
const/4 v4, 0x3
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v1, v0, p1
const/4 v4, 0x2
aget-wide v4, v1, v4
sub-long/2addr v2, v4
aget-object v0, v0, p1
const/4 v1, 0x4
aget-wide v4, v0, v1
sub-long/2addr v2, v4
return-wide v2
.line 221
:cond_23
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v0, v0, p1
aget-wide v1, v0, p2
return-wide v1
.end method
.method public getSentItemsCount(II)I
.registers 4
.param p1, "networkType" # I
.param p2, "dataType" # I
.line 214
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
aget-object v0, v0, p1
aget v0, v0, p2
return v0
.end method
.method public incrementReceivedBytesCount(IIJ)V
.registers 8
.param p1, "networkType" # I
.param p2, "dataType" # I
.param p3, "value" # J
.line 195
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v0, v0, p1
aget-wide v1, v0, p2
add-long/2addr v1, p3
aput-wide v1, v0, p2
.line 196
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 197
return-void
.end method
.method public incrementReceivedItemsCount(III)V
.registers 6
.param p1, "networkType" # I
.param p2, "dataType" # I
.param p3, "value" # I
.line 185
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
aget-object v0, v0, p1
aget v1, v0, p2
add-int/2addr v1, p3
aput v1, v0, p2
.line 186
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 187
return-void
.end method
.method public incrementSentBytesCount(IIJ)V
.registers 8
.param p1, "networkType" # I
.param p2, "dataType" # I
.param p3, "value" # J
.line 200
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v0, v0, p1
aget-wide v1, v0, p2
add-long/2addr v1, p3
aput-wide v1, v0, p2
.line 201
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 202
return-void
.end method
.method public incrementSentItemsCount(III)V
.registers 6
.param p1, "networkType" # I
.param p2, "dataType" # I
.param p3, "value" # I
.line 190
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
aget-object v0, v0, p1
aget v1, v0, p2
add-int/2addr v1, p3
aput v1, v0, p2
.line 191
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 192
return-void
.end method
.method public incrementTotalCallsTime(II)V
.registers 5
.param p1, "networkType" # I
.param p2, "value" # I
.line 205
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
aget v1, v0, p1
add-int/2addr v1, p2
aput v1, v0, p1
.line 206
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 207
return-void
.end method
.method public resetStats(I)V
.registers 7
.param p1, "networkType" # I
.line 240
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->resetStatsDate:[J
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
aput-wide v1, v0, p1
.line 241
const/4 v0, 0x0
.local v0, "a":I
:goto_9
const/4 v1, 0x7
const/4 v2, 0x0
if-ge v0, v1, :cond_2a
.line 242
iget-object v1, p0, Lim/tpelyyftgw/messenger/StatsController;->sentBytes:[[J
aget-object v1, v1, p1
const-wide/16 v3, 0x0
aput-wide v3, v1, v0
.line 243
iget-object v1, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedBytes:[[J
aget-object v1, v1, p1
aput-wide v3, v1, v0
.line 244
iget-object v1, p0, Lim/tpelyyftgw/messenger/StatsController;->sentItems:[[I
aget-object v1, v1, p1
aput v2, v1, v0
.line 245
iget-object v1, p0, Lim/tpelyyftgw/messenger/StatsController;->receivedItems:[[I
aget-object v1, v1, p1
aput v2, v1, v0
.line 241
add-int/lit8 v0, v0, 0x1
goto :goto_9
.line 247
.end local v0 # "a":I
:cond_2a
iget-object v0, p0, Lim/tpelyyftgw/messenger/StatsController;->callsTotalTime:[I
aput v2, v0, p1
.line 248
invoke-direct {p0}, Lim/tpelyyftgw/messenger/StatsController;->saveStats()V
.line 249
return-void
.end method