UrlConnectionDownloader.java 7.87 KB
package com.squareup.picasso;

import android.content.Context;
import android.net.Uri;
import android.net.http.HttpResponseCache;
import android.os.Build.VERSION;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class UrlConnectionDownloader
  implements Downloader
{
  static volatile Object a;
  private static final Object b = new Object();
  private static final ThreadLocal<StringBuilder> c = new ThreadLocal() {};
  private final Context d;
  
  public UrlConnectionDownloader(Context paramContext)
  {
    this.d = paramContext.getApplicationContext();
  }
  
  /* Error */
  public Downloader.Response load(Uri paramUri, int paramInt)
    throws IOException
  {
    // Byte code:
    //   0: getstatic 46	android/os/Build$VERSION:SDK_INT	I
    //   3: bipush 14
    //   5: if_icmplt +70 -> 75
    //   8: aload_0
    //   9: getfield 36	com/squareup/picasso/UrlConnectionDownloader:d	Landroid/content/Context;
    //   12: astore 7
    //   14: getstatic 48	com/squareup/picasso/UrlConnectionDownloader:a	Ljava/lang/Object;
    //   17: ifnonnull +58 -> 75
    //   20: getstatic 23	com/squareup/picasso/UrlConnectionDownloader:b	Ljava/lang/Object;
    //   23: astore 9
    //   25: aload 9
    //   27: monitorenter
    //   28: getstatic 48	com/squareup/picasso/UrlConnectionDownloader:a	Ljava/lang/Object;
    //   31: ifnonnull +41 -> 72
    //   34: aload 7
    //   36: invokestatic 53	sy:b	(Landroid/content/Context;)Ljava/io/File;
    //   39: astore 10
    //   41: invokestatic 59	android/net/http/HttpResponseCache:getInstalled	()Landroid/net/http/HttpResponseCache;
    //   44: astore 8
    //   46: aload 8
    //   48: astore 7
    //   50: aload 8
    //   52: ifnonnull +15 -> 67
    //   55: aload 10
    //   57: aload 10
    //   59: invokestatic 62	sy:a	(Ljava/io/File;)J
    //   62: invokestatic 66	android/net/http/HttpResponseCache:install	(Ljava/io/File;J)Landroid/net/http/HttpResponseCache;
    //   65: astore 7
    //   67: aload 7
    //   69: putstatic 48	com/squareup/picasso/UrlConnectionDownloader:a	Ljava/lang/Object;
    //   72: aload 9
    //   74: monitorexit
    //   75: aload_0
    //   76: aload_1
    //   77: invokevirtual 70	com/squareup/picasso/UrlConnectionDownloader:openConnection	(Landroid/net/Uri;)Ljava/net/HttpURLConnection;
    //   80: astore 7
    //   82: aload 7
    //   84: iconst_1
    //   85: invokevirtual 76	java/net/HttpURLConnection:setUseCaches	(Z)V
    //   88: iload_2
    //   89: ifeq +21 -> 110
    //   92: iload_2
    //   93: invokestatic 82	com/squareup/picasso/NetworkPolicy:isOfflineOnly	(I)Z
    //   96: ifeq +82 -> 178
    //   99: ldc 84
    //   101: astore_1
    //   102: aload 7
    //   104: ldc 86
    //   106: aload_1
    //   107: invokevirtual 90	java/net/HttpURLConnection:setRequestProperty	(Ljava/lang/String;Ljava/lang/String;)V
    //   110: aload 7
    //   112: invokevirtual 94	java/net/HttpURLConnection:getResponseCode	()I
    //   115: istore_3
    //   116: iload_3
    //   117: sipush 300
    //   120: if_icmplt +123 -> 243
    //   123: aload 7
    //   125: invokevirtual 97	java/net/HttpURLConnection:disconnect	()V
    //   128: new 99	com/squareup/picasso/Downloader$ResponseException
    //   131: dup
    //   132: new 101	java/lang/StringBuilder
    //   135: dup
    //   136: invokespecial 102	java/lang/StringBuilder:<init>	()V
    //   139: iload_3
    //   140: invokevirtual 106	java/lang/StringBuilder:append	(I)Ljava/lang/StringBuilder;
    //   143: ldc 108
    //   145: invokevirtual 111	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   148: aload 7
    //   150: invokevirtual 115	java/net/HttpURLConnection:getResponseMessage	()Ljava/lang/String;
    //   153: invokevirtual 111	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   156: invokevirtual 118	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   159: iload_2
    //   160: iload_3
    //   161: invokespecial 121	com/squareup/picasso/Downloader$ResponseException:<init>	(Ljava/lang/String;II)V
    //   164: athrow
    //   165: astore 7
    //   167: aload 9
    //   169: monitorexit
    //   170: aload 7
    //   172: athrow
    //   173: astore 7
    //   175: goto -100 -> 75
    //   178: getstatic 26	com/squareup/picasso/UrlConnectionDownloader:c	Ljava/lang/ThreadLocal;
    //   181: invokevirtual 127	java/lang/ThreadLocal:get	()Ljava/lang/Object;
    //   184: checkcast 101	java/lang/StringBuilder
    //   187: astore_1
    //   188: aload_1
    //   189: iconst_0
    //   190: invokevirtual 131	java/lang/StringBuilder:setLength	(I)V
    //   193: iload_2
    //   194: invokestatic 134	com/squareup/picasso/NetworkPolicy:shouldReadFromDiskCache	(I)Z
    //   197: ifne +10 -> 207
    //   200: aload_1
    //   201: ldc -120
    //   203: invokevirtual 111	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   206: pop
    //   207: iload_2
    //   208: invokestatic 139	com/squareup/picasso/NetworkPolicy:shouldWriteToDiskCache	(I)Z
    //   211: ifne +24 -> 235
    //   214: aload_1
    //   215: invokevirtual 142	java/lang/StringBuilder:length	()I
    //   218: ifle +10 -> 228
    //   221: aload_1
    //   222: bipush 44
    //   224: invokevirtual 145	java/lang/StringBuilder:append	(C)Ljava/lang/StringBuilder;
    //   227: pop
    //   228: aload_1
    //   229: ldc -109
    //   231: invokevirtual 111	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   234: pop
    //   235: aload_1
    //   236: invokevirtual 118	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   239: astore_1
    //   240: goto -138 -> 102
    //   243: aload 7
    //   245: ldc -107
    //   247: iconst_m1
    //   248: invokevirtual 153	java/net/HttpURLConnection:getHeaderFieldInt	(Ljava/lang/String;I)I
    //   251: i2l
    //   252: lstore 4
    //   254: aload 7
    //   256: ldc -101
    //   258: invokevirtual 159	java/net/HttpURLConnection:getHeaderField	(Ljava/lang/String;)Ljava/lang/String;
    //   261: invokestatic 162	sy:a	(Ljava/lang/String;)Z
    //   264: istore 6
    //   266: new 164	com/squareup/picasso/Downloader$Response
    //   269: dup
    //   270: aload 7
    //   272: invokevirtual 168	java/net/HttpURLConnection:getInputStream	()Ljava/io/InputStream;
    //   275: iload 6
    //   277: lload 4
    //   279: invokespecial 171	com/squareup/picasso/Downloader$Response:<init>	(Ljava/io/InputStream;ZJ)V
    //   282: areturn
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	283	0	this	UrlConnectionDownloader
    //   0	283	1	paramUri	Uri
    //   0	283	2	paramInt	int
    //   115	46	3	i	int
    //   252	26	4	l	long
    //   264	12	6	bool	boolean
    //   12	137	7	localObject1	Object
    //   165	6	7	localObject2	Object
    //   173	98	7	localIOException	IOException
    //   44	7	8	localHttpResponseCache	HttpResponseCache
    //   39	19	10	localFile	java.io.File
    // Exception table:
    //   from	to	target	type
    //   28	46	165	finally
    //   55	67	165	finally
    //   67	72	165	finally
    //   72	75	165	finally
    //   167	170	165	finally
    //   20	28	173	java/io/IOException
    //   170	173	173	java/io/IOException
  }
  
  protected HttpURLConnection openConnection(Uri paramUri)
    throws IOException
  {
    paramUri = (HttpURLConnection)new URL(paramUri.toString()).openConnection();
    paramUri.setConnectTimeout(15000);
    paramUri.setReadTimeout(20000);
    return paramUri;
  }
  
  public void shutdown()
  {
    Object localObject;
    if ((Build.VERSION.SDK_INT >= 14) && (a != null)) {
      localObject = a;
    }
    try
    {
      ((HttpResponseCache)localObject).close();
      return;
    }
    catch (IOException localIOException) {}
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/squareup/picasso/UrlConnectionDownloader.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */