package com.example.frameworktestcase;
import com.contextawareframework.contextawarefunctions.ContextAwareFunction;
import com.contextawareframework.controller.SensorController1;
import com.contextawareframework.dbmanager.AccelerometerDbHelper;
import com.contextawareframework.dbmanager.ContextAwareSQLiteHelper;
import com.contextawareframework.dbmanager.LightDbHelper;
import com.contextawareframework.dbmanager.ProximityDbHelper;
import com.contextawareframework.exceptions.AccelerometerSensorException;
import com.contextawareframework.exceptions.LightSensorException;
import com.contextawareframework.exceptions.ProximitySensorException;
import com.contextawareframework.globalvariable.CAFConfig;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
public class FrameworkFunctionalTestActivity extends Activity {
AccelerometerDbHelper accelDbHelper;
LightDbHelper lightDbHelper;
ProximityDbHelper proximityDbHelper;
long timestamp;
ContextAwareSQLiteHelper dbHelper;
private CheckBox chkAccel, chkProximity, chkLight, chkGPS;
SensorController1 controller;
ContextAwareFunction caFunction;
SensorEventListener accelSensorListener, proximitySensorListener, lightSensorListener;
private static final String TAG = "FrameworkFunctionalityTestCase";
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_framework_functional_test);
chkAccel = (CheckBox) findViewById(R.id.chkBoxAccelerometer);
chkProximity = (CheckBox) findViewById(R.id.chkBoxProximity);
chkLight = (CheckBox) findViewById(R.id.chkBoxLight);
controller = SensorController1.getInstance(this);
CAFConfig.setTableAccelerometer(true);
CAFConfig.setTableProximity(true);
CAFConfig.setTableLight(true);
dbHelper= new ContextAwareSQLiteHelper(this);
// Using Singleton Pattern for creating the DbHelper Object
accelDbHelper = AccelerometerDbHelper.getInstance(this);
lightDbHelper = LightDbHelper.getInstance(this);
proximityDbHelper = ProximityDbHelper.getInstance(this);
accelDbHelper.open();
proximityDbHelper.open();
lightDbHelper.open();
// Proximity SensorEventListener
proximitySensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG,"proximity");
proximityDbHelper.createProximiytRowData(timestamp, event.values[0], event.values[1]);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
};
// Accelerometer SensorEventListener
accelSensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG,"Accelerometer");
timestamp = System.currentTimeMillis();
accelDbHelper.createAccelRowData(timestamp, event.values[0], event.values[1], event.values[2]);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
// Light SensorEventListener
lightSensorListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
Log.d(TAG,"light");
lightDbHelper.createLightRowData(timestamp, event.values[0]);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
chkProximity.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(chkProximity.isChecked())
{ Log.d(TAG,"Test proximity");
try
{
if(controller==null){
Log.d("Debug", "Controller is null");
}
else
{
CAFConfig.setSensorProximity(true);
Log.d("Debug", " Registering proximity sensor");
controller.registerProximityService(proximitySensorListener,SensorController1.NORMAL);
}
}
catch (ProximitySensorException e)
{
e.printStackTrace();
}
}
else
{
Log.d(TAG, " Un-Registering proximity sensor");
try{
if(proximitySensorListener!=null)
{
controller.unregisterProximityService(proximitySensorListener);
CAFConfig.setSensorProximity(false);
}
}
catch(ProximitySensorException e)
{
e.printStackTrace();
}
}
}
});
chkLight.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(chkLight.isChecked())
{
Log.d(TAG,"Test light");
try
{
CAFConfig.setSensorLight(true);
controller.registerLightService(lightSensorListener,SensorController1.NORMAL);
}
catch (LightSensorException e)
{
e.printStackTrace();
}
}
else
{
Log.d(TAG, " Un-Registering Light sensor");
try{
if(lightSensorListener!=null)
{
controller.unregisterLightService(lightSensorListener);
CAFConfig.setSensorLight(false);
}
}
catch(LightSensorException e)
{
e.printStackTrace();
}
}
}
});
chkAccel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(chkAccel.isChecked())
{ Log.d(TAG,"Test Accelerometer");
try
{
CAFConfig.setSensorAccelerometer(true);
controller.registerAccelerometerService(accelSensorListener,SensorController1.NORMAL);
}
catch (AccelerometerSensorException e)
{
e.printStackTrace();
}
}
else
{
Log.d(TAG, " Un-Registering Accelerometer sensor");
try{
if(accelSensorListener!=null)
{
controller.unregisterAccelerometerService(accelSensorListener);
CAFConfig.setSensorAccelerometer(false);
}
}
catch(AccelerometerSensorException e)
{
e.printStackTrace();
}
}
}
});
}
@Override
protected void onResume()
{
super.onResume();
}
@Override
protected void onDestroy()
{
super.onDestroy();
try{
if(controller!=null)
{
if(accelSensorListener!=null)
controller.unregisterAccelerometerService(accelSensorListener);
if(proximitySensorListener!=null)
controller.unregisterProximityService(proximitySensorListener);
if(lightSensorListener!=null)
controller.unregisterLightService(lightSensorListener);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}