| | |
| | | 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.Html; |
| | | 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; |
| | |
| | | import safeluck.drive.evaluation.im.MessageProcessor; |
| | | import safeluck.drive.evaluation.platformMessage.JKMessage0201; |
| | | import safeluck.drive.evaluation.platformMessage.JKMessage0202; |
| | | import safeluck.drive.evaluation.util.DimenUtil; |
| | | import safeluck.drive.evaluation.util.Utils; |
| | | import safeluck.drive.evaluation.viewmodels.TimeViewModel; |
| | | |
| | |
| | | private int exam_type = 2;//2 场地;3 道路,模拟夜考;4 道路,实际夜考; |
| | | private ListView mListView; |
| | | private Button btn_start_exam; |
| | | private Button btn_return; |
| | | 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<>();//坡道定点停车和起步 |
| | | |
| | |
| | | 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) { |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | examStatusList.addAll(examStatus); |
| | | mHandler.obtainMessage(ADD_DATA).sendToTarget(); |
| | | if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){ |
| | | btn_start_exam.setEnabled(false); |
| | | // btn_start_exam.setEnabled(false); |
| | | tv_stop.setEnabled(true); |
| | | iv_head.getDrawable().setLevel(1); |
| | | }else{ |
| | | btn_start_exam.setEnabled(true); |
| | | // btn_start_exam.setEnabled(true); |
| | | tv_stop.setEnabled(false); |
| | | iv_head.getDrawable().setLevel(0); |
| | | } |
| | |
| | | |
| | | tv_speed.setText(getResources().getString(R.string.speed,speed)); |
| | | |
| | | view.findViewById(R.id.btn_return).setOnClickListener(this); |
| | | btn_return = view.findViewById(R.id.btn_return); |
| | | btn_return.setOnClickListener(this); |
| | | mListView = view.findViewById(R.id.lv); |
| | | mListView.setFocusable(false); |
| | | mListView.setOnTouchListener(new View.OnTouchListener() { |
| | |
| | | view.findViewById(R.id.view_map).setOnClickListener(this); |
| | | mScoreAdapter = new ScoreAdapter(_mActivity); |
| | | mListView.setAdapter(mScoreAdapter); |
| | | btn_start_exam = view.findViewById(R.id.btn_start); |
| | | btn_start_exam.setText("开始训练"); |
| | | btn_start_exam.setOnClickListener(this); |
| | | // btn_start_exam = view.findViewById(R.id.btn_start); |
| | | // btn_start_exam.setText("开始训练"); |
| | | // btn_start_exam.setOnClickListener(this); |
| | | tv_stop = view.findViewById(R.id.tv_stop); |
| | | tv_stop.setText("结束训练"); |
| | | tv_stop.setOnClickListener(this); |
| | | mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item, null)); |
| | | |
| | | } |
| | | |
| | |
| | | @Override |
| | | public void onClick(View v) { |
| | | switch (v.getId()) { |
| | | case R.id.btn_start: |
| | | |
| | | //TODO 发送JKMessage0202 给平台,开始考试 |
| | | final JKMessage0202 jkMessage0202 = new JKMessage0202(); |
| | | Date date = new Date(); |
| | | wokViewModel.updateBeginTime(date.getTime()); |
| | | jkMessage0202.timeBCD = date; |
| | | ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10)); |
| | | 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); |
| | | |
| | | |
| | | |
| | | } |
| | | }); |
| | | // case R.id.btn_start: |
| | | // |
| | | // //TODO 发送JKMessage0202 给平台,开始考试 |
| | | // final JKMessage0202 jkMessage0202 = new JKMessage0202(); |
| | | // Date date = new Date(); |
| | | // wokViewModel.updateBeginTime(date.getTime()); |
| | | // jkMessage0202.timeBCD = date; |
| | | // ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10)); |
| | | // 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); |
| | | // |
| | | // |
| | | // |
| | | // } |
| | | // }); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | break; |
| | | // break; |
| | | case R.id.tv_stop: |
| | | Toast.makeText(_mActivity, "结束考试", Toast.LENGTH_SHORT).show(); |
| | | stopExam(); |
| | |
| | | } |
| | | break; |
| | | case R.id.btn_return: |
| | | _mActivity.onBackPressed(); |
| | | // _mActivity.onBackPressed(); |
| | | Log.i(TAG,"screenWidth="+ DimenUtil.getScreenWidth(_mActivity)); |
| | | Log.i(TAG,"screenHeight="+ DimenUtil.getScreenHeight(_mActivity)); |
| | | Log.i(TAG,"18px font ="+ DimenUtil.px2sp(_mActivity,18)); |
| | | Log.i(TAG,"48px dp ="+ DimenUtil.px2dp(_mActivity,48)); |
| | | break; |
| | | case R.id.iv_head: |
| | | MyLog.i(TAG,"签到,获取身份证物理卡号"); |
| | |
| | | item_id = 0; |
| | | currTotalScore = 100; |
| | | failedProjViewModel.deleteAll(); |
| | | |
| | | tv_total_score.setText(String.valueOf(currTotalScore)); |
| | | setTotalScoreText(); |
| | | |
| | | |
| | | ExamPlatformData.getInstance().getTTS().speak("结束训练"); |
| | |
| | | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | |
| | | private ICEventListener icEventListener = new ICEventListener() { |
| | | @Override |
| | | public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { |