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