package com.worklight.location.internal.wifi.nativeImpl;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Build.VERSION;
import com.worklight.location.api.wifi.WLWifiAccessPoint;
import com.worklight.location.api.wifi.WLWifiError.WLWifiErrorCodes;
import com.worklight.location.internal.wifi.IWifiScannerReceiver;
import com.worklight.location.internal.wifi.WifiException;
import com.worklight.location.internal.wifi.WifiInternalAccessPoint;
import com.worklight.location.internal.wifi.WifiScanner;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class AndroidWifiScanner
  implements WifiScanner
{
  private final Context context;
  private final WifiManager wifiManager;

  public AndroidWifiScanner(Context paramContext)
  {
    if (paramContext == null)
      throw new IllegalArgumentException("context is null");
    this.context = paramContext;
    this.wifiManager = ((WifiManager)paramContext.getSystemService("wifi"));
  }

  private WifiInternalAccessPoint getCurrentSsid()
  {
    if (!((ConnectivityManager)this.context.getSystemService("connectivity")).getNetworkInfo(1).isConnected());
    WifiInfo localWifiInfo;
    do
    {
      return null;
      localWifiInfo = this.wifiManager.getConnectionInfo();
    }
    while ((localWifiInfo == null) || (localWifiInfo.getSSID().equals("")));
    String str = localWifiInfo.getSSID();
    if (str.indexOf("\"") == 0)
      str = str.substring(1, -1 + str.length());
    return new WifiInternalAccessPoint(str, localWifiInfo.getBSSID(), 100, true);
  }

  private static int getStrength(int paramInt)
  {
    int i = 100;
    if (Build.VERSION.SDK_INT >= 14)
      i = WifiManager.calculateSignalLevel(paramInt, 101);
    do
    {
      return i;
      if (paramInt <= -100)
        return 0;
    }
    while (paramInt >= -55);
    float f = 45;
    return (int)(i * (paramInt + 100) / f);
  }

  private static int getStrength(ScanResult paramScanResult)
  {
    if (paramScanResult.getClass() != ScanResult.class)
      return paramScanResult.level;
    return getStrength(paramScanResult.level);
  }

  private static boolean isEmulator()
  {
    return (Build.PRODUCT.equals("sdk_x86")) || (Build.PRODUCT.equals("google_sdk")) || (Build.PRODUCT.equals("sdk"));
  }

  private Collection<WifiInternalAccessPoint> resultToAccessPoints(Iterable<ScanResult> paramIterable)
  {
    WifiInternalAccessPoint localWifiInternalAccessPoint = getCurrentSsid();
    ArrayList localArrayList = new ArrayList();
    Iterator localIterator = paramIterable.iterator();
    if (localIterator.hasNext())
    {
      ScanResult localScanResult = (ScanResult)localIterator.next();
      if ((localWifiInternalAccessPoint != null) && (localWifiInternalAccessPoint.getSSID().equals(localScanResult.SSID)) && (localWifiInternalAccessPoint.getMAC().equals(localScanResult.BSSID)));
      for (boolean bool = true; ; bool = false)
      {
        localArrayList.add(new WifiInternalAccessPoint(localScanResult.SSID, localScanResult.BSSID, getStrength(localScanResult), bool));
        break;
      }
    }
    return localArrayList;
  }

  public void scan(final IWifiScannerReceiver paramIWifiScannerReceiver)
    throws WifiException
  {
    if (paramIWifiScannerReceiver == null)
      throw new IllegalArgumentException("r is null");
    try
    {
      this.context.registerReceiver(new BroadcastReceiver()
      {
        public void onReceive(Context paramAnonymousContext, Intent paramAnonymousIntent)
        {
          paramAnonymousContext.unregisterReceiver(this);
          List localList = AndroidWifiScanner.this.wifiManager.getScanResults();
          long l = System.currentTimeMillis();
          try
          {
            if (!localList.isEmpty())
              l = ((ScanResult)localList.iterator().next()).timestamp;
            label49: paramIWifiScannerReceiver.onScanResults(AndroidWifiScanner.this.resultToAccessPoints(localList), l);
            return;
          }
          catch (NoSuchFieldError localNoSuchFieldError)
          {
            break label49;
          }
        }
      }
      , new IntentFilter("android.net.wifi.SCAN_RESULTS"));
      if (!this.wifiManager.isWifiEnabled())
        throw new WifiException(WLWifiError.WLWifiErrorCodes.DISABLED);
    }
    catch (SecurityException localSecurityException)
    {
      throw new WifiException(WLWifiError.WLWifiErrorCodes.PERMISSION);
    }
    if (!this.wifiManager.startScan())
      throw new WifiException(WLWifiError.WLWifiErrorCodes.FAILED_START_SCAN);
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.worklight.location.internal.wifi.nativeImpl.AndroidWifiScanner
 * JD-Core Version:    0.6.2
 */