package com.freeme.factory.sensor;
import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.TextView;
import com.freeme.factory.base.BaseTest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import android.util.ArrayMap;
import android.view.KeyEvent;
import com.freeme.provider.FreemeSettings;
import android.provider.Settings;
import com.freeme.factory.R;
public class HSensor extends BaseTest {
private static final String TAG = "HSensor";
private static final int CHECK_PERIOD = 200; //ms
private TextView mResult;
private int mLastValue = 1;
private int mRoundCount = 0;
private Timer mTimer;
private TimerTask mTimerTask;
private static final int MSG_UPDATE_UI = 0;
private static boolean TESTING_KEY_HALL = true;
private boolean mKeyTestedHall;
private native int nativeGetSensorHallState();
static {
System.loadLibrary("jni_factory_speaker");
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_UPDATE_UI:
updateState();
break;
default:
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hsensor);
mResult = (TextView) findViewById(R.id.proximity_hall);
testActionCompleted(false);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_ALT_RIGHT:
if (!mKeyTestedHall){
testActionCompleted(true);
mKeyTestedHall = true;
}
mResult.setText(getString(R.string.proximity) + 0);
break;
case KeyEvent.KEYCODE_ALT_LEFT:
mResult.setText(getString(R.string.proximity) + 1);
break;
default:
break;
}
return super.onKeyUp(keyCode, event);
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
private void updateState() {
int state = nativeGetSensorHallState();
Log.d(TAG, "updateState = " + state);
mResult.setText(getString(R.string.proximity) + state);
if (mLastValue != state) {
mRoundCount++;
mLastValue = state;
}
if (mRoundCount >= 2) {
testActionCompleted(true);
}
}
}