package com.worklight.location.internal.geo;

import com.worklight.location.api.geo.WLGeoAcquisitionPolicy;
import com.worklight.location.api.geo.WLGeoCallback;
import com.worklight.location.api.geo.WLGeoPosition;
import com.worklight.location.internal.DeviceContextImpl;
import com.worklight.location.internal.DeviceImpl;
import com.worklight.location.internal.ICallbackExecutor;
import com.worklight.location.internal.RuntimeTriggerContainer;

public final class RTCGeoAcquireLinker
  implements WLGeoCallback
{
  private ICallbackExecutor executor;
  private final WLGeoAcquisitionPolicy policy;
  private final WLGeoCallback successCallback;
  private final DeviceImpl wlDevice;

  public RTCGeoAcquireLinker(DeviceImpl paramDeviceImpl, WLGeoCallback paramWLGeoCallback, WLGeoAcquisitionPolicy paramWLGeoAcquisitionPolicy, ICallbackExecutor paramICallbackExecutor)
  {
    this.wlDevice = paramDeviceImpl;
    this.successCallback = paramWLGeoCallback;
    this.policy = paramWLGeoAcquisitionPolicy;
    this.executor = paramICallbackExecutor;
  }

  private boolean isUpdateRequired(WLGeoPosition paramWLGeoPosition, boolean paramBoolean)
  {
    if (!this.wlDevice.getGeoAcquisitor().isAcquiring());
    WLGeoPosition localWLGeoPosition;
    do
    {
      return false;
      localWLGeoPosition = this.wlDevice.getDeviceContextImpl().getGeoPosition();
    }
    while ((localWLGeoPosition != null) && (!(localWLGeoPosition instanceof EmptyGeoPosition)) && ((paramWLGeoPosition.getTimestamp().longValue() < localWLGeoPosition.getTimestamp().longValue()) || ((paramBoolean) && (paramWLGeoPosition.equals(localWLGeoPosition))) || ((!this.policy.isEnableHighAccuracy()) && (this.wlDevice.getGeoAcquisitor().getWatchPolicy().isEnableHighAccuracy()))));
    return true;
  }

  public void execute(WLGeoPosition paramWLGeoPosition)
  {
    boolean bool = isUpdateRequired(paramWLGeoPosition, true);
    if (bool)
      this.wlDevice.getDeviceContextImpl().setGeoPosition(paramWLGeoPosition);
    try
    {
      this.executor.executeGeoAcquisitionCallback(this.successCallback, paramWLGeoPosition);
      return;
    }
    finally
    {
      if ((bool) && (isUpdateRequired(paramWLGeoPosition, false)))
        this.wlDevice.getRTC().geoLocationAcquired(paramWLGeoPosition);
    }
  }
}

/* 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.geo.RTCGeoAcquireLinker
 * JD-Core Version:    0.6.2
 */