package com.google.android.m4b.maps.b;

import android.os.SystemClock;
import com.google.android.m4b.maps.a.b.a;
import com.google.android.m4b.maps.a.g;
import com.google.android.m4b.maps.a.i;
import com.google.android.m4b.maps.a.k;
import com.google.android.m4b.maps.a.o;
import com.google.android.m4b.maps.a.p;
import com.google.android.m4b.maps.a.q;
import com.google.android.m4b.maps.a.r;
import com.google.android.m4b.maps.a.s;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.cookie.DateUtils;

public final class a
  implements com.google.android.m4b.maps.a.e
{
  private static boolean a = s.a;
  private static int b = 3000;
  private static int c = 4096;
  private e d;
  private b e;

  public a(e parame)
  {
    this(parame, new b(c));
  }

  private a(e parame, b paramb)
  {
    this.d = parame;
    this.e = paramb;
  }

  private static Map<String, String> a(Header[] paramArrayOfHeader)
  {
    HashMap localHashMap = new HashMap();
    for (int i = 0; i < paramArrayOfHeader.length; i++)
      localHashMap.put(paramArrayOfHeader[i].getName(), paramArrayOfHeader[i].getValue());
    return localHashMap;
  }

  private static void a(String paramString, k<?> paramk, r paramr)
  {
    o localo = paramk.o();
    int i = paramk.n();
    try
    {
      localo.a(paramr);
      Object[] arrayOfObject2 = new Object[2];
      arrayOfObject2[0] = paramString;
      arrayOfObject2[1] = Integer.valueOf(i);
      paramk.a(String.format("%s-retry [timeout=%s]", arrayOfObject2));
      return;
    }
    catch (r localr)
    {
      Object[] arrayOfObject1 = new Object[2];
      arrayOfObject1[0] = paramString;
      arrayOfObject1[1] = Integer.valueOf(i);
      paramk.a(String.format("%s-timeout-giveup [timeout=%s]", arrayOfObject1));
      throw localr;
    }
  }

  private byte[] a(HttpEntity paramHttpEntity)
  {
    h localh = new h(this.e, (int)paramHttpEntity.getContentLength());
    byte[] arrayOfByte1 = null;
    InputStream localInputStream;
    try
    {
      localInputStream = paramHttpEntity.getContent();
      arrayOfByte1 = null;
      if (localInputStream == null)
        throw new p();
    }
    finally
    {
    }
    try
    {
      paramHttpEntity.consumeContent();
      this.e.a(arrayOfByte1);
      localh.close();
      throw localObject;
      arrayOfByte1 = this.e.a(1024);
      while (true)
      {
        int i = localInputStream.read(arrayOfByte1);
        if (i == -1)
          break;
        localh.write(arrayOfByte1, 0, i);
      }
      byte[] arrayOfByte2 = localh.toByteArray();
      try
      {
        paramHttpEntity.consumeContent();
        this.e.a(arrayOfByte1);
        localh.close();
        return arrayOfByte2;
      }
      catch (IOException localIOException2)
      {
        while (true)
          s.a("Error occured when calling consumingContent", new Object[0]);
      }
    }
    catch (IOException localIOException1)
    {
      while (true)
        s.a("Error occured when calling consumingContent", new Object[0]);
    }
  }

  public final com.google.android.m4b.maps.a.h a(k<?> paramk)
  {
    long l1 = SystemClock.elapsedRealtime();
    HttpResponse localHttpResponse = null;
    byte[] arrayOfByte = null;
    Object localObject1 = new HashMap();
    while (true)
    {
      com.google.android.m4b.maps.a.h localh1;
      try
      {
        HashMap localHashMap = new HashMap();
        b.a locala = paramk.e();
        arrayOfByte = null;
        localHttpResponse = null;
        if (locala != null)
        {
          if (locala.b != null)
            localHashMap.put("If-None-Match", locala.b);
          boolean bool = locala.c < 0L;
          arrayOfByte = null;
          localHttpResponse = null;
          if (bool)
            localHashMap.put("If-Modified-Since", DateUtils.formatDate(new Date(locala.c)));
        }
        localHttpResponse = this.d.a(paramk, localHashMap);
        StatusLine localStatusLine = localHttpResponse.getStatusLine();
        j = localStatusLine.getStatusCode();
        localObject1 = a(localHttpResponse.getAllHeaders());
        arrayOfByte = null;
        if (j == 304)
          return new com.google.android.m4b.maps.a.h(304, paramk.e().a, (Map)localObject1, true);
        HttpEntity localHttpEntity = localHttpResponse.getEntity();
        arrayOfByte = null;
        if (localHttpEntity != null)
        {
          arrayOfByte = a(localHttpResponse.getEntity());
          long l2 = SystemClock.elapsedRealtime() - l1;
          if ((a) || (l2 > b))
          {
            Object[] arrayOfObject2 = new Object[5];
            arrayOfObject2[0] = paramk;
            arrayOfObject2[1] = Long.valueOf(l2);
            if (arrayOfByte == null)
              break label571;
            localObject2 = Integer.valueOf(arrayOfByte.length);
            arrayOfObject2[2] = localObject2;
            arrayOfObject2[3] = Integer.valueOf(localStatusLine.getStatusCode());
            arrayOfObject2[4] = Integer.valueOf(paramk.o().b());
            s.b("HTTP response for request=<%s> [lifetime=%d], [size=%s], [rc=%d], [retryCount=%s]", arrayOfObject2);
          }
          if ((j == 200) || (j == 204))
            continue;
          throw new IOException();
        }
      }
      catch (SocketTimeoutException localSocketTimeoutException)
      {
        int j;
        a("socket", paramk, new q());
        break;
        arrayOfByte = new byte[0];
        continue;
        com.google.android.m4b.maps.a.h localh2 = new com.google.android.m4b.maps.a.h(j, arrayOfByte, (Map)localObject1, false);
        return localh2;
      }
      catch (ConnectTimeoutException localConnectTimeoutException)
      {
        a("connection", paramk, new q());
      }
      catch (MalformedURLException localMalformedURLException)
      {
        throw new RuntimeException("Bad URL " + paramk.c(), localMalformedURLException);
      }
      catch (IOException localIOException)
      {
        if (localHttpResponse != null)
        {
          int i = localHttpResponse.getStatusLine().getStatusCode();
          Object[] arrayOfObject1 = new Object[2];
          arrayOfObject1[0] = Integer.valueOf(i);
          arrayOfObject1[1] = paramk.c();
          s.c("Unexpected response code %d for %s", arrayOfObject1);
          if (arrayOfByte == null)
            break label562;
          localh1 = new com.google.android.m4b.maps.a.h(i, arrayOfByte, (Map)localObject1, false);
          if ((i != 401) && (i != 403))
            break label552;
          a("auth", paramk, new com.google.android.m4b.maps.a.a(localh1));
          break;
        }
        throw new i(localIOException);
      }
      label552: throw new p(localh1);
      label562: throw new g(null);
      label571: Object localObject2 = "null";
    }
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.b.a
 * JD-Core Version:    0.6.2
 */