SysCacheTaskHelper.smali
.class public Lcom/cleanmaster/junk/util/SysCacheTaskHelper;
.super Ljava/lang/Object;
.source "SysCacheTaskHelper.java"
# direct methods
.method public constructor <init>()V
.registers 1
.prologue
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static calcCacheSize(Landroid/content/pm/PackageStats;)J
.registers 3
.prologue
.line 46
if-nez p0, :cond_5
.line 47
const-wide/16 v0, 0x0
.line 49
:goto_4
return-wide v0
:cond_5
iget-wide v0, p0, Landroid/content/pm/PackageStats;->cacheSize:J
goto :goto_4
.end method
.method public static canIgnoreDataDataCache(Lcom/cm/plugincluster/junkengine/junk/engine/IEngineConfig;)Z
.registers 6
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
const/16 v3, 0x64
.line 195
.line 198
if-eqz p0, :cond_22
.line 199
const-string v2, "junk_scan_eng_setting"
const-string v4, "junk_scan_ignore_data_data_cache"
invoke-interface {p0, v2, v4, v3}, Lcom/cm/plugincluster/junkengine/junk/engine/IEngineConfig;->getCloudIntValue(Ljava/lang/String;Ljava/lang/String;I)I
move-result v2
.line 204
:goto_e
if-lez v2, :cond_20
.line 205
if-ge v2, v3, :cond_1d
.line 206
new-instance v4, Ljava/util/Random;
invoke-direct {v4}, Ljava/util/Random;-><init>()V
invoke-virtual {v4, v3}, Ljava/util/Random;->nextInt(I)I
move-result v3
if-ge v3, v2, :cond_1e
.line 211
:cond_1d
:goto_1d
return v0
:cond_1e
move v0, v1
.line 206
goto :goto_1d
:cond_20
move v0, v1
goto :goto_1d
:cond_22
move v2, v3
goto :goto_e
.end method
.method public static getAppName(ILandroid/content/pm/PackageInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
.registers 5
.prologue
const/4 v0, 0x0
.line 252
if-nez p1, :cond_4
.line 268
:cond_3
:goto_3
return-object v0
.line 255
:cond_4
and-int/lit8 v1, p0, 0x8
if-eqz v1, :cond_3
.line 259
iget-object v0, p1, Landroid/content/pm/PackageInfo;->packageName:Ljava/lang/String;
invoke-static {v0, p1}, Lcom/cleanmaster/junk/util/JunkUtils;->getLabelNameOut(Ljava/lang/String;Landroid/content/pm/PackageInfo;)Ljava/lang/String;
move-result-object v0
.line 260
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_3
.line 264
iget-object v1, p1, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
.line 265
if-eqz v1, :cond_3
if-eqz p2, :cond_3
.line 266
invoke-virtual {v1, p2}, Landroid/content/pm/ApplicationInfo;->loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;
move-result-object v0
invoke-interface {v0}, Ljava/lang/CharSequence;->toString()Ljava/lang/String;
move-result-object v0
goto :goto_3
.end method
.method public static getContext()Landroid/content/Context;
.registers 1
.prologue
.line 187
invoke-static {}, Lcom/cleanmaster/junk/util/JunkUtils;->getContext()Landroid/content/Context;
move-result-object v0
return-object v0
.end method
.method public static getSysCacheSizeOnSdCard(Landroid/content/pm/PackageInfo;Landroid/content/pm/PackageStats;)J
.registers 7
.prologue
const-wide/16 v0, 0x0
.line 33
if-eqz p0, :cond_6
if-nez p1, :cond_7
.line 42
:cond_6
:goto_6
return-wide v0
.line 37
:cond_7
iget-wide v2, p1, Landroid/content/pm/PackageStats;->externalCacheSize:J
.line 38
cmp-long v4, v2, v0
if-lez v4, :cond_6
move-wide v0, v2
.line 42
goto :goto_6
.end method
.method public static initLocalCacheCleanInfo(Ljava/util/List;)Ljava/util/TreeMap;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Landroid/content/pm/PackageInfo;",
">;)",
"Ljava/util/TreeMap",
"<",
"Ljava/lang/String;",
"Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;",
">;"
}
.end annotation
.prologue
.line 142
new-instance v1, Ljava/util/TreeMap;
invoke-direct {v1}, Ljava/util/TreeMap;-><init>()V
.line 143
invoke-interface {p0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_d
move-object v0, v1
.line 176
:goto_c
return-object v0
.line 147
:cond_d
new-instance v2, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
invoke-direct {v2, v0}, Ljava/util/ArrayList;-><init>(I)V
.line 148
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_1a
:goto_1a
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_32
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/pm/PackageInfo;
.line 149
iget-object v4, v0, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
if-eqz v4, :cond_1a
.line 152
iget-object v0, v0, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
invoke-virtual {v2, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_1a
.line 155
:cond_32
invoke-static {}, Lcom/cleanmaster/cleancloud/KCleanCloudManager;->createCacheCloudQuery()Lcom/cleanmaster/cleancloud/IKCacheCloudQuery;
move-result-object v0
.line 156
if-eqz v0, :cond_78
.line 157
invoke-static {}, Lcom/cleanmaster/cleancloudhelper/CleanCloudScanHelper;->getCurrentLanguage()Ljava/lang/String;
move-result-object v3
.line 158
invoke-interface {v0}, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery;->initialize()Z
.line 159
invoke-interface {v0, v3}, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery;->setLanguage(Ljava/lang/String;)Z
.line 161
invoke-interface {v0, v2}, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery;->queryCleanFlagByPkgName(Ljava/util/Collection;)Ljava/util/ArrayList;
move-result-object v2
.line 162
invoke-interface {v0}, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery;->unInitialize()V
.line 163
if-eqz v2, :cond_78
.line 164
invoke-virtual {v2}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v2
:cond_4f
:goto_4f
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_78
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;
.line 165
const/4 v3, -0x1
iget v4, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
if-eq v3, v4, :cond_4f
.line 168
iget v3, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v3, v3, 0x4
if-nez v3, :cond_72
iget v3, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v3, v3, 0x8
if-nez v3, :cond_72
iget v3, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v3, v3, 0x20
if-eqz v3, :cond_4f
.line 171
:cond_72
iget-object v3, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mPkgName:Ljava/lang/String;
invoke-virtual {v1, v3, v0}, Ljava/util/TreeMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_4f
:cond_78
move-object v0, v1
.line 176
goto :goto_c
.end method
.method public static initSysScanPathList()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 123
const/4 v0, 0x0
.line 125
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x13
if-lt v1, v2, :cond_10
.line 126
new-instance v0, Lcom/cleanmaster/junk/util/StorageList;
invoke-direct {v0}, Lcom/cleanmaster/junk/util/StorageList;-><init>()V
invoke-virtual {v0}, Lcom/cleanmaster/junk/util/StorageList;->getMountedVolumePaths()Ljava/util/ArrayList;
move-result-object v0
.line 128
:cond_10
if-nez v0, :cond_28
.line 129
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object v1
.line 130
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_28
.line 131
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 132
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 135
:cond_28
return-object v0
.end method
.method public static isCacheInAndroidDataCanNotBeClean(Ljava/lang/String;Ljava/util/TreeMap;Z)Z
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/TreeMap",
"<",
"Ljava/lang/String;",
"Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;",
">;Z)Z"
}
.end annotation
.prologue
const/4 v1, 0x0
.line 94
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_f
if-eqz p1, :cond_f
invoke-virtual {p1}, Ljava/util/TreeMap;->isEmpty()Z
move-result v0
if-eqz v0, :cond_11
:cond_f
move v0, v1
.line 107
:goto_10
return v0
.line 98
:cond_11
invoke-virtual {p1, p0}, Ljava/util/TreeMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;
.line 99
if-eqz v0, :cond_30
.line 100
iget v2, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v2, v2, 0x4
if-eqz v2, :cond_2c
const/4 v2, 0x1
.line 101
:goto_20
if-eqz v2, :cond_2e
if-eqz p2, :cond_2e
iget v0, v0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v0, v0, 0x10
if-eqz v0, :cond_2e
move v0, v1
.line 104
goto :goto_10
:cond_2c
move v2, v1
.line 100
goto :goto_20
:cond_2e
move v0, v2
goto :goto_10
:cond_30
move v0, v1
goto :goto_10
.end method
.method public static isCacheInDataDataCanNotBeClean(Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;)Z
.registers 3
.prologue
const/4 v0, 0x0
.line 86
.line 87
if-eqz p0, :cond_a
.line 88
iget v1, p0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v1, v1, 0x8
if-eqz v1, :cond_a
const/4 v0, 0x1
.line 90
:cond_a
return v0
.end method
.method public static isCompetitorFeatureEnabled()Z
.registers 1
.prologue
.line 191
const/4 v0, 0x2
invoke-static {v0}, Lcom/cleanmaster/junk/util/CompetitorStrategy;->isCompetitorFeatureEnabled(I)Z
move-result v0
return v0
.end method
.method public static isNeedSysScan(Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;)Z
.registers 2
.prologue
.line 286
if-eqz p0, :cond_8
iget v0, p0, Lcom/cleanmaster/cleancloud/IKCacheCloudQuery$SysCacheFlagQueryData;->mSysFlag:I
and-int/lit8 v0, v0, 0x20
if-nez v0, :cond_a
:cond_8
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public static isRoot()Z
.registers 1
.prologue
.line 183
invoke-static {}, Lcom/cm/plugincluster/root/SuExecHostProxy;->getInstance()Lcom/cm/plugincluster/root/ISuExec;
move-result-object v0
invoke-interface {v0}, Lcom/cm/plugincluster/root/ISuExec;->checkRoot()Z
move-result v0
return v0
.end method
.method public static isSamsungSpecial()Z
.registers 2
.prologue
.line 114
const-string v0, "samsung"
sget-object v1, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_22
const-string v0, "SM-G9250"
sget-object v1, Landroid/os/Build;->MODEL:Ljava/lang/String;
.line 115
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_22
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x16
if-eq v0, v1, :cond_20
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-ne v0, v1, :cond_22
:cond_20
const/4 v0, 0x1
.line 114
:goto_21
return v0
.line 115
:cond_22
const/4 v0, 0x0
goto :goto_21
.end method
.method public static newCacheInfo(Landroid/content/pm/PackageInfo;ILandroid/content/pm/PackageManager;)Lcom/cleanmaster/junk/bean/CacheInfo;
.registers 5
.prologue
.line 290
new-instance v0, Lcom/cleanmaster/junk/bean/CacheInfo;
sget-object v1, Lcom/cm/plugincluster/junkengine/junk/engine/IJunkRequest$EM_JUNK_DATA_TYPE;->SYSCACHE:Lcom/cm/plugincluster/junkengine/junk/engine/IJunkRequest$EM_JUNK_DATA_TYPE;
invoke-direct {v0, v1}, Lcom/cleanmaster/junk/bean/CacheInfo;-><init>(Lcom/cm/plugincluster/junkengine/junk/engine/IJunkRequest$EM_JUNK_DATA_TYPE;)V
.line 291
invoke-virtual {v0, p0}, Lcom/cleanmaster/junk/bean/CacheInfo;->setPackageInfo(Landroid/content/pm/PackageInfo;)V
.line 292
invoke-static {p1, p0, p2}, Lcom/cleanmaster/junk/util/SysCacheTaskHelper;->getAppName(ILandroid/content/pm/PackageInfo;Landroid/content/pm/PackageManager;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/cleanmaster/junk/bean/CacheInfo;->setAppName(Ljava/lang/String;)V
.line 293
return-object v0
.end method
.method public static scanSysCacheOnSdCard(Ljava/util/List;Ljava/lang/String;J)Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Ljava/lang/String;",
">;",
"Ljava/lang/String;",
"J)",
"Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;"
}
.end annotation
.prologue
const/4 v6, 0x0
const-wide/16 v4, 0x0
.line 222
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_11
if-eqz p0, :cond_11
invoke-interface {p0}, Ljava/util/List;->isEmpty()Z
move-result v0
if-eqz v0, :cond_13
:cond_11
move-object v0, v6
.line 248
:goto_12
return-object v0
.line 225
:cond_13
new-instance v7, Ljava/util/ArrayList;
invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
.line 226
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_1c
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_4d
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 227
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {v0}, Lcom/cleanmaster/junk/util/FileUtils;->addSlash(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "Android/data/"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, "/cache"
invoke-virtual {v0, v2}, 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
invoke-interface {v7, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_1c
.line 231
:cond_4d
cmp-long v0, p2, v4
if-lez v0, :cond_57
.line 239
:goto_51
cmp-long v0, p2, v4
if-gtz v0, :cond_6f
move-object v0, v6
.line 240
goto :goto_12
.line 234
:cond_57
invoke-interface {v7}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v8
move-wide v2, v4
:goto_5c
invoke-interface {v8}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_7b
invoke-interface {v8}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 235
invoke-static {v0}, Lcom/cleanmaster/util/path/PathOperFunc;->computeFileSizeByBlock(Ljava/lang/String;)J
move-result-wide v0
add-long/2addr v0, v2
move-wide v2, v0
.line 236
goto :goto_5c
.line 243
:cond_6f
new-instance v0, Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;
invoke-direct {v0}, Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;-><init>()V
.line 244
iput-wide p2, v0, Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;->nTotalSize:J
.line 245
iput-object p1, v0, Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;->strPackageName:Ljava/lang/String;
.line 246
iput-object v7, v0, Lcom/cm/plugincluster/junkengine/junk/scan/SysCacheOnCardInfo;->strAbsPathList:Ljava/util/List;
goto :goto_12
:cond_7b
move-wide p2, v2
goto :goto_51
.end method
.method public static scanSysCacheWithRoot(Ljava/lang/String;)J
.registers 3
.prologue
.line 59
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_9
.line 60
const-wide/16 v0, 0x0
.line 64
:goto_8
return-wide v0
.line 63
:cond_9
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "/data/data/"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "/cache"
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
.line 64
invoke-static {}, Lcom/cm/plugincluster/root/SuExecHostProxy;->getInstance()Lcom/cm/plugincluster/root/ISuExec;
move-result-object v1
invoke-interface {v1, v0}, Lcom/cm/plugincluster/root/ISuExec;->getPathFileSize(Ljava/lang/String;)J
move-result-wide v0
goto :goto_8
.end method