package eu.livegov.mobilesensing.manager; import android.content.Context; import android.content.ServiceConnection; import eu.livegov.mobilesensing.sensors.SensorService; public class SensorDescription { private String sensorName; private Class<? extends SensorService> serviceClass; private SensorService serviceObject; private ServiceConnection serviceConnection; public SensorDescription(Class<? extends SensorService> serviceClass) { this.serviceClass = serviceClass; this.sensorName = serviceClass.getSimpleName(); } public boolean isBound() { return ((serviceObject != null) && (serviceConnection != null)); } public boolean isRunning() { if (! isBound() ) return false; return serviceObject.running; } public boolean isRecording() { if (! isRunning()) return false; return serviceObject.recording; } public void unbind(Context context){ context.unbindService(serviceConnection); serviceConnection = null; serviceObject = null; } ///// SETTERS/GETTERS //// public String getSensorName() { return sensorName; } public Class<? extends SensorService> getServiceClass() { return serviceClass; } public SensorService getServiceObject() { return serviceObject; } public void setServiceObject(SensorService serviceObject) { this.serviceObject = serviceObject; } public void setServiceConnection(ServiceConnection serviceConnection) { this.serviceConnection = serviceConnection; } public ServiceConnection getServiceConnection() { return serviceConnection; } public String getStatus() { if (!isBound()) { return "unbound"; } else { return serviceObject.getStatus(); } } public void crashed() { serviceObject = null; serviceConnection = null; } }