.class Lcom/squareup/picasso/NetworkRequestHandler; .super Lcom/squareup/picasso/RequestHandler; .source "NetworkRequestHandler.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/squareup/picasso/NetworkRequestHandler$ResponseException;, Lcom/squareup/picasso/NetworkRequestHandler$ContentLengthException; } .end annotation # static fields .field private static final SCHEME_HTTP:Ljava/lang/String; = "http" .field private static final SCHEME_HTTPS:Ljava/lang/String; = "https" # instance fields .field private final downloader:Lcom/squareup/picasso/Downloader; .field private final stats:Lcom/squareup/picasso/Stats; # direct methods .method constructor (Lcom/squareup/picasso/Downloader;Lcom/squareup/picasso/Stats;)V .registers 3 .line 34 invoke-direct {p0}, Lcom/squareup/picasso/RequestHandler;->()V .line 35 iput-object p1, p0, Lcom/squareup/picasso/NetworkRequestHandler;->downloader:Lcom/squareup/picasso/Downloader; .line 36 iput-object p2, p0, Lcom/squareup/picasso/NetworkRequestHandler;->stats:Lcom/squareup/picasso/Stats; return-void .end method .method private static createRequest(Lcom/squareup/picasso/Request;I)Lokhttp3/Request; .registers 4 if-eqz p1, :cond_27 .line 85 invoke-static {p1}, Lcom/squareup/picasso/NetworkPolicy;->isOfflineOnly(I)Z move-result v0 if-eqz v0, :cond_b .line 86 sget-object p1, Lokhttp3/CacheControl;->FORCE_CACHE:Lokhttp3/CacheControl; goto :goto_28 .line 88 :cond_b new-instance v0, Lokhttp3/CacheControl$Builder; invoke-direct {v0}, Lokhttp3/CacheControl$Builder;->()V .line 89 invoke-static {p1}, Lcom/squareup/picasso/NetworkPolicy;->shouldReadFromDiskCache(I)Z move-result v1 if-nez v1, :cond_19 .line 90 invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->noCache()Lokhttp3/CacheControl$Builder; .line 92 :cond_19 invoke-static {p1}, Lcom/squareup/picasso/NetworkPolicy;->shouldWriteToDiskCache(I)Z move-result p1 if-nez p1, :cond_22 .line 93 invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->noStore()Lokhttp3/CacheControl$Builder; .line 95 :cond_22 invoke-virtual {v0}, Lokhttp3/CacheControl$Builder;->build()Lokhttp3/CacheControl; move-result-object p1 goto :goto_28 :cond_27 const/4 p1, 0x0 .line 99 :goto_28 new-instance v0, Lokhttp3/Request$Builder; invoke-direct {v0}, Lokhttp3/Request$Builder;->()V iget-object p0, p0, Lcom/squareup/picasso/Request;->uri:Landroid/net/Uri; invoke-virtual {p0}, Landroid/net/Uri;->toString()Ljava/lang/String; move-result-object p0 invoke-virtual {v0, p0}, Lokhttp3/Request$Builder;->url(Ljava/lang/String;)Lokhttp3/Request$Builder; move-result-object p0 if-eqz p1, :cond_3c .line 101 invoke-virtual {p0, p1}, Lokhttp3/Request$Builder;->cacheControl(Lokhttp3/CacheControl;)Lokhttp3/Request$Builder; .line 103 :cond_3c invoke-virtual {p0}, Lokhttp3/Request$Builder;->build()Lokhttp3/Request; move-result-object p0 return-object p0 .end method # virtual methods .method public canHandleRequest(Lcom/squareup/picasso/Request;)Z .registers 3 .line 40 iget-object p1, p1, Lcom/squareup/picasso/Request;->uri:Landroid/net/Uri; invoke-virtual {p1}, Landroid/net/Uri;->getScheme()Ljava/lang/String; move-result-object p1 .line 41 const-string v0, "http" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_19 const-string v0, "https" invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_17 goto :goto_19 :cond_17 const/4 p1, 0x0 goto :goto_1a :cond_19 :goto_19 const/4 p1, 0x1 :goto_1a return p1 .end method .method getRetryCount()I .registers 2 const/4 v0, 0x2 return v0 .end method .method public load(Lcom/squareup/picasso/Request;I)Lcom/squareup/picasso/RequestHandler$Result; .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 45 invoke-static {p1, p2}, Lcom/squareup/picasso/NetworkRequestHandler;->createRequest(Lcom/squareup/picasso/Request;I)Lokhttp3/Request; move-result-object p2 .line 46 iget-object v0, p0, Lcom/squareup/picasso/NetworkRequestHandler;->downloader:Lcom/squareup/picasso/Downloader; invoke-interface {v0, p2}, Lcom/squareup/picasso/Downloader;->load(Lokhttp3/Request;)Lokhttp3/Response; move-result-object p2 .line 47 invoke-virtual {p2}, Lokhttp3/Response;->body()Lokhttp3/ResponseBody; move-result-object v0 .line 49 invoke-virtual {p2}, Lokhttp3/Response;->isSuccessful()Z move-result v1 if-eqz v1, :cond_58 .line 56 invoke-virtual {p2}, Lokhttp3/Response;->cacheResponse()Lokhttp3/Response; move-result-object p1 if-nez p1, :cond_1d sget-object p1, Lcom/squareup/picasso/Picasso$LoadedFrom;->NETWORK:Lcom/squareup/picasso/Picasso$LoadedFrom; goto :goto_1f :cond_1d sget-object p1, Lcom/squareup/picasso/Picasso$LoadedFrom;->DISK:Lcom/squareup/picasso/Picasso$LoadedFrom; .line 60 :goto_1f sget-object p2, Lcom/squareup/picasso/Picasso$LoadedFrom;->DISK:Lcom/squareup/picasso/Picasso$LoadedFrom; const-wide/16 v1, 0x0 if-ne p1, p2, :cond_39 invoke-virtual {v0}, Lokhttp3/ResponseBody;->contentLength()J move-result-wide v3 cmp-long p2, v3, v1 if-eqz p2, :cond_2e goto :goto_39 .line 61 :cond_2e invoke-virtual {v0}, Lokhttp3/ResponseBody;->close()V .line 62 new-instance p1, Lcom/squareup/picasso/NetworkRequestHandler$ContentLengthException; const-string p2, "Received response with 0 content-length header." invoke-direct {p1, p2}, Lcom/squareup/picasso/NetworkRequestHandler$ContentLengthException;->(Ljava/lang/String;)V throw p1 .line 64 :cond_39 :goto_39 sget-object p2, Lcom/squareup/picasso/Picasso$LoadedFrom;->NETWORK:Lcom/squareup/picasso/Picasso$LoadedFrom; if-ne p1, p2, :cond_4e invoke-virtual {v0}, Lokhttp3/ResponseBody;->contentLength()J move-result-wide v3 cmp-long p2, v3, v1 if-lez p2, :cond_4e .line 65 iget-object p2, p0, Lcom/squareup/picasso/NetworkRequestHandler;->stats:Lcom/squareup/picasso/Stats; invoke-virtual {v0}, Lokhttp3/ResponseBody;->contentLength()J move-result-wide v1 invoke-virtual {p2, v1, v2}, Lcom/squareup/picasso/Stats;->dispatchDownloadFinished(J)V .line 67 :cond_4e new-instance p2, Lcom/squareup/picasso/RequestHandler$Result; invoke-virtual {v0}, Lokhttp3/ResponseBody;->source()Lokio/BufferedSource; move-result-object v0 invoke-direct {p2, v0, p1}, Lcom/squareup/picasso/RequestHandler$Result;->(Lokio/Source;Lcom/squareup/picasso/Picasso$LoadedFrom;)V return-object p2 .line 50 :cond_58 invoke-virtual {v0}, Lokhttp3/ResponseBody;->close()V .line 51 new-instance v0, Lcom/squareup/picasso/NetworkRequestHandler$ResponseException; invoke-virtual {p2}, Lokhttp3/Response;->code()I move-result p2 iget p1, p1, Lcom/squareup/picasso/Request;->networkPolicy:I invoke-direct {v0, p2, p1}, Lcom/squareup/picasso/NetworkRequestHandler$ResponseException;->(II)V throw v0 .end method .method shouldRetry(ZLandroid/net/NetworkInfo;)Z .registers 3 if-eqz p2, :cond_b .line 75 invoke-virtual {p2}, Landroid/net/NetworkInfo;->isConnected()Z move-result p1 if-eqz p1, :cond_9 goto :goto_b :cond_9 const/4 p1, 0x0 goto :goto_c :cond_b :goto_b const/4 p1, 0x1 :goto_c return p1 .end method .method supportsReplay()Z .registers 2 const/4 v0, 0x1 return v0 .end method