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