FileDownloader.smali
.class public Lcom/krishna/fileloader/network/FileDownloader;
.super Ljava/lang/Object;
.source "FileDownloader.java"
# static fields
.field private static httpClient:Lokhttp3/OkHttpClient;
# instance fields
.field private context:Landroid/content/Context;
.field private dirName:Ljava/lang/String;
.field private dirType:I
.field private uri:Ljava/lang/String;
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)V
.registers 5
.line 31
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 32
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p1
iput-object p1, p0, Lcom/krishna/fileloader/network/FileDownloader;->context:Landroid/content/Context;
.line 33
iput-object p2, p0, Lcom/krishna/fileloader/network/FileDownloader;->uri:Ljava/lang/String;
.line 34
iput-object p3, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirName:Ljava/lang/String;
.line 35
iput p4, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirType:I
.line 36
invoke-direct {p0}, Lcom/krishna/fileloader/network/FileDownloader;->initHttpClient()V
return-void
.end method
.method private initHttpClient()V
.registers 6
.line 40
sget-object v0, Lcom/krishna/fileloader/network/FileDownloader;->httpClient:Lokhttp3/OkHttpClient;
if-nez v0, :cond_33
.line 41
new-instance v0, Lokhttp3/logging/HttpLoggingInterceptor;
invoke-direct {v0}, Lokhttp3/logging/HttpLoggingInterceptor;-><init>()V
.line 45
sget-object v1, Lokhttp3/logging/HttpLoggingInterceptor$Level;->NONE:Lokhttp3/logging/HttpLoggingInterceptor$Level;
invoke-virtual {v0, v1}, Lokhttp3/logging/HttpLoggingInterceptor;->setLevel(Lokhttp3/logging/HttpLoggingInterceptor$Level;)Lokhttp3/logging/HttpLoggingInterceptor;
.line 46
new-instance v1, Lokhttp3/OkHttpClient$Builder;
invoke-direct {v1}, Lokhttp3/OkHttpClient$Builder;-><init>()V
sget-object v2, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
const-wide/16 v3, 0xa
.line 47
invoke-virtual {v1, v3, v4, v2}, Lokhttp3/OkHttpClient$Builder;->connectTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
move-result-object v1
sget-object v2, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
.line 48
invoke-virtual {v1, v3, v4, v2}, Lokhttp3/OkHttpClient$Builder;->writeTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
move-result-object v1
const-wide/16 v2, 0x1e
sget-object v4, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
.line 49
invoke-virtual {v1, v2, v3, v4}, Lokhttp3/OkHttpClient$Builder;->readTimeout(JLjava/util/concurrent/TimeUnit;)Lokhttp3/OkHttpClient$Builder;
move-result-object v1
.line 50
invoke-virtual {v1, v0}, Lokhttp3/OkHttpClient$Builder;->addInterceptor(Lokhttp3/Interceptor;)Lokhttp3/OkHttpClient$Builder;
move-result-object v0
.line 51
invoke-virtual {v0}, Lokhttp3/OkHttpClient$Builder;->build()Lokhttp3/OkHttpClient;
move-result-object v0
sput-object v0, Lcom/krishna/fileloader/network/FileDownloader;->httpClient:Lokhttp3/OkHttpClient;
:cond_33
return-void
.end method
# virtual methods
.method public download()Ljava/io/File;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.line 57
new-instance v0, Lokhttp3/Request$Builder;
invoke-direct {v0}, Lokhttp3/Request$Builder;-><init>()V
iget-object v1, p0, Lcom/krishna/fileloader/network/FileDownloader;->uri:Ljava/lang/String;
invoke-virtual {v0, v1}, Lokhttp3/Request$Builder;->url(Ljava/lang/String;)Lokhttp3/Request$Builder;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/Request$Builder;->build()Lokhttp3/Request;
move-result-object v0
.line 58
sget-object v1, Lcom/krishna/fileloader/network/FileDownloader;->httpClient:Lokhttp3/OkHttpClient;
invoke-virtual {v1, v0}, Lokhttp3/OkHttpClient;->newCall(Lokhttp3/Request;)Lokhttp3/Call;
move-result-object v0
invoke-interface {v0}, Lokhttp3/Call;->execute()Lokhttp3/Response;
move-result-object v0
.line 59
invoke-virtual {v0}, Lokhttp3/Response;->isSuccessful()Z
move-result v1
if-eqz v1, :cond_60
invoke-virtual {v0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v1
if-eqz v1, :cond_60
.line 62
iget-object v1, p0, Lcom/krishna/fileloader/network/FileDownloader;->context:Landroid/content/Context;
iget-object v2, p0, Lcom/krishna/fileloader/network/FileDownloader;->uri:Ljava/lang/String;
iget-object v3, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirName:Ljava/lang/String;
iget v4, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirType:I
invoke-static {v1, v2, v3, v4}, Lcom/krishna/fileloader/utility/AndroidFileManager;->getFileForRequest(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)Ljava/io/File;
move-result-object v1
.line 63
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_49
.line 64
invoke-virtual {v1}, Ljava/io/File;->delete()Z
move-result v2
if-eqz v2, :cond_49
.line 65
iget-object v1, p0, Lcom/krishna/fileloader/network/FileDownloader;->context:Landroid/content/Context;
iget-object v2, p0, Lcom/krishna/fileloader/network/FileDownloader;->uri:Ljava/lang/String;
iget-object v3, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirName:Ljava/lang/String;
iget v4, p0, Lcom/krishna/fileloader/network/FileDownloader;->dirType:I
invoke-static {v1, v2, v3, v4}, Lcom/krishna/fileloader/utility/AndroidFileManager;->getFileForRequest(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)Ljava/io/File;
move-result-object v1
.line 67
:cond_49
invoke-static {v1}, Lokio/Okio;->sink(Ljava/io/File;)Lokio/Sink;
move-result-object v2
invoke-static {v2}, Lokio/Okio;->buffer(Lokio/Sink;)Lokio/BufferedSink;
move-result-object v2
.line 68
invoke-virtual {v0}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody;
move-result-object v0
invoke-virtual {v0}, Lokhttp3/ResponseBody;->source()Lokio/BufferedSource;
move-result-object v0
invoke-interface {v2, v0}, Lokio/BufferedSink;->writeAll(Lokio/Source;)J
.line 69
invoke-interface {v2}, Lokio/BufferedSink;->close()V
return-object v1
.line 60
:cond_60
new-instance v1, Ljava/io/IOException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Failed to download file: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
.end method