RestProtocol.smali
.class public Lcom/h/o/RestProtocol;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/h/o/RestProtocol$Protocol;
}
.end annotation
# instance fields
.field private mCacheStore:Lcom/h/q/CacheStore;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/h/q/CacheStore",
"<",
"Lcom/h/j/CacheEntity;",
">;"
}
.end annotation
.end field
.field private mHttpConnection:Lcom/h/r/HttpConnection;
# direct methods
.method public constructor <init>(Lcom/h/q/CacheStore;Lcom/h/r/NetworkExecutor;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/h/q/CacheStore",
"<",
"Lcom/h/j/CacheEntity;",
">;",
"Lcom/h/r/NetworkExecutor;",
")V"
}
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/h/o/RestProtocol;->mCacheStore:Lcom/h/q/CacheStore;
new-instance v0, Lcom/h/r/HttpConnection;
invoke-direct {v0, p2}, Lcom/h/r/HttpConnection;-><init>(Lcom/h/r/NetworkExecutor;)V
iput-object v0, p0, Lcom/h/o/RestProtocol;->mHttpConnection:Lcom/h/r/HttpConnection;
return-void
.end method
.method private analysisCacheAndProtocol(Ljava/lang/String;Lcom/h/o/CacheMode;Lcom/h/j/CacheEntity;Lcom/h/o/RestProtocol$Protocol;)V
.registers 13
const-wide/16 v6, 0x0
# getter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$000(Lcom/h/o/RestProtocol$Protocol;)Ljava/lang/Exception;
move-result-object v0
if-nez v0, :cond_41
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
invoke-virtual {v0}, Lcom/h/r/Headers;->getResponseCode()I
move-result v0
# getter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$200(Lcom/h/o/RestProtocol$Protocol;)[B
move-result-object v1
if-nez v1, :cond_1c
const/4 v1, 0x0
new-array v1, v1, [B
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4, v1}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
:cond_1c
const/16 v1, 0x130
if-ne v0, v1, :cond_42
if-eqz p3, :cond_41
const/4 v0, 0x1
# setter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {p4, v0}, Lcom/h/o/RestProtocol$Protocol;->access$302(Lcom/h/o/RestProtocol$Protocol;Z)Z
invoke-virtual {p3}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4, v0}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
const-string/jumbo v1, "ResponseCode"
const-string/jumbo v2, "304"
invoke-virtual {v0, v1, v2}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V
invoke-virtual {p3}, Lcom/h/j/CacheEntity;->getData()[B
move-result-object v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4, v0}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
:cond_41
:goto_41
:pswitch_41
return-void
:cond_42
if-nez p3, :cond_a8
sget-object v0, Lcom/h/o/RestProtocol$1;->$SwitchMap$com$h$o$CacheMode:[I
invoke-virtual {p2}, Lcom/h/o/CacheMode;->ordinal()I
move-result v1
aget v0, v0, v1
packed-switch v0, :pswitch_data_d2
goto :goto_41
:pswitch_50
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
invoke-static {v0}, Lcom/h/q/HeaderUtils;->getLocalExpires(Lcom/h/r/Headers;)J
move-result-wide v0
new-instance v2, Lcom/h/j/CacheEntity;
invoke-direct {v2}, Lcom/h/j/CacheEntity;-><init>()V
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v3
invoke-virtual {v2, v3}, Lcom/h/j/CacheEntity;->setResponseHeaders(Lcom/h/r/Headers;)V
# getter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$200(Lcom/h/o/RestProtocol$Protocol;)[B
move-result-object v3
invoke-virtual {v2, v3}, Lcom/h/j/CacheEntity;->setData([B)V
invoke-virtual {v2, v0, v1}, Lcom/h/j/CacheEntity;->setLocalExpire(J)V
iget-object v0, p0, Lcom/h/o/RestProtocol;->mCacheStore:Lcom/h/q/CacheStore;
invoke-interface {v0, p1, v2}, Lcom/h/q/CacheStore;->replace(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_41
:pswitch_74
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
invoke-static {v0}, Lcom/h/q/HeaderUtils;->getLocalExpires(Lcom/h/r/Headers;)J
move-result-wide v0
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v2
invoke-virtual {v2}, Lcom/h/r/Headers;->getLastModified()J
move-result-wide v2
cmp-long v4, v0, v6
if-gtz v4, :cond_8c
cmp-long v2, v2, v6
if-lez v2, :cond_41
:cond_8c
new-instance v2, Lcom/h/j/CacheEntity;
invoke-direct {v2}, Lcom/h/j/CacheEntity;-><init>()V
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v3
invoke-virtual {v2, v3}, Lcom/h/j/CacheEntity;->setResponseHeaders(Lcom/h/r/Headers;)V
# getter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$200(Lcom/h/o/RestProtocol$Protocol;)[B
move-result-object v3
invoke-virtual {v2, v3}, Lcom/h/j/CacheEntity;->setData([B)V
invoke-virtual {v2, v0, v1}, Lcom/h/j/CacheEntity;->setLocalExpire(J)V
iget-object v0, p0, Lcom/h/o/RestProtocol;->mCacheStore:Lcom/h/q/CacheStore;
invoke-interface {v0, p1, v2}, Lcom/h/q/CacheStore;->replace(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_41
:cond_a8
# getter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$300(Lcom/h/o/RestProtocol$Protocol;)Z
move-result v0
if-nez v0, :cond_41
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
invoke-static {v0}, Lcom/h/q/HeaderUtils;->getLocalExpires(Lcom/h/r/Headers;)J
move-result-wide v0
invoke-virtual {p3, v0, v1}, Lcom/h/j/CacheEntity;->setLocalExpire(J)V
invoke-virtual {p3}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v0
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v1
invoke-virtual {v0, v1}, Lcom/h/r/Headers;->setAll(Lcom/h/r/Headers;)V
# getter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {p4}, Lcom/h/o/RestProtocol$Protocol;->access$200(Lcom/h/o/RestProtocol$Protocol;)[B
move-result-object v0
invoke-virtual {p3, v0}, Lcom/h/j/CacheEntity;->setData([B)V
iget-object v0, p0, Lcom/h/o/RestProtocol;->mCacheStore:Lcom/h/q/CacheStore;
invoke-interface {v0, p1, p3}, Lcom/h/q/CacheStore;->replace(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
goto/16 :goto_41
:pswitch_data_d2
.packed-switch 0x1
:pswitch_41
:pswitch_41
:pswitch_50
:pswitch_50
:pswitch_74
.end packed-switch
.end method
.method private getHttpProtocol(Lcom/h/r/BasicRequest;)Lcom/h/o/RestProtocol$Protocol;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/h/r/BasicRequest",
"<*>;)",
"Lcom/h/o/RestProtocol$Protocol;"
}
.end annotation
new-instance v1, Lcom/h/o/RestProtocol$Protocol;
const/4 v0, 0x0
invoke-direct {v1, v0}, Lcom/h/o/RestProtocol$Protocol;-><init>(Lcom/h/o/RestProtocol$1;)V
iget-object v0, p0, Lcom/h/o/RestProtocol;->mHttpConnection:Lcom/h/r/HttpConnection;
invoke-virtual {v0, p1}, Lcom/h/r/HttpConnection;->getConnection(Lcom/h/r/BasicRequest;)Lcom/h/r/Connection;
move-result-object v2
invoke-virtual {v2}, Lcom/h/r/Connection;->responseHeaders()Lcom/h/r/Headers;
move-result-object v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v1, v0}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
invoke-virtual {v2}, Lcom/h/r/Connection;->exception()Ljava/lang/Exception;
move-result-object v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v1, v0}, Lcom/h/o/RestProtocol$Protocol;->access$002(Lcom/h/o/RestProtocol$Protocol;Ljava/lang/Exception;)Ljava/lang/Exception;
# getter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v1}, Lcom/h/o/RestProtocol$Protocol;->access$000(Lcom/h/o/RestProtocol$Protocol;)Ljava/lang/Exception;
move-result-object v0
if-nez v0, :cond_31
invoke-virtual {v2}, Lcom/h/r/Connection;->serverStream()Ljava/io/InputStream;
move-result-object v0
if-eqz v0, :cond_31
:try_start_26
invoke-virtual {v2}, Lcom/h/r/Connection;->serverStream()Ljava/io/InputStream;
move-result-object v0
invoke-static {v0}, Lcom/h/q/IOUtils;->toByteArray(Ljava/io/InputStream;)[B
move-result-object v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v1, v0}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
:try_end_31
.catch Ljava/io/IOException; {:try_start_26 .. :try_end_31} :catch_35
:cond_31
:goto_31
invoke-static {v2}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V
return-object v1
:catch_35
move-exception v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v1, v0}, Lcom/h/o/RestProtocol$Protocol;->access$002(Lcom/h/o/RestProtocol$Protocol;Ljava/lang/Exception;)Ljava/lang/Exception;
goto :goto_31
.end method
.method private requestCacheOrNetwork(Lcom/h/o/CacheMode;Lcom/h/j/CacheEntity;Lcom/h/o/ProtocolRequest;)Lcom/h/o/RestProtocol$Protocol;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/h/o/CacheMode;",
"Lcom/h/j/CacheEntity;",
"Lcom/h/o/ProtocolRequest",
"<**>;)",
"Lcom/h/o/RestProtocol$Protocol;"
}
.end annotation
const/4 v6, 0x1
const/4 v1, 0x0
sget-object v0, Lcom/h/o/RestProtocol$1;->$SwitchMap$com$h$o$CacheMode:[I
invoke-virtual {p1}, Lcom/h/o/CacheMode;->ordinal()I
move-result v2
aget v0, v0, v2
packed-switch v0, :pswitch_data_aa
move-object v0, v1
:cond_e
:goto_e
return-object v0
:pswitch_f
new-instance v0, Lcom/h/o/RestProtocol$Protocol;
invoke-direct {v0, v1}, Lcom/h/o/RestProtocol$Protocol;-><init>(Lcom/h/o/RestProtocol$1;)V
if-nez p2, :cond_22
new-instance v1, Lcom/h/n/NotFoundCacheError;
const-string/jumbo v2, "The cache mode is ONLY_READ_CACHE, but did not find the cache."
invoke-direct {v1, v2}, Lcom/h/n/NotFoundCacheError;-><init>(Ljava/lang/String;)V
# setter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$002(Lcom/h/o/RestProtocol$Protocol;Ljava/lang/Exception;)Ljava/lang/Exception;
goto :goto_e
:cond_22
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getData()[B
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
# setter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {v0, v6}, Lcom/h/o/RestProtocol$Protocol;->access$302(Lcom/h/o/RestProtocol$Protocol;Z)Z
goto :goto_e
:pswitch_34
invoke-direct {p0, p3}, Lcom/h/o/RestProtocol;->getHttpProtocol(Lcom/h/r/BasicRequest;)Lcom/h/o/RestProtocol$Protocol;
move-result-object v0
goto :goto_e
:pswitch_39
if-eqz p2, :cond_52
new-instance v0, Lcom/h/o/RestProtocol$Protocol;
invoke-direct {v0, v1}, Lcom/h/o/RestProtocol$Protocol;-><init>(Lcom/h/o/RestProtocol$1;)V
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getData()[B
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
# setter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {v0, v6}, Lcom/h/o/RestProtocol$Protocol;->access$302(Lcom/h/o/RestProtocol$Protocol;Z)Z
goto :goto_e
:cond_52
invoke-direct {p0, p3}, Lcom/h/o/RestProtocol;->getHttpProtocol(Lcom/h/r/BasicRequest;)Lcom/h/o/RestProtocol$Protocol;
move-result-object v0
goto :goto_e
:pswitch_57
invoke-direct {p0, p3, p2}, Lcom/h/o/RestProtocol;->setRequestCacheHeader(Lcom/h/r/BasicRequest;Lcom/h/j/CacheEntity;)V
invoke-direct {p0, p3}, Lcom/h/o/RestProtocol;->getHttpProtocol(Lcom/h/r/BasicRequest;)Lcom/h/o/RestProtocol$Protocol;
move-result-object v0
# getter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v0}, Lcom/h/o/RestProtocol$Protocol;->access$000(Lcom/h/o/RestProtocol$Protocol;)Ljava/lang/Exception;
move-result-object v2
if-eqz v2, :cond_e
if-eqz p2, :cond_e
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v2
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v0, v2}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getData()[B
move-result-object v2
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v0, v2}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
# setter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {v0, v6}, Lcom/h/o/RestProtocol$Protocol;->access$302(Lcom/h/o/RestProtocol$Protocol;Z)Z
# setter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$002(Lcom/h/o/RestProtocol$Protocol;Ljava/lang/Exception;)Ljava/lang/Exception;
goto :goto_e
:pswitch_7b
if-eqz p2, :cond_a1
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getLocalExpire()J
move-result-wide v2
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
cmp-long v0, v2, v4
if-lez v0, :cond_a1
new-instance v0, Lcom/h/o/RestProtocol$Protocol;
invoke-direct {v0, v1}, Lcom/h/o/RestProtocol$Protocol;-><init>(Lcom/h/o/RestProtocol$1;)V
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$102(Lcom/h/o/RestProtocol$Protocol;Lcom/h/r/Headers;)Lcom/h/r/Headers;
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getData()[B
move-result-object v1
# setter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v0, v1}, Lcom/h/o/RestProtocol$Protocol;->access$202(Lcom/h/o/RestProtocol$Protocol;[B)[B
# setter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {v0, v6}, Lcom/h/o/RestProtocol$Protocol;->access$302(Lcom/h/o/RestProtocol$Protocol;Z)Z
goto/16 :goto_e
:cond_a1
invoke-direct {p0, p3, p2}, Lcom/h/o/RestProtocol;->setRequestCacheHeader(Lcom/h/r/BasicRequest;Lcom/h/j/CacheEntity;)V
invoke-direct {p0, p3}, Lcom/h/o/RestProtocol;->getHttpProtocol(Lcom/h/r/BasicRequest;)Lcom/h/o/RestProtocol$Protocol;
move-result-object v0
goto/16 :goto_e
:pswitch_data_aa
.packed-switch 0x1
:pswitch_f
:pswitch_34
:pswitch_39
:pswitch_57
:pswitch_7b
.end packed-switch
.end method
.method private setRequestCacheHeader(Lcom/h/r/BasicRequest;Lcom/h/j/CacheEntity;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/h/r/BasicRequest",
"<*>;",
"Lcom/h/j/CacheEntity;",
")V"
}
.end annotation
if-nez p2, :cond_17
invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;
move-result-object v0
const-string/jumbo v1, "If-None-Match"
invoke-virtual {v0, v1}, Lcom/h/r/Headers;->remove(Ljava/lang/Object;)Ljava/util/List;
invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;
move-result-object v0
const-string/jumbo v1, "If-Modified-Since"
invoke-virtual {v0, v1}, Lcom/h/r/Headers;->remove(Ljava/lang/Object;)Ljava/util/List;
:cond_16
:goto_16
return-void
:cond_17
invoke-virtual {p2}, Lcom/h/j/CacheEntity;->getResponseHeaders()Lcom/h/r/Headers;
move-result-object v0
invoke-virtual {v0}, Lcom/h/r/Headers;->getETag()Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_2b
invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;
move-result-object v2
const-string/jumbo v3, "If-None-Match"
invoke-virtual {v2, v3, v1}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V
:cond_2b
invoke-virtual {v0}, Lcom/h/r/Headers;->getLastModified()J
move-result-wide v0
const-wide/16 v2, 0x0
cmp-long v2, v0, v2
if-lez v2, :cond_16
invoke-virtual {p1}, Lcom/h/r/BasicRequest;->getHeaders()Lcom/h/r/Headers;
move-result-object v2
const-string/jumbo v3, "If-Modified-Since"
invoke-static {v0, v1}, Lcom/h/q/HeaderUtils;->formatMillisToGMT(J)Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v3, v0}, Lcom/h/r/Headers;->set(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_16
.end method
# virtual methods
.method public request(Lcom/h/o/ProtocolRequest;)Lcom/h/o/Response;
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/h/o/ProtocolRequest",
"<*TT;>;)",
"Lcom/h/o/Response",
"<TT;>;"
}
.end annotation
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v6
invoke-virtual {p1}, Lcom/h/o/ProtocolRequest;->getCacheKey()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1}, Lcom/h/o/ProtocolRequest;->getCacheMode()Lcom/h/o/CacheMode;
move-result-object v2
iget-object v0, p0, Lcom/h/o/RestProtocol;->mCacheStore:Lcom/h/q/CacheStore;
invoke-interface {v0, v1}, Lcom/h/q/CacheStore;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/h/j/CacheEntity;
invoke-direct {p0, v2, v0, p1}, Lcom/h/o/RestProtocol;->requestCacheOrNetwork(Lcom/h/o/CacheMode;Lcom/h/j/CacheEntity;Lcom/h/o/ProtocolRequest;)Lcom/h/o/RestProtocol$Protocol;
move-result-object v8
invoke-direct {p0, v1, v2, v0, v8}, Lcom/h/o/RestProtocol;->analysisCacheAndProtocol(Ljava/lang/String;Lcom/h/o/CacheMode;Lcom/h/j/CacheEntity;Lcom/h/o/RestProtocol$Protocol;)V
const/4 v5, 0x0
# getter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$000(Lcom/h/o/RestProtocol$Protocol;)Ljava/lang/Exception;
move-result-object v0
if-nez v0, :cond_2e
:try_start_22
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v0
# getter for: Lcom/h/o/RestProtocol$Protocol;->body:[B
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$200(Lcom/h/o/RestProtocol$Protocol;)[B
move-result-object v1
invoke-virtual {p1, v0, v1}, Lcom/h/o/ProtocolRequest;->parseResponse(Lcom/h/r/Headers;[B)Ljava/lang/Object;
:try_end_2d
.catch Ljava/lang/Exception; {:try_start_22 .. :try_end_2d} :catch_47
move-result-object v5
:cond_2e
:goto_2e
new-instance v1, Lcom/h/o/RestResponse;
# getter for: Lcom/h/o/RestProtocol$Protocol;->fromCache:Z
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$300(Lcom/h/o/RestProtocol$Protocol;)Z
move-result v3
# getter for: Lcom/h/o/RestProtocol$Protocol;->headers:Lcom/h/r/Headers;
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$100(Lcom/h/o/RestProtocol$Protocol;)Lcom/h/r/Headers;
move-result-object v4
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v10
sub-long v6, v10, v6
# getter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v8}, Lcom/h/o/RestProtocol$Protocol;->access$000(Lcom/h/o/RestProtocol$Protocol;)Ljava/lang/Exception;
move-result-object v8
move-object v2, p1
invoke-direct/range {v1 .. v8}, Lcom/h/o/RestResponse;-><init>(Lcom/h/o/ProtocolRequest;ZLcom/h/r/Headers;Ljava/lang/Object;JLjava/lang/Exception;)V
return-object v1
:catch_47
move-exception v0
# setter for: Lcom/h/o/RestProtocol$Protocol;->exception:Ljava/lang/Exception;
invoke-static {v8, v0}, Lcom/h/o/RestProtocol$Protocol;->access$002(Lcom/h/o/RestProtocol$Protocol;Ljava/lang/Exception;)Ljava/lang/Exception;
goto :goto_2e
.end method