CleanUtils.smali

.class public final Lcom/blankj/utilcode/util/CleanUtils;
.super Ljava/lang/Object;
.source "CleanUtils.java"


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method private constructor <init>()V
    .registers 3

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

    .line 18
    new-instance v0, Ljava/lang/UnsupportedOperationException;

    const-string/jumbo v1, "u can\'t instantiate me..."

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

    throw v0
.end method

.method public static cleanCustomDir(Ljava/io/File;)Z
    .registers 2
    .param p0, "dir"    # Ljava/io/File;

    .line 100
    invoke-static {p0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method public static cleanCustomDir(Ljava/lang/String;)Z
    .registers 2
    .param p0, "dirPath"    # Ljava/lang/String;

    .line 90
    invoke-static {p0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static cleanExternalCache()Z
    .registers 2

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

    move-result-object v0

    const-string v1, "mounted"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_1c

    .line 80
    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v0

    invoke-virtual {v0}, Landroid/app/Application;->getExternalCacheDir()Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    if-eqz v0, :cond_1c

    const/4 v0, 0x1

    goto :goto_1d

    :cond_1c
    const/4 v0, 0x0

    .line 79
    :goto_1d
    return v0
.end method

.method public static cleanInternalCache()Z
    .registers 1

    .line 28
    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v0

    invoke-virtual {v0}, Landroid/app/Application;->getCacheDir()Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method public static cleanInternalDbByName(Ljava/lang/String;)Z
    .registers 2
    .param p0, "dbName"    # Ljava/lang/String;

    .line 59
    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v0

    invoke-virtual {v0, p0}, Landroid/app/Application;->deleteDatabase(Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method public static cleanInternalDbs()Z
    .registers 3

    .line 48
    new-instance v0, Ljava/io/File;

    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v1

    invoke-virtual {v1}, Landroid/app/Application;->getFilesDir()Ljava/io/File;

    move-result-object v1

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

    move-result-object v1

    const-string v2, "databases"

    invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method public static cleanInternalFiles()Z
    .registers 1

    .line 38
    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v0

    invoke-virtual {v0}, Landroid/app/Application;->getFilesDir()Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method public static cleanInternalSp()Z
    .registers 3

    .line 69
    new-instance v0, Ljava/io/File;

    invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;

    move-result-object v1

    invoke-virtual {v1}, Landroid/app/Application;->getFilesDir()Ljava/io/File;

    move-result-object v1

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

    move-result-object v1

    const-string/jumbo v2, "shared_prefs"

    invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method private static deleteDir(Ljava/io/File;)Z
    .registers 7
    .param p0, "dir"    # Ljava/io/File;

    .line 131
    const/4 v0, 0x0

    if-nez p0, :cond_4

    return v0

    .line 133
    :cond_4
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v1

    if-nez v1, :cond_c

    const/4 v0, 0x1

    return v0

    .line 135
    :cond_c
    invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z

    move-result v1

    if-nez v1, :cond_13

    return v0

    .line 136
    :cond_13
    invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;

    move-result-object v1

    .line 137
    .local v1, "files":[Ljava/io/File;
    if-eqz v1, :cond_3f

    array-length v2, v1

    if-eqz v2, :cond_3f

    .line 138
    array-length v2, v1

    const/4 v3, 0x0

    :goto_1e
    if-ge v3, v2, :cond_3f

    aget-object v4, v1, v3

    .line 139
    .local v4, "file":Ljava/io/File;
    invoke-virtual {v4}, Ljava/io/File;->isFile()Z

    move-result v5

    if-eqz v5, :cond_2f

    .line 140
    invoke-virtual {v4}, Ljava/io/File;->delete()Z

    move-result v5

    if-nez v5, :cond_3c

    return v0

    .line 141
    :cond_2f
    invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z

    move-result v5

    if-eqz v5, :cond_3c

    .line 142
    invoke-static {v4}, Lcom/blankj/utilcode/util/CleanUtils;->deleteDir(Ljava/io/File;)Z

    move-result v5

    if-nez v5, :cond_3c

    return v0

    .line 138
    .end local v4    # "file":Ljava/io/File;
    :cond_3c
    add-int/lit8 v3, v3, 0x1

    goto :goto_1e

    .line 146
    :cond_3f
    invoke-virtual {p0}, Ljava/io/File;->delete()Z

    move-result v0

    return v0
.end method

.method private static deleteFilesInDir(Ljava/io/File;)Z
    .registers 8
    .param p0, "dir"    # Ljava/io/File;

    .line 112
    const/4 v0, 0x0

    if-nez p0, :cond_4

    return v0

    .line 114
    :cond_4
    invoke-virtual {p0}, Ljava/io/File;->exists()Z

    move-result v1

    const/4 v2, 0x1

    if-nez v1, :cond_c

    return v2

    .line 116
    :cond_c
    invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z

    move-result v1

    if-nez v1, :cond_13

    return v0

    .line 117
    :cond_13
    invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;

    move-result-object v1

    .line 118
    .local v1, "files":[Ljava/io/File;
    if-eqz v1, :cond_3f

    array-length v3, v1

    if-eqz v3, :cond_3f

    .line 119
    array-length v3, v1

    const/4 v4, 0x0

    :goto_1e
    if-ge v4, v3, :cond_3f

    aget-object v5, v1, v4

    .line 120
    .local v5, "file":Ljava/io/File;
    invoke-virtual {v5}, Ljava/io/File;->isFile()Z

    move-result v6

    if-eqz v6, :cond_2f

    .line 121
    invoke-virtual {v5}, Ljava/io/File;->delete()Z

    move-result v6

    if-nez v6, :cond_3c

    return v0

    .line 122
    :cond_2f
    invoke-virtual {v5}, Ljava/io/File;->isDirectory()Z

    move-result v6

    if-eqz v6, :cond_3c

    .line 123
    invoke-static {v5}, Lcom/blankj/utilcode/util/CleanUtils;->deleteDir(Ljava/io/File;)Z

    move-result v6

    if-nez v6, :cond_3c

    return v0

    .line 119
    .end local v5    # "file":Ljava/io/File;
    :cond_3c
    add-int/lit8 v4, v4, 0x1

    goto :goto_1e

    .line 127
    :cond_3f
    return v2
.end method

.method public static deleteFilesInDir(Ljava/lang/String;)Z
    .registers 2
    .param p0, "dirPath"    # Ljava/lang/String;

    .line 104
    invoke-static {p0}, Lcom/blankj/utilcode/util/CleanUtils;->getFileByPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-static {v0}, Lcom/blankj/utilcode/util/CleanUtils;->deleteFilesInDir(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method private static getFileByPath(Ljava/lang/String;)Ljava/io/File;
    .registers 2
    .param p0, "filePath"    # Ljava/lang/String;

    .line 150
    invoke-static {p0}, Lcom/blankj/utilcode/util/CleanUtils;->isSpace(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_8

    const/4 v0, 0x0

    goto :goto_d

    :cond_8
    new-instance v0, Ljava/io/File;

    invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    :goto_d
    return-object v0
.end method

.method private static isSpace(Ljava/lang/String;)Z
    .registers 5
    .param p0, "s"    # Ljava/lang/String;

    .line 154
    const/4 v0, 0x1

    if-nez p0, :cond_4

    return v0

    .line 155
    :cond_4
    const/4 v1, 0x0

    .local v1, "i":I
    invoke-virtual {p0}, Ljava/lang/String;->length()I

    move-result v2

    .local v2, "len":I
    :goto_9
    if-ge v1, v2, :cond_1a

    .line 156
    invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C

    move-result v3

    invoke-static {v3}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v3

    if-nez v3, :cond_17

    .line 157
    const/4 v0, 0x0

    return v0

    .line 155
    :cond_17
    add-int/lit8 v1, v1, 0x1

    goto :goto_9

    .line 160
    .end local v1    # "i":I
    .end local v2    # "len":I
    :cond_1a
    return v0
.end method