.class public final Lcom/nostra13/universalimageloader/utils/StorageUtils; .super Ljava/lang/Object; .source "StorageUtils.java" # static fields .field private static final EXTERNAL_STORAGE_PERMISSION:Ljava/lang/String; = "android.permission.WRITE_EXTERNAL_STORAGE" .field private static final INDIVIDUAL_DIR_NAME:Ljava/lang/String; = "uil-images" # direct methods .method private constructor ()V .registers 1 .line 38 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static getCacheDirectory(Landroid/content/Context;)Ljava/io/File; .registers 2 const/4 v0, 0x1 .line 52 invoke-static {p0, v0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->getCacheDirectory(Landroid/content/Context;Z)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static getCacheDirectory(Landroid/content/Context;Z)Ljava/io/File; .registers 3 .line 67 const-string v0, "" .line 70 :try_start_2 invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String; move-result-object v0 :try_end_6 .catch Ljava/lang/NullPointerException; {:try_start_2 .. :try_end_6} :catch_6 .catch Ljava/lang/IncompatibleClassChangeError; {:try_start_2 .. :try_end_6} :catch_6 :catch_6 if-eqz p1, :cond_1b .line 76 const-string p1, "mounted" invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_1b invoke-static {p0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->hasExternalStoragePermission(Landroid/content/Context;)Z move-result p1 if-eqz p1, :cond_1b .line 77 invoke-static {p0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->getExternalCacheDir(Landroid/content/Context;)Ljava/io/File; move-result-object p1 goto :goto_1c :cond_1b const/4 p1, 0x0 :goto_1c if-nez p1, :cond_22 .line 80 invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File; move-result-object p1 :cond_22 if-nez p1, :cond_4b .line 83 new-instance p1, Ljava/lang/StringBuilder; const-string v0, "/data/data/" invoke-direct {p1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object p0 invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 const-string p1, "/cache/" invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 .line 84 const-string p1, "Can\'t define system cache directory! \'%s\' will be used." filled-new-array {p0}, [Ljava/lang/Object; move-result-object v0 invoke-static {p1, v0}, Lcom/nostra13/universalimageloader/utils/L;->w(Ljava/lang/String;[Ljava/lang/Object;)V .line 85 new-instance p1, Ljava/io/File; invoke-direct {p1, p0}, Ljava/io/File;->(Ljava/lang/String;)V :cond_4b return-object p1 .end method .method private static getExternalCacheDir(Landroid/content/Context;)Ljava/io/File; .registers 5 .line 161 new-instance v0, Ljava/io/File; new-instance v1, Ljava/io/File; invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; move-result-object v2 const-string v3, "Android" invoke-direct {v1, v2, v3}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V const-string v2, "data" invoke-direct {v0, v1, v2}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 162 new-instance v1, Ljava/io/File; new-instance v2, Ljava/io/File; invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object p0 invoke-direct {v2, v0, p0}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V const-string p0, "cache" invoke-direct {v1, v2, p0}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 163 invoke-virtual {v1}, Ljava/io/File;->exists()Z move-result p0 if-nez p0, :cond_4a .line 164 invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z move-result p0 const/4 v0, 0x0 if-nez p0, :cond_38 .line 165 const-string p0, "Unable to create external cache directory" new-array v0, v0, [Ljava/lang/Object; invoke-static {p0, v0}, Lcom/nostra13/universalimageloader/utils/L;->w(Ljava/lang/String;[Ljava/lang/Object;)V const/4 p0, 0x0 return-object p0 .line 169 :cond_38 :try_start_38 new-instance p0, Ljava/io/File; const-string v2, ".nomedia" invoke-direct {p0, v1, v2}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V invoke-virtual {p0}, Ljava/io/File;->createNewFile()Z :try_end_42 .catch Ljava/io/IOException; {:try_start_38 .. :try_end_42} :catch_43 goto :goto_4a .line 171 :catch_43 const-string p0, "Can\'t create \".nomedia\" file in application external cache directory" new-array v0, v0, [Ljava/lang/Object; invoke-static {p0, v0}, Lcom/nostra13/universalimageloader/utils/L;->i(Ljava/lang/String;[Ljava/lang/Object;)V :cond_4a :goto_4a return-object v1 .end method .method public static getIndividualCacheDirectory(Landroid/content/Context;)Ljava/io/File; .registers 2 .line 99 const-string v0, "uil-images" invoke-static {p0, v0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->getIndividualCacheDirectory(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File; move-result-object p0 return-object p0 .end method .method public static getIndividualCacheDirectory(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File; .registers 3 .line 112 invoke-static {p0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->getCacheDirectory(Landroid/content/Context;)Ljava/io/File; move-result-object p0 .line 113 new-instance v0, Ljava/io/File; invoke-direct {v0, p0, p1}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 114 invoke-virtual {v0}, Ljava/io/File;->exists()Z move-result p1 if-nez p1, :cond_16 .line 115 invoke-virtual {v0}, Ljava/io/File;->mkdir()Z move-result p1 if-nez p1, :cond_16 goto :goto_17 :cond_16 move-object p0, v0 :goto_17 return-object p0 .end method .method public static getOwnCacheDirectory(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File; .registers 4 .line 132 const-string v0, "mounted" invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1c invoke-static {p0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->hasExternalStoragePermission(Landroid/content/Context;)Z move-result v0 if-eqz v0, :cond_1c .line 133 new-instance v0, Ljava/io/File; invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; move-result-object v1 invoke-direct {v0, v1, p1}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V goto :goto_1d :cond_1c const/4 v0, 0x0 :goto_1d if-eqz v0, :cond_2b .line 135 invoke-virtual {v0}, Ljava/io/File;->exists()Z move-result p1 if-nez p1, :cond_2f invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z move-result p1 if-nez p1, :cond_2f .line 136 :cond_2b invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File; move-result-object v0 :cond_2f return-object v0 .end method .method public static getOwnCacheDirectory(Landroid/content/Context;Ljava/lang/String;Z)Ljava/io/File; .registers 4 if-eqz p2, :cond_1e .line 151 const-string p2, "mounted" invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p2 if-eqz p2, :cond_1e invoke-static {p0}, Lcom/nostra13/universalimageloader/utils/StorageUtils;->hasExternalStoragePermission(Landroid/content/Context;)Z move-result p2 if-eqz p2, :cond_1e .line 152 new-instance p2, Ljava/io/File; invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File; move-result-object v0 invoke-direct {p2, v0, p1}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V goto :goto_1f :cond_1e const/4 p2, 0x0 :goto_1f if-eqz p2, :cond_2d .line 154 invoke-virtual {p2}, Ljava/io/File;->exists()Z move-result p1 if-nez p1, :cond_31 invoke-virtual {p2}, Ljava/io/File;->mkdirs()Z move-result p1 if-nez p1, :cond_31 .line 155 :cond_2d invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File; move-result-object p2 :cond_31 return-object p2 .end method .method private static hasExternalStoragePermission(Landroid/content/Context;)Z .registers 2 .line 178 const-string v0, "android.permission.WRITE_EXTERNAL_STORAGE" invoke-virtual {p0, v0}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I move-result p0 if-nez p0, :cond_a const/4 p0, 0x1 goto :goto_b :cond_a const/4 p0, 0x0 :goto_b return p0 .end method