package com.megvii.idcardlib.util;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Handler;

/**
 *传感器工具类 
 */
public class SensorUtil implements SensorEventListener {
	public float Y;
	private SensorManager mSensorManager;
	private Sensor mSensor;
	private boolean isFail;
	private Handler mHandler;

	public SensorUtil(Context context) {
		init(context);
	}

	private void init(Context context) {
		mSensorManager = (SensorManager) context
				.getSystemService(Context.SENSOR_SERVICE);
		mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
		if (mSensor != null) {
			mSensorManager.registerListener(this, mSensor,
					SensorManager.SENSOR_DELAY_NORMAL);
		} else {
			isFail = true;
		}
		mHandler = new Handler();
		mHandler.postDelayed(new Runnable() {
			@Override
			public void run() {
				isFail = true;
			}
		}, 3000);
	}

	@Override
	public void onSensorChanged(SensorEvent event) {
		Y = event.values[1];
	}

	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy) {

	}

	public void release() {
		if (mSensor != null && mSensorManager != null) {
			mSensorManager.unregisterListener(this);
		}
		if (mHandler != null) {
			mHandler.removeCallbacksAndMessages(null);
		}
	}

	public boolean isVertical() {
		if (Y >= 8)
			return true;

		return false;
	}

	public boolean isSensorFault() {
		return isFail;
	}

}