package pl.llp.aircasting.tracking;
import pl.llp.aircasting.model.*;
import pl.llp.aircasting.storage.DatabaseTaskQueue;
import pl.llp.aircasting.storage.SessionPropertySetter;
import pl.llp.aircasting.storage.db.DBConstants;
import pl.llp.aircasting.util.Constants;
import android.util.Log;
import com.google.common.base.Preconditions;
import static pl.llp.aircasting.storage.db.DBConstants.SESSION_TAGS;
/**
* Created by ags on 03/16/13 at 23:36
*/
public class InactiveSessionTracker implements SessionTracker
{
private final SessionPropertySetter setter;
public InactiveSessionTracker(DatabaseTaskQueue dbQueue)
{
Preconditions.checkNotNull(dbQueue, "Taks queue can't be null!");
this.setter = new SessionPropertySetter(dbQueue);
}
@Override
public void addNote(Note note)
{
doNothingAndComplain();
}
private void doNothingAndComplain()
{
Log.e(Constants.TAG, "Should not have been called!", new Throwable());
throw new RuntimeException("Shouldn't happen");
}
@Override
public void finishTracking()
{
// do nothing
}
@Override
public void setTitle(long sessionId, String title)
{
setter.forSession(sessionId).key(DBConstants.SESSION_TITLE).value(title).doSet();
}
@Override
public void setTags(long sessionId, String tags)
{
setter.forSession(sessionId).key(SESSION_TAGS).value(tags).doSet();
}
@Override
public void setDescription(long sessionId, String description)
{
setter.forSession(sessionId).key(DBConstants.SESSION_DESCRIPTION).value(description).doSet();
}
@Override
public void setContribute(long sessionId, boolean shouldContribute)
{
setter.forSession(sessionId).key(DBConstants.SESSION_CONTRIBUTE).value(shouldContribute).doSet();
}
@Override
public void addStream(MeasurementStream stream)
{
doNothingAndComplain();
}
@Override
public void addMeasurement(Sensor sensor, MeasurementStream stream, Measurement measurement)
{
doNothingAndComplain();
}
@Override
public void delete(long sessionId)
{
// do nothing
}
@Override
public boolean save(Session session)
{
doNothingAndComplain();
return false;
}
@Override
public synchronized double getNow(Sensor sensor) {
doNothingAndComplain();
return 0;
}
}