LibStorageUtils.smali
.class public Lio/rong/common/LibStorageUtils;
.super Ljava/lang/Object;
.source "LibStorageUtils.java"
# static fields
.field public static final AUDIO:Ljava/lang/String; = "audio"
.field public static final DIR:Ljava/lang/String; = "RongCloud"
.field public static final FILE:Ljava/lang/String; = "file"
.field public static final IMAGE:Ljava/lang/String; = "image"
.field public static final MEDIA:Ljava/lang/String; = "media"
.field private static final TAG:Ljava/lang/String; = "LibStorageUtils"
.field public static final VIDEO:Ljava/lang/String; = "video"
.field private static isBuildAndTargetForQ:Ljava/lang/Boolean;
.field private static isQMode:Ljava/lang/Boolean;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static getAppName(Landroid/content/Context;)Ljava/lang/String;
.registers 7
const-string v0, "getAppName"
const-string v1, "LibStorageUtils"
const/4 v2, 0x0
.line 1
:try_start_5
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v3
.line 2
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v4
const/4 v5, 0x0
invoke-virtual {v3, v4, v5}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v3
.line 3
iget-object v4, v3, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget v4, v4, Landroid/content/pm/ApplicationInfo;->labelRes:I
if-lez v4, :cond_21
.line 4
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p0
invoke-virtual {p0, v4}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
move-result-object p0
return-object p0
.line 5
:cond_21
iget-object p0, v3, Landroid/content/pm/PackageInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
iget-object p0, p0, Landroid/content/pm/ApplicationInfo;->nonLocalizedLabel:Ljava/lang/CharSequence;
.line 6
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v3
if-eqz v3, :cond_2c
return-object v2
.line 7
:cond_2c
invoke-interface {p0}, Ljava/lang/CharSequence;->toString()Ljava/lang/String;
move-result-object p0
:try_end_30
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_5 .. :try_end_30} :catch_36
.catch Ljava/lang/Exception; {:try_start_5 .. :try_end_30} :catch_31
return-object p0
:catch_31
move-exception p0
.line 8
invoke-static {v1, v0, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_3a
:catch_36
move-exception p0
.line 9
invoke-static {v1, v0, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_3a
return-object v2
.end method
.method public static getMediaDownloadDir(Landroid/content/Context;)Ljava/lang/String;
.registers 2
const-string v0, "media"
.line 1
invoke-static {p0, v0}, Lio/rong/common/LibStorageUtils;->getMediaDownloadDir(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getMediaDownloadDir(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
.registers 5
.line 2
invoke-static {}, Lio/rong/imlib/common/SavePathUtils;->isSavePathEmpty()Z
move-result v0
const-string v1, "LibStorageUtils"
if-nez v0, :cond_3c
.line 3
invoke-static {}, Lio/rong/imlib/common/SavePathUtils;->getSavePath()Ljava/lang/String;
move-result-object p0
.line 4
new-instance p1, Ljava/io/File;
const-string v0, "media"
invoke-direct {p1, p0, v0}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 5
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result p0
if-nez p0, :cond_37
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result p0
if-nez p0, :cond_37
.line 6
new-instance p0, Ljava/lang/StringBuilder;
invoke-direct {p0}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "getSavePath mkdirs error path is "
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v1, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 7
:cond_37
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p0
return-object p0
.line 8
:cond_3c
invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String;
move-result-object v0
const-string v2, "mounted"
invoke-virtual {v0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
.line 9
invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v2
if-nez v0, :cond_56
const-string p0, "getSavePath error, sdcard does not exist."
.line 10
invoke-static {v1, p0}, Lio/rong/common/RLog;->d(Ljava/lang/String;Ljava/lang/String;)I
return-object v2
.line 11
:cond_56
invoke-static {p0}, Lio/rong/common/LibStorageUtils;->isQMode(Landroid/content/Context;)Z
move-result v0
if-eqz v0, :cond_7d
const-string v0, "RongCloud"
.line 12
invoke-virtual {p0, v0}, Landroid/content/Context;->getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;
move-result-object p0
.line 13
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 14
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p1
if-nez p1, :cond_78
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
move-result p1
if-nez p1, :cond_78
.line 15
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
goto :goto_c9
.line 16
:cond_78
invoke-virtual {v0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
goto :goto_c9
.line 17
:cond_7d
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
move-result-object p1
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p1
.line 18
sget v0, Lio/rong/imlib/R$string;->rc_media_message_default_save_path:I
invoke-virtual {p0, v0}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object p0
.line 19
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 20
new-instance p1, Ljava/io/File;
invoke-direct {p1, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 21
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_c9
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
move-result p1
if-nez p1, :cond_c9
.line 22
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "mkdirs error path is "
invoke-virtual {p1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v1, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 23
sget-object p0, Landroid/os/Environment;->DIRECTORY_DOWNLOADS:Ljava/lang/String;
invoke-static {p0}, Landroid/os/Environment;->getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;
move-result-object p0
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
:cond_c9
:goto_c9
return-object p0
.end method
.method public static isBuildAndTargetForQ(Landroid/content/Context;)Z
.registers 3
.line 1
sget-object v0, Lio/rong/common/LibStorageUtils;->isBuildAndTargetForQ:Ljava/lang/Boolean;
if-nez v0, :cond_1b
.line 2
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1d
if-lt v0, v1, :cond_14
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object p0
iget p0, p0, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
if-lt p0, v1, :cond_14
const/4 p0, 0x1
goto :goto_15
:cond_14
const/4 p0, 0x0
:goto_15
invoke-static {p0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p0
sput-object p0, Lio/rong/common/LibStorageUtils;->isBuildAndTargetForQ:Ljava/lang/Boolean;
.line 3
:cond_1b
sget-object p0, Lio/rong/common/LibStorageUtils;->isBuildAndTargetForQ:Ljava/lang/Boolean;
invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z
move-result p0
return p0
.end method
.method public static isQMode(Landroid/content/Context;)Z
.registers 4
.line 1
sget-object v0, Lio/rong/common/LibStorageUtils;->isQMode:Ljava/lang/Boolean;
const-string v1, "LibStorageUtils"
if-nez v0, :cond_23
.line 2
:try_start_6
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
sget v2, Lio/rong/imlib/R$bool;->rc_q_storage_mode_enable:I
invoke-virtual {v0, v2}, Landroid/content/res/Resources;->getBoolean(I)Z
move-result v0
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
sput-object v0, Lio/rong/common/LibStorageUtils;->isQMode:Ljava/lang/Boolean;
:try_end_16
.catch Landroid/content/res/Resources$NotFoundException; {:try_start_6 .. :try_end_16} :catch_17
goto :goto_23
:catch_17
const-string v0, "isQMode rc_q_storage_mode_enable not found"
.line 3
invoke-static {v1, v0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v0, 0x0
.line 4
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
sput-object v0, Lio/rong/common/LibStorageUtils;->isQMode:Ljava/lang/Boolean;
.line 5
:cond_23
:goto_23
invoke-static {p0}, Lio/rong/common/LibStorageUtils;->isBuildAndTargetForQ(Landroid/content/Context;)Z
move-result p0
if-eqz p0, :cond_36
sget-object p0, Lio/rong/common/LibStorageUtils;->isQMode:Ljava/lang/Boolean;
invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z
move-result p0
if-nez p0, :cond_36
const-string p0, "\u8bf7 rc_configuration \u8bbe\u7f6e rc_q_storage_mode_enable \u4e3a true "
.line 6
invoke-static {v1, p0}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 7
:cond_36
sget-object p0, Lio/rong/common/LibStorageUtils;->isQMode:Ljava/lang/Boolean;
invoke-virtual {p0}, Ljava/lang/Boolean;->booleanValue()Z
move-result p0
return p0
.end method