MemoryInfo.smali

.class public Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;
.super Ljava/lang/Object;
.source "MemoryInfo.java"


# instance fields
.field public freeSize:J

.field public killedProcessCount:I

.field public originalPercentage:I

.field private percentage:I

.field public totalCleaned:J

.field public totalSize:J

.field public usedSize:J


# direct methods
.method private constructor <init>()V
    .registers 1

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

    .line 26
    return-void
.end method

.method public static newInstance()Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;
    .registers 1

    .prologue
    .line 65
    new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;

    invoke-direct {v0}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;-><init>()V

    .line 66
    invoke-virtual {v0}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->update()V

    .line 67
    return-object v0
.end method

.method public static newInstance(J)Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;
    .registers 4

    .prologue
    .line 72
    new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;

    invoke-direct {v0}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;-><init>()V

    .line 73
    invoke-virtual {v0, p0, p1}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->update(J)V

    .line 74
    return-object v0
.end method

.method private writeMemoryErrorLog()V
    .registers 2

    .prologue
    .line 88
    new-instance v0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo$1;

    invoke-direct {v0, p0}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo$1;-><init>(Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;)V

    invoke-static {v0}, Lcom/cleanmaster/base/util/concurrent/BackgroundThread;->post(Ljava/lang/Runnable;)V

    .line 95
    return-void
.end method


# virtual methods
.method public addCleanedCount()V
    .registers 2

    .prologue
    .line 146
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->killedProcessCount:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->killedProcessCount:I

    .line 147
    return-void
.end method

.method public addCleanedMem(J)V
    .registers 6

    .prologue
    .line 140
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalCleaned:J

    add-long/2addr v0, p1

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalCleaned:J

    .line 141
    return-void
.end method

.method public cleaned(J)V
    .registers 10

    .prologue
    const-wide/16 v4, 0x0

    .line 109
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    sub-long/2addr v0, p1

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    .line 110
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    add-long/2addr v0, p1

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    .line 111
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    long-to-float v0, v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    long-to-float v1, v2

    div-float/2addr v0, v1

    const/high16 v1, 0x42c80000    # 100.0f

    mul-float/2addr v0, v1

    float-to-int v0, v0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    .line 114
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    if-lez v0, :cond_29

    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    cmp-long v0, v0, v4

    if-lez v0, :cond_29

    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    cmp-long v0, v0, v4

    if-gtz v0, :cond_66

    .line 115
    :cond_29
    const-string v0, "MemoryCleaned"

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v2, "usedSize:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, ";totalSize:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, ";percentage:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    const-string v2, ";clean size:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Lcom/cleanmaster/hpsharelib/utils/OpLog;->x(Ljava/lang/String;Ljava/lang/String;)V

    .line 117
    :cond_66
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    if-gez v0, :cond_6f

    .line 118
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    neg-int v0, v0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    .line 121
    :cond_6f
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    cmp-long v0, v0, v4

    if-gez v0, :cond_7a

    .line 122
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    neg-long v0, v0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    .line 125
    :cond_7a
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    cmp-long v0, v0, v4

    if-gez v0, :cond_85

    .line 126
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    neg-long v0, v0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    .line 128
    :cond_85
    return-void
.end method

.method public getCleanedPercent()F
    .registers 5

    .prologue
    .line 101
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_a

    .line 102
    const/4 v0, 0x0

    .line 105
    :goto_9
    return v0

    .line 104
    :cond_a
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalCleaned:J

    long-to-float v0, v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    long-to-float v1, v2

    div-float/2addr v0, v1

    .line 105
    goto :goto_9
.end method

.method public getPercent()I
    .registers 2

    .prologue
    .line 81
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    return v0
.end method

.method public resetCleanedMemory()V
    .registers 3

    .prologue
    .line 131
    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalCleaned:J

    .line 132
    const/4 v0, 0x0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->killedProcessCount:I

    .line 133
    return-void
.end method

.method public toString()Ljava/lang/String;
    .registers 5

    .prologue
    .line 151
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string v1, "MemoryInfo [totalSize="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, ", usedSize="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, ", freeSize="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, ", percentage="

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    iget v1, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v0

    const-string v1, "]"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public update()V
    .registers 3

    .prologue
    .line 29
    invoke-static {}, Lcom/cleanmaster/hpsharelib/boost/process/util/ProcessInfoHelper;->getAvailableMemoryByte()J

    move-result-wide v0

    invoke-virtual {p0, v0, v1}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->update(J)V

    .line 30
    return-void
.end method

.method public update(J)V
    .registers 10

    .prologue
    const-wide/16 v4, 0x0

    .line 33
    invoke-static {}, Lcom/cleanmaster/hpsharelib/boost/process/util/ProcessInfoHelper;->getTotalMemoryByte()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    .line 34
    iput-wide p1, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    .line 35
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    sub-long/2addr v0, v2

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    .line 36
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    cmp-long v0, v0, v4

    if-nez v0, :cond_3e

    .line 37
    const/4 v0, 0x0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    .line 53
    :cond_1a
    :goto_1a
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->originalPercentage:I

    .line 56
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    if-lez v0, :cond_3a

    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    const/16 v1, 0x64

    if-ge v0, v1, :cond_3a

    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    cmp-long v0, v0, v4

    if-lez v0, :cond_3a

    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    cmp-long v0, v0, v4

    if-lez v0, :cond_3a

    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    cmp-long v0, v0, v4

    if-gtz v0, :cond_3d

    .line 60
    :cond_3a
    invoke-direct {p0}, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->writeMemoryErrorLog()V

    .line 62
    :cond_3d
    return-void

    .line 40
    :cond_3e
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    long-to-float v0, v0

    iget-wide v2, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->totalSize:J

    long-to-float v1, v2

    div-float/2addr v0, v1

    const/high16 v1, 0x42c80000    # 100.0f

    mul-float/2addr v0, v1

    float-to-int v0, v0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    .line 42
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    if-gez v0, :cond_54

    .line 43
    iget v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    neg-int v0, v0

    iput v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->percentage:I

    .line 45
    :cond_54
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    cmp-long v0, v0, v4

    if-gez v0, :cond_5f

    .line 46
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    neg-long v0, v0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->usedSize:J

    .line 49
    :cond_5f
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    cmp-long v0, v0, v4

    if-gez v0, :cond_1a

    .line 50
    iget-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    neg-long v0, v0

    iput-wide v0, p0, Lcom/cleanmaster/hpsharelib/base/util/system/MemoryInfo;->freeSize:J

    goto :goto_1a
.end method