package com.thisplace.mindrdr.services;
import android.os.Handler;
import android.os.Message;
import com.neurosky.thinkgear.TGDevice;
import com.thisplace.mindrdr.services.MindReader;
public class FakeMindReader implements Runnable, MindReader {
private Handler mHandler;
private Boolean mConnected = false;
private Boolean mStarted = false;
private int mCount = 0;
private Boolean mClosed = false;
public FakeMindReader(Handler handler) {
mHandler = handler;
}
@Override
public void run() {
if(!mClosed) {
if(!mConnected) {
connecting();
}else if(mStarted) {
doBrainReading();
}
mHandler.postDelayed(this, 1000);
}
}
public void start() {
mStarted = true;
}
public void stop() {
mStarted = false;
}
public void close() {
mConnected = false;
mStarted = false;
mCount = 0;
mClosed = true;
}
public void connect(Boolean rawEnabled) {
mConnected = false;
mStarted = false;
mCount = 0;
}
private void doBrainReading()
{
Message msg = new Message();
msg.what = TGDevice.MSG_ATTENTION;
msg.arg1 = 40 + (int) Math.round(Math.random() * 50);
mHandler.handleMessage(msg);
msg.what = TGDevice.MSG_MEDITATION;
msg.arg1 = 30 + (int) Math.round(Math.random() * 40);
mHandler.handleMessage(msg);
msg.what = TGDevice.MSG_HEART_RATE;
msg.arg1 = (int) Math.round(Math.random() * 160) + 40;
mHandler.handleMessage(msg);
}
private void connecting()
{
mCount++;
if(mCount > 5)
{
mConnected = true;
Message msg = new Message();
msg.what = TGDevice.MSG_STATE_CHANGE;
msg.arg1 = TGDevice.STATE_CONNECTED;
mHandler.handleMessage(msg);
}
}
}