| | |
| | | package safeluck.drive.evaluation.fragment; |
| | | |
| | | import android.content.Context; |
| | | import android.graphics.Color; |
| | | import android.graphics.drawable.Drawable; |
| | | import android.os.Bundle; |
| | | |
| | | import android.os.Handler; |
| | | import android.os.Message; |
| | | import android.text.SpannableString; |
| | | import android.text.Spanned; |
| | | import android.text.TextUtils; |
| | | import android.text.style.AbsoluteSizeSpan; |
| | | import android.text.style.ForegroundColorSpan; |
| | | import android.util.Log; |
| | | import android.view.LayoutInflater; |
| | | import android.view.MotionEvent; |
| | |
| | | private ListView mListView; |
| | | private Button btn_start_exam; |
| | | private TextView tv_stop;//呼叫请求(结束考试) |
| | | private Gson gson = new Gson(); |
| | | private ScoreAdapter mScoreAdapter; |
| | | private ArrowView av_zhijiao, av_curve, av_park, av_podao; |
| | | private HouseView houseView; |
| | | private Button av_zhijiao, av_curve, av_park, av_podao; |
| | | private Button houseView; |
| | | private List<ExamStatus> examStatusList = new ArrayList<>(); |
| | | private List<String> item_conents = new ArrayList<>();//坡道定点停车和起步 |
| | | private int changKaoCount=0; |
| | |
| | | public boolean handleMessage(Message msg) { |
| | | if (msg.what == ADD_DATA){ |
| | | MyLog.i("handler add_data totalScore="+currTotalScore); |
| | | tv_total_score.setText(getResources().getString(R.string.total_score,currTotalScore)); |
| | | houseView.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//倒车入库 type =1 |
| | | av_podao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP)); |
| | | av_park.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK)); |
| | | av_curve.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE)); |
| | | av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE)); |
| | | setTotalScoreText(); |
| | | houseView.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//倒车入库 type =1 |
| | | av_podao.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP)); |
| | | av_park.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK)); |
| | | av_curve.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE)); |
| | | av_zhijiao.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE)); |
| | | |
| | | for (int i = 0; i < btn_ids.size(); i++) { |
| | | int viewId = getResources().getIdentifier(String.valueOf(btn_ids.get(i)),"id",_mActivity.getPackageName()); |
| | |
| | | } |
| | | }); |
| | | |
| | | private int aaa(int type) { |
| | | private Drawable aaa(int type) { |
| | | if (examStatusList!=null &&examStatusList.size()>0){ |
| | | for (ExamStatus examStatus: |
| | | examStatusList) { |
| | | examStatusList) { |
| | | if (type == examStatus.getMap_item()){ |
| | | if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.BEGIN_ITEM){ |
| | | //进入考场 |
| | | if (examStatusList.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){ |
| | | //结束考试了 |
| | | MyLog.i("进入考场结束考试,startexam="+examStatus.getStartExam()); |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | MyLog.i("进入考场,type="+type); |
| | | return getResources().getColor(R.color.pink); |
| | | return getResources().getDrawable(R.drawable.ic_btn_examing); |
| | | } |
| | | |
| | | |
| | | }else if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.FINISH_ITEM){ |
| | | |
| | | if (examStatusList.get(0).getStartExam()==Constant.NONE_BEEN_START_EXAM){ |
| | | return getResources().getColor(R.color.examing); |
| | | return getResources().getDrawable(R.drawable.ic_btn_daikao); |
| | | } |
| | | |
| | | switch (type) { |
| | |
| | | if (item_conents.contains("倒车入库")) { |
| | | MyLog.i("该项考试失败,type="+type); |
| | | |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | if (examStatus.getResult() ==1){ |
| | | MyLog.i("已经播放过倒车入库合格"); |
| | |
| | | examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id()); |
| | | } |
| | | |
| | | return getResources().getColor(R.color.train_btn_return); |
| | | return getResources().getDrawable(R.drawable.ic_btn_succ); |
| | | } |
| | | case 2: |
| | | if (item_conents.contains("坡道定点停车和起步")) { |
| | | MyLog.i("该项考试失败,type="+type); |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | if (examStatus.getResult() ==1){ |
| | | MyLog.i("已经播放过坡道定点停车和起步合格合格"); |
| | |
| | | examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id()); |
| | | } |
| | | |
| | | return getResources().getColor(R.color.train_btn_return); |
| | | return getResources().getDrawable(R.drawable.ic_btn_succ); |
| | | } |
| | | case 3: |
| | | if (item_conents.contains("侧方停车")) { |
| | | MyLog.i("该项考试失败,type="+type); |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | if (examStatus.getResult() ==1){ |
| | | MyLog.i("已经播放过侧方停车合格"); |
| | |
| | | ExamPlatformData.getInstance().getTTS().speak("侧方停车合格"); |
| | | examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id()); |
| | | } |
| | | return getResources().getColor(R.color.train_btn_return); |
| | | return getResources().getDrawable(R.drawable.ic_btn_succ); |
| | | } |
| | | case 4: |
| | | if (item_conents.contains("曲线行驶")) { |
| | | MyLog.i("该项考试失败,type="+type); |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | if (examStatus.getResult() ==1){ |
| | | MyLog.i("已经播放过曲线行驶合格"); |
| | |
| | | ExamPlatformData.getInstance().getTTS().speak("曲线行驶合格"); |
| | | examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id()); |
| | | } |
| | | return getResources().getColor(R.color.train_btn_return); |
| | | return getResources().getDrawable(R.drawable.ic_btn_succ); |
| | | } |
| | | case 5: |
| | | if (item_conents.contains("直角转弯")) { |
| | | MyLog.i("该项考试失败,type="+type); |
| | | return getResources().getColor(R.color.colorAccent); |
| | | return getResources().getDrawable(R.drawable.ic_btn_fail); |
| | | }else{ |
| | | if (examStatus.getResult() ==1){ |
| | | MyLog.i("已经播放过直角转弯合格"); |
| | |
| | | examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id()); |
| | | } |
| | | |
| | | return getResources().getColor(R.color.train_btn_return); |
| | | return getResources().getDrawable(R.drawable.ic_btn_succ); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | }else{ |
| | | return getResources().getColor(R.color.examing); |
| | | return getResources().getDrawable(R.drawable.ic_btn_daikao); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return getResources().getColor(R.color.examing); |
| | | return getResources().getDrawable(R.drawable.ic_btn_daikao); |
| | | } |
| | | |
| | | /** |
| | | * 路考项目 每个项目的颜色变化 |
| | | * @param type |
| | |
| | | examStatusList.addAll(examStatus); |
| | | mHandler.obtainMessage(ADD_DATA).sendToTarget(); |
| | | if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){ |
| | | btn_start_exam.setEnabled(false); |
| | | tv_stop.setEnabled(true); |
| | | btn_start_exam.setText("结束考试"); |
| | | iv_head.getDrawable().setLevel(1); |
| | | }else{ |
| | | btn_start_exam.setEnabled(true); |
| | | tv_stop.setEnabled(false); |
| | | btn_start_exam.setText("开始考试"); |
| | | iv_head.getDrawable().setLevel(0); |
| | | } |
| | | exam_type = examStatus.get(0).getStartExam(); |
| | |
| | | btn_ids.add(R.id.btn_10); |
| | | |
| | | view.findViewById(R.id.iv_head).setOnClickListener(this); |
| | | ((TextView)view.findViewById(R.id.tv_score_tip)).setText("当前考试得分"); |
| | | av_curve = view.findViewById(R.id.av3); |
| | | av_park = view.findViewById(R.id.av2); |
| | | av_podao = view.findViewById(R.id.av1); |
| | |
| | | public void onClick(View v) { |
| | | switch (v.getId()) { |
| | | case R.id.btn_start: |
| | | |
| | | clearArrayListResetTotalScore(); |
| | | if (btn_start_exam.getText().toString().equalsIgnoreCase("开始考试")){ |
| | | clearArrayListResetTotalScore(); |
| | | |
| | | |
| | | if (myDialogFragment == null){ |
| | | myDialogFragment = new MyDialogFragment(); |
| | | if (myDialogFragment == null){ |
| | | myDialogFragment = new MyDialogFragment(); |
| | | } |
| | | myDialogFragment.show(getFragmentManager(),"dialog"); |
| | | myDialogFragment.setCallback(new MyDialogFragment.Callback() { |
| | | @Override |
| | | public void changKao() { |
| | | sendJK0202(2); |
| | | } |
| | | |
| | | @Override |
| | | public void luKao() { |
| | | sendJK0202(3); |
| | | |
| | | } |
| | | }); |
| | | |
| | | }else{ |
| | | stopExam(); |
| | | } |
| | | myDialogFragment.show(getFragmentManager(),"dialog"); |
| | | myDialogFragment.setCallback(new MyDialogFragment.Callback() { |
| | | @Override |
| | | public void changKao() { |
| | | sendJK0202(2); |
| | | } |
| | | |
| | | @Override |
| | | public void luKao() { |
| | | sendJK0202(3); |
| | | |
| | | } |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | break; |
| | | case R.id.tv_stop: |
| | | Toast.makeText(_mActivity, "结束考试", Toast.LENGTH_SHORT).show(); |
| | | stopExam(); |
| | | |
| | | break; |
| | | |
| | | case R.id.view_map: |
| | | if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){ |
| | | RoadDriveMapFragmentaa mapFragment = findFragment(RoadDriveMapFragmentaa.class); |
| | |
| | | item_id = 0; |
| | | |
| | | failedProjViewModel.deleteAll(); |
| | | tv_total_score.setText(String.valueOf(currTotalScore)); |
| | | setTotalScoreText(); |
| | | |
| | | |
| | | ExamPlatformData.getInstance().getTTS().speak("结束考试"); |
| | |
| | | CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_SPEED_TOPIC); |
| | | } |
| | | |
| | | private void setTotalScoreText() { |
| | | String totalstr=String.format(getString(R.string.total_score),currTotalScore); |
| | | SpannableString msp = new SpannableString(totalstr); |
| | | msp.setSpan(new ForegroundColorSpan(Color.parseColor("#A1A1A3")),totalstr.length()-1,totalstr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); |
| | | msp.setSpan(new AbsoluteSizeSpan(13),totalstr.length()-1,totalstr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); |
| | | |
| | | |
| | | tv_total_score.setText(msp); |
| | | } |
| | | } |