FtUtilities.smali
.class public Lio/rong/imlib/filetransfer/FtUtilities;
.super Ljava/lang/Object;
.source "FtUtilities.java"
# direct methods
.method public constructor <init>()V
.registers 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static generateKey(Ljava/lang/String;)Ljava/lang/String;
.registers 8
const-string v0, "_"
const-string v1, "/"
.line 1
invoke-virtual {p0, v1, v0}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object p0
.line 2
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "__RC-"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 3
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
.line 4
new-instance v3, Ljava/text/SimpleDateFormat;
sget-object v4, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string v5, "yyyy-MM-dd"
invoke-direct {v3, v5, v4}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
.line 5
new-instance v4, Ljava/util/Date;
invoke-direct {v4, v1, v2}, Ljava/util/Date;-><init>(J)V
.line 6
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v4}, Ljava/text/SimpleDateFormat;->format(Ljava/util/Date;)Ljava/lang/String;
move-result-object p0
invoke-virtual {v5, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 7
invoke-static {}, Ljava/lang/Math;->random()D
move-result-wide v3
const-wide v5, 0x408f400000000000L # 1000.0
mul-double v3, v3, v5
double-to-int v3, v3
rem-int/lit16 v3, v3, 0x2710
.line 8
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 9
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getCateDir(I)Ljava/lang/String;
.registers 3
const/4 v0, 0x1
const-string v1, "private"
if-eq p0, v0, :cond_1d
const/4 v0, 0x2
if-eq p0, v0, :cond_1b
const/4 v0, 0x3
if-eq p0, v0, :cond_18
const/4 v0, 0x4
if-eq p0, v0, :cond_15
const/4 v0, 0x5
if-eq p0, v0, :cond_12
goto :goto_1d
:cond_12
const-string v1, "reception"
goto :goto_1d
:cond_15
const-string v1, "chatroom"
goto :goto_1d
:cond_18
const-string v1, "group"
goto :goto_1d
:cond_1b
const-string v1, "discussion"
:cond_1d
:goto_1d
return-object v1
.end method
.method public static getFileKey(Ljava/lang/String;)Ljava/lang/String;
.registers 4
const-string v0, "?"
.line 1
invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_e
const/4 v2, 0x0
.line 2
invoke-virtual {p0, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p0
:cond_e
const-string v0, "/"
.line 3
invoke-virtual {p0, v0}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v0
if-eq v0, v1, :cond_1c
add-int/lit8 v0, v0, 0x1
.line 4
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
:cond_1c
const-string v0, "%2F"
const-string v1, "_"
.line 5
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getFileName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 7
const-string v0, ""
if-nez p1, :cond_5
return-object v0
:cond_5
const-string v1, "."
.line 1
invoke-virtual {p1, v1}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v2
const/4 v3, 0x0
if-lez v2, :cond_1e
.line 2
invoke-virtual {p1, v1}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v0
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v0
.line 3
invoke-virtual {p1, v1}, Ljava/lang/String;->lastIndexOf(Ljava/lang/String;)I
move-result v1
invoke-virtual {p1, v3, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object p1
:cond_1e
const-string v1, "[`!@#$%^&*()+=|{}\':;\',//[//].<>/?\uff01@#\uffe5%\u2026\u2026&*\uff08\uff09\u2014\u2014+|{}\u3010\u3011\u2018\uff1b\uff1a\u201d\u201c\u2019\u3002\uff0c\u3001\uff1f~~]"
.line 4
invoke-static {v1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v1
.line 5
invoke-virtual {v1, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object p1
const-string v1, "_"
.line 6
invoke-virtual {p1, v1}, Ljava/util/regex/Matcher;->replaceAll(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 7
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, 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, p0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 8
:goto_42
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_89
add-int/lit8 v3, v3, 0x1
.line 9
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
const-string v2, ")"
const-string v4, "("
if-nez v1, :cond_6d
.line 10
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
goto :goto_82
.line 11
:cond_6d
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 12
:goto_82
new-instance v2, Ljava/io/File;
invoke-direct {v2, p0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
move-object v1, v2
goto :goto_42
.line 13
:cond_89
invoke-virtual {v1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static getMediaDir(I)Ljava/lang/String;
.registers 3
const/4 v0, 0x1
const-string v1, "image"
if-eq p0, v0, :cond_17
const/4 v0, 0x2
if-eq p0, v0, :cond_15
const/4 v0, 0x3
if-eq p0, v0, :cond_12
const/4 v0, 0x4
if-eq p0, v0, :cond_f
goto :goto_17
:cond_f
const-string v1, "file"
goto :goto_17
:cond_12
const-string v1, "video"
goto :goto_17
:cond_15
const-string v1, "audio"
:cond_17
:goto_17
return-object v1
.end method
.method public static getMimeType(Ljava/lang/String;)Lio/rong/imlib/filetransfer/FtConst$MimeType;
.registers 2
.line 1
invoke-static {p0}, Lio/rong/imlib/filetransfer/FtUtilities;->isImageFile(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_9
.line 2
sget-object p0, Lio/rong/imlib/filetransfer/FtConst$MimeType;->FILE_IMAGE:Lio/rong/imlib/filetransfer/FtConst$MimeType;
goto :goto_26
.line 3
:cond_9
invoke-static {p0}, Lio/rong/imlib/filetransfer/FtUtilities;->isAudioFile(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_12
.line 4
sget-object p0, Lio/rong/imlib/filetransfer/FtConst$MimeType;->FILE_AUDIO:Lio/rong/imlib/filetransfer/FtConst$MimeType;
goto :goto_26
.line 5
:cond_12
invoke-static {p0}, Lio/rong/imlib/filetransfer/FtUtilities;->isVideoFile(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_1b
.line 6
sget-object p0, Lio/rong/imlib/filetransfer/FtConst$MimeType;->FILE_VIDEO:Lio/rong/imlib/filetransfer/FtConst$MimeType;
goto :goto_26
.line 7
:cond_1b
invoke-static {p0}, Lio/rong/imlib/filetransfer/FtUtilities;->isHtmlFile(Ljava/lang/String;)Z
move-result p0
if-eqz p0, :cond_24
.line 8
sget-object p0, Lio/rong/imlib/filetransfer/FtConst$MimeType;->FILE_HTML:Lio/rong/imlib/filetransfer/FtConst$MimeType;
goto :goto_26
.line 9
:cond_24
sget-object p0, Lio/rong/imlib/filetransfer/FtConst$MimeType;->FILE_TEXT_PLAIN:Lio/rong/imlib/filetransfer/FtConst$MimeType;
:goto_26
return-object p0
.end method
.method public static getSuffixName(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.line 1
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_26
const-string v0, "\\."
.line 2
invoke-virtual {p0, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p0
.line 3
array-length v0, p0
const/4 v1, 0x1
if-le v0, v1, :cond_26
.line 4
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "."
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
array-length v2, p0
sub-int/2addr v2, v1
aget-object p0, p0, v2
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
goto :goto_28
:cond_26
const-string p0, ""
:goto_28
return-object p0
.end method
.method private static isAudioFile(Ljava/lang/String;)Z
.registers 8
const/16 v0, 0xc
.line 1
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, ".au"
aput-object v2, v0, v1
const/4 v2, 0x1
const-string v3, ".snd"
aput-object v3, v0, v2
const/4 v3, 0x2
const-string v4, ".mid"
aput-object v4, v0, v3
const/4 v3, 0x3
const-string v4, ".rmi"
aput-object v4, v0, v3
const/4 v3, 0x4
const-string v4, ".aif"
aput-object v4, v0, v3
const/4 v3, 0x5
const-string v4, ".aifc"
aput-object v4, v0, v3
const/4 v3, 0x6
const-string v4, ".aiff"
aput-object v4, v0, v3
const/4 v3, 0x7
const-string v4, ".m3u"
aput-object v4, v0, v3
const/16 v3, 0x8
const-string v4, ".ra"
aput-object v4, v0, v3
const/16 v3, 0x9
const-string v4, ".ram"
aput-object v4, v0, v3
const/16 v3, 0xa
const-string v4, ".wav"
aput-object v4, v0, v3
const/16 v3, 0xb
const-string v4, ".aac"
aput-object v4, v0, v3
.line 2
array-length v3, v0
const/4 v4, 0x0
:goto_46
if-ge v4, v3, :cond_58
aget-object v5, v0, v4
.line 3
invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_55
return v2
:cond_55
add-int/lit8 v4, v4, 0x1
goto :goto_46
:cond_58
return v1
.end method
.method public static isFileExist(Ljava/lang/String;)Z
.registers 2
.line 1
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 2
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p0
return p0
.end method
.method private static isHtmlFile(Ljava/lang/String;)Z
.registers 8
const/4 v0, 0x1
.line 1
new-array v1, v0, [Ljava/lang/String;
const/4 v2, 0x0
const-string v3, ".html"
aput-object v3, v1, v2
.line 2
array-length v3, v1
const/4 v4, 0x0
:goto_a
if-ge v4, v3, :cond_1c
aget-object v5, v1, v4
.line 3
invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_19
return v0
:cond_19
add-int/lit8 v4, v4, 0x1
goto :goto_a
:cond_1c
return v2
.end method
.method private static isImageFile(Ljava/lang/String;)Z
.registers 8
const/16 v0, 0x15
.line 1
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, ".bmp"
aput-object v2, v0, v1
const/4 v2, 0x1
const-string v3, ".cod"
aput-object v3, v0, v2
const/4 v3, 0x2
const-string v4, ".gif"
aput-object v4, v0, v3
const/4 v3, 0x3
const-string v4, ".ief"
aput-object v4, v0, v3
const/4 v3, 0x4
const-string v4, ".jpe"
aput-object v4, v0, v3
const/4 v3, 0x5
const-string v4, ".jpeg"
aput-object v4, v0, v3
const/4 v3, 0x6
const-string v4, ".jpg"
aput-object v4, v0, v3
const/4 v3, 0x7
const-string v4, ".jfif"
aput-object v4, v0, v3
const/16 v3, 0x8
const-string v4, ".svg"
aput-object v4, v0, v3
const/16 v3, 0x9
const-string v4, ".tif"
aput-object v4, v0, v3
const/16 v3, 0xa
const-string v4, ".tiff"
aput-object v4, v0, v3
const/16 v3, 0xb
const-string v4, ".ras"
aput-object v4, v0, v3
const/16 v3, 0xc
const-string v4, ".ico"
aput-object v4, v0, v3
const/16 v3, 0xd
const-string v4, ".pnm"
aput-object v4, v0, v3
const/16 v3, 0xe
const-string v4, ".pbm"
aput-object v4, v0, v3
const/16 v3, 0xf
const-string v4, ".pgm"
aput-object v4, v0, v3
const/16 v3, 0x10
const-string v4, ".ppm"
aput-object v4, v0, v3
const/16 v3, 0x11
const-string v4, ".xbm"
aput-object v4, v0, v3
const/16 v3, 0x12
const-string v4, ".xpm"
aput-object v4, v0, v3
const/16 v3, 0x13
const-string v4, ".xwd"
aput-object v4, v0, v3
const/16 v3, 0x14
const-string v4, ".rgb"
aput-object v4, v0, v3
.line 2
array-length v3, v0
const/4 v4, 0x0
:goto_7c
if-ge v4, v3, :cond_8e
aget-object v5, v0, v4
.line 3
invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_8b
return v2
:cond_8b
add-int/lit8 v4, v4, 0x1
goto :goto_7c
:cond_8e
return v1
.end method
.method private static isVideoFile(Ljava/lang/String;)Z
.registers 8
const/16 v0, 0x12
.line 1
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, ".rmvb"
aput-object v2, v0, v1
const-string v2, ".avi"
const/4 v3, 0x1
aput-object v2, v0, v3
const/4 v4, 0x2
const-string v5, ".mp4"
aput-object v5, v0, v4
const/4 v4, 0x3
const-string v5, ".mp2"
aput-object v5, v0, v4
const/4 v4, 0x4
const-string v5, ".mpa"
aput-object v5, v0, v4
const/4 v4, 0x5
const-string v5, ".mpe"
aput-object v5, v0, v4
const/4 v4, 0x6
const-string v5, ".mpeg"
aput-object v5, v0, v4
const/4 v4, 0x7
const-string v5, ".mpg"
aput-object v5, v0, v4
const/16 v4, 0x8
const-string v5, ".mpv2"
aput-object v5, v0, v4
const/16 v4, 0x9
const-string v5, ".mov"
aput-object v5, v0, v4
const/16 v4, 0xa
const-string v5, ".qt"
aput-object v5, v0, v4
const/16 v4, 0xb
const-string v5, ".lsf"
aput-object v5, v0, v4
const/16 v4, 0xc
const-string v5, ".lsx"
aput-object v5, v0, v4
const/16 v4, 0xd
const-string v5, ".asf"
aput-object v5, v0, v4
const/16 v4, 0xe
const-string v5, ".asr"
aput-object v5, v0, v4
const/16 v4, 0xf
const-string v5, ".asx"
aput-object v5, v0, v4
const/16 v4, 0x10
aput-object v2, v0, v4
const/16 v2, 0x11
const-string v4, ".movie"
aput-object v4, v0, v2
.line 2
array-length v2, v0
const/4 v4, 0x0
:goto_68
if-ge v4, v2, :cond_7a
aget-object v5, v0, v4
.line 3
invoke-virtual {p0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v6
invoke-virtual {v6, v5}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_77
return v3
:cond_77
add-int/lit8 v4, v4, 0x1
goto :goto_68
:cond_7a
return v1
.end method