FileDownloader.smali

.class public Lcom/iflytek/cloud/msc/util/FileDownloader;
.super Ljava/lang/Object;
.source "SourceFile"


# static fields
.field private static mFileDownload:Lcom/iflytek/cloud/msc/util/FileDownloader;


# instance fields
.field private final DLOAD_MD5:Ljava/lang/String;

.field private final DLOAD_PATH:Ljava/lang/String;

.field private final DLOAD_URL:Ljava/lang/String;

.field private config:Lcom/iflytek/cloud/msc/util/Config;

.field private httpDownloadListener:Lcom/iflytek/cloud/msc/util/http/HttpDownloadListener;

.field private mContext:Landroid/content/Context;

.field private mDownloadInfo:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/Long;",
            "Lcom/iflytek/thirdparty/ad;",
            ">;"
        }
    .end annotation
.end field

.field private mDownloadListener:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/Long;",
            "Lcom/iflytek/cloud/util/FileDownloadListener;",
            ">;"
        }
    .end annotation
.end field

.field private mFileTempPath:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap",
            "<",
            "Ljava/lang/Long;",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field private mHttpRequestImpl:Lcom/iflytek/cloud/msc/util/http/HttpDownloadImpl;

.field protected mSynObj:Ljava/lang/Object;


# direct methods
.method private constructor <init>(Landroid/content/Context;)V
    .registers 3

    .prologue
    const/4 v0, 0x0

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

    .line 28
    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mHttpRequestImpl:Lcom/iflytek/cloud/msc/util/http/HttpDownloadImpl;

    .line 31
    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->config:Lcom/iflytek/cloud/msc/util/Config;

    .line 33
    const-string v0, "download_uri"

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->DLOAD_URL:Ljava/lang/String;

    .line 34
    const-string v0, "file_path"

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->DLOAD_PATH:Ljava/lang/String;

    .line 35
    const-string v0, "file_md5"

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->DLOAD_MD5:Ljava/lang/String;

    .line 37
    new-instance v0, Ljava/lang/Object;

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

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mSynObj:Ljava/lang/Object;

    .line 84
    new-instance v0, Lcom/iflytek/cloud/msc/util/FileDownloader$1;

    invoke-direct {v0, p0}, Lcom/iflytek/cloud/msc/util/FileDownloader$1;-><init>(Lcom/iflytek/cloud/msc/util/FileDownloader;)V

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->httpDownloadListener:Lcom/iflytek/cloud/msc/util/http/HttpDownloadListener;

    .line 47
    iput-object p1, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mContext:Landroid/content/Context;

    .line 48
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadInfo:Ljava/util/HashMap;

    .line 49
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mFileTempPath:Ljava/util/HashMap;

    .line 50
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadListener:Ljava/util/HashMap;

    .line 51
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mContext:Landroid/content/Context;

    invoke-static {v0}, Lcom/iflytek/cloud/msc/util/Config;->getConfig(Landroid/content/Context;)Lcom/iflytek/cloud/msc/util/Config;

    move-result-object v0

    iput-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->config:Lcom/iflytek/cloud/msc/util/Config;

    .line 52
    return-void
.end method

.method static synthetic access$000(Lcom/iflytek/cloud/msc/util/FileDownloader;)Ljava/util/HashMap;
    .registers 2

    .prologue
    .line 19
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadInfo:Ljava/util/HashMap;

    return-object v0
.end method

.method static synthetic access$100(Lcom/iflytek/cloud/msc/util/FileDownloader;)Ljava/util/HashMap;
    .registers 2

    .prologue
    .line 19
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mFileTempPath:Ljava/util/HashMap;

    return-object v0
.end method

.method static synthetic access$200(Lcom/iflytek/cloud/msc/util/FileDownloader;)Lcom/iflytek/cloud/msc/util/Config;
    .registers 2

    .prologue
    .line 19
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->config:Lcom/iflytek/cloud/msc/util/Config;

    return-object v0
.end method

.method static synthetic access$300(Lcom/iflytek/cloud/msc/util/FileDownloader;)Ljava/util/HashMap;
    .registers 2

    .prologue
    .line 19
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadListener:Ljava/util/HashMap;

    return-object v0
.end method

.method public static getDownLoadManager(Landroid/content/Context;)Lcom/iflytek/cloud/msc/util/FileDownloader;
    .registers 2

    .prologue
    .line 40
    sget-object v0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mFileDownload:Lcom/iflytek/cloud/msc/util/FileDownloader;

    if-nez v0, :cond_b

    .line 41
    new-instance v0, Lcom/iflytek/cloud/msc/util/FileDownloader;

    invoke-direct {v0, p0}, Lcom/iflytek/cloud/msc/util/FileDownloader;-><init>(Landroid/content/Context;)V

    sput-object v0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mFileDownload:Lcom/iflytek/cloud/msc/util/FileDownloader;

    .line 43
    :cond_b
    sget-object v0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mFileDownload:Lcom/iflytek/cloud/msc/util/FileDownloader;

    return-object v0
.end method

.method private getTaskId(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)J
    .registers 10

    .prologue
    .line 193
    iget-object v4, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mSynObj:Ljava/lang/Object;

    monitor-enter v4

    .line 194
    :try_start_3
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadInfo:Ljava/util/HashMap;

    invoke-virtual {v0}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v5

    .line 195
    :cond_d
    invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_50

    .line 196
    invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map$Entry;

    .line 197
    invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/Long;

    invoke-virtual {v1}, Ljava/lang/Long;->longValue()J

    move-result-wide v2

    .line 198
    invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/iflytek/thirdparty/ad;

    .line 199
    const-string v1, "download_uri"

    invoke-virtual {v0, v1}, Lcom/iflytek/thirdparty/ad;->e(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

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

    move-result v1

    if-eqz v1, :cond_d

    const-string v1, "file_path"

    .line 200
    invoke-virtual {v0, v1}, Lcom/iflytek/thirdparty/ad;->e(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

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

    move-result v1

    if-eqz v1, :cond_d

    const-string v1, "file_md5"

    .line 201
    invoke-virtual {v0, v1}, Lcom/iflytek/thirdparty/ad;->e(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

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

    move-result v0

    if-eqz v0, :cond_d

    .line 202
    monitor-exit v4

    move-wide v0, v2

    .line 204
    :goto_4f
    return-wide v0

    :cond_50
    const-wide/16 v0, 0x0

    monitor-exit v4

    goto :goto_4f

    .line 205
    :catchall_54
    move-exception v0

    monitor-exit v4
    :try_end_56
    .catchall {:try_start_3 .. :try_end_56} :catchall_54

    throw v0
.end method


# virtual methods
.method public startDownload(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/iflytek/cloud/util/FileDownloadListener;)I
    .registers 9

    .prologue
    .line 56
    invoke-direct {p0, p1, p2, p3}, Lcom/iflytek/cloud/msc/util/FileDownloader;->getTaskId(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)J

    move-result-wide v0

    .line 57
    iget-object v2, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadInfo:Ljava/util/HashMap;

    invoke-virtual {v2}, Ljava/util/HashMap;->size()I

    move-result v2

    if-lez v2, :cond_1d

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-eqz v2, :cond_1d

    .line 58
    iget-object v2, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadListener:Ljava/util/HashMap;

    invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v0

    invoke-virtual {v2, v0, p4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 59
    const/4 v0, -0x1

    .line 81
    :goto_1c
    return v0

    .line 61
    :cond_1d
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    .line 64
    if-eqz p4, :cond_2c

    .line 65
    iget-object v2, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadListener:Ljava/util/HashMap;

    invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v3

    invoke-virtual {v2, v3, p4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 68
    :cond_2c
    new-instance v2, Lcom/iflytek/thirdparty/ad;

    invoke-direct {v2}, Lcom/iflytek/thirdparty/ad;-><init>()V

    .line 69
    const-string v3, "download_uri"

    invoke-virtual {v2, v3, p1}, Lcom/iflytek/thirdparty/ad;->a(Ljava/lang/String;Ljava/lang/String;)V

    .line 70
    const-string v3, "file_path"

    invoke-virtual {v2, v3, p2}, Lcom/iflytek/thirdparty/ad;->a(Ljava/lang/String;Ljava/lang/String;)V

    .line 71
    const-string v3, "file_md5"

    invoke-virtual {v2, v3, p3}, Lcom/iflytek/thirdparty/ad;->a(Ljava/lang/String;Ljava/lang/String;)V

    .line 72
    iget-object v3, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->mDownloadInfo:Ljava/util/HashMap;

    invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v0

    invoke-virtual {v3, v0, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 75
    iget-object v0, p0, Lcom/iflytek/cloud/msc/util/FileDownloader;->config:Lcom/iflytek/cloud/msc/util/Config;

    const/4 v1, 0x0

    invoke-virtual {v0, p1, v1}, Lcom/iflytek/cloud/msc/util/Config;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    .line 76
    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "tempFile:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/iflytek/cloud/msc/util/log/DebugLog;->LogD(Ljava/lang/String;)V

    .line 81
    const/4 v0, 0x0

    goto :goto_1c
.end method