FileStoreImpl.smali
.class public Lio/fabric/sdk/android/services/persistence/FileStoreImpl;
.super Ljava/lang/Object;
.source "FileStoreImpl.java"
# interfaces
.implements Lio/fabric/sdk/android/services/persistence/FileStore;
# instance fields
.field private final contentPath:Ljava/lang/String;
.field private final context:Landroid/content/Context;
.field private final legacySupport:Ljava/lang/String;
# direct methods
.method public constructor <init>(Lio/fabric/sdk/android/Kit;)V
.registers 3
.line 37
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 38
invoke-virtual {p1}, Lio/fabric/sdk/android/Kit;->getContext()Landroid/content/Context;
move-result-object v0
if-eqz v0, :cond_2f
.line 43
invoke-virtual {p1}, Lio/fabric/sdk/android/Kit;->getContext()Landroid/content/Context;
move-result-object v0
iput-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
.line 44
invoke-virtual {p1}, Lio/fabric/sdk/android/Kit;->getPath()Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->contentPath:Ljava/lang/String;
.line 45
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Android/"
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->legacySupport:Ljava/lang/String;
return-void
.line 39
:cond_2f
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "Cannot get directory before context has been set. Call Fabric.with() first"
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public getCacheDir()Ljava/io/File;
.registers 2
.line 54
iget-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
move-result-object v0
invoke-virtual {p0, v0}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->prepare(Ljava/io/File;)Ljava/io/File;
move-result-object v0
return-object v0
.end method
.method public getExternalCacheDir()Ljava/io/File;
.registers 5
.line 65
invoke-virtual {p0}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->isExternalStorageAvailable()Z
move-result v0
if-eqz v0, :cond_35
.line 66
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x8
if-lt v0, v1, :cond_13
.line 67
iget-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getExternalCacheDir()Ljava/io/File;
move-result-object v0
goto :goto_36
.line 69
:cond_13
new-instance v0, Ljava/io/File;
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-object v3, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->legacySupport:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "/cache/"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->contentPath:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v1, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
goto :goto_36
:cond_35
const/4 v0, 0x0
.line 73
:goto_36
invoke-virtual {p0, v0}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->prepare(Ljava/io/File;)Ljava/io/File;
move-result-object v0
return-object v0
.end method
.method public getExternalFilesDir()Ljava/io/File;
.registers 5
.line 94
invoke-virtual {p0}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->isExternalStorageAvailable()Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_35
.line 95
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x8
if-lt v0, v2, :cond_14
.line 96
iget-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
invoke-virtual {v0, v1}, Landroid/content/Context;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
move-result-object v1
goto :goto_35
.line 98
:cond_14
new-instance v1, Ljava/io/File;
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object v0
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-object v3, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->legacySupport:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "/files/"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->contentPath:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v0, v2}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 102
:cond_35
:goto_35
invoke-virtual {p0, v1}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->prepare(Ljava/io/File;)Ljava/io/File;
move-result-object v0
return-object v0
.end method
.method public getFilesDir()Ljava/io/File;
.registers 2
.line 82
iget-object v0, p0, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->context:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
invoke-virtual {p0, v0}, Lio/fabric/sdk/android/services/persistence/FileStoreImpl;->prepare(Ljava/io/File;)Ljava/io/File;
move-result-object v0
return-object v0
.end method
.method isExternalStorageAvailable()Z
.registers 4
.line 119
invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
move-result-object v0
const-string v1, "mounted"
.line 120
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_19
.line 121
invoke-static {}, Lio/fabric/sdk/android/Fabric;->getLogger()Lio/fabric/sdk/android/Logger;
move-result-object v0
const-string v1, "Fabric"
const-string v2, "External Storage is not mounted and/or writable\nHave you declared android.permission.WRITE_EXTERNAL_STORAGE in the manifest?"
invoke-interface {v0, v1, v2}, Lio/fabric/sdk/android/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
return v0
:cond_19
const/4 v0, 0x1
return v0
.end method
.method prepare(Ljava/io/File;)Ljava/io/File;
.registers 4
const-string v0, "Fabric"
if-eqz p1, :cond_1c
.line 107
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_1b
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result v1
if-eqz v1, :cond_11
goto :goto_1b
.line 110
:cond_11
invoke-static {}, Lio/fabric/sdk/android/Fabric;->getLogger()Lio/fabric/sdk/android/Logger;
move-result-object p1
const-string v1, "Couldn\'t create file"
invoke-interface {p1, v0, v1}, Lio/fabric/sdk/android/Logger;->w(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_25
:cond_1b
:goto_1b
return-object p1
.line 113
:cond_1c
invoke-static {}, Lio/fabric/sdk/android/Fabric;->getLogger()Lio/fabric/sdk/android/Logger;
move-result-object p1
const-string v1, "Null File"
invoke-interface {p1, v0, v1}, Lio/fabric/sdk/android/Logger;->d(Ljava/lang/String;Ljava/lang/String;)V
:goto_25
const/4 p1, 0x0
return-object p1
.end method