package com.example.android.foldercamera;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Handler;
import android.util.Log;
/**
* Created by Andrew on 8/17/2015.
*/
public class OrientationChangeDetector {
private static final String TAG = "fc:orientationChange";
private final double ORIENTATION_THRESHOLD = 6.5;
public static final int HEAD_TO_LEFT = 1;
public static final int HEAD_PORTRIAT = 0;
public static final int HEAD_TO_RIGHT = 2;
int orientation = -1;
SensorManager sensorManager;
private Context mContext;
SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values[1] < ORIENTATION_THRESHOLD && event.values[1] > -ORIENTATION_THRESHOLD) {
if (orientation != 1 && event.values[0] > 0) {
Log.d(TAG, "Landscape head to left");
orientation = HEAD_TO_LEFT;
} else if (orientation != 2 && event.values[0] < 0) {
Log.d(TAG, "Landscape head to right");
orientation = HEAD_TO_RIGHT;
}
} else {
if (orientation != 0) {
Log.d(TAG, "Portrait");
orientation = HEAD_PORTRIAT;
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
public OrientationChangeDetector(Context context) {
mContext = context;
sensorManager = (SensorManager) mContext.getSystemService(mContext.SENSOR_SERVICE);
sensorManager.registerListener(sensorEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
public void register() {
sensorManager.registerListener(sensorEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}
public void unregister() {
sensorManager.unregisterListener(sensorEventListener);
}
public int getOrientation(){
return orientation;
}
}