/*
* Copyright (C) 2014 The Context Engine Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package uk.ac.tvu.mdse.contextengine.contexts;
import uk.ac.tvu.mdse.contextengine.ListenerComponent;
import uk.ac.tvu.mdse.contextengine.reasoning.ContextValues;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.util.Log;
public class LightContext extends ListenerComponent implements
SensorEventListener {
// Attributes
private static final long serialVersionUID = -8230486605325209599L;
public static final String LOG_TAG = "LightContext";
public static final boolean D = true;
// Will be kept incase of future "default" values.
/*
* private static final double HIGH_LUM_VALUE = 180; private static final
* double MEDIUM_LUM_VALUE = 100;
*/
private String lastC;
public LightContext(Context c) {
super("LightContext", c, Sensor.TYPE_LIGHT,
SensorManager.SENSOR_DELAY_NORMAL);
if (D)
Log.d(LOG_TAG, "constructor");
// this.contextInformation = obtainContextInformation(sensorManager);
// Log.d("LightContext", this.contextInformation);
}
protected String obtainContextInformation(SensorManager sm) {
if (D)
Log.d(LOG_TAG, "obtainContextInformation");
// should obtain real light
// for demo using HIGH as the obtained one
lastC = "MEDIUM";
return "MEDIUM";
}
public void checkContext(SensorEvent data) {
if (D)
Log.d(LOG_TAG, "checkContext");
int v = (int) data.values[0];
for (ContextValues cv : this.valuesSets) {
if (cv.setNewContextValue(v))
sendNotification(cv);
}
// double v = data.values[0];
// send context value - 2nd approach
// String highContext = this.getContextInformation(v);
// Log.d("LightContext", "newValue" + v +" "+highContext);
// if(!contextInformation.equalsIgnoreCase(lastC)){
// lastC=highContext;
// sendNotification();
// Log.d("LightContext", "newValue set ".concat(contextInformation));
// }
}
}