Commit 2afe3d69 by chengxiuhong

test main

parent 81d4e6d1
...@@ -56,7 +56,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -56,7 +56,7 @@ public class EyeTestActivity extends BaseActivity {
static final int BOTTOM = 2; static final int BOTTOM = 2;
static final int LEFT = 3; static final int LEFT = 3;
static final int RIGHT_TOP = 4; static final int RIGHT_TOP = 4;
static final int RIGHT_BOTTOM= 5; static final int RIGHT_BOTTOM = 5;
static final int LEFT_BOTTOM = 6; static final int LEFT_BOTTOM = 6;
static final int LEFT_TOP = 7; static final int LEFT_TOP = 7;
...@@ -89,7 +89,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -89,7 +89,7 @@ public class EyeTestActivity extends BaseActivity {
private int mDistance = EyeConfig.EYE_DISTANCE_5; private int mDistance = EyeConfig.EYE_DISTANCE_5;
private int mDirection = EYE_DIRECTION_4; private int mDirection = EYE_DIRECTION_4;
private int mGroupDecimal = EyeConfig.EYE_SETTING_5; private int mGroupDecimal = EyeConfig.EYE_SETTING_5;
private int mAutoJudge = 0; private int mAutoJudge = 0;
private ArrayList<ArrayList<E>> mList = new ArrayList<>(); private ArrayList<ArrayList<E>> mList = new ArrayList<>();
private int mLocation; private int mLocation;
...@@ -106,11 +106,11 @@ public class EyeTestActivity extends BaseActivity { ...@@ -106,11 +106,11 @@ public class EyeTestActivity extends BaseActivity {
private boolean isStartTest = false; private boolean isStartTest = false;
private boolean isKeyDwon = false; private boolean isKeyDwon = false;
private boolean isJudgeChoose = false; private boolean isJudgeChoose = false;
private Handler mHandler; private Handler mHandler;
private Runnable mRunnable;//执行几秒钟默认选择错误的线程 private Runnable mRunnable;//执行几秒钟默认选择错误的线程
private boolean isChoose = false; private boolean isChoose = false;
private long totalTime = 5000; private long totalTime = 5000;
private long intervalTime = 1000; private long intervalTime = 1000;
...@@ -131,15 +131,15 @@ public class EyeTestActivity extends BaseActivity { ...@@ -131,15 +131,15 @@ public class EyeTestActivity extends BaseActivity {
} }
private void initialize() { private void initialize() {
mHandler = new Handler(); mHandler = new Handler();
mStudentList = EyeConfig.getInstance().getStudents(); mStudentList = EyeConfig.getInstance().getStudents();
mDistance = PreferencesUtils.getInt(EyeConfig.EYE_DISTANCE_SETTING_KEY, EyeConfig.EYE_DISTANCE_5); mDistance = PreferencesUtils.getInt(EyeConfig.EYE_DISTANCE_SETTING_KEY, EyeConfig.EYE_DISTANCE_5);
mDirection = PreferencesUtils.getInt(EyeConfig.EYE_DIRECTION_SETTING_KEY, EYE_DIRECTION_4); mDirection = PreferencesUtils.getInt(EyeConfig.EYE_DIRECTION_SETTING_KEY, EYE_DIRECTION_4);
mGroupDecimal = PreferencesUtils.getInt(EyeConfig.EYE_SETTING_KEY, EyeConfig.EYE_SETTING_5); mGroupDecimal = PreferencesUtils.getInt(EyeConfig.EYE_SETTING_KEY, EyeConfig.EYE_SETTING_5);
mAutoJudge = PreferencesUtils.getInt(EyeConfig.EYE_WAIT_SETTING_KEY, 0); mAutoJudge = PreferencesUtils.getInt(EyeConfig.EYE_WAIT_SETTING_KEY, 0);
isTemporary = getIntent().getBooleanExtra("isTemporary",false); isTemporary = getIntent().getBooleanExtra("isTemporary", false);
String dis = mDistance==EyeConfig.EYE_DISTANCE_5?"5":"2.5"; String dis = mDistance == EyeConfig.EYE_DISTANCE_5 ? "5" : "2.5";
mDistanceText.setText("当前测视距离为"+dis+"米"); mDistanceText.setText("当前测视距离为" + dis + "米");
mList.clear(); mList.clear();
for (int i = 0; i < 14; i++) { for (int i = 0; i < 14; i++) {
mList.add(initLineList(i)); mList.add(initLineList(i));
...@@ -165,9 +165,10 @@ public class EyeTestActivity extends BaseActivity { ...@@ -165,9 +165,10 @@ public class EyeTestActivity extends BaseActivity {
/** /**
* 准备测试 * 准备测试
*
* @param index * @param index
*/ */
private void prepareStudentTest(int index){ private void prepareStudentTest(int index) {
currentIndex = index; currentIndex = index;
isStartTest = false; isStartTest = false;
mCollect.clear(); mCollect.clear();
...@@ -177,9 +178,9 @@ public class EyeTestActivity extends BaseActivity { ...@@ -177,9 +178,9 @@ public class EyeTestActivity extends BaseActivity {
} else { } else {
nameText.setText(""); nameText.setText("");
} }
if(index < mStudentList.size()-1){ if (index < mStudentList.size() - 1) {
mNextText.setText("放弃当前,跳到下一位"); mNextText.setText("放弃当前,跳到下一位");
}else{ } else {
mNextText.setText("结束测试"); mNextText.setText("结束测试");
} }
continueTest(); continueTest();
...@@ -208,7 +209,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -208,7 +209,7 @@ public class EyeTestActivity extends BaseActivity {
@Override @Override
public void onTick(long millisUntilFinished) { public void onTick(long millisUntilFinished) {
long time = millisUntilFinished / 1000; long time = millisUntilFinished / 1000;
timeText1.setText(time+""); timeText1.setText(time + "");
} }
@Override @Override
...@@ -239,7 +240,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -239,7 +240,7 @@ public class EyeTestActivity extends BaseActivity {
} }
private void speak(String text) { private void speak(String text) {
if (BDttsUtils.getInstance()!=null) { if (BDttsUtils.getInstance() != null) {
BDttsUtils.getInstance().speak(text); BDttsUtils.getInstance().speak(text);
} }
} }
...@@ -251,7 +252,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -251,7 +252,7 @@ public class EyeTestActivity extends BaseActivity {
*/ */
private void drewE(E e) { private void drewE(E e) {
int angle = 0; int angle = 0;
switch (e.getDirect()){ switch (e.getDirect()) {
case TOP: case TOP:
angle = 0; angle = 0;
break; break;
...@@ -278,7 +279,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -278,7 +279,7 @@ public class EyeTestActivity extends BaseActivity {
break; break;
} }
eImageView1.destroyDrawingCache(); eImageView1.destroyDrawingCache();
eImageView1.setImageBitmap(Eye.getBitmap(this,e.getLevel(),mDistance,angle)); eImageView1.setImageBitmap(Eye.getBitmap(this, e.getLevel(), mDistance, angle));
isKeyDwon = true; isKeyDwon = true;
} }
...@@ -300,7 +301,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -300,7 +301,7 @@ public class EyeTestActivity extends BaseActivity {
if (i > 0) { if (i > 0) {
direct = getRandomDirect(list, direct, sum); direct = getRandomDirect(list, direct, sum);
} }
e = new E(i, direct,index, levelValue); e = new E(i, direct, index, levelValue);
list.add(e); list.add(e);
} }
return list; return list;
...@@ -404,42 +405,43 @@ public class EyeTestActivity extends BaseActivity { ...@@ -404,42 +405,43 @@ public class EyeTestActivity extends BaseActivity {
mEyeText.setText(levelByIndex); mEyeText.setText(levelByIndex);
mEyeText_.setText("" + (mLocation + 1)); mEyeText_.setText("" + (mLocation + 1));
drewE(mSelectE); drewE(mSelectE);
isJudgeChoose = false; isJudgeChoose = false;
startRunnable(); startRunnable();
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
private void startRunnable(){ private void startRunnable() {
if(mRunnable == null){ if (mRunnable == null) {
mRunnable = new Runnable() { mRunnable = new Runnable() {
@Override @Override
public void run() { public void run() {
LogUtil.e("mRunnable------"); LogUtil.e("mRunnable------");
if(isChoose){ if (isChoose) {
return; return;
} }
userChooseError(); userChooseError();
} }
}; };
} }
if(mAutoJudge > 0) { if (mAutoJudge > 0) {
LogUtil.e("开启mRunnable"); LogUtil.e("开启mRunnable");
mHandler.postDelayed(mRunnable, mAutoJudge * 1000); mHandler.postDelayed(mRunnable, mAutoJudge * 1000);
} }
isChoose = false; isChoose = false;
} }
private void removeRunnable(){
isChoose = true; private void removeRunnable() {
try { isChoose = true;
if (mHandler != null && mRunnable != null) { try {
mHandler.removeCallbacks(mRunnable); if (mHandler != null && mRunnable != null) {
} mHandler.removeCallbacks(mRunnable);
}catch (Exception e){ }
e.printStackTrace(); } catch (Exception e) {
} e.printStackTrace();
} }
}
/** /**
* 选择的方向 * 选择的方向
...@@ -447,19 +449,19 @@ public class EyeTestActivity extends BaseActivity { ...@@ -447,19 +449,19 @@ public class EyeTestActivity extends BaseActivity {
* @param direct * @param direct
*/ */
private synchronized void userChoose(int direct) { private synchronized void userChoose(int direct) {
removeRunnable(); removeRunnable();
if(!isJudgeChoose) { if (!isJudgeChoose) {
isJudgeChoose = true; isJudgeChoose = true;
//获取当前行答过的e //获取当前行答过的e
List<E> list = mCollect.get(mLevelIndex); List<E> list = mCollect.get(mLevelIndex);
if (null == list || list.size() == 0) { if (null == list || list.size() == 0) {
list = new ArrayList<>(); list = new ArrayList<>();
} }
mSelectE.setUserChoose(direct); mSelectE.setUserChoose(direct);
list.add(mSelectE); list.add(mSelectE);
mCollect.put(mLevelIndex, list); mCollect.put(mLevelIndex, list);
judge(); judge();
} }
} }
private void judge() { private void judge() {
...@@ -521,20 +523,20 @@ public class EyeTestActivity extends BaseActivity { ...@@ -521,20 +523,20 @@ public class EyeTestActivity extends BaseActivity {
* 答错 * 答错
*/ */
private synchronized void userChooseError() { private synchronized void userChooseError() {
removeRunnable(); removeRunnable();
if(!isJudgeChoose) { if (!isJudgeChoose) {
isJudgeChoose = true; isJudgeChoose = true;
int direct = mSelectE.getDirect() + 1; int direct = mSelectE.getDirect() + 1;
//获取当前行答过的e //获取当前行答过的e
List<E> list = mCollect.get(mLevelIndex); List<E> list = mCollect.get(mLevelIndex);
if (null == list || list.size() == 0) { if (null == list || list.size() == 0) {
list = new ArrayList<>(); list = new ArrayList<>();
} }
mSelectE.setUserChoose(direct); mSelectE.setUserChoose(direct);
list.add(mSelectE); list.add(mSelectE);
mCollect.put(mLevelIndex, list); mCollect.put(mLevelIndex, list);
judge(); judge();
} }
} }
...@@ -563,7 +565,7 @@ public class EyeTestActivity extends BaseActivity { ...@@ -563,7 +565,7 @@ public class EyeTestActivity extends BaseActivity {
private void showStudentTestDialog() { private void showStudentTestDialog() {
final int next = currentIndex+1; final int next = currentIndex + 1;
boolean isShow = false; boolean isShow = false;
String nextName = ""; String nextName = "";
if (next < mStudentList.size()) { if (next < mStudentList.size()) {
...@@ -572,26 +574,26 @@ public class EyeTestActivity extends BaseActivity { ...@@ -572,26 +574,26 @@ public class EyeTestActivity extends BaseActivity {
} }
double left = mLeftEye; double left = mLeftEye;
double right = mRightEye; double right = mRightEye;
if(mGroupDecimal != EyeConfig.EYE_SETTING_5){ if (mGroupDecimal != EyeConfig.EYE_SETTING_5) {
int leftIndex = Eye.getIndexByValue(mLeftEye,mDistance == EyeConfig.EYE_DISTANCE_5); int leftIndex = Eye.getIndexByValue(mLeftEye, mDistance == EyeConfig.EYE_DISTANCE_5);
left = Eye.getLevelByIndex(leftIndex,mDistance == EyeConfig.EYE_DISTANCE_5); left = Eye.getLevelByIndex(leftIndex, mDistance == EyeConfig.EYE_DISTANCE_5);
int rightIndex = Eye.getIndexByValue(mRightEye,mDistance == EyeConfig.EYE_DISTANCE_5); int rightIndex = Eye.getIndexByValue(mRightEye, mDistance == EyeConfig.EYE_DISTANCE_5);
right = Eye.getLevelByIndex(rightIndex,mDistance == EyeConfig.EYE_DISTANCE_5); right = Eye.getLevelByIndex(rightIndex, mDistance == EyeConfig.EYE_DISTANCE_5);
} }
if(isTemporary){ if (isTemporary) {
measureStudent.setLeft_eye(left); measureStudent.setLeft_eye(left);
measureStudent.setRight_eye(right); measureStudent.setRight_eye(right);
DbManager.getDaoSession(EyeTestActivity.this).insert(measureStudent); DbManager.getDaoSession(EyeTestActivity.this).insert(measureStudent);
}else{ } else {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("sid", !CheckUtil.isEmpty(measureStudent.getSid())?measureStudent.getSid():""); map.put("sid", !CheckUtil.isEmpty(measureStudent.getSid()) ? measureStudent.getSid() : "");
map.put("uid", !CheckUtil.isEmpty(measureStudent.getUid())?measureStudent.getUid():""); map.put("uid", !CheckUtil.isEmpty(measureStudent.getUid()) ? measureStudent.getUid() : "");
map.put("eid", "0"); map.put("eid", "0");
map.put("left_eye", ""+left); map.put("left_eye", "" + left);
map.put("right_eye", ""+right); map.put("right_eye", "" + right);
map.put("distance", ""+(mDistance ==EyeConfig.EYE_DISTANCE_5?5:2.5) ); map.put("distance", "" + (mDistance == EyeConfig.EYE_DISTANCE_5 ? 5 : 2.5));
map.put("deviceId", Build.ID); map.put("deviceId", Build.ID);
map.put("pid", !CheckUtil.isEmpty(measureStudent.getPid())?measureStudent.getPid():""); map.put("pid", !CheckUtil.isEmpty(measureStudent.getPid()) ? measureStudent.getPid() : "");
EyeDataManager.getInstance().postEyeTestData(map).observeOn(AndroidSchedulers.mainThread()) EyeDataManager.getInstance().postEyeTestData(map).observeOn(AndroidSchedulers.mainThread())
.subscribe(new RxCallback<OldResponseImpl<Object>>() { .subscribe(new RxCallback<OldResponseImpl<Object>>() {
@Override @Override
...@@ -605,10 +607,10 @@ public class EyeTestActivity extends BaseActivity { ...@@ -605,10 +607,10 @@ public class EyeTestActivity extends BaseActivity {
} }
}); });
} }
mAfterTestDialog = new AfterTestDialog.Builder(EyeTestActivity.this,R.style.style_common_dialog) mAfterTestDialog = new AfterTestDialog.Builder(EyeTestActivity.this, R.style.style_common_dialog)
.setLeftEye(""+mLeftEye) .setLeftEye("" + mLeftEye)
.setRightEye(""+mRightEye) .setRightEye("" + mRightEye)
.setUserName(""+measureStudent.getRealname()) .setUserName("" + measureStudent.getRealname())
.setShowContinueText(isShow) .setShowContinueText(isShow)
.setNextName(nextName) .setNextName(nextName)
.setTrainTime(new Date()) .setTrainTime(new Date())
...@@ -638,7 +640,9 @@ public class EyeTestActivity extends BaseActivity { ...@@ -638,7 +640,9 @@ public class EyeTestActivity extends BaseActivity {
return true; return true;
} }
mLastOnKeyTime = currentTime; mLastOnKeyTime = currentTime;
if(isKeyDwon) { LogUtil.e("---查看按键对应的数字---" + event.getKeyCode());
ToastUtil.showMessage("---查看按键对应的数字---" + event.getKeyCode());
if (isKeyDwon) {
switch (event.getKeyCode()) { switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_DPAD_UP:
userChoose(TOP); userChoose(TOP);
...@@ -668,7 +672,9 @@ public class EyeTestActivity extends BaseActivity { ...@@ -668,7 +672,9 @@ public class EyeTestActivity extends BaseActivity {
//用户点击返回键: //用户点击返回键:
userChooseError(); userChooseError();
return true; return true;
case KeyEvent.KEYCODE_DEL://返回键
finish();
return true;
} }
} }
} }
...@@ -725,10 +731,10 @@ public class EyeTestActivity extends BaseActivity { ...@@ -725,10 +731,10 @@ public class EyeTestActivity extends BaseActivity {
public void onClick(View view) { public void onClick(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.next_left: case R.id.next_left:
int next = currentIndex+1; int next = currentIndex + 1;
if (next < mStudentList.size()) { if (next < mStudentList.size()) {
prepareStudentTest(next); prepareStudentTest(next);
}else{ } else {
finish(); finish();
} }
break; break;
......
package com.oo.eye.activity; package com.oo.eye.activity;
import android.content.Intent; import android.content.Intent;
import android.view.KeyEvent;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.app.baselibrary.base.common.BaseActivity; import com.app.baselibrary.base.common.BaseActivity;
import com.app.baselibrary.commonUtil.BDttsUtils; import com.app.baselibrary.commonUtil.BDttsUtils;
...@@ -18,6 +20,8 @@ import com.oo.eye.db.DbManager; ...@@ -18,6 +20,8 @@ import com.oo.eye.db.DbManager;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -76,6 +80,41 @@ public class EyeTestMainActivity extends BaseActivity { ...@@ -76,6 +80,41 @@ public class EyeTestMainActivity extends BaseActivity {
isRequestFinish = false; isRequestFinish = false;
ToastUtil.showLongMessage(msg); ToastUtil.showLongMessage(msg);
} }
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
LogUtil.e("---查看按键对应的数字---" + event.getKeyCode());
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DEL://返回键
exitBy2Click();
return true;
}
}
return super.dispatchKeyEvent(event);
}
/**
* 双击退出函数
*/
private static Boolean isExit = false;
private Timer tExit;
private void exitBy2Click() {
if (isExit == false) {
isExit = true; // 准备退出
ToastUtil.showMessage("再按一次退出程序");
tExit = new Timer();
tExit.schedule(new TimerTask() {
@Override
public void run() {
isExit = false; // 取消退出
}
}, 2000); // 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务
} else {
finish();
System.exit(0);
}
}
@Override @Override
public boolean dispatchTouchEvent(MotionEvent ev) { public boolean dispatchTouchEvent(MotionEvent ev) {
...@@ -112,4 +151,11 @@ public class EyeTestMainActivity extends BaseActivity { ...@@ -112,4 +151,11 @@ public class EyeTestMainActivity extends BaseActivity {
break; break;
} }
} }
@Override
protected void onDestroy() {
super.onDestroy();
tExit.cancel();
tExit=null;
}
} }
...@@ -5,11 +5,14 @@ import android.content.pm.ActivityInfo; ...@@ -5,11 +5,14 @@ import android.content.pm.ActivityInfo;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.view.KeyEvent;
import com.app.baselibrary.BuildConfig; import com.app.baselibrary.BuildConfig;
import com.app.baselibrary.R; import com.app.baselibrary.R;
import com.app.baselibrary.base.app.AppManager; import com.app.baselibrary.base.app.AppManager;
import com.app.baselibrary.commonUtil.LogUtil;
import com.app.baselibrary.commonUtil.StatusBarCompat; import com.app.baselibrary.commonUtil.StatusBarCompat;
import com.app.baselibrary.commonUtil.ToastUtil;
import com.tbruyelle.rxpermissions.RxPermissions; import com.tbruyelle.rxpermissions.RxPermissions;
import com.trello.rxlifecycle.components.support.RxAppCompatActivity; import com.trello.rxlifecycle.components.support.RxAppCompatActivity;
import com.umeng.analytics.MobclickAgent; import com.umeng.analytics.MobclickAgent;
...@@ -157,23 +160,45 @@ public abstract class BaseActivity extends RxAppCompatActivity { ...@@ -157,23 +160,45 @@ public abstract class BaseActivity extends RxAppCompatActivity {
/** /**
* 画页是否存活 * 画页是否存活
*
* @return * @return
*/ */
public boolean isActive(){ public boolean isActive() {
return !isFinishing(); return !isFinishing();
} }
/** /**
* 弹出加载对话框 * 弹出加载对话框
*/ */
public void showLoadingDialog(){ public void showLoadingDialog() {
} }
/** /**
* 关闭加载对话框 * 关闭加载对话框
*/ */
public void closeLoadingDialog(){ public void closeLoadingDialog() {
}
private long mLastOnKeyTime = -1;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
//两次点击大于1秒
long currentTime = System.currentTimeMillis();
if (mLastOnKeyTime > 0 && currentTime - mLastOnKeyTime < 500) {
return true;
}
mLastOnKeyTime = currentTime;
LogUtil.e("---查看按键对应的数字---" + event.getKeyCode());
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_DEL://返回键
finish();
return true;
}
}
return super.dispatchKeyEvent(event);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment