j.smali

.class public Lcom/cleanmaster/service/b/j;
.super Lcom/cleanmaster/hpsharelib/report/BaseTracer;
.source "cm_si_cmoc.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/cleanmaster/service/b/j$a;
    }
.end annotation


# direct methods
.method public constructor <init>()V
    .registers 2

    .prologue
    .line 29
    const-string v0, "cm_si_cmoc"

    invoke-direct {p0, v0}, Lcom/cleanmaster/hpsharelib/report/BaseTracer;-><init>(Ljava/lang/String;)V

    .line 30
    return-void
.end method

.method public static a(Landroid/content/Context;Ljava/lang/String;)J
    .registers 11

    .prologue
    const/4 v8, 0x0

    const/4 v3, 0x1

    .line 125
    new-array v1, v3, [J

    .line 126
    invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v0

    .line 127
    new-instance v2, Ljava/util/concurrent/CountDownLatch;

    invoke-direct {v2, v3}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V

    .line 129
    :try_start_d
    invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v3

    const-string v4, "getPackageSizeInfo"

    const/4 v5, 0x2

    new-array v5, v5, [Ljava/lang/Class;

    const/4 v6, 0x0

    const-class v7, Ljava/lang/String;

    aput-object v7, v5, v6

    const/4 v6, 0x1

    const-class v7, Landroid/content/pm/IPackageStatsObserver;

    aput-object v7, v5, v6

    invoke-virtual {v3, v4, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;

    move-result-object v3

    .line 130
    const/4 v4, 0x2

    new-array v4, v4, [Ljava/lang/Object;

    const/4 v5, 0x0

    aput-object p1, v4, v5

    const/4 v5, 0x1

    new-instance v6, Lcom/cleanmaster/service/b/k;

    invoke-direct {v6, v1, v2}, Lcom/cleanmaster/service/b/k;-><init>([JLjava/util/concurrent/CountDownLatch;)V

    aput-object v6, v4, v5

    invoke-virtual {v3, v0, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
    :try_end_35
    .catch Ljava/lang/Exception; {:try_start_d .. :try_end_35} :catch_3f

    .line 142
    :goto_35
    const-wide/16 v4, 0x1

    :try_start_37
    sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-virtual {v2, v4, v5, v0}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z
    :try_end_3c
    .catch Ljava/lang/InterruptedException; {:try_start_37 .. :try_end_3c} :catch_44

    .line 146
    :goto_3c
    aget-wide v0, v1, v8

    return-wide v0

    .line 137
    :catch_3f
    move-exception v0

    .line 138
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_35

    .line 143
    :catch_44
    move-exception v0

    .line 144
    invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V

    goto :goto_3c
.end method

.method public static a()V
    .registers 13

    .prologue
    const/4 v12, 0x1

    const-wide/16 v10, 0x0

    const/4 v1, 0x0

    const/4 v9, 0x2

    const/4 v8, 0x0

    .line 33
    const-string v0, "android.permission.WRITE_EXTERNAL_STORAGE"

    invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/system/SystemUtils;->simpleCheckSelfPermission(Ljava/lang/String;)Z

    move-result v0

    if-nez v0, :cond_f

    .line 82
    :cond_e
    :goto_e
    return-void

    .line 37
    :cond_f
    new-instance v0, Landroid/os/StatFs;

    const-string v2, "/data/data"

    invoke-direct {v0, v2}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V

    .line 39
    const/4 v2, 0x3

    new-array v2, v2, [J

    .line 41
    new-instance v3, Lcom/cleanmaster/service/b/j;

    invoke-direct {v3}, Lcom/cleanmaster/service/b/j;-><init>()V

    .line 42
    invoke-virtual {v3, v12}, Lcom/cleanmaster/service/b/j;->a(I)Lcom/cleanmaster/service/b/j;

    move-result-object v3

    .line 43
    invoke-virtual {v0}, Landroid/os/StatFs;->getBlockCount()I

    move-result v4

    int-to-long v4, v4

    invoke-virtual {v0}, Landroid/os/StatFs;->getBlockSize()I

    move-result v6

    int-to-long v6, v6

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v3, v4, v5}, Lcom/cleanmaster/service/b/j;->a(J)Lcom/cleanmaster/service/b/j;

    move-result-object v3

    .line 44
    invoke-virtual {v0}, Landroid/os/StatFs;->getBlockCount()I

    move-result v4

    invoke-virtual {v0}, Landroid/os/StatFs;->getFreeBlocks()I

    move-result v5

    sub-int/2addr v4, v5

    int-to-long v4, v4

    invoke-virtual {v0}, Landroid/os/StatFs;->getBlockSize()I

    move-result v0

    int-to-long v6, v0

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v3, v4, v5}, Lcom/cleanmaster/service/b/j;->b(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 45
    invoke-static {}, Lcom/keniu/security/m;->d()Landroid/content/Context;

    move-result-object v3

    invoke-static {}, Lcom/keniu/security/m;->d()Landroid/content/Context;

    move-result-object v4

    invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;

    move-result-object v4

    invoke-static {v3, v4}, Lcom/cleanmaster/service/b/j;->a(Landroid/content/Context;Ljava/lang/String;)J

    move-result-wide v4

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->c(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    invoke-virtual {v0}, Lcom/cleanmaster/service/b/j;->report()V

    .line 50
    :try_start_68
    new-instance v3, Landroid/os/StatFs;

    invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

    move-result-object v0

    invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v3, v0}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V
    :try_end_75
    .catch Ljava/lang/Exception; {:try_start_68 .. :try_end_75} :catch_119

    .line 55
    invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0, v2, v1}, Lcom/cleanmaster/util/path/PathOperFunc;->computeFileSize(Ljava/lang/String;[JLcom/cleanmaster/util/IProgressCtrl;)V

    .line 56
    new-instance v0, Lcom/cleanmaster/service/b/j;

    invoke-direct {v0}, Lcom/cleanmaster/service/b/j;-><init>()V

    .line 57
    invoke-virtual {v0, v9}, Lcom/cleanmaster/service/b/j;->a(I)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 58
    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockCount()I

    move-result v4

    int-to-long v4, v4

    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockSize()I

    move-result v6

    int-to-long v6, v6

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->a(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 59
    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockCount()I

    move-result v4

    invoke-virtual {v3}, Landroid/os/StatFs;->getFreeBlocks()I

    move-result v5

    sub-int/2addr v4, v5

    int-to-long v4, v4

    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockSize()I

    move-result v6

    int-to-long v6, v6

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->b(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    aget-wide v4, v2, v8

    .line 60
    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->c(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 61
    invoke-virtual {v0}, Lcom/cleanmaster/service/b/j;->report()V

    .line 63
    invoke-static {}, Lcom/keniu/security/h;->h()Ljava/io/File;

    move-result-object v0

    .line 65
    if-eqz v0, :cond_11c

    .line 66
    invoke-virtual {v0}, Ljava/io/File;->getParent()Ljava/lang/String;

    move-result-object v0

    .line 69
    :goto_c7
    aput-wide v10, v2, v8

    .line 70
    aput-wide v10, v2, v12

    .line 71
    aput-wide v10, v2, v9

    .line 73
    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v4

    if-nez v4, :cond_e

    .line 74
    invoke-static {v0, v2, v1}, Lcom/cleanmaster/util/path/PathOperFunc;->computeFileSize(Ljava/lang/String;[JLcom/cleanmaster/util/IProgressCtrl;)V

    .line 75
    new-instance v0, Lcom/cleanmaster/service/b/j;

    invoke-direct {v0}, Lcom/cleanmaster/service/b/j;-><init>()V

    .line 76
    invoke-virtual {v0, v9}, Lcom/cleanmaster/service/b/j;->a(I)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 77
    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockCount()I

    move-result v1

    int-to-long v4, v1

    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockSize()I

    move-result v1

    int-to-long v6, v1

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->a(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 78
    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockCount()I

    move-result v1

    invoke-virtual {v3}, Landroid/os/StatFs;->getFreeBlocks()I

    move-result v4

    sub-int/2addr v1, v4

    int-to-long v4, v1

    invoke-virtual {v3}, Landroid/os/StatFs;->getBlockSize()I

    move-result v1

    int-to-long v6, v1

    mul-long/2addr v4, v6

    invoke-static {v4, v5}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v4

    invoke-virtual {v0, v4, v5}, Lcom/cleanmaster/service/b/j;->b(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    aget-wide v2, v2, v8

    .line 79
    invoke-static {v2, v3}, Lcom/cleanmaster/service/b/j;->K(J)J

    move-result-wide v2

    invoke-virtual {v0, v2, v3}, Lcom/cleanmaster/service/b/j;->c(J)Lcom/cleanmaster/service/b/j;

    move-result-object v0

    .line 80
    invoke-virtual {v0}, Lcom/cleanmaster/service/b/j;->report()V

    goto/16 :goto_e

    .line 51
    :catch_119
    move-exception v0

    goto/16 :goto_e

    :cond_11c
    move-object v0, v1

    goto :goto_c7
.end method


# virtual methods
.method public a(I)Lcom/cleanmaster/service/b/j;
    .registers 3

    .prologue
    .line 96
    const-string/jumbo v0, "rtype"

    invoke-virtual {p0, v0, p1}, Lcom/cleanmaster/service/b/j;->set(Ljava/lang/String;I)V

    .line 97
    return-object p0
.end method

.method public a(J)Lcom/cleanmaster/service/b/j;
    .registers 4

    .prologue
    .line 104
    const-string/jumbo v0, "rsize"

    invoke-virtual {p0, v0, p1, p2}, Lcom/cleanmaster/service/b/j;->set(Ljava/lang/String;J)V

    .line 105
    return-object p0
.end method

.method public b(J)Lcom/cleanmaster/service/b/j;
    .registers 4

    .prologue
    .line 112
    const-string/jumbo v0, "usedsize"

    invoke-virtual {p0, v0, p1, p2}, Lcom/cleanmaster/service/b/j;->set(Ljava/lang/String;J)V

    .line 113
    return-object p0
.end method

.method public c(J)Lcom/cleanmaster/service/b/j;
    .registers 4

    .prologue
    .line 120
    const-string v0, "cmused"

    invoke-virtual {p0, v0, p1, p2}, Lcom/cleanmaster/service/b/j;->set(Ljava/lang/String;J)V

    .line 121
    return-object p0
.end method

.method public reset()V
    .registers 5

    .prologue
    const-wide/16 v2, 0x0

    .line 86
    const/4 v0, 0x0

    invoke-virtual {p0, v0}, Lcom/cleanmaster/service/b/j;->a(I)Lcom/cleanmaster/service/b/j;

    .line 87
    invoke-virtual {p0, v2, v3}, Lcom/cleanmaster/service/b/j;->a(J)Lcom/cleanmaster/service/b/j;

    .line 88
    invoke-virtual {p0, v2, v3}, Lcom/cleanmaster/service/b/j;->b(J)Lcom/cleanmaster/service/b/j;

    .line 89
    invoke-virtual {p0, v2, v3}, Lcom/cleanmaster/service/b/j;->c(J)Lcom/cleanmaster/service/b/j;

    .line 90
    return-void
.end method