package com.worklight.location.internal.geo.triggerEvaluators;

import com.worklight.location.api.WLAcquisitionPolicy;
import com.worklight.location.api.WLDevice;
import com.worklight.location.api.WLLocationServicesConfiguration;
import com.worklight.location.api.geo.WLGeoAcquisitionPolicy;
import com.worklight.location.api.geo.WLGeoFailureCallback;
import com.worklight.location.api.geo.WLGeoPosition;
import com.worklight.location.internal.IRunnableExecutor;
import com.worklight.location.internal.geo.AcquireGeoPositionPseudoTimerTask;
import com.worklight.location.internal.geo.ChainGeoFailureCallback;
import com.worklight.location.internal.geo.triggers.AbstractGeoDwellTrigger;
import com.worklight.location.internal.nativeImpl.TimerRunnableExecutor;
import com.worklight.wlclient.api.WLClient;

abstract class GeoDwellTriggerEvaluator extends GeoAreaTriggerEvaluator
{
  private AcquireGeoPositionPseudoTimerTask acquirePosTT = null;
  private boolean alreadyEvaluatedAsDwelling = false;
  private WLGeoFailureCallback failureCallback = null;
  private WLGeoAcquisitionPolicy policy = null;
  private IRunnableExecutor runnableExec = null;
  private long startCurrentTime;
  private Long startDwellingTime = null;
  private WLDevice wlDevice = null;

  protected GeoDwellTriggerEvaluator(AbstractGeoDwellTrigger paramAbstractGeoDwellTrigger, boolean paramBoolean)
  {
    super(paramAbstractGeoDwellTrigger, paramBoolean);
    this.wlDevice = WLClient.getInstance().getWLDevice();
    this.runnableExec = new TimerRunnableExecutor();
  }

  protected GeoDwellTriggerEvaluator(AbstractGeoDwellTrigger paramAbstractGeoDwellTrigger, boolean paramBoolean, WLDevice paramWLDevice, WLGeoAcquisitionPolicy paramWLGeoAcquisitionPolicy, WLGeoFailureCallback paramWLGeoFailureCallback)
  {
    super(paramAbstractGeoDwellTrigger, paramBoolean);
    this.wlDevice = paramWLDevice;
    this.policy = paramWLGeoAcquisitionPolicy;
    this.failureCallback = paramWLGeoFailureCallback;
    this.runnableExec = new TimerRunnableExecutor();
  }

  private void cancelTask()
  {
    try
    {
      if (this.acquirePosTT != null)
      {
        this.acquirePosTT.cancel();
        this.acquirePosTT = null;
      }
      return;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  private boolean isDwelling()
  {
    if (this.shouldBeInside)
      return isInsideArea();
    return isOutsideArea();
  }

  private void resetTask()
  {
    try
    {
      cancelTask();
      if (this.startDwellingTime != null)
      {
        boolean bool = this.alreadyEvaluatedAsDwelling;
        if (!bool)
          break label25;
      }
      while (true)
      {
        return;
        label25: long l = 100L + getTriggerDefinition().getDwellingTime() - (System.currentTimeMillis() - this.startCurrentTime);
        this.acquirePosTT = new AcquireGeoPositionPseudoTimerTask(this.wlDevice, this.failureCallback, this.policy, l);
        this.runnableExec.execute(this.acquirePosTT, l);
      }
    }
    finally
    {
    }
  }

  public boolean evaluate(WLGeoPosition paramWLGeoPosition)
  {
    updatePosition(paramWLGeoPosition);
    if (this.startDwellingTime == null)
    {
      boolean bool = isDwelling();
      Long localLong = null;
      if (bool)
        localLong = paramWLGeoPosition.getTimestamp();
      this.startDwellingTime = localLong;
      this.startCurrentTime = System.currentTimeMillis();
      this.alreadyEvaluatedAsDwelling = false;
      resetTask();
    }
    do
      while (true)
      {
        return false;
        if (isDwelling())
          break;
        this.startDwellingTime = null;
        cancelTask();
      }
    while ((this.alreadyEvaluatedAsDwelling) || (!isDwelling()) || (paramWLGeoPosition.getTimestamp().longValue() - this.startDwellingTime.longValue() < getTriggerDefinition().getDwellingTime()));
    this.alreadyEvaluatedAsDwelling = true;
    cancelTask();
    return true;
  }

  public AbstractGeoDwellTrigger getTriggerDefinition()
  {
    return (AbstractGeoDwellTrigger)super.getTriggerDefinition();
  }

  public void notifyOfConfigurationUpdate(WLLocationServicesConfiguration paramWLLocationServicesConfiguration)
  {
    super.notifyOfConfigurationUpdate(paramWLLocationServicesConfiguration);
    this.policy = paramWLLocationServicesConfiguration.getPolicy().getGeoPolicy().clone();
    this.policy.setMaximumAge(100L);
    this.failureCallback = new ChainGeoFailureCallback(paramWLLocationServicesConfiguration.getFailureCallbacks());
    resetTask();
  }

  public void preDestroy()
  {
    cancelTask();
    super.preDestroy();
  }
}

/* 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.triggerEvaluators.GeoDwellTriggerEvaluator
 * JD-Core Version:    0.6.2
 */