package com.netfluke.sergey.plumbbob;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private SensorManager mSensorManager;
    private Sensor mGravity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        mGravity = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
    }

    @Override
    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this, mGravity, SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    protected void onPause() {
        super.onPause();
        mSensorManager.unregisterListener(this, mGravity);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {

        float[] grav = new float[3];
        if (event.sensor == mGravity) {
            System.arraycopy(event.values, 0, grav, 0, event.values.length);
            Log.d("GRAV", "x: " + grav[0] + " y: " + grav[1] + " z: " + grav[2]);

            Bob bob = findViewById(R.id.bob);
            bob.repositionBob(grav[0], grav[1]);


        } else
            Log.d("GRAV", "Not a gravity sensor");
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub

    }
}