Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haihang
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐丛奇
haihang
Commits
7614348f
Commit
7614348f
authored
Aug 30, 2018
by
chengxiuhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test main
parent
0cd68f24
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
670 additions
and
1432 deletions
+670
-1432
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-1
BeforeEyeTestActivity.java
app/src/main/java/com/oo/eye/activity/BeforeEyeTestActivity.java
+1
-2
EyeSettingActivity.java
app/src/main/java/com/oo/eye/activity/EyeSettingActivity.java
+5
-0
EyeTestActivity.java
app/src/main/java/com/oo/eye/activity/EyeTestActivity.java
+661
-695
EyeTestActivityF.java
app/src/main/java/com/oo/eye/activity/EyeTestActivityF.java
+0
-734
activity_eye_setting.xml
app/src/main/res/layout/activity_eye_setting.xml
+2
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
7614348f
...
@@ -41,7 +41,7 @@
...
@@ -41,7 +41,7 @@
android:name=
"com.oo.eye.activity.BeforeEyeTestActivity"
android:name=
"com.oo.eye.activity.BeforeEyeTestActivity"
android:screenOrientation=
"landscape"
/>
android:screenOrientation=
"landscape"
/>
<activity
<activity
android:name=
"com.oo.eye.activity.EyeTestActivity
F
"
android:name=
"com.oo.eye.activity.EyeTestActivity"
android:screenOrientation=
"landscape"
/>
android:screenOrientation=
"landscape"
/>
<activity
<activity
android:name=
"com.oo.eye.activity.AfterEyeTestActivity"
android:name=
"com.oo.eye.activity.AfterEyeTestActivity"
...
...
app/src/main/java/com/oo/eye/activity/BeforeEyeTestActivity.java
View file @
7614348f
...
@@ -17,7 +17,6 @@ import com.app.baselibrary.commonUtil.NibiruUtils;
...
@@ -17,7 +17,6 @@ import com.app.baselibrary.commonUtil.NibiruUtils;
import
com.oo.eye.R
;
import
com.oo.eye.R
;
import
com.oo.eye.R2
;
import
com.oo.eye.R2
;
import
com.oo.eye.manager.DaemonSender
;
import
com.oo.eye.manager.DaemonSender
;
import
com.oo.eye.manager.OOMsg
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.ButterKnife
;
...
@@ -78,7 +77,7 @@ public class BeforeEyeTestActivity extends BaseActivity {
...
@@ -78,7 +77,7 @@ public class BeforeEyeTestActivity extends BaseActivity {
mLlBeforeEyePrepare1
.
setVisibility
(
View
.
VISIBLE
);
mLlBeforeEyePrepare1
.
setVisibility
(
View
.
VISIBLE
);
speak
(
"调节测视距离,请等待"
);
speak
(
"调节测视距离,请等待"
);
// DaemonSender.startEyeTestMotor(this);
// DaemonSender.startEyeTestMotor(this);
Intent
intent2
=
new
Intent
(
BeforeEyeTestActivity
.
this
,
EyeTestActivity
F
.
class
);
Intent
intent2
=
new
Intent
(
BeforeEyeTestActivity
.
this
,
EyeTestActivity
.
class
);
startActivity
(
intent2
);
startActivity
(
intent2
);
finish
();
finish
();
}
}
...
...
app/src/main/java/com/oo/eye/activity/EyeSettingActivity.java
View file @
7614348f
package
com
.
oo
.
eye
.
activity
;
package
com
.
oo
.
eye
.
activity
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.view.View
;
import
android.widget.RadioButton
;
import
android.widget.RadioButton
;
import
android.widget.RadioGroup
;
import
android.widget.RadioGroup
;
import
android.widget.RelativeLayout
;
import
com.app.baselibrary.base.common.BaseActivity
;
import
com.app.baselibrary.base.common.BaseActivity
;
import
com.app.baselibrary.commonUtil.PreferencesUtils
;
import
com.app.baselibrary.commonUtil.PreferencesUtils
;
...
@@ -34,6 +36,8 @@ public class EyeSettingActivity extends BaseActivity {
...
@@ -34,6 +36,8 @@ public class EyeSettingActivity extends BaseActivity {
RadioGroup
mGroupReport
;
RadioGroup
mGroupReport
;
@BindView
(
R
.
id
.
group_help
)
@BindView
(
R
.
id
.
group_help
)
RadioGroup
mGroupHelp
;
RadioGroup
mGroupHelp
;
@BindView
(
R
.
id
.
about_lay_show
)
RelativeLayout
mAboutLayShow
;
private
int
selectId
;
private
int
selectId
;
...
@@ -76,5 +80,6 @@ public class EyeSettingActivity extends BaseActivity {
...
@@ -76,5 +80,6 @@ public class EyeSettingActivity extends BaseActivity {
@OnClick
(
R
.
id
.
about_lay
)
@OnClick
(
R
.
id
.
about_lay
)
public
void
onClick
()
{
public
void
onClick
()
{
mAboutLayShow
.
setVisibility
(
View
.
VISIBLE
);
}
}
}
}
app/src/main/java/com/oo/eye/activity/EyeTestActivity.java
View file @
7614348f
//package com.oo.eye.activity;
package
com
.
oo
.
eye
.
activity
;
//
//import android.content.Intent;
import
android.content.Intent
;
//import android.os.Bundle;
import
android.os.Bundle
;
//import android.os.CountDownTimer;
import
android.os.CountDownTimer
;
//import android.view.KeyEvent;
import
android.view.KeyEvent
;
//import android.view.View;
import
android.view.View
;
//import android.widget.ImageView;
import
android.widget.ImageView
;
//import android.widget.RelativeLayout;
import
android.widget.RelativeLayout
;
//import android.widget.TextView;
import
android.widget.TextView
;
//
//import com.app.baselibrary.base.common.BaseActivity;
import
com.app.baselibrary.base.common.BaseActivity
;
//import com.app.baselibrary.commonUtil.LogUtil;
import
com.app.baselibrary.commonUtil.LogUtil
;
//import com.app.baselibrary.commonUtil.NibiruUtils;
import
com.app.baselibrary.commonUtil.NibiruUtils
;
//import com.app.baselibrary.commonUtil.PreferencesUtils;
import
com.app.baselibrary.commonUtil.PreferencesUtils
;
//import com.oo.eye.EyeConfig;
import
com.oo.eye.EyeConfig
;
//import com.oo.eye.R;
import
com.oo.eye.R
;
//import com.oo.eye.R2;
import
com.oo.eye.R2
;
//import com.oo.eye.bean.Eye;
import
com.oo.eye.bean.Eye
;
//import com.oo.eye.bean.Eye.E;
import
com.oo.eye.bean.Eye.E
;
//import com.oo.eye.bean.EyeHistroyBean;
import
com.oo.eye.bean.EyeHistroyBean
;
//import com.oo.eye.manager.DaemonSender;
import
com.oo.eye.manager.DaemonSender
;
//
//import java.util.ArrayList;
import
java.util.ArrayList
;
//import java.util.LinkedHashMap;
import
java.util.LinkedHashMap
;
//import java.util.List;
import
java.util.List
;
//import java.util.Map;
import
java.util.Random
;
//import java.util.Random;
//
import
butterknife.BindView
;
//import butterknife.BindView;
import
butterknife.ButterKnife
;
//import butterknife.ButterKnife;
import
butterknife.OnClick
;
//import butterknife.OnClick;
//
import
static
com
.
oo
.
eye
.
bean
.
Eye
.
getLineSumByIndex
;
//import static com.oo.eye.bean.Eye.getLineSumByIndex;
//
/**
///**
*/
// */
//
public
class
EyeTestActivity
extends
BaseActivity
{
//public class EyeTestActivity extends BaseActivity {
//
static
final
int
TOP
=
0
;
// static final int TOP = 0;
static
final
int
RIGHT
=
1
;
// static final int RIGHT = 1;
static
final
int
BOTTOM
=
2
;
// static final int BOTTOM = 2;
static
final
int
LEFT
=
3
;
// static final int LEFT = 3;
static
final
int
LEFT_TOP
=
4
;
// private E mSelectE;
static
final
int
RIGHT_TOP
=
5
;
//
static
final
int
LEFT_BOTTOM
=
6
;
// @BindView(R2.id.rl_eye_test_center_time1)
static
final
int
RIGHT_BOTTOM
=
7
;
// RelativeLayout timeLayout1;
private
E
mSelectE
;
// @BindView(R2.id.tv_eye_test_center_time1)
// TextView timeText1;
@BindView
(
R2
.
id
.
rl_eye_test_center_time1
)
//
RelativeLayout
timeLayout1
;
// @BindView(R2.id.rl_eye_test_center_e1)
@BindView
(
R2
.
id
.
tv_eye_test_center_time1
)
// RelativeLayout eLayout1;
TextView
timeText1
;
//
// @BindView(R2.id.iv_eye_test_center_e1)
@BindView
(
R2
.
id
.
rl_eye_test_center_e1
)
// ImageView eImageView1;
RelativeLayout
eLayout1
;
//
// @BindView(R2.id.view_eye_test_mask1)
@BindView
(
R2
.
id
.
iv_eye_test_center_e1
)
// View maskView1;
ImageView
eImageView1
;
//
// @BindView(R2.id.view_eye_test_mask2)
@BindView
(
R2
.
id
.
view_eye_test_mask1
)
// View maskView2;
View
maskView1
;
//
// @BindView(R2.id.rl_eye_test_center_time2)
@BindView
(
R2
.
id
.
tv_eye_vision1
)
// RelativeLayout timeLayout2;
TextView
eyeVision1
;
// @BindView(R2.id.tv_eye_test_center_time2)
@BindView
(
R2
.
id
.
tv_eye_vision_count1
)
// TextView timeText2;
TextView
count1
;
//
@BindView
(
R2
.
id
.
tv_eye_vision_allow1
)
// @BindView(R2.id.rl_eye_test_center_e2)
TextView
allow1
;
// RelativeLayout eLayout2;
@BindView
(
R2
.
id
.
tv_eye_vision_right1
)
//
TextView
right1
;
// @BindView(R2.id.iv_eye_test_center_e2)
@BindView
(
R2
.
id
.
tv_eye_vision_error1
)
// ImageView eImageView2;
TextView
error1
;
//
// @BindView(R2.id.tv_eye_vision1)
private
int
test_dis
=
0
;
// TextView eyeVision1;
// @BindView(R2.id.tv_eye_vision_count1)
private
ArrayList
<
ArrayList
<
E
>>
mList
=
new
ArrayList
<>();
// TextView count1;
private
int
mLocation
;
// @BindView(R2.id.tv_eye_vision_allow1)
private
int
mLevelIndex
=
-
1
;
// TextView allow1;
private
LinkedHashMap
<
Integer
,
List
<
E
>>
mCollect
=
new
LinkedHashMap
<>();
// @BindView(R2.id.tv_eye_vision_right1)
private
EyeHistroyBean
mHistroyBean
;
// TextView right1;
//是否是右眼训练
// @BindView(R2.id.tv_eye_vision_error1)
private
boolean
isSecondTest
;
// TextView error1;
private
double
mLeftEye
=
5.0
;
//
private
int
mLeftLine
=
0
;
// @BindView(R2.id.tv_eye_vision2)
private
double
mRightEye
=
5.0
;
// TextView eyeVision2;
private
int
mRightLine
=
0
;
// @BindView(R2.id.tv_eye_vision_count2)
private
long
mLastOnKeyTime
=
-
1
;
// TextView count2;
private
boolean
isTestSuccess
=
false
;
// @BindView(R2.id.tv_eye_vision_allow2)
private
boolean
isStartTest
=
false
;
// TextView allow2;
// @BindView(R2.id.tv_eye_vision_right2)
private
long
totalTime
=
5000
;
// TextView right2;
private
long
intervalTime
=
1000
;
// @BindView(R2.id.tv_eye_vision_error2)
// TextView error2;
@Override
//
protected
void
onResume
()
{
// private int test_dis = 0;
super
.
onResume
();
//
}
// private ArrayList<ArrayList<E>> mList = new ArrayList<>();
// private int mLocation;
@Override
// private int mLevelIndex = -1;
protected
void
onPause
()
{
// private LinkedHashMap<Integer, List<E>> mCollect = new LinkedHashMap<>();
super
.
onPause
();
// private EyeHistroyBean mHistroyBean;
}
// //是否是右眼训练
// private boolean isSecondTest;
@Override
// private double mLeftEye = 5.0;
protected
int
getLayoutId
()
{
// private int mLeftLine = 0;
return
R
.
layout
.
activity_eye_test
;
// private double mRightEye = 5.0;
}
// private int mRightLine = 0;
// private long mLastOnKeyTime = -1;
@Override
// private boolean isTestSuccess = false;
protected
void
init
()
{
// private boolean isStartTest = false;
NibiruUtils
.
switchVR
(
true
);
//
DaemonSender
.
startEyeTest
(
this
);
// private long totalTime = 5000;
speak
(
"视力测试马上开启"
);
// private long intervalTime = 1000;
initialize
();
//
prepareQueue
();
// @Override
}
// protected void onResume() {
// super.onResume();
private
void
initialize
()
{
// }
mList
.
clear
();
//
for
(
int
i
=
0
;
i
<
14
;
i
++)
{
// @Override
mList
.
add
(
initLineList
(
i
));
// protected void onPause() {
}
// super.onPause();
}
// }
//
private
void
prepareQueue
()
{
// @Override
mHistroyBean
=
EyeConfig
.
getInstance
().
getCuurentBean
();
// protected int getLayoutId() {
continueTest
();
// return R.layout.activity_eye_test;
}
// }
//
private
void
continueTest
()
{
// @Override
if
(!
isStartTest
)
{
// protected void init() {
isStartTest
=
true
;
// NibiruUtils.switchVR(true);
resetView
(
true
);
// DaemonSender.startEyeTest(this);
}
// speak("视力测试马上开启");
}
// initialize();
// prepareQueue();
/**
// }
* 开始测试
//
*
// private void initialize() {
* @param isNewTest true 代表测试的第一只眼 代表左眼 false代表测量另一只眼 右眼
// mList.clear();
*/
// for (int i = 0; i < 14; i++) {
private
void
resetView
(
final
boolean
isNewTest
)
{
// mList.add(initLineList(i));
mLevelIndex
=
-
1
;
// }
isSecondTest
=
!
isNewTest
;
// }
//
String
eye
=
isNewTest
?
"右"
:
"左"
;
// private void prepareQueue() {
// mHistroyBean = EyeConfig.getInstance().getCuurentBean();
if
(
isNewTest
)
{
// continueTest();
if
(
mHistroyBean
!=
null
)
{
// }
mLeftEye
=
mHistroyBean
.
getLeft_eye
();
//
mRightEye
=
mHistroyBean
.
getRight_eye
();
// private void continueTest() {
}
// if (!isStartTest) {
}
// isStartTest = true;
timeLayout1
.
setVisibility
(
View
.
VISIBLE
);
// resetView(true);
eLayout1
.
setVisibility
(
View
.
GONE
);
// }
maskView1
.
setVisibility
(
View
.
GONE
);
// }
new
CountDownTimer
(
totalTime
,
intervalTime
)
{
//
@Override
// /**
public
void
onTick
(
long
millisUntilFinished
)
{
// * 开始测试
long
time
=
millisUntilFinished
/
1000
;
// *
timeText1
.
setText
(
time
+
""
);
// * @param isNewTest true 代表测试的第一只眼 代表左眼 false代表测量另一只眼 右眼
float
f
=
millisUntilFinished
*
1.0f
/
totalTime
;
// */
if
(
isSecondTest
)
{
// private void resetView(final boolean isNewTest) {
maskView1
.
setAlpha
(
1
-
f
);
// mLevelIndex = -1;
maskView1
.
setVisibility
(
View
.
VISIBLE
);
// isSecondTest = !isNewTest;
}
else
{
//
maskView1
.
setVisibility
(
View
.
GONE
);
// String eye = isNewTest ? "右" : "左";
}
//
LogUtil
.
e
(
"onTick"
);
// if (isNewTest) {
}
// if (mHistroyBean != null) {
// mLeftEye = mHistroyBean.getLeft_eye();
@Override
// mRightEye = mHistroyBean.getRight_eye();
public
void
onFinish
()
{
// }
LogUtil
.
e
(
"onFinish"
);
// }
timeLayout1
.
setVisibility
(
View
.
GONE
);
// timeLayout1.setVisibility(View.VISIBLE);
eLayout1
.
setVisibility
(
View
.
VISIBLE
);
// timeLayout2.setVisibility(View.VISIBLE);
double
e
=
5.0
;
// eLayout1.setVisibility(View.GONE);
//如果是左眼次测试
// eLayout2.setVisibility(View.GONE);
if
(
isNewTest
)
{
// maskView1.setVisibility(View.GONE);
if
(
mHistroyBean
!=
null
)
{
// maskView2.setVisibility(View.GONE);
e
=
mHistroyBean
.
getLeft_eye
();
// new CountDownTimer(totalTime, intervalTime) {
}
// @Override
maskView1
.
setVisibility
(
View
.
GONE
);
// public void onTick(long millisUntilFinished) {
}
else
{
// long time = millisUntilFinished / 1000;
//右眼测试
// timeText1.setText(time + "");
if
(
isSecondTest
)
{
// timeText2.setText(time + "");
if
(
mHistroyBean
!=
null
)
{
// float f = millisUntilFinished * 1.0f / totalTime;
e
=
mHistroyBean
.
getRight_eye
();
// if (isSecondTest) {
}
// maskView1.setAlpha(1 - f);
}
// maskView1.setVisibility(View.VISIBLE);
maskView1
.
setAlpha
(
1
);
// maskView2.setVisibility(View.GONE);
maskView1
.
setVisibility
(
View
.
VISIBLE
);
//
}
// } else {
mLevelIndex
=
Eye
.
getIndexByValue
(
e
,
true
)
-
1
;
// maskView2.setAlpha(1 - f);
next
(
true
);
// maskView1.setVisibility(View.GONE);
}
// maskView2.setVisibility(View.VISIBLE);
}.
start
();
// }
speak
(
"请遮住您的"
+
eye
+
"眼"
);
// LogUtil.e("onTick");
mCollect
.
clear
();
// }
}
//
// @Override
private
void
speak
(
String
text
)
{
// public void onFinish() {
DaemonSender
.
sendDBTTS
(
this
,
text
);
// LogUtil.e("onFinish");
}
// timeLayout1.setVisibility(View.GONE);
// timeLayout2.setVisibility(View.GONE);
/**
// eLayout1.setVisibility(View.VISIBLE);
* 描画E字
// eLayout2.setVisibility(View.VISIBLE);
*
// double e = 5.0;
* @param e
// //如果是左眼次测试
*/
// if (isNewTest) {
private
void
drewE
(
E
e
)
{
// if (mHistroyBean != null) {
//视力等级
// e = mHistroyBean.getLeft_eye();
float
level
=
e
.
getLevel
();
// }
//视标边长
// maskView1.setVisibility(View.GONE);
int
px
=
Eye
.
getDip
(
this
,
level
);
// maskView2.setAlpha(1);
// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(px, px);
// maskView2.setVisibility(View.VISIBLE);
// eImageView1.setLayoutParams(params);
// } else {
// eImageView2.setLayoutParams(params);
// //右眼测试
//视标方向
// if (isSecondTest) {
int
resId
;
// if (mHistroyBean != null) {
switch
(
e
.
getDirect
())
{
// e = mHistroyBean.getRight_eye();
default
:
// }
case
TOP:
// }
resId
=
R
.
drawable
.
c_top
;
// maskView1.setAlpha(1);
break
;
// maskView1.setVisibility(View.VISIBLE);
case
RIGHT:
// maskView2.setVisibility(View.GONE);
resId
=
R
.
drawable
.
c_right
;
// }
break
;
// mLevelIndex = Eye.getIndexByValue(e, true) - 1;
case
BOTTOM:
// next(true);
resId
=
R
.
drawable
.
c_bottom
;
// }
break
;
// }.start();
case
LEFT:
// speak("请遮住您的" + eye + "眼");
resId
=
R
.
drawable
.
c_left
;
// mCollect.clear();
break
;
// }
case
LEFT_TOP:
//
resId
=
R
.
drawable
.
c_left_top
;
// private void speak(String text) {
break
;
// DaemonSender.sendDBTTS(this, text);
case
RIGHT_TOP:
// }
resId
=
R
.
drawable
.
c_right_top
;
//
break
;
// /**
case
LEFT_BOTTOM:
// * 描画E字
resId
=
R
.
drawable
.
c_left_bottom
;
// *
break
;
// * @param e
case
RIGHT_BOTTOM:
// */
resId
=
R
.
drawable
.
c_right_bottom
;
// private void drewE(E e) {
break
;
// //视力等级
}
// float level = e.getLevel();
eImageView1
.
setImageResource
(
resId
);
// //视标边长
}
// int px = Eye.getDip(this, level);
//// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(px, px);
/**
//// eImageView1.setLayoutParams(params);
* 随机生成每一行的视标E
//// eImageView2.setLayoutParams(params);
*
// //视标方向
* @param index 第几行
// int resId;
* @return list
// switch (e.getDirect()) {
*/
// default:
private
ArrayList
<
E
>
initLineList
(
int
index
)
{
// case TOP:
float
level
=
Eye
.
getLevelSizeByIndex
(
index
);
// resId = R.drawable.e_up;
int
sum
=
getLineSumByIndex
(
index
);
// break;
//随机数生成方向
// case RIGHT:
Random
random
=
new
Random
();
// resId = R.drawable.e_right;
E
e
;
// break;
ArrayList
<
E
>
list
=
new
ArrayList
<>();
// case BOTTOM:
int
direct
=
getFirstDirect
(
random
,
index
);
// resId = R.drawable.e_down;
for
(
int
i
=
0
;
i
<
sum
;
i
++)
{
// break;
if
(
i
>
0
)
{
// case LEFT:
direct
=
getRandomDirect
(
list
,
direct
,
sum
);
// resId = R.drawable.e_left;
}
// break;
e
=
new
E
(
i
,
direct
,
level
);
// }
list
.
add
(
e
);
// eImageView1.setImageResource(resId);
}
// eImageView2.setImageResource(resId);
return
list
;
// }
}
//
// /**
/**
// * 随机生成每一行的视标E
* 获取第一个E;
// *
*
// * @param index 第几行
* @param random
// * @return list
* @param index
// */
* @return
// private ArrayList<E> initLineList(int index) {
*/
// float level = Eye.getLevelSizeByIndex(index);
private
int
getFirstDirect
(
Random
random
,
int
index
)
{
// int sum = getLineSumByIndex(index);
int
direct
=
random
.
nextInt
(
4
);
// //随机数生成方向
if
(
index
>
0
)
{
// Random random = new Random();
if
(
mList
.
get
(
index
-
1
).
get
(
0
).
getDirect
()
==
direct
)
// E e;
direct
=
getFirstDirect
(
random
,
index
);
// ArrayList<E> list = new ArrayList<>();
}
// int direct = getFirstDirect(random, index);
return
direct
;
// for (int i = 0; i < sum; i++) {
}
// if (i > 0) {
// direct = getRandomDirect(list, direct, sum);
/**
// }
* 获取下一个E的方向的判断;
// e = new E(i, direct, level);
*
// list.add(e);
* @param list
// }
* @param direct
// return list;
* @param sum
// }
* @return
//
*/
// /**
private
int
getRandomDirect
(
ArrayList
<
E
>
list
,
int
direct
,
int
sum
)
{
// * 获取第一个E;
int
lastDirect
=
direct
;
// *
direct
=
randomDirect
(
direct
);
// * @param random
int
num
=
sum
/
2
;
// * @param index
if
(
sum
%
2
==
0
&&
sum
/
2
>
1
)
{
// * @return
num
=
sum
/
2
-
1
;
// */
}
// private int getFirstDirect(Random random, int index) {
if
(
getEDirectorNum
(
list
,
direct
)
>=
num
)
{
// int direct = random.nextInt(4);
direct
=
getRandomDirect
(
list
,
lastDirect
,
sum
);
// if (index > 0) {
}
// if (mList.get(index - 1).get(0).getDirect() == direct)
return
direct
;
// direct = getFirstDirect(random, index);
}
// }
// return direct;
/**
// }
* 获取该行出现的形同方向的E的个数;
//
*
// /**
* @param list
// * 获取下一个E的方向的判断;
* @param direct
// *
* @return
// * @param list
*/
// * @param direct
private
int
getEDirectorNum
(
ArrayList
<
E
>
list
,
int
direct
)
{
// * @param sum
int
num
=
0
;
// * @return
if
(
list
==
null
||
list
.
size
()
==
0
)
// */
return
num
;
// private int getRandomDirect(ArrayList<E> list, int direct, int sum) {
for
(
E
e
:
// int lastDirect = direct;
list
)
{
// direct = randomDirect(direct);
if
(
e
.
getDirect
()
==
direct
)
// int num = sum / 2;
num
++;
// if (sum % 2 == 0 && sum / 2 > 1) {
}
// num = sum / 2 - 1;
return
num
;
// }
}
// if (getEDirectorNum(list, direct) >= num) {
// direct = getRandomDirect(list, lastDirect, sum);
// }
/**
// return direct;
* 相邻的两个不能是同一个方向
// }
*
//
* @param lastDirect 上一次的方向
// /**
* @return 新的方向
// * 获取该行出现的形同方向的E的个数;
*/
// *
private
int
randomDirect
(
int
lastDirect
)
{
// * @param list
//随机数生成方向
// * @param direct
Random
random
=
new
Random
();
// * @return
int
newDirect
=
random
.
nextInt
(
4
);
// */
//相邻的不能一样
// private int getEDirectorNum(ArrayList<E> list, int direct) {
while
(
lastDirect
==
newDirect
)
{
// int num = 0;
newDirect
=
random
.
nextInt
(
4
);
// if (list == null || list.size() == 0)
}
// return num;
// for (E e :
return
newDirect
;
// list) {
}
// if (e.getDirect() == direct)
// num++;
// }
/**
// return num;
* 下一个测试
// }
*/
//
private
void
next
(
boolean
isNextLine
)
{
//
if
(
isNextLine
)
{
// /**
mLevelIndex
++;
// * 相邻的两个不能是同一个方向
mLocation
=
0
;
// *
eyeVision1
.
setText
(
""
+
Eye
.
getLevelByIndex
(
mLevelIndex
,
true
));
// * @param lastDirect 上一次的方向
count1
.
setText
(
""
);
// * @return 新的方向
allow1
.
setText
(
""
);
// */
right1
.
setText
(
""
);
// private int randomDirect(int lastDirect) {
error1
.
setText
(
""
);
// //随机数生成方向
}
else
{
// Random random = new Random();
mLocation
++;
// int newDirect = random.nextInt(4);
}
// //相邻的不能一样
// while (lastDirect == newDirect) {
mSelectE
=
mList
.
get
(
mLevelIndex
).
get
(
mLocation
);
// newDirect = random.nextInt(4);
drewE
(
mSelectE
);
// }
}
//
// return newDirect;
/**
// }
* 选择的方向
//
*
//
* @param direct
// /**
*/
// * 下一个测试
private
void
userChoose
(
int
direct
)
{
// */
LogUtil
.
e
(
"direct:"
+
direct
);
// private void next(boolean isNextLine) {
LogUtil
.
e
(
"mLevelIndex:"
+
mLevelIndex
);
// if (isNextLine) {
//获取当前行答过的e
// mLevelIndex++;
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
// mLocation = 0;
if
(
null
==
list
||
list
.
size
()
==
0
)
{
// eyeVision1.setText("" + Eye.getLevelByIndex(mLevelIndex, true));
list
=
new
ArrayList
<>();
// eyeVision2.setText("" + Eye.getLevelByIndex(mLevelIndex, true));
}
// count1.setText("");
mSelectE
.
setUserChoose
(
direct
);
// count2.setText("");
list
.
add
(
mSelectE
);
// allow1.setText("");
mCollect
.
put
(
mLevelIndex
,
list
);
// allow2.setText("");
judge
();
// right1.setText("");
// int verifyErrorCount = 0;
// right2.setText("");
// //获取每行有多少个e
// error1.setText("");
// int lineSum = getLineSumByIndex(mLevelIndex);
// error2.setText("");
// //获取每行答对几个e
// } else {
// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
// mLocation++;
// LogUtil.e("leastAnswerCount:"+leastAnswerCount);
// }
//
// mSelectE = mList.get(mLevelIndex).get(mLocation);
// drewE(mSelectE);
// }
//
// /**
// * 选择的方向
// *
// * @param direct
// */
// private void userChoose(int direct) {
// LogUtil.e("direct:" + direct);
// LogUtil.e("mLevelIndex:" + mLevelIndex);
// //获取当前行答过的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) {
...
@@ -413,107 +399,29 @@
...
@@ -413,107 +399,29 @@
// }
// }
// mSelectE.setUserChoose(direct);
// mSelectE.setUserChoose(direct);
// list.add(mSelectE);
// list.add(mSelectE);
// mCollect.put(mLevelIndex, list);
// judge();
//// int verifyErrorCount = 0;
//// //获取每行有多少个e
//// int lineSum = getLineSumByIndex(mLevelIndex);
//// //获取每行答对几个e
//// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
//// LogUtil.e("leastAnswerCount:"+leastAnswerCount);
//// //获取当前行答过的e
//// List<E> list = mCollect.get(mLevelIndex);
//// if (null == list || list.size() == 0) {
//// list = new ArrayList<>();
//// }
//// mSelectE.setUserChoose(direct);
//// list.add(mSelectE);
////
//// int rightAnswerCount = 0;
//// for (E e : list) {
//// if (e.isCorrect()) {
//// rightAnswerCount++;
//// }
//// }
//// LogUtil.e("rightAnswerCount:"+rightAnswerCount);
//// //当前行答错的数
//// int errorCount = list.size() - rightAnswerCount;
//// LogUtil.e("errorCount:"+errorCount);
//// //判断是否满足答对的要求
//// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
//// LogUtil.e("isNextLine:"+isNextLine);
//// mCollect.put(mLevelIndex, list);
////
//// if(isNextLine){
//// if(mLevelIndex == 13){
//// showResult();
//// return;
//// }else {
//// List<E> nextList = mCollect.get(mLevelIndex + 1);
//// if(nextList != null && nextList.size() > 0){
//// showResult();
//// return;
//// }
//// }
//// }
////
//// //防止出现-1的现象;
//// if (lineSum - leastAnswerCount > 0) {
//// verifyErrorCount = lineSum - leastAnswerCount;
//// } else {
//// verifyErrorCount = 0;
//// }
//// //必须答对一半才往下走一行的
//// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
//// if (errorCount > verifyErrorCount) {
//// //如果上一行数据不为空 结束测试
//// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
//// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
//// if(isSecondTest){
//// mRightLine = leastAnswerCount;
//// }else{
//// mLeftLine = leastAnswerCount;
//// }
//// showResult();
//// return;
//// }else {
//// backLastLine();
//// return;
//// }
//// }
//// next(isNextLine);
// }
//
//
// private void judge() {
// int verifyErrorCount = 0;
// //获取每行有多少个e
// int lineSum = getLineSumByIndex(mLevelIndex);
// //获取每行答对几个e
// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
// //获取当前行答过的e
// List<E> list = mCollect.get(mLevelIndex);
// int rightAnswerCount = 0;
// int rightAnswerCount = 0;
// for (E e : list) {
// for (E e : list) {
// if (e.isCorrect()) {
// if (e.isCorrect()) {
// rightAnswerCount++;
// rightAnswerCount++;
// }
// }
// }
// }
//
LogUtil.e("rightAnswerCount:" +
rightAnswerCount);
//
LogUtil.e("rightAnswerCount:"+
rightAnswerCount);
// //当前行答错的数
// //当前行答错的数
// int errorCount = list.size() - rightAnswerCount;
// int errorCount = list.size() - rightAnswerCount;
//
LogUtil.e("errorCount:" +
errorCount);
//
LogUtil.e("errorCount:"+
errorCount);
// //判断是否满足答对的要求
// //判断是否满足答对的要求
// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
//
LogUtil.e("isNextLine:" +
isNextLine);
//
LogUtil.e("isNextLine:"+
isNextLine);
// mCollect.put(mLevelIndex, list);
// mCollect.put(mLevelIndex, list);
//
//
//
if (isNextLine)
{
//
if(isNextLine)
{
//
if (mLevelIndex == 13)
{
//
if(mLevelIndex == 13)
{
// showResult();
// showResult();
// return;
// return;
//
}
else {
//
}
else {
// List<E> nextList = mCollect.get(mLevelIndex + 1);
// List<E> nextList = mCollect.get(mLevelIndex + 1);
//
if (nextList != null && nextList.size() > 0)
{
//
if(nextList != null && nextList.size() > 0)
{
// showResult();
// showResult();
// return;
// return;
// }
// }
...
@@ -526,243 +434,301 @@
...
@@ -526,243 +434,301 @@
// } else {
// } else {
// verifyErrorCount = 0;
// verifyErrorCount = 0;
// }
// }
// count1.setText("总共:" + lineSum);
// count2.setText("总共:" + lineSum);
// allow1.setText("正确数:" + leastAnswerCount);
// allow2.setText("正确数:" + leastAnswerCount);
// right1.setText("答对数:" + rightAnswerCount);
// right2.setText("答对数:" + rightAnswerCount);
// error1.setText("错误数:" + errorCount);
// error2.setText("错误数:" + errorCount);
// //必须答对一半才往下走一行的
// //必须答对一半才往下走一行的
// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
// if (errorCount > verifyErrorCount) {
// if (errorCount > verifyErrorCount) {
// //如果上一行数据不为空 结束测试
// //如果上一行数据不为空 结束测试
// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
//
if (isSecondTest)
{
//
if(isSecondTest)
{
// mRightLine = leastAnswerCount;
// mRightLine = leastAnswerCount;
//
} else
{
//
}else
{
// mLeftLine = leastAnswerCount;
// mLeftLine = leastAnswerCount;
// }
// }
// showResult();
// showResult();
// return;
// return;
//
}
else {
//
}
else {
// backLastLine();
// backLastLine();
// return;
// return;
// }
// }
// }
// }
// next(isNextLine);
// next(isNextLine);
// }
}
private
void
judge
()
{
int
verifyErrorCount
=
0
;
//获取每行有多少个e
int
lineSum
=
getLineSumByIndex
(
mLevelIndex
);
//获取每行答对几个e
int
leastAnswerCount
=
Eye
.
getLeastAnswerCount
(
mLevelIndex
);
//获取当前行答过的e
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
int
rightAnswerCount
=
0
;
for
(
E
e
:
list
)
{
if
(
e
.
isCorrect
())
{
rightAnswerCount
++;
}
}
LogUtil
.
e
(
"rightAnswerCount:"
+
rightAnswerCount
);
//当前行答错的数
int
errorCount
=
list
.
size
()
-
rightAnswerCount
;
LogUtil
.
e
(
"errorCount:"
+
errorCount
);
//判断是否满足答对的要求
boolean
isNextLine
=
rightAnswerCount
>=
leastAnswerCount
;
LogUtil
.
e
(
"isNextLine:"
+
isNextLine
);
mCollect
.
put
(
mLevelIndex
,
list
);
if
(
isNextLine
)
{
if
(
mLevelIndex
==
13
)
{
showResult
();
return
;
}
else
{
List
<
E
>
nextList
=
mCollect
.
get
(
mLevelIndex
+
1
);
if
(
nextList
!=
null
&&
nextList
.
size
()
>
0
)
{
showResult
();
return
;
}
}
}
//防止出现-1的现象;
if
(
lineSum
-
leastAnswerCount
>
0
)
{
verifyErrorCount
=
lineSum
-
leastAnswerCount
;
}
else
{
verifyErrorCount
=
0
;
}
count1
.
setText
(
"总共:"
+
lineSum
);
allow1
.
setText
(
"正确数:"
+
leastAnswerCount
);
right1
.
setText
(
"答对数:"
+
rightAnswerCount
);
error1
.
setText
(
"错误数:"
+
errorCount
);
//必须答对一半才往下走一行的
//如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
if
(
errorCount
>
verifyErrorCount
)
{
//如果上一行数据不为空 结束测试
if
(
mLevelIndex
==
0
||
(
mCollect
.
containsKey
(
mLevelIndex
-
1
)
&&
mCollect
.
get
(
mLevelIndex
-
1
)
!=
null
&&
mCollect
.
get
(
mLevelIndex
-
1
).
size
()
>
0
))
{
if
(
isSecondTest
)
{
mRightLine
=
leastAnswerCount
;
}
else
{
mLeftLine
=
leastAnswerCount
;
}
showResult
();
return
;
}
else
{
backLastLine
();
return
;
}
}
next
(
isNextLine
);
}
/**
* 答错
*/
private
void
userChooseError
()
{
int
direct
=
mSelectE
.
getDirect
()
+
1
;
//获取当前行答过的e
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
if
(
null
==
list
||
list
.
size
()
==
0
)
{
list
=
new
ArrayList
<>();
}
mSelectE
.
setUserChoose
(
direct
);
list
.
add
(
mSelectE
);
mCollect
.
put
(
mLevelIndex
,
list
);
judge
();
// int verifyErrorCount = 0;
// int lineSum = getLineSumByIndex(mLevelIndex);
// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
// int rightAnswerCount = 0;
// int direct = mSelectE.getDirect()+1;
//
//
// /**
// * 答错
// */
// private void userChooseError() {
// 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) {
// list = new ArrayList<>();
// }
// mSelectE.setUserChoose(direct);
// mSelectE.setUserChoose(direct);
// list.add(mSelectE);
// list.add(mSelectE);
// mCollect.put(mLevelIndex, list);
// judge();
//// int verifyErrorCount = 0;
//// int lineSum = getLineSumByIndex(mLevelIndex);
//// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
//// int rightAnswerCount = 0;
//// int direct = mSelectE.getDirect()+1;
////
//// //获取当前行答过的e
//// List<E> list = mCollect.get(mLevelIndex);
//// mSelectE.setUserChoose(direct);
//// list.add(mSelectE);
////
//// if (null == list || list.size() == 0) {
//// list = new ArrayList<>();
//// } else {
//// for (E e : list) {
//// if (e.isCorrect()) {
//// rightAnswerCount++;
//// }
//// }
//// }
//// //当前行答错的数
//// int errorCount = list.size() - rightAnswerCount;
////
//// //判断是否满足答对的要求
//// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
////
//// mCollect.put(mLevelIndex, list);
////
//// if(isNextLine){
//// if(mLevelIndex == 13){
//// showResult();
//// return;
//// }else {
//// List<E> nextList = mCollect.get(mLevelIndex + 1);
//// if(nextList != null && nextList.size() > 0){
//// showResult();
//// return;
//// }
//// }
//// }
////
//// //防止出现-1的现象;
//// if (lineSum - leastAnswerCount > 0) {
//// verifyErrorCount = lineSum - leastAnswerCount;
//// } else {
//// verifyErrorCount = 0;
//// }
//// //必须答对一半才往下走一行的
//// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
//// if (errorCount > verifyErrorCount) {
//// //如果上一行数据不为空 结束测试
//// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
//// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
//// if (isSecondTest) {
//// showResult();
//// return;
//// }
////
//// mLeftEye = getResult();
//// resetView(false);
//// return;
//// }else {
//// backLastLine();
//// return;
//// }
//// }
//// next(isNextLine);
// }
//
//
//
// //返回到上一行
// if (null == list || list.size() == 0) {
// private void backLastLine() {
// list = new ArrayList<>();
// mLevelIndex = mLevelIndex - 2;
// } else {
// next(true);
// for (E e : list) {
// if (e.isCorrect()) {
// rightAnswerCount++;
// }
// }
//
// /**
// * 单眼测试结束
// */
// private void showResult() {
// //如果不是手动提交
// final Double eyeResult = getResult();
// if (isSecondTest) {//右眼训练
// mRightEye = eyeResult;
// showStudentTestDialog();
// } else {//左眼训练
// mLeftEye = eyeResult;
// resetView(false);
// return;
// }
// }
// }
// }
// //当前行答错的数
// int errorCount = list.size() - rightAnswerCount;
//
//
// //判断是否满足答对的要求
// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
//
//
// private void showStudentTestDialog() {
// mCollect.put(mLevelIndex, list);
// int selectId = PreferencesUtils.getInt(EyeConfig.EYE_SETTING_KEY, 0);
// String text = ("测视结束左眼视力" + mLeftEye + "右眼视力" + mRightEye).replace(".", "点");
// if (selectId == 1) {
// text = ("测视结束左眼视力" + Eye.transformSmall(mLeftEye) + "右眼视力" +
// Eye.transformSmall(mRightEye)).replace(".", "点");
// }
// speak(text);
// Intent intent = new Intent(this, AfterEyeTestActivity.class);
// intent.putExtra("leftEye", mLeftEye);
// intent.putExtra("rightEye", mRightEye);
// intent.putExtra("leftLine", mLeftLine);
// intent.putExtra("rightLine", mRightLine);
// startActivity(intent);
// finish();
// }
//
// @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;
// switch (event.getKeyCode()) {
// case KeyEvent.KEYCODE_BUTTON_X:
// userChoose(TOP);
// return true;
// case KeyEvent.KEYCODE_BUTTON_B:
// userChoose(BOTTOM);
// return true;
// case KeyEvent.KEYCODE_BUTTON_A:
// userChoose(LEFT);
// return true;
// case KeyEvent.KEYCODE_BUTTON_Y:
// userChoose(RIGHT);
// return true;
// case KeyEvent.KEYCODE_DPAD_UP:
// userChoose(TOP);
// return true;
// case KeyEvent.KEYCODE_DPAD_DOWN:
// userChoose(BOTTOM);
// return true;
// case KeyEvent.KEYCODE_DPAD_LEFT:
// userChoose(LEFT);
// return true;
// case KeyEvent.KEYCODE_DPAD_RIGHT:
// userChoose(RIGHT);
// return true;
// case KeyEvent.KEYCODE_DPAD_CENTER://遥控中间键
// //用户点击返回键:
// userChooseError();
// return true;
//
//
// if(isNextLine){
// if(mLevelIndex == 13){
// showResult();
// return;
// }else {
// List<E> nextList = mCollect.get(mLevelIndex + 1);
// if(nextList != null && nextList.size() > 0){
// showResult();
// return;
// }
// }
// return true;
// }
// }
// return super.dispatchKeyEvent(event);
// }
// }
//
//
// private double getResult() {
// //防止出现-1的现象;
// if (null == mCollect || mCollect.size() == 0) {
// if (lineSum - leastAnswerCount > 0) {
// if (test_dis == 0) {
// verifyErrorCount = lineSum - leastAnswerCount;
// return 4.0;
// } else {
// } else {
// return 3.8;
// verifyErrorCount = 0;
// }
// }
// int result = 0;
// for (LinkedHashMap.Entry<Integer, List<E>> entry : mCollect.entrySet()) {
// result = entry.getKey();
// }
// final String levelByIndex = "" + Eye.getLevelByIndex(result, test_dis == 0);
// return Double.parseDouble(levelByIndex);
// }
//
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// if (keyCode == KeyEvent.KEYCODE_BACK) {
// finish();
// return true;
// }
// return super.onKeyDown(keyCode, event);
// }
// }
//
// //必须答对一半才往下走一行的
// @Override
// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
// protected void onCreate(Bundle savedInstanceState) {
// if (errorCount > verifyErrorCount) {
// super.onCreate(savedInstanceState);
// //如果上一行数据不为空 结束测试
// // TODO: add setContentView(...) invocation
// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
// ButterKnife.bind(this);
// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
// if (isSecondTest) {
// showResult();
// return;
// }
// }
//
//
// @OnClick({R.id.next_left, R.id.next_right})
// mLeftEye = getResult();
// public void onClick(View view) {
// resetView(false);
// switch (view.getId()) {
// return;
// case R.id.next_left:
// }else {
// break;
// backLastLine();
// case R.id.next_right:
// return;
// break;
// }
// }
// }
// }
//}
// next(isNextLine);
}
//返回到上一行
private
void
backLastLine
()
{
mLevelIndex
=
mLevelIndex
-
2
;
next
(
true
);
}
/**
* 单眼测试结束
*/
private
void
showResult
()
{
//如果不是手动提交
final
Double
eyeResult
=
getResult
();
if
(
isSecondTest
)
{
//右眼训练
mRightEye
=
eyeResult
;
showStudentTestDialog
();
}
else
{
//左眼训练
mLeftEye
=
eyeResult
;
resetView
(
false
);
return
;
}
}
private
void
showStudentTestDialog
()
{
int
selectId
=
PreferencesUtils
.
getInt
(
EyeConfig
.
EYE_SETTING_KEY
,
0
);
String
text
=
(
"测视结束左眼视力"
+
mLeftEye
+
"右眼视力"
+
mRightEye
).
replace
(
"."
,
"点"
);
if
(
selectId
==
1
)
{
text
=
(
"测视结束左眼视力"
+
Eye
.
transformSmall
(
mLeftEye
)
+
"右眼视力"
+
Eye
.
transformSmall
(
mRightEye
)).
replace
(
"."
,
"点"
);
}
speak
(
text
);
Intent
intent
=
new
Intent
(
this
,
AfterEyeTestActivity
.
class
);
intent
.
putExtra
(
"leftEye"
,
mLeftEye
);
intent
.
putExtra
(
"rightEye"
,
mRightEye
);
intent
.
putExtra
(
"leftLine"
,
mLeftLine
);
intent
.
putExtra
(
"rightLine"
,
mRightLine
);
startActivity
(
intent
);
finish
();
}
@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
(
"----点击的Key值----"
+
event
.
getKeyCode
());
switch
(
event
.
getKeyCode
())
{
case
KeyEvent
.
KEYCODE_BUTTON_X
:
userChoose
(
TOP
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_B
:
userChoose
(
BOTTOM
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_A
:
userChoose
(
LEFT
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_Y
:
userChoose
(
RIGHT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_UP
:
userChoose
(
TOP
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_DOWN
:
userChoose
(
BOTTOM
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_LEFT
:
userChoose
(
LEFT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_RIGHT
:
userChoose
(
RIGHT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_CENTER
:
//遥控中间键
//用户点击返回键:
userChooseError
();
return
true
;
}
return
true
;
}
return
super
.
dispatchKeyEvent
(
event
);
}
private
double
getResult
()
{
if
(
null
==
mCollect
||
mCollect
.
size
()
==
0
)
{
if
(
test_dis
==
0
)
{
return
4.0
;
}
else
{
return
3.8
;
}
}
int
result
=
0
;
for
(
LinkedHashMap
.
Entry
<
Integer
,
List
<
E
>>
entry
:
mCollect
.
entrySet
())
{
result
=
entry
.
getKey
();
}
final
String
levelByIndex
=
""
+
Eye
.
getLevelByIndex
(
result
,
test_dis
==
0
);
return
Double
.
parseDouble
(
levelByIndex
);
}
@Override
public
boolean
onKeyDown
(
int
keyCode
,
KeyEvent
event
)
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
finish
();
return
true
;
}
return
super
.
onKeyDown
(
keyCode
,
event
);
}
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
// TODO: add setContentView(...) invocation
ButterKnife
.
bind
(
this
);
}
@OnClick
({
R
.
id
.
next_left
})
public
void
onClick
(
View
view
)
{
switch
(
view
.
getId
())
{
case
R
.
id
.
next_left
:
break
;
}
}
}
app/src/main/java/com/oo/eye/activity/EyeTestActivityF.java
deleted
100644 → 0
View file @
0cd68f24
package
com
.
oo
.
eye
.
activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.CountDownTimer
;
import
android.view.KeyEvent
;
import
android.view.View
;
import
android.widget.ImageView
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.app.baselibrary.base.common.BaseActivity
;
import
com.app.baselibrary.commonUtil.LogUtil
;
import
com.app.baselibrary.commonUtil.NibiruUtils
;
import
com.app.baselibrary.commonUtil.PreferencesUtils
;
import
com.oo.eye.EyeConfig
;
import
com.oo.eye.R
;
import
com.oo.eye.R2
;
import
com.oo.eye.bean.Eye
;
import
com.oo.eye.bean.Eye.E
;
import
com.oo.eye.bean.EyeHistroyBean
;
import
com.oo.eye.manager.DaemonSender
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Random
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
import
butterknife.OnClick
;
import
static
com
.
oo
.
eye
.
bean
.
Eye
.
getLineSumByIndex
;
/**
*/
public
class
EyeTestActivityF
extends
BaseActivity
{
static
final
int
TOP
=
0
;
static
final
int
RIGHT
=
1
;
static
final
int
BOTTOM
=
2
;
static
final
int
LEFT
=
3
;
static
final
int
LEFT_TOP
=
4
;
static
final
int
RIGHT_TOP
=
5
;
static
final
int
LEFT_BOTTOM
=
6
;
static
final
int
RIGHT_BOTTOM
=
7
;
private
E
mSelectE
;
@BindView
(
R2
.
id
.
rl_eye_test_center_time1
)
RelativeLayout
timeLayout1
;
@BindView
(
R2
.
id
.
tv_eye_test_center_time1
)
TextView
timeText1
;
@BindView
(
R2
.
id
.
rl_eye_test_center_e1
)
RelativeLayout
eLayout1
;
@BindView
(
R2
.
id
.
iv_eye_test_center_e1
)
ImageView
eImageView1
;
@BindView
(
R2
.
id
.
view_eye_test_mask1
)
View
maskView1
;
@BindView
(
R2
.
id
.
tv_eye_vision1
)
TextView
eyeVision1
;
@BindView
(
R2
.
id
.
tv_eye_vision_count1
)
TextView
count1
;
@BindView
(
R2
.
id
.
tv_eye_vision_allow1
)
TextView
allow1
;
@BindView
(
R2
.
id
.
tv_eye_vision_right1
)
TextView
right1
;
@BindView
(
R2
.
id
.
tv_eye_vision_error1
)
TextView
error1
;
private
int
test_dis
=
0
;
private
ArrayList
<
ArrayList
<
E
>>
mList
=
new
ArrayList
<>();
private
int
mLocation
;
private
int
mLevelIndex
=
-
1
;
private
LinkedHashMap
<
Integer
,
List
<
E
>>
mCollect
=
new
LinkedHashMap
<>();
private
EyeHistroyBean
mHistroyBean
;
//是否是右眼训练
private
boolean
isSecondTest
;
private
double
mLeftEye
=
5.0
;
private
int
mLeftLine
=
0
;
private
double
mRightEye
=
5.0
;
private
int
mRightLine
=
0
;
private
long
mLastOnKeyTime
=
-
1
;
private
boolean
isTestSuccess
=
false
;
private
boolean
isStartTest
=
false
;
private
long
totalTime
=
5000
;
private
long
intervalTime
=
1000
;
@Override
protected
void
onResume
()
{
super
.
onResume
();
}
@Override
protected
void
onPause
()
{
super
.
onPause
();
}
@Override
protected
int
getLayoutId
()
{
return
R
.
layout
.
activity_eye_test
;
}
@Override
protected
void
init
()
{
NibiruUtils
.
switchVR
(
true
);
DaemonSender
.
startEyeTest
(
this
);
speak
(
"视力测试马上开启"
);
initialize
();
prepareQueue
();
}
private
void
initialize
()
{
mList
.
clear
();
for
(
int
i
=
0
;
i
<
14
;
i
++)
{
mList
.
add
(
initLineList
(
i
));
}
}
private
void
prepareQueue
()
{
mHistroyBean
=
EyeConfig
.
getInstance
().
getCuurentBean
();
continueTest
();
}
private
void
continueTest
()
{
if
(!
isStartTest
)
{
isStartTest
=
true
;
resetView
(
true
);
}
}
/**
* 开始测试
*
* @param isNewTest true 代表测试的第一只眼 代表左眼 false代表测量另一只眼 右眼
*/
private
void
resetView
(
final
boolean
isNewTest
)
{
mLevelIndex
=
-
1
;
isSecondTest
=
!
isNewTest
;
String
eye
=
isNewTest
?
"右"
:
"左"
;
if
(
isNewTest
)
{
if
(
mHistroyBean
!=
null
)
{
mLeftEye
=
mHistroyBean
.
getLeft_eye
();
mRightEye
=
mHistroyBean
.
getRight_eye
();
}
}
timeLayout1
.
setVisibility
(
View
.
VISIBLE
);
eLayout1
.
setVisibility
(
View
.
GONE
);
maskView1
.
setVisibility
(
View
.
GONE
);
new
CountDownTimer
(
totalTime
,
intervalTime
)
{
@Override
public
void
onTick
(
long
millisUntilFinished
)
{
long
time
=
millisUntilFinished
/
1000
;
timeText1
.
setText
(
time
+
""
);
float
f
=
millisUntilFinished
*
1.0f
/
totalTime
;
if
(
isSecondTest
)
{
maskView1
.
setAlpha
(
1
-
f
);
maskView1
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
maskView1
.
setVisibility
(
View
.
GONE
);
}
LogUtil
.
e
(
"onTick"
);
}
@Override
public
void
onFinish
()
{
LogUtil
.
e
(
"onFinish"
);
timeLayout1
.
setVisibility
(
View
.
GONE
);
eLayout1
.
setVisibility
(
View
.
VISIBLE
);
double
e
=
5.0
;
//如果是左眼次测试
if
(
isNewTest
)
{
if
(
mHistroyBean
!=
null
)
{
e
=
mHistroyBean
.
getLeft_eye
();
}
maskView1
.
setVisibility
(
View
.
GONE
);
}
else
{
//右眼测试
if
(
isSecondTest
)
{
if
(
mHistroyBean
!=
null
)
{
e
=
mHistroyBean
.
getRight_eye
();
}
}
maskView1
.
setAlpha
(
1
);
maskView1
.
setVisibility
(
View
.
VISIBLE
);
}
mLevelIndex
=
Eye
.
getIndexByValue
(
e
,
true
)
-
1
;
next
(
true
);
}
}.
start
();
speak
(
"请遮住您的"
+
eye
+
"眼"
);
mCollect
.
clear
();
}
private
void
speak
(
String
text
)
{
DaemonSender
.
sendDBTTS
(
this
,
text
);
}
/**
* 描画E字
*
* @param e
*/
private
void
drewE
(
E
e
)
{
//视力等级
float
level
=
e
.
getLevel
();
//视标边长
int
px
=
Eye
.
getDip
(
this
,
level
);
// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(px, px);
// eImageView1.setLayoutParams(params);
// eImageView2.setLayoutParams(params);
//视标方向
int
resId
;
switch
(
e
.
getDirect
())
{
default
:
case
TOP:
resId
=
R
.
drawable
.
c_top
;
break
;
case
RIGHT:
resId
=
R
.
drawable
.
c_right
;
break
;
case
BOTTOM:
resId
=
R
.
drawable
.
c_bottom
;
break
;
case
LEFT:
resId
=
R
.
drawable
.
c_left
;
break
;
case
LEFT_TOP:
resId
=
R
.
drawable
.
c_left_top
;
break
;
case
RIGHT_TOP:
resId
=
R
.
drawable
.
c_right_top
;
break
;
case
LEFT_BOTTOM:
resId
=
R
.
drawable
.
c_left_bottom
;
break
;
case
RIGHT_BOTTOM:
resId
=
R
.
drawable
.
c_right_bottom
;
break
;
}
eImageView1
.
setImageResource
(
resId
);
}
/**
* 随机生成每一行的视标E
*
* @param index 第几行
* @return list
*/
private
ArrayList
<
E
>
initLineList
(
int
index
)
{
float
level
=
Eye
.
getLevelSizeByIndex
(
index
);
int
sum
=
getLineSumByIndex
(
index
);
//随机数生成方向
Random
random
=
new
Random
();
E
e
;
ArrayList
<
E
>
list
=
new
ArrayList
<>();
int
direct
=
getFirstDirect
(
random
,
index
);
for
(
int
i
=
0
;
i
<
sum
;
i
++)
{
if
(
i
>
0
)
{
direct
=
getRandomDirect
(
list
,
direct
,
sum
);
}
e
=
new
E
(
i
,
direct
,
level
);
list
.
add
(
e
);
}
return
list
;
}
/**
* 获取第一个E;
*
* @param random
* @param index
* @return
*/
private
int
getFirstDirect
(
Random
random
,
int
index
)
{
int
direct
=
random
.
nextInt
(
4
);
if
(
index
>
0
)
{
if
(
mList
.
get
(
index
-
1
).
get
(
0
).
getDirect
()
==
direct
)
direct
=
getFirstDirect
(
random
,
index
);
}
return
direct
;
}
/**
* 获取下一个E的方向的判断;
*
* @param list
* @param direct
* @param sum
* @return
*/
private
int
getRandomDirect
(
ArrayList
<
E
>
list
,
int
direct
,
int
sum
)
{
int
lastDirect
=
direct
;
direct
=
randomDirect
(
direct
);
int
num
=
sum
/
2
;
if
(
sum
%
2
==
0
&&
sum
/
2
>
1
)
{
num
=
sum
/
2
-
1
;
}
if
(
getEDirectorNum
(
list
,
direct
)
>=
num
)
{
direct
=
getRandomDirect
(
list
,
lastDirect
,
sum
);
}
return
direct
;
}
/**
* 获取该行出现的形同方向的E的个数;
*
* @param list
* @param direct
* @return
*/
private
int
getEDirectorNum
(
ArrayList
<
E
>
list
,
int
direct
)
{
int
num
=
0
;
if
(
list
==
null
||
list
.
size
()
==
0
)
return
num
;
for
(
E
e
:
list
)
{
if
(
e
.
getDirect
()
==
direct
)
num
++;
}
return
num
;
}
/**
* 相邻的两个不能是同一个方向
*
* @param lastDirect 上一次的方向
* @return 新的方向
*/
private
int
randomDirect
(
int
lastDirect
)
{
//随机数生成方向
Random
random
=
new
Random
();
int
newDirect
=
random
.
nextInt
(
4
);
//相邻的不能一样
while
(
lastDirect
==
newDirect
)
{
newDirect
=
random
.
nextInt
(
4
);
}
return
newDirect
;
}
/**
* 下一个测试
*/
private
void
next
(
boolean
isNextLine
)
{
if
(
isNextLine
)
{
mLevelIndex
++;
mLocation
=
0
;
eyeVision1
.
setText
(
""
+
Eye
.
getLevelByIndex
(
mLevelIndex
,
true
));
count1
.
setText
(
""
);
allow1
.
setText
(
""
);
right1
.
setText
(
""
);
error1
.
setText
(
""
);
}
else
{
mLocation
++;
}
mSelectE
=
mList
.
get
(
mLevelIndex
).
get
(
mLocation
);
drewE
(
mSelectE
);
}
/**
* 选择的方向
*
* @param direct
*/
private
void
userChoose
(
int
direct
)
{
LogUtil
.
e
(
"direct:"
+
direct
);
LogUtil
.
e
(
"mLevelIndex:"
+
mLevelIndex
);
//获取当前行答过的e
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
if
(
null
==
list
||
list
.
size
()
==
0
)
{
list
=
new
ArrayList
<>();
}
mSelectE
.
setUserChoose
(
direct
);
list
.
add
(
mSelectE
);
mCollect
.
put
(
mLevelIndex
,
list
);
judge
();
// int verifyErrorCount = 0;
// //获取每行有多少个e
// int lineSum = getLineSumByIndex(mLevelIndex);
// //获取每行答对几个e
// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
// LogUtil.e("leastAnswerCount:"+leastAnswerCount);
// //获取当前行答过的e
// List<E> list = mCollect.get(mLevelIndex);
// if (null == list || list.size() == 0) {
// list = new ArrayList<>();
// }
// mSelectE.setUserChoose(direct);
// list.add(mSelectE);
//
// int rightAnswerCount = 0;
// for (E e : list) {
// if (e.isCorrect()) {
// rightAnswerCount++;
// }
// }
// LogUtil.e("rightAnswerCount:"+rightAnswerCount);
// //当前行答错的数
// int errorCount = list.size() - rightAnswerCount;
// LogUtil.e("errorCount:"+errorCount);
// //判断是否满足答对的要求
// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
// LogUtil.e("isNextLine:"+isNextLine);
// mCollect.put(mLevelIndex, list);
//
// if(isNextLine){
// if(mLevelIndex == 13){
// showResult();
// return;
// }else {
// List<E> nextList = mCollect.get(mLevelIndex + 1);
// if(nextList != null && nextList.size() > 0){
// showResult();
// return;
// }
// }
// }
//
// //防止出现-1的现象;
// if (lineSum - leastAnswerCount > 0) {
// verifyErrorCount = lineSum - leastAnswerCount;
// } else {
// verifyErrorCount = 0;
// }
// //必须答对一半才往下走一行的
// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
// if (errorCount > verifyErrorCount) {
// //如果上一行数据不为空 结束测试
// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
// if(isSecondTest){
// mRightLine = leastAnswerCount;
// }else{
// mLeftLine = leastAnswerCount;
// }
// showResult();
// return;
// }else {
// backLastLine();
// return;
// }
// }
// next(isNextLine);
}
private
void
judge
()
{
int
verifyErrorCount
=
0
;
//获取每行有多少个e
int
lineSum
=
getLineSumByIndex
(
mLevelIndex
);
//获取每行答对几个e
int
leastAnswerCount
=
Eye
.
getLeastAnswerCount
(
mLevelIndex
);
//获取当前行答过的e
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
int
rightAnswerCount
=
0
;
for
(
E
e
:
list
)
{
if
(
e
.
isCorrect
())
{
rightAnswerCount
++;
}
}
LogUtil
.
e
(
"rightAnswerCount:"
+
rightAnswerCount
);
//当前行答错的数
int
errorCount
=
list
.
size
()
-
rightAnswerCount
;
LogUtil
.
e
(
"errorCount:"
+
errorCount
);
//判断是否满足答对的要求
boolean
isNextLine
=
rightAnswerCount
>=
leastAnswerCount
;
LogUtil
.
e
(
"isNextLine:"
+
isNextLine
);
mCollect
.
put
(
mLevelIndex
,
list
);
if
(
isNextLine
)
{
if
(
mLevelIndex
==
13
)
{
showResult
();
return
;
}
else
{
List
<
E
>
nextList
=
mCollect
.
get
(
mLevelIndex
+
1
);
if
(
nextList
!=
null
&&
nextList
.
size
()
>
0
)
{
showResult
();
return
;
}
}
}
//防止出现-1的现象;
if
(
lineSum
-
leastAnswerCount
>
0
)
{
verifyErrorCount
=
lineSum
-
leastAnswerCount
;
}
else
{
verifyErrorCount
=
0
;
}
count1
.
setText
(
"总共:"
+
lineSum
);
allow1
.
setText
(
"正确数:"
+
leastAnswerCount
);
right1
.
setText
(
"答对数:"
+
rightAnswerCount
);
error1
.
setText
(
"错误数:"
+
errorCount
);
//必须答对一半才往下走一行的
//如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
if
(
errorCount
>
verifyErrorCount
)
{
//如果上一行数据不为空 结束测试
if
(
mLevelIndex
==
0
||
(
mCollect
.
containsKey
(
mLevelIndex
-
1
)
&&
mCollect
.
get
(
mLevelIndex
-
1
)
!=
null
&&
mCollect
.
get
(
mLevelIndex
-
1
).
size
()
>
0
))
{
if
(
isSecondTest
)
{
mRightLine
=
leastAnswerCount
;
}
else
{
mLeftLine
=
leastAnswerCount
;
}
showResult
();
return
;
}
else
{
backLastLine
();
return
;
}
}
next
(
isNextLine
);
}
/**
* 答错
*/
private
void
userChooseError
()
{
int
direct
=
mSelectE
.
getDirect
()
+
1
;
//获取当前行答过的e
List
<
E
>
list
=
mCollect
.
get
(
mLevelIndex
);
if
(
null
==
list
||
list
.
size
()
==
0
)
{
list
=
new
ArrayList
<>();
}
mSelectE
.
setUserChoose
(
direct
);
list
.
add
(
mSelectE
);
mCollect
.
put
(
mLevelIndex
,
list
);
judge
();
// int verifyErrorCount = 0;
// int lineSum = getLineSumByIndex(mLevelIndex);
// int leastAnswerCount = Eye.getLeastAnswerCount(mLevelIndex);
// int rightAnswerCount = 0;
// int direct = mSelectE.getDirect()+1;
//
// //获取当前行答过的e
// List<E> list = mCollect.get(mLevelIndex);
// mSelectE.setUserChoose(direct);
// list.add(mSelectE);
//
// if (null == list || list.size() == 0) {
// list = new ArrayList<>();
// } else {
// for (E e : list) {
// if (e.isCorrect()) {
// rightAnswerCount++;
// }
// }
// }
// //当前行答错的数
// int errorCount = list.size() - rightAnswerCount;
//
// //判断是否满足答对的要求
// boolean isNextLine = rightAnswerCount >= leastAnswerCount;
//
// mCollect.put(mLevelIndex, list);
//
// if(isNextLine){
// if(mLevelIndex == 13){
// showResult();
// return;
// }else {
// List<E> nextList = mCollect.get(mLevelIndex + 1);
// if(nextList != null && nextList.size() > 0){
// showResult();
// return;
// }
// }
// }
//
// //防止出现-1的现象;
// if (lineSum - leastAnswerCount > 0) {
// verifyErrorCount = lineSum - leastAnswerCount;
// } else {
// verifyErrorCount = 0;
// }
// //必须答对一半才往下走一行的
// //如果错误次数超过一半 (默认位置时上一行没有数据时候)回退一行
// if (errorCount > verifyErrorCount) {
// //如果上一行数据不为空 结束测试
// if (mLevelIndex == 0 || (mCollect.containsKey(mLevelIndex - 1) &&
// mCollect.get(mLevelIndex - 1) != null && mCollect.get(mLevelIndex - 1).size() > 0)) {
// if (isSecondTest) {
// showResult();
// return;
// }
//
// mLeftEye = getResult();
// resetView(false);
// return;
// }else {
// backLastLine();
// return;
// }
// }
// next(isNextLine);
}
//返回到上一行
private
void
backLastLine
()
{
mLevelIndex
=
mLevelIndex
-
2
;
next
(
true
);
}
/**
* 单眼测试结束
*/
private
void
showResult
()
{
//如果不是手动提交
final
Double
eyeResult
=
getResult
();
if
(
isSecondTest
)
{
//右眼训练
mRightEye
=
eyeResult
;
showStudentTestDialog
();
}
else
{
//左眼训练
mLeftEye
=
eyeResult
;
resetView
(
false
);
return
;
}
}
private
void
showStudentTestDialog
()
{
int
selectId
=
PreferencesUtils
.
getInt
(
EyeConfig
.
EYE_SETTING_KEY
,
0
);
String
text
=
(
"测视结束左眼视力"
+
mLeftEye
+
"右眼视力"
+
mRightEye
).
replace
(
"."
,
"点"
);
if
(
selectId
==
1
)
{
text
=
(
"测视结束左眼视力"
+
Eye
.
transformSmall
(
mLeftEye
)
+
"右眼视力"
+
Eye
.
transformSmall
(
mRightEye
)).
replace
(
"."
,
"点"
);
}
speak
(
text
);
Intent
intent
=
new
Intent
(
this
,
AfterEyeTestActivity
.
class
);
intent
.
putExtra
(
"leftEye"
,
mLeftEye
);
intent
.
putExtra
(
"rightEye"
,
mRightEye
);
intent
.
putExtra
(
"leftLine"
,
mLeftLine
);
intent
.
putExtra
(
"rightLine"
,
mRightLine
);
startActivity
(
intent
);
finish
();
}
@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
(
"----点击的Key值----"
+
event
.
getKeyCode
());
switch
(
event
.
getKeyCode
())
{
case
KeyEvent
.
KEYCODE_BUTTON_X
:
userChoose
(
TOP
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_B
:
userChoose
(
BOTTOM
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_A
:
userChoose
(
LEFT
);
return
true
;
case
KeyEvent
.
KEYCODE_BUTTON_Y
:
userChoose
(
RIGHT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_UP
:
userChoose
(
TOP
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_DOWN
:
userChoose
(
BOTTOM
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_LEFT
:
userChoose
(
LEFT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_RIGHT
:
userChoose
(
RIGHT
);
return
true
;
case
KeyEvent
.
KEYCODE_DPAD_CENTER
:
//遥控中间键
//用户点击返回键:
userChooseError
();
return
true
;
}
return
true
;
}
return
super
.
dispatchKeyEvent
(
event
);
}
private
double
getResult
()
{
if
(
null
==
mCollect
||
mCollect
.
size
()
==
0
)
{
if
(
test_dis
==
0
)
{
return
4.0
;
}
else
{
return
3.8
;
}
}
int
result
=
0
;
for
(
LinkedHashMap
.
Entry
<
Integer
,
List
<
E
>>
entry
:
mCollect
.
entrySet
())
{
result
=
entry
.
getKey
();
}
final
String
levelByIndex
=
""
+
Eye
.
getLevelByIndex
(
result
,
test_dis
==
0
);
return
Double
.
parseDouble
(
levelByIndex
);
}
@Override
public
boolean
onKeyDown
(
int
keyCode
,
KeyEvent
event
)
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
finish
();
return
true
;
}
return
super
.
onKeyDown
(
keyCode
,
event
);
}
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
// TODO: add setContentView(...) invocation
ButterKnife
.
bind
(
this
);
}
@OnClick
({
R
.
id
.
next_left
})
public
void
onClick
(
View
view
)
{
switch
(
view
.
getId
())
{
case
R
.
id
.
next_left
:
break
;
}
}
}
app/src/main/res/layout/activity_eye_setting.xml
View file @
7614348f
...
@@ -447,6 +447,8 @@
...
@@ -447,6 +447,8 @@
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
<RelativeLayout
android:visibility=
"invisible"
android:id=
"@+id/about_lay_show"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#e0000000"
>
android:background=
"#e0000000"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment