package com.splunk.mint.network;

import com.splunk.mint.ActionNetwork;
import com.splunk.mint.ExcludedUrls;
import com.splunk.mint.Logger;
import com.splunk.mint.Properties;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Constructor;
import java.net.HttpURLConnection;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
import javax.net.ssl.HttpsURLConnection;

public class NetLogManager
{
  private static final long CONNECTION_TIMEOUT = 60000L;
  private static volatile HashMap<String, StartConnectionInfo> connectionsMap = new HashMap();
  private static NetLogManager mNetLogManager = null;

  private boolean checkIfURLisExcluded(String paramString)
  {
    if (paramString == null)
      return true;
    if (Properties.excludedUrls != null)
    {
      String str = cleanUrl(paramString);
      Iterator localIterator = Properties.excludedUrls.iterator();
      while (localIterator.hasNext())
        if (str.contains((String)localIterator.next()))
          return true;
    }
    return false;
  }

  private String cleanUrl(String paramString)
  {
    if (paramString != null)
      paramString = paramString.toLowerCase().replaceAll("https://", "").replaceAll("http://", "").replaceAll("www.", "");
    return paramString;
  }

  public static boolean deviceSupporsNetworkMonitoring()
  {
    try
    {
      Class localClass = Class.forName("java.net.PlainSocketImpl");
      if (localClass == null)
        return false;
      Constructor localConstructor = localClass.getDeclaredConstructor(new Class[0]);
      if (localConstructor != null)
      {
        localConstructor.newInstance(new Object[0]);
        Logger.logInfo("Device supports Network Monitoring");
        return true;
      }
    }
    catch (RuntimeException localRuntimeException)
    {
      Logger.logInfo("deviceSupporsNetworkMonitoring: " + localRuntimeException.getMessage());
      return false;
    }
    catch (Exception localException)
    {
      Logger.logInfo("deviceSupporsNetworkMonitoring: " + localException.getMessage());
    }
    return false;
  }

  public static String exceptionToString(Exception paramException)
  {
    try
    {
      StringWriter localStringWriter = new StringWriter();
      paramException.printStackTrace(new PrintWriter(localStringWriter));
      String str = localStringWriter.toString();
      return str;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  public static NetLogManager getInstance()
  {
    try
    {
      if (mNetLogManager == null)
        mNetLogManager = new NetLogManager();
      NetLogManager localNetLogManager = mNetLogManager;
      return localNetLogManager;
    }
    finally
    {
    }
  }

  public static final int getStatusCodeFromURLConnection(URLConnection paramURLConnection)
  {
    int i = 0;
    if ((paramURLConnection == null) || ((paramURLConnection instanceof HttpURLConnection)));
    try
    {
      int k = ((HttpURLConnection)paramURLConnection).getResponseCode();
      i = k;
      boolean bool;
      do
      {
        return i;
        bool = paramURLConnection instanceof HttpsURLConnection;
        i = 0;
      }
      while (!bool);
      try
      {
        int j = ((HttpsURLConnection)paramURLConnection).getResponseCode();
        return j;
      }
      catch (Exception localException1)
      {
        return 0;
      }
    }
    catch (Exception localException2)
    {
    }
    return 0;
  }

  private void removeOldEntries()
  {
    try
    {
      Iterator localIterator = connectionsMap.entrySet().iterator();
      while (localIterator.hasNext())
      {
        long l = ((StartConnectionInfo)((Map.Entry)localIterator.next()).getValue()).startTime.longValue();
        if (System.currentTimeMillis() - l > 60000L)
          localIterator.remove();
      }
    }
    finally
    {
    }
  }

  public void cancelNetworkCall(MonitorRegistry paramMonitorRegistry, String paramString1, long paramLong, String paramString2, String paramString3)
  {
    if (paramString1 != null);
    try
    {
      String str = cleanUrl(paramString1);
      if ((connectionsMap != null) && (connectionsMap.containsKey(str)))
      {
        StartConnectionInfo localStartConnectionInfo = (StartConnectionInfo)connectionsMap.get(str);
        if (localStartConnectionInfo != null)
        {
          connectionsMap.remove(str);
          ActionNetwork.logNetwork(localStartConnectionInfo.url, localStartConnectionInfo.startTime.longValue(), paramLong, paramString2, 0, 0L, 0L, paramString3, null);
        }
      }
      return;
    }
    finally
    {
    }
  }

  public void endNetworkCall(MonitorRegistry paramMonitorRegistry, String paramString, long paramLong, int paramInt)
  {
    if (paramString != null);
    try
    {
      String str = cleanUrl(paramString);
      if ((connectionsMap != null) && (connectionsMap.containsKey(str)))
      {
        StartConnectionInfo localStartConnectionInfo = (StartConnectionInfo)connectionsMap.get(str);
        if (localStartConnectionInfo != null)
        {
          connectionsMap.remove(str);
          Long localLong = Long.valueOf(0L);
          long l = 0L;
          Iterator localIterator = paramMonitorRegistry.getMetricsForName(str).iterator();
          while (localIterator.hasNext())
          {
            Metric localMetric = (Metric)localIterator.next();
            if ((localMetric instanceof Counter))
              if (((Counter)localMetric).getName().endsWith("-bytes-out"))
                localLong = (Long)localMetric.getValue();
              else if (((Counter)localMetric).getName().endsWith("-bytes-in"))
                l = ((Long)localMetric.getValue()).longValue();
          }
          ActionNetwork.logNetwork(localStartConnectionInfo.url, localStartConnectionInfo.startTime.longValue(), paramLong, localStartConnectionInfo.protocol, paramInt, localLong.longValue(), l, null, null);
        }
      }
      return;
    }
    finally
    {
    }
  }

  public void logNetworkRequest(String paramString1, String paramString2, long paramLong1, long paramLong2, int paramInt, long paramLong3, long paramLong4, String paramString3, HashMap<String, Object> paramHashMap)
  {
    try
    {
      if (!checkIfURLisExcluded(paramString1))
        ActionNetwork.logNetwork(paramString1, paramLong1, paramLong2, paramString2, paramInt, paramLong3, paramLong4, paramString3, paramHashMap);
      return;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  public void startNetworkCall(String paramString1, String paramString2, long paramLong, String paramString3)
  {
    if (paramString1 != null);
    try
    {
      String str = cleanUrl(paramString1);
      if (!checkIfURLisExcluded(paramString2))
      {
        StartConnectionInfo localStartConnectionInfo = new StartConnectionInfo();
        localStartConnectionInfo.startTime = Long.valueOf(paramLong);
        localStartConnectionInfo.url = paramString2;
        localStartConnectionInfo.protocol = paramString3;
        connectionsMap.put(str, localStartConnectionInfo);
        removeOldEntries();
      }
      return;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  class StartConnectionInfo
  {
    public String protocol;
    public Long startTime;
    public int statusCode;
    public String url;

    StartConnectionInfo()
    {
    }
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.splunk.mint.network.NetLogManager
 * JD-Core Version:    0.6.2
 */