BasicNetwork.smali
.class public Lcom/android/volley/toolbox/BasicNetwork;
.super Ljava/lang/Object;
.source "BasicNetwork.java"
# interfaces
.implements Lcom/android/volley/Network;
# static fields
.field protected static final DEBUG:Z
.field private static DEFAULT_POOL_SIZE:I
.field private static SLOW_REQUEST_THRESHOLD_MS:I
# instance fields
.field protected final mHttpStack:Lcom/android/volley/toolbox/HttpStack;
.field protected final mPool:Lcom/android/volley/toolbox/ByteArrayPool;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 57
sget-boolean v0, Lcom/android/volley/VolleyLog;->DEBUG:Z
sput-boolean v0, Lcom/android/volley/toolbox/BasicNetwork;->DEBUG:Z
.line 59
const/16 v0, 0xbb8
sput v0, Lcom/android/volley/toolbox/BasicNetwork;->SLOW_REQUEST_THRESHOLD_MS:I
.line 61
const/16 v0, 0x1000
sput v0, Lcom/android/volley/toolbox/BasicNetwork;->DEFAULT_POOL_SIZE:I
return-void
.end method
.method public constructor <init>(Lcom/android/volley/toolbox/HttpStack;)V
.registers 4
.prologue
.line 73
new-instance v0, Lcom/android/volley/toolbox/ByteArrayPool;
sget v1, Lcom/android/volley/toolbox/BasicNetwork;->DEFAULT_POOL_SIZE:I
invoke-direct {v0, v1}, Lcom/android/volley/toolbox/ByteArrayPool;-><init>(I)V
invoke-direct {p0, p1, v0}, Lcom/android/volley/toolbox/BasicNetwork;-><init>(Lcom/android/volley/toolbox/HttpStack;Lcom/android/volley/toolbox/ByteArrayPool;)V
.line 74
return-void
.end method
.method public constructor <init>(Lcom/android/volley/toolbox/HttpStack;Lcom/android/volley/toolbox/ByteArrayPool;)V
.registers 3
.prologue
.line 80
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 81
iput-object p1, p0, Lcom/android/volley/toolbox/BasicNetwork;->mHttpStack:Lcom/android/volley/toolbox/HttpStack;
.line 82
iput-object p2, p0, Lcom/android/volley/toolbox/BasicNetwork;->mPool:Lcom/android/volley/toolbox/ByteArrayPool;
.line 83
return-void
.end method
.method private addCacheHeaders(Ljava/util/Map;Lcom/android/volley/Cache$Entry;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;",
"Lcom/android/volley/Cache$Entry;",
")V"
}
.end annotation
.prologue
.line 207
if-nez p2, :cond_3
.line 219
:cond_2
:goto_2
return-void
.line 211
:cond_3
iget-object v0, p2, Lcom/android/volley/Cache$Entry;->etag:Ljava/lang/String;
if-eqz v0, :cond_e
.line 212
const-string v0, "If-None-Match"
iget-object v1, p2, Lcom/android/volley/Cache$Entry;->etag:Ljava/lang/String;
invoke-interface {p1, v0, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 215
:cond_e
iget-wide v0, p2, Lcom/android/volley/Cache$Entry;->lastModified:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-lez v0, :cond_2
.line 216
new-instance v0, Ljava/util/Date;
iget-wide v2, p2, Lcom/android/volley/Cache$Entry;->lastModified:J
invoke-direct {v0, v2, v3}, Ljava/util/Date;-><init>(J)V
.line 217
const-string v1, "If-Modified-Since"
invoke-static {v0}, Lorg/apache/http/impl/cookie/DateUtils;->formatDate(Ljava/util/Date;)Ljava/lang/String;
move-result-object v0
invoke-interface {p1, v1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_2
.end method
.method private static attemptRetryOnException(Ljava/lang/String;Lcom/android/volley/Request;Lcom/android/volley/VolleyError;)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lcom/android/volley/Request",
"<*>;",
"Lcom/android/volley/VolleyError;",
")V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/android/volley/VolleyError;
}
.end annotation
.prologue
const/4 v3, 0x2
const/4 v5, 0x1
const/4 v4, 0x0
.line 192
invoke-virtual {p1}, Lcom/android/volley/Request;->getRetryPolicy()Lcom/android/volley/RetryPolicy;
move-result-object v0
.line 193
invoke-virtual {p1}, Lcom/android/volley/Request;->getTimeoutMs()I
move-result v1
.line 196
:try_start_b
invoke-interface {v0, p2}, Lcom/android/volley/RetryPolicy;->retry(Lcom/android/volley/VolleyError;)V
:try_end_e
.catch Lcom/android/volley/VolleyError; {:try_start_b .. :try_end_e} :catch_22
.line 202
const-string v0, "%s-retry [timeout=%s]"
new-array v2, v3, [Ljava/lang/Object;
aput-object p0, v2, v4
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v2, v5
invoke-static {v0, v2}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {p1, v0}, Lcom/android/volley/Request;->addMarker(Ljava/lang/String;)V
.line 203
return-void
.line 197
:catch_22
move-exception v0
.line 198
const-string v2, "%s-timeout-giveup [timeout=%s]"
new-array v3, v3, [Ljava/lang/Object;
aput-object p0, v3, v4
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v3, v5
invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Lcom/android/volley/Request;->addMarker(Ljava/lang/String;)V
.line 200
throw v0
.end method
.method protected static convertHeaders([Lorg/apache/http/Header;)Ljava/util/Map;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Lorg/apache/http/Header;",
")",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 260
new-instance v1, Ljava/util/TreeMap;
sget-object v0, Ljava/lang/String;->CASE_INSENSITIVE_ORDER:Ljava/util/Comparator;
invoke-direct {v1, v0}, Ljava/util/TreeMap;-><init>(Ljava/util/Comparator;)V
.line 261
const/4 v0, 0x0
:goto_8
array-length v2, p0
if-ge v0, v2, :cond_1d
.line 262
aget-object v2, p0, v0
invoke-interface {v2}, Lorg/apache/http/Header;->getName()Ljava/lang/String;
move-result-object v2
aget-object v3, p0, v0
invoke-interface {v3}, Lorg/apache/http/Header;->getValue()Ljava/lang/String;
move-result-object v3
invoke-interface {v1, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 261
add-int/lit8 v0, v0, 0x1
goto :goto_8
.line 264
:cond_1d
return-object v1
.end method
.method private entityToBytes(Lorg/apache/http/HttpEntity;)[B
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Lcom/android/volley/ServerError;
}
.end annotation
.prologue
const/4 v6, 0x0
.line 228
new-instance v2, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;
iget-object v0, p0, Lcom/android/volley/toolbox/BasicNetwork;->mPool:Lcom/android/volley/toolbox/ByteArrayPool;
invoke-interface {p1}, Lorg/apache/http/HttpEntity;->getContentLength()J
move-result-wide v4
long-to-int v1, v4
invoke-direct {v2, v0, v1}, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;-><init>(Lcom/android/volley/toolbox/ByteArrayPool;I)V
.line 230
const/4 v1, 0x0
.line 232
:try_start_e
invoke-interface {p1}, Lorg/apache/http/HttpEntity;->getContent()Ljava/io/InputStream;
move-result-object v0
.line 233
if-nez v0, :cond_27
.line 234
new-instance v0, Lcom/android/volley/ServerError;
invoke-direct {v0}, Lcom/android/volley/ServerError;-><init>()V
throw v0
:try_end_1a
.catchall {:try_start_e .. :try_end_1a} :catchall_1a
.line 243
:catchall_1a
move-exception v0
.line 245
:try_start_1b
invoke-interface {p1}, Lorg/apache/http/HttpEntity;->consumeContent()V
:try_end_1e
.catch Ljava/io/IOException; {:try_start_1b .. :try_end_1e} :catch_54
.line 251
:goto_1e
iget-object v3, p0, Lcom/android/volley/toolbox/BasicNetwork;->mPool:Lcom/android/volley/toolbox/ByteArrayPool;
invoke-virtual {v3, v1}, Lcom/android/volley/toolbox/ByteArrayPool;->returnBuf([B)V
.line 252
invoke-virtual {v2}, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;->close()V
throw v0
.line 236
:cond_27
:try_start_27
iget-object v3, p0, Lcom/android/volley/toolbox/BasicNetwork;->mPool:Lcom/android/volley/toolbox/ByteArrayPool;
const/16 v4, 0x400
invoke-virtual {v3, v4}, Lcom/android/volley/toolbox/ByteArrayPool;->getBuf(I)[B
move-result-object v1
.line 238
:goto_2f
invoke-virtual {v0, v1}, Ljava/io/InputStream;->read([B)I
move-result v3
const/4 v4, -0x1
if-eq v3, v4, :cond_3b
.line 239
const/4 v4, 0x0
invoke-virtual {v2, v1, v4, v3}, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;->write([BII)V
goto :goto_2f
.line 241
:cond_3b
invoke-virtual {v2}, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;->toByteArray()[B
:try_end_3e
.catchall {:try_start_27 .. :try_end_3e} :catchall_1a
move-result-object v0
.line 245
:try_start_3f
invoke-interface {p1}, Lorg/apache/http/HttpEntity;->consumeContent()V
:try_end_42
.catch Ljava/io/IOException; {:try_start_3f .. :try_end_42} :catch_4b
.line 251
:goto_42
iget-object v3, p0, Lcom/android/volley/toolbox/BasicNetwork;->mPool:Lcom/android/volley/toolbox/ByteArrayPool;
invoke-virtual {v3, v1}, Lcom/android/volley/toolbox/ByteArrayPool;->returnBuf([B)V
.line 252
invoke-virtual {v2}, Lcom/android/volley/toolbox/PoolingByteArrayOutputStream;->close()V
return-object v0
.line 246
:catch_4b
move-exception v3
.line 249
const-string v3, "Error occured when calling consumingContent"
new-array v4, v6, [Ljava/lang/Object;
invoke-static {v3, v4}, Lcom/android/volley/VolleyLog;->v(Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_42
.line 246
:catch_54
move-exception v3
.line 249
const-string v3, "Error occured when calling consumingContent"
new-array v4, v6, [Ljava/lang/Object;
invoke-static {v3, v4}, Lcom/android/volley/VolleyLog;->v(Ljava/lang/String;[Ljava/lang/Object;)V
goto :goto_1e
.end method
.method private logSlowRequests(JLcom/android/volley/Request;[BLorg/apache/http/StatusLine;)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(J",
"Lcom/android/volley/Request",
"<*>;[B",
"Lorg/apache/http/StatusLine;",
")V"
}
.end annotation
.prologue
.line 177
sget-boolean v0, Lcom/android/volley/toolbox/BasicNetwork;->DEBUG:Z
if-nez v0, :cond_b
sget v0, Lcom/android/volley/toolbox/BasicNetwork;->SLOW_REQUEST_THRESHOLD_MS:I
int-to-long v0, v0
cmp-long v0, p1, v0
if-lez v0, :cond_41
.line 178
:cond_b
const-string v1, "HTTP response for request=<%s> [lifetime=%d], [size=%s], [rc=%d], [retryCount=%s]"
const/4 v0, 0x5
new-array v2, v0, [Ljava/lang/Object;
const/4 v0, 0x0
aput-object p3, v2, v0
const/4 v0, 0x1
invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v3
aput-object v3, v2, v0
const/4 v3, 0x2
if-eqz p4, :cond_42
array-length v0, p4
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
:goto_22
aput-object v0, v2, v3
const/4 v0, 0x3
invoke-interface {p5}, Lorg/apache/http/StatusLine;->getStatusCode()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, v0
const/4 v0, 0x4
invoke-virtual {p3}, Lcom/android/volley/Request;->getRetryPolicy()Lcom/android/volley/RetryPolicy;
move-result-object v3
invoke-interface {v3}, Lcom/android/volley/RetryPolicy;->getCurrentRetryCount()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, v0
invoke-static {v1, v2}, Lcom/android/volley/VolleyLog;->d(Ljava/lang/String;[Ljava/lang/Object;)V
.line 183
:cond_41
return-void
.line 178
:cond_42
const-string v0, "null"
goto :goto_22
.end method
# virtual methods
.method protected logError(Ljava/lang/String;Ljava/lang/String;J)V
.registers 10
.prologue
.line 222
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
.line 223
const-string v2, "HTTP ERROR(%s) %d ms to fetch %s"
const/4 v3, 0x3
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
aput-object p1, v3, v4
const/4 v4, 0x1
sub-long/2addr v0, p3
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v0
aput-object v0, v3, v4
const/4 v0, 0x2
aput-object p2, v3, v0
invoke-static {v2, v3}, Lcom/android/volley/VolleyLog;->v(Ljava/lang/String;[Ljava/lang/Object;)V
.line 224
return-void
.end method
.method public performRequest(Lcom/android/volley/Request;)Lcom/android/volley/NetworkResponse;
.registers 20
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/android/volley/Request",
"<*>;)",
"Lcom/android/volley/NetworkResponse;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/android/volley/VolleyError;
}
.end annotation
.prologue
.line 87
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v16
.line 89
:goto_4
const/4 v3, 0x0
.line 90
const/4 v14, 0x0
.line 91
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v6
.line 94
:try_start_a
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
.line 95
invoke-virtual/range {p1 .. p1}, Lcom/android/volley/Request;->getCacheEntry()Lcom/android/volley/Cache$Entry;
move-result-object v4
move-object/from16 v0, p0
invoke-direct {v0, v2, v4}, Lcom/android/volley/toolbox/BasicNetwork;->addCacheHeaders(Ljava/util/Map;Lcom/android/volley/Cache$Entry;)V
.line 96
move-object/from16 v0, p0
iget-object v4, v0, Lcom/android/volley/toolbox/BasicNetwork;->mHttpStack:Lcom/android/volley/toolbox/HttpStack;
move-object/from16 v0, p1
invoke-interface {v4, v0, v2}, Lcom/android/volley/toolbox/HttpStack;->performRequest(Lcom/android/volley/Request;Ljava/util/Map;)Lorg/apache/http/HttpResponse;
:try_end_21
.catch Ljava/net/SocketTimeoutException; {:try_start_a .. :try_end_21} :catch_90
.catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_a .. :try_end_21} :catch_b1
.catch Ljava/net/MalformedURLException; {:try_start_a .. :try_end_21} :catch_c0
.catch Ljava/io/IOException; {:try_start_a .. :try_end_21} :catch_de
move-result-object v15
.line 97
:try_start_22
invoke-interface {v15}, Lorg/apache/http/HttpResponse;->getStatusLine()Lorg/apache/http/StatusLine;
move-result-object v12
.line 98
invoke-interface {v12}, Lorg/apache/http/StatusLine;->getStatusCode()I
move-result v4
.line 100
invoke-interface {v15}, Lorg/apache/http/HttpResponse;->getAllHeaders()[Lorg/apache/http/Header;
move-result-object v2
invoke-static {v2}, Lcom/android/volley/toolbox/BasicNetwork;->convertHeaders([Lorg/apache/http/Header;)Ljava/util/Map;
move-result-object v6
.line 102
const/16 v2, 0x130
if-ne v4, v2, :cond_65
.line 104
invoke-virtual/range {p1 .. p1}, Lcom/android/volley/Request;->getCacheEntry()Lcom/android/volley/Cache$Entry;
move-result-object v2
.line 105
if-nez v2, :cond_4c
.line 106
new-instance v3, Lcom/android/volley/NetworkResponse;
const/16 v4, 0x130
const/4 v5, 0x0
const/4 v7, 0x1
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v8
sub-long v8, v8, v16
invoke-direct/range {v3 .. v9}, Lcom/android/volley/NetworkResponse;-><init>(I[BLjava/util/Map;ZJ)V
.line 137
:goto_4b
return-object v3
.line 115
:cond_4c
iget-object v3, v2, Lcom/android/volley/Cache$Entry;->responseHeaders:Ljava/util/Map;
invoke-interface {v3, v6}, Ljava/util/Map;->putAll(Ljava/util/Map;)V
.line 116
new-instance v7, Lcom/android/volley/NetworkResponse;
const/16 v8, 0x130
iget-object v9, v2, Lcom/android/volley/Cache$Entry;->data:[B
iget-object v10, v2, Lcom/android/volley/Cache$Entry;->responseHeaders:Ljava/util/Map;
const/4 v11, 0x1
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
sub-long v12, v2, v16
invoke-direct/range {v7 .. v13}, Lcom/android/volley/NetworkResponse;-><init>(I[BLjava/util/Map;ZJ)V
move-object v3, v7
goto :goto_4b
.line 122
:cond_65
invoke-interface {v15}, Lorg/apache/http/HttpResponse;->getEntity()Lorg/apache/http/HttpEntity;
move-result-object v2
if-eqz v2, :cond_9f
.line 123
invoke-interface {v15}, Lorg/apache/http/HttpResponse;->getEntity()Lorg/apache/http/HttpEntity;
move-result-object v2
move-object/from16 v0, p0
invoke-direct {v0, v2}, Lcom/android/volley/toolbox/BasicNetwork;->entityToBytes(Lorg/apache/http/HttpEntity;)[B
:try_end_74
.catch Ljava/net/SocketTimeoutException; {:try_start_22 .. :try_end_74} :catch_90
.catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_22 .. :try_end_74} :catch_b1
.catch Ljava/net/MalformedURLException; {:try_start_22 .. :try_end_74} :catch_c0
.catch Ljava/io/IOException; {:try_start_22 .. :try_end_74} :catch_137
move-result-object v11
.line 131
:goto_75
:try_start_75
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v2
sub-long v8, v2, v16
move-object/from16 v7, p0
move-object/from16 v10, p1
.line 132
invoke-direct/range {v7 .. v12}, Lcom/android/volley/toolbox/BasicNetwork;->logSlowRequests(JLcom/android/volley/Request;[BLorg/apache/http/StatusLine;)V
.line 134
const/16 v2, 0xc8
if-lt v4, v2, :cond_8a
const/16 v2, 0x12b
if-le v4, v2, :cond_a3
.line 135
:cond_8a
new-instance v2, Ljava/io/IOException;
invoke-direct {v2}, Ljava/io/IOException;-><init>()V
throw v2
:try_end_90
.catch Ljava/net/SocketTimeoutException; {:try_start_75 .. :try_end_90} :catch_90
.catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_75 .. :try_end_90} :catch_b1
.catch Ljava/net/MalformedURLException; {:try_start_75 .. :try_end_90} :catch_c0
.catch Ljava/io/IOException; {:try_start_75 .. :try_end_90} :catch_13b
.line 139
:catch_90
move-exception v2
.line 140
const-string v2, "socket"
new-instance v3, Lcom/android/volley/TimeoutError;
invoke-direct {v3}, Lcom/android/volley/TimeoutError;-><init>()V
move-object/from16 v0, p1
invoke-static {v2, v0, v3}, Lcom/android/volley/toolbox/BasicNetwork;->attemptRetryOnException(Ljava/lang/String;Lcom/android/volley/Request;Lcom/android/volley/VolleyError;)V
goto/16 :goto_4
.line 127
:cond_9f
const/4 v2, 0x0
:try_start_a0
new-array v11, v2, [B
:try_end_a2
.catch Ljava/net/SocketTimeoutException; {:try_start_a0 .. :try_end_a2} :catch_90
.catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_a0 .. :try_end_a2} :catch_b1
.catch Ljava/net/MalformedURLException; {:try_start_a0 .. :try_end_a2} :catch_c0
.catch Ljava/io/IOException; {:try_start_a0 .. :try_end_a2} :catch_137
goto :goto_75
.line 137
:cond_a3
:try_start_a3
new-instance v3, Lcom/android/volley/NetworkResponse;
const/4 v7, 0x0
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v8
sub-long v8, v8, v16
move-object v5, v11
invoke-direct/range {v3 .. v9}, Lcom/android/volley/NetworkResponse;-><init>(I[BLjava/util/Map;ZJ)V
:try_end_b0
.catch Ljava/net/SocketTimeoutException; {:try_start_a3 .. :try_end_b0} :catch_90
.catch Lorg/apache/http/conn/ConnectTimeoutException; {:try_start_a3 .. :try_end_b0} :catch_b1
.catch Ljava/net/MalformedURLException; {:try_start_a3 .. :try_end_b0} :catch_c0
.catch Ljava/io/IOException; {:try_start_a3 .. :try_end_b0} :catch_13b
goto :goto_4b
.line 141
:catch_b1
move-exception v2
.line 142
const-string v2, "connection"
new-instance v3, Lcom/android/volley/TimeoutError;
invoke-direct {v3}, Lcom/android/volley/TimeoutError;-><init>()V
move-object/from16 v0, p1
invoke-static {v2, v0, v3}, Lcom/android/volley/toolbox/BasicNetwork;->attemptRetryOnException(Ljava/lang/String;Lcom/android/volley/Request;Lcom/android/volley/VolleyError;)V
goto/16 :goto_4
.line 143
:catch_c0
move-exception v2
.line 144
new-instance v3, Ljava/lang/RuntimeException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "Bad URL "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual/range {p1 .. p1}, Lcom/android/volley/Request;->getUrl()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v3
.line 145
:catch_de
move-exception v2
move-object v5, v14
.line 147
:goto_e0
const/4 v7, 0x0
.line 148
if-eqz v3, :cond_125
.line 149
invoke-interface {v3}, Lorg/apache/http/HttpResponse;->getStatusLine()Lorg/apache/http/StatusLine;
move-result-object v2
invoke-interface {v2}, Lorg/apache/http/StatusLine;->getStatusCode()I
move-result v4
.line 153
const-string v2, "Unexpected response code %d for %s"
const/4 v3, 0x2
new-array v3, v3, [Ljava/lang/Object;
const/4 v8, 0x0
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v9
aput-object v9, v3, v8
const/4 v8, 0x1
invoke-virtual/range {p1 .. p1}, Lcom/android/volley/Request;->getUrl()Ljava/lang/String;
move-result-object v9
aput-object v9, v3, v8
invoke-static {v2, v3}, Lcom/android/volley/VolleyLog;->e(Ljava/lang/String;[Ljava/lang/Object;)V
.line 154
if-eqz v5, :cond_131
.line 155
new-instance v3, Lcom/android/volley/NetworkResponse;
const/4 v7, 0x0
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v8
sub-long v8, v8, v16
invoke-direct/range {v3 .. v9}, Lcom/android/volley/NetworkResponse;-><init>(I[BLjava/util/Map;ZJ)V
.line 157
const/16 v2, 0x191
if-eq v4, v2, :cond_117
const/16 v2, 0x193
if-ne v4, v2, :cond_12b
.line 159
:cond_117
const-string v2, "auth"
new-instance v4, Lcom/android/volley/AuthFailureError;
invoke-direct {v4, v3}, Lcom/android/volley/AuthFailureError;-><init>(Lcom/android/volley/NetworkResponse;)V
move-object/from16 v0, p1
invoke-static {v2, v0, v4}, Lcom/android/volley/toolbox/BasicNetwork;->attemptRetryOnException(Ljava/lang/String;Lcom/android/volley/Request;Lcom/android/volley/VolleyError;)V
goto/16 :goto_4
.line 151
:cond_125
new-instance v3, Lcom/android/volley/NoConnectionError;
invoke-direct {v3, v2}, Lcom/android/volley/NoConnectionError;-><init>(Ljava/lang/Throwable;)V
throw v3
.line 163
:cond_12b
new-instance v2, Lcom/android/volley/ServerError;
invoke-direct {v2, v3}, Lcom/android/volley/ServerError;-><init>(Lcom/android/volley/NetworkResponse;)V
throw v2
.line 166
:cond_131
new-instance v2, Lcom/android/volley/NetworkError;
invoke-direct {v2, v7}, Lcom/android/volley/NetworkError;-><init>(Lcom/android/volley/NetworkResponse;)V
throw v2
.line 145
:catch_137
move-exception v2
move-object v5, v14
move-object v3, v15
goto :goto_e0
:catch_13b
move-exception v2
move-object v5, v11
move-object v3, v15
goto :goto_e0
.end method