RongAuthImageDownloader.smali
.class public Lio/rong/imkit/utils/RongAuthImageDownloader;
.super Lio/rong/imageloader/core/download/BaseImageDownloader;
.source "RongAuthImageDownloader.java"
# static fields
.field private static final TAG:Ljava/lang/String; = "RongAuthImageDownloader"
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lio/rong/imageloader/core/download/BaseImageDownloader;-><init>(Landroid/content/Context;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;II)V
.registers 4
.line 2
invoke-direct {p0, p1, p2, p3}, Lio/rong/imageloader/core/download/BaseImageDownloader;-><init>(Landroid/content/Context;II)V
return-void
.end method
# virtual methods
.method protected getStreamFromNetwork(Ljava/lang/String;Ljava/lang/Object;)Ljava/io/InputStream;
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
:try_start_0
invoke-static {p1}, Lio/rong/imlib/common/NetUtils;->createURLConnection(Ljava/lang/String;)Ljava/net/HttpURLConnection;
move-result-object p1
:try_end_4
.catch Ljava/io/IOException; {:try_start_0 .. :try_end_4} :catch_8d
.line 2
:try_start_4
iget p2, p0, Lio/rong/imageloader/core/download/BaseImageDownloader;->connectTimeout:I
invoke-virtual {p1, p2}, Ljava/net/HttpURLConnection;->setConnectTimeout(I)V
.line 3
iget p2, p0, Lio/rong/imageloader/core/download/BaseImageDownloader;->readTimeout:I
invoke-virtual {p1, p2}, Ljava/net/HttpURLConnection;->setReadTimeout(I)V
.line 4
instance-of p2, p1, Ljavax/net/ssl/HttpsURLConnection;
if-eqz p2, :cond_2e
.line 5
invoke-static {}, Lio/rong/common/utils/SSLUtils;->getSSLContext()Ljavax/net/ssl/SSLContext;
move-result-object p2
if-eqz p2, :cond_22
.line 6
move-object v0, p1
check-cast v0, Ljavax/net/ssl/HttpsURLConnection;
invoke-virtual {p2}, Ljavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
move-result-object p2
invoke-virtual {v0, p2}, Ljavax/net/ssl/HttpsURLConnection;->setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V
.line 7
:cond_22
invoke-static {}, Lio/rong/common/utils/SSLUtils;->getHostVerifier()Ljavax/net/ssl/HostnameVerifier;
move-result-object p2
if-eqz p2, :cond_2e
.line 8
move-object v0, p1
check-cast v0, Ljavax/net/ssl/HttpsURLConnection;
invoke-virtual {v0, p2}, Ljavax/net/ssl/HttpsURLConnection;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V
.line 9
:cond_2e
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->connect()V
.line 10
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result p2
const/16 v0, 0x12c
if-lt p2, v0, :cond_86
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result p2
const/16 v0, 0x190
if-ge p2, v0, :cond_86
const-string p2, "Location"
.line 11
invoke-virtual {p1, p2}, Ljava/net/HttpURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
.line 12
new-instance v0, Ljava/net/URL;
invoke-direct {v0, p2}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
move-result-object p2
check-cast p2, Ljava/net/HttpURLConnection;
:try_end_52
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_52} :catch_8b
.line 13
:try_start_52
iget p1, p0, Lio/rong/imageloader/core/download/BaseImageDownloader;->connectTimeout:I
invoke-virtual {p2, p1}, Ljava/net/HttpURLConnection;->setConnectTimeout(I)V
.line 14
iget p1, p0, Lio/rong/imageloader/core/download/BaseImageDownloader;->readTimeout:I
invoke-virtual {p2, p1}, Ljava/net/HttpURLConnection;->setReadTimeout(I)V
.line 15
instance-of p1, p2, Ljavax/net/ssl/HttpsURLConnection;
if-eqz p1, :cond_7c
.line 16
invoke-static {}, Lio/rong/common/utils/SSLUtils;->getSSLContext()Ljavax/net/ssl/SSLContext;
move-result-object p1
if-eqz p1, :cond_70
.line 17
move-object v0, p2
check-cast v0, Ljavax/net/ssl/HttpsURLConnection;
invoke-virtual {p1}, Ljavax/net/ssl/SSLContext;->getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;
move-result-object p1
invoke-virtual {v0, p1}, Ljavax/net/ssl/HttpsURLConnection;->setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V
.line 18
:cond_70
invoke-static {}, Lio/rong/common/utils/SSLUtils;->getHostVerifier()Ljavax/net/ssl/HostnameVerifier;
move-result-object p1
if-eqz p1, :cond_7c
.line 19
move-object v0, p2
check-cast v0, Ljavax/net/ssl/HttpsURLConnection;
invoke-virtual {v0, p1}, Ljavax/net/ssl/HttpsURLConnection;->setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V
.line 20
:cond_7c
invoke-virtual {p2}, Ljava/net/HttpURLConnection;->connect()V
:try_end_7f
.catch Ljava/io/IOException; {:try_start_52 .. :try_end_7f} :catch_81
move-object p1, p2
goto :goto_86
:catch_81
move-exception p1
move-object v3, p2
move-object p2, p1
move-object p1, v3
goto :goto_8f
.line 21
:cond_86
:goto_86
:try_start_86
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;
move-result-object p2
:try_end_8a
.catch Ljava/io/IOException; {:try_start_86 .. :try_end_8a} :catch_8b
goto :goto_a7
:catch_8b
move-exception p2
goto :goto_8f
:catch_8d
move-exception p2
const/4 p1, 0x0
:goto_8f
if-eqz p1, :cond_dd
.line 22
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getContentLength()I
move-result v0
if-lez v0, :cond_dd
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getContentType()Ljava/lang/String;
move-result-object v0
const-string v1, "image/"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_dd
.line 23
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getErrorStream()Ljava/io/InputStream;
move-result-object p2
.line 24
:goto_a7
invoke-virtual {p0, p1}, Lio/rong/imageloader/core/download/BaseImageDownloader;->shouldBeProcessed(Ljava/net/HttpURLConnection;)Z
move-result v0
if-eqz v0, :cond_bf
.line 25
new-instance v0, Lio/rong/imageloader/core/assist/ContentLengthInputStream;
new-instance v1, Ljava/io/BufferedInputStream;
const v2, 0x8000
invoke-direct {v1, p2, v2}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getContentLength()I
move-result p1
invoke-direct {v0, v1, p1}, Lio/rong/imageloader/core/assist/ContentLengthInputStream;-><init>(Ljava/io/InputStream;I)V
return-object v0
.line 26
:cond_bf
invoke-static {p2}, Lio/rong/imageloader/utils/IoUtils;->closeSilently(Ljava/io/Closeable;)V
.line 27
new-instance p2, Ljava/io/IOException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Image request failed with response code "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getResponseCode()I
move-result p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p2
:cond_dd
if-eqz p1, :cond_e6
.line 28
invoke-virtual {p1}, Ljava/net/HttpURLConnection;->getErrorStream()Ljava/io/InputStream;
move-result-object p1
invoke-static {p1}, Lio/rong/imageloader/utils/IoUtils;->readAndCloseStream(Ljava/io/InputStream;)V
.line 29
:cond_e6
throw p2
.end method