package org.hschott.camdroid; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; public abstract class AmbientLightEventListener extends SensorManagerWrapper { class SensorEventListenerImpl implements SensorEventListener { float mAmbientLight = -1; @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } @Override public void onSensorChanged(SensorEvent event) { float ambientLightLux = event.values[0]; if (this.mAmbientLight != ambientLightLux) { this.mAmbientLight = ambientLightLux; AmbientLightEventListener.this .onAmbientLightChanged(ambientLightLux); } } } public AmbientLightEventListener(Context context) { this(context, SensorManager.SENSOR_DELAY_NORMAL); } public AmbientLightEventListener(Context context, int rate) { super(context, rate); } @Override public SensorEventListener getSensorEventListener() { return new SensorEventListenerImpl(); } @Override public Sensor getSensor() { return getSensorManager().getDefaultSensor(Sensor.TYPE_LIGHT); } abstract public void onAmbientLightChanged(float lux); }