From b10199a9b59621af6cd406d0dbb761c717161f44 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期二, 31 三月 2020 15:40:37 +0800 Subject: [PATCH] 修改考试模式结束考试仍然可以展示错误项目,直至被销毁或者重新开始考试 --- lib/src/main/java/com/anyun/exam/lib/SvrManager.java | 6 ++ app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java | 28 +++++++++++-- app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 80 ++++++++++++++++++++++++++-------------- 3 files changed, 80 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index d25415e..551316e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -370,11 +370,11 @@ }else{ MyLog.i(TAG,"璺�冨け璐ラ」鐩暟鎹〃琚竻绌烘洿鏂癠I"); item_id = 0; - mArrayList.clear(); - item_conents.clear(); - Collections.sort(mArrayList); - mScoreAdapter.addDatas(mArrayList); - mHandler.obtainMessage(ADD_DATA).sendToTarget(); +// mArrayList.clear(); +// item_conents.clear(); +// Collections.sort(mArrayList); +// mScoreAdapter.addDatas(mArrayList); +// mHandler.obtainMessage(ADD_DATA).sendToTarget(); } } @@ -386,7 +386,7 @@ @Override public void onChanged(List<FailedProj_select> failedProj_selects) { if (ExamPlatformData.getInstance().getExamType()<=ExamPlatformData.EXAM_TYPE_ChangKAO){ - MyLog.i("鐜板湪鏄満鑰冪姸鎬侊紝鐩戣璺�冩暟鎹け璐ラ」鐩�"); + MyLog.i("鐜板湪鏄満鑰冪姸鎬侊紝鐩戣鏁版嵁澶辫触椤圭洰"); if (failedProj_selects != null && failedProj_selects.size()>0){ item_id = 0; @@ -408,19 +408,19 @@ MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore); if (currTotalScore < Constant.PASSING_SCORE){ MyLog.i("鍦鸿�冧綆浜�80锛屼笉鍚堟牸"+currTotalScore); -// ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�"); -// stopExam(); + ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�"); + stopExam(); } MyLog.i("鍦鸿�冪洃娴嬪埌鏈夊け璐ラ」鐩姞鍏ワ紝閫氱煡UI鏇存柊棰滆壊"); mHandler.obtainMessage(ADD_DATA).sendToTarget(); }else{ MyLog.i(TAG,"鍦鸿�冨け璐ラ」鐩暟鎹〃琚竻绌烘洿鏂癠I"); item_id = 0; - mArrayList.clear(); - item_conents.clear(); - Collections.sort(mArrayList); - mScoreAdapter.addDatas(mArrayList); - mHandler.obtainMessage(ADD_DATA).sendToTarget(); +// mArrayList.clear(); +// item_conents.clear(); +// Collections.sort(mArrayList); +// mScoreAdapter.addDatas(mArrayList); +// mHandler.obtainMessage(ADD_DATA).sendToTarget(); } } @@ -456,9 +456,11 @@ if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){ btn_start_exam.setEnabled(false); tv_stop.setEnabled(true); + iv_head.getDrawable().setLevel(1); }else{ btn_start_exam.setEnabled(true); tv_stop.setEnabled(false); + iv_head.getDrawable().setLevel(0); } exam_type = examStatus.get(0).getStartExam(); } @@ -591,15 +593,10 @@ switch (v.getId()) { case R.id.btn_start: + clearArrayListResetTotalScore(); + //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯 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)); - jkMessage0202.ID = ExamPlatformData.getInstance().getID(); - - jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); if (myDialogFragment == null){ myDialogFragment = new MyDialogFragment(); @@ -610,13 +607,20 @@ public void changKao() { exam_type = 2; ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.EXAMING_MODE); - iv_head.getDrawable().setLevel(1); ExamPlatformData.getInstance().setExamType(exam_type); examStatusViewModel.updateStartExam(exam_type); sendExamJson(1,exam_type); ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯"); - jkMessage0202.curr_exam = 0; + Date date = new Date(); + wokViewModel.updateBeginTime(date.getTime()); + jkMessage0202.timeBCD = date; + ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10)); + jkMessage0202.ID = ExamPlatformData.getInstance().getID(); + + jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); + + jkMessage0202.curr_exam = 0; MessageProcessor.getInstance().sendMessage(jkMessage0202); } @@ -627,10 +631,18 @@ ExamPlatformData.getInstance().setExamType(exam_type); examStatusViewModel.updateStartExam(exam_type); sendExamJson(1,exam_type); - jkMessage0202.curr_exam = 1; - iv_head.getDrawable().setLevel(1); - MessageProcessor.getInstance().sendMessage(jkMessage0202); ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯"); + + Date date = new Date(); + wokViewModel.updateBeginTime(date.getTime()); + jkMessage0202.timeBCD = date; + ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10)); + jkMessage0202.ID = ExamPlatformData.getInstance().getID(); + + jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); + + jkMessage0202.curr_exam = 1; + MessageProcessor.getInstance().sendMessage(jkMessage0202); } }); @@ -707,18 +719,30 @@ WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); item_id = 0; - currTotalScore = 100; + failedProjViewModel.deleteAll(); tv_total_score.setText(String.valueOf(currTotalScore)); - iv_head.getDrawable().setLevel(0); ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯"); - examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM); + sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0 } + /** + * 鍥犱负鑰冭瘯缁撴潫鐬棿娓呮帀鏁版嵁搴擄紝鎵�浠ヤ笉浼氭樉绀哄け璐ラ」鐩拰鍒嗘暟锛屽姞涓嬮潰杩欎釜鏂规硶鏄湪寮�濮嬭�冭瘯鐨勬椂鍊檙eset鏁版嵁锛� + * 杩欐牱灏卞彲浠ヤ繚璇佽�冭瘯缁撴潫鐨勬椂鍊欙紝杩樿兘鏄剧ず閿欒椤瑰拰鍒嗘暟(鍙槸淇濆瓨鍦ㄤ簡鍐呭瓨涓紝涓嶄細褰卞搷璁粌妯″紡鐨勪娇鐢級 + */ + private void clearArrayListResetTotalScore(){ + item_id = 0; + mArrayList.clear(); + item_conents.clear(); + Collections.sort(mArrayList); + mScoreAdapter.addDatas(mArrayList); + mHandler.obtainMessage(ADD_DATA).sendToTarget(); + currTotalScore = 100; + } private ICEventListener icEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java index 8acf0f9..6e7ace1 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java @@ -8,6 +8,7 @@ import android.graphics.Paint; import android.graphics.Path; import android.os.Bundle; +import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.SurfaceHolder; @@ -24,6 +25,7 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import java.io.IOException; import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.ArrayList; @@ -35,6 +37,7 @@ import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.R; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.RealTimeCarPos; import safeluck.drive.evaluation.bean.RoadExamMap; import safeluck.drive.evaluation.cEventCenter.CEventCenter; @@ -47,7 +50,7 @@ private static final int ALL_MAP = 100; private boolean isDrawing = false; - private StringBuffer buffer;//瀛樻斁鍦板浘鐨刡uffer + private StringBuffer buffer = null;//瀛樻斁鍦板浘鐨刡uffer private ICEventListener rtcmicEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, final Object obj) { @@ -470,6 +473,7 @@ } }; boolean flag = true; + String newmap = null; class CalRunnable implements Runnable{ @@ -544,15 +548,29 @@ tire.add(tire4.get(0)); - if (buffer == null) { - buffer = FileUtil.readAssetTxtFile(_mActivity, Constant.ROAD_MAP); - Log.i(TAG, "ditu=" + buffer.toString().trim()); - } + final String roadMapPath = ExamPlatformData.getInstance().getRoadMapPath(); + if (!TextUtils.isEmpty(roadMapPath)){ + byte [] datas= FileUtil.readFile(roadMapPath); + if (datas != null){ + newmap= new String(datas); + }else{ + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�",roadMapPath)); + } + + }else{ + + buffer = FileUtil.readAssetTxtFile(_mActivity, Constant.ROAD_MAP); + Log.i(TAG, "ditu=" + buffer.toString().trim()); + } + + Type type = new TypeToken<RoadExamMap>() { }.getType(); if (buffer != null) { examMaps = gson.fromJson(buffer.toString().trim(), type); + }else{ + examMaps = gson.fromJson(newmap.trim(),type); } if (examMaps != null) { diff --git a/lib/src/main/java/com/anyun/exam/lib/SvrManager.java b/lib/src/main/java/com/anyun/exam/lib/SvrManager.java index c21b32f..f72ef4b 100644 --- a/lib/src/main/java/com/anyun/exam/lib/SvrManager.java +++ b/lib/src/main/java/com/anyun/exam/lib/SvrManager.java @@ -22,6 +22,7 @@ private static final SvrManager ourInstance = new SvrManager(); private static final String TAG = "SvrManager"; private MyServiceConn conn; + private Intent intent; private IAYExamListener mCallback; @@ -109,7 +110,7 @@ } public void bindRemoteService(Context mContext){ - Intent intent = new Intent(mContext,RemoteService.class); + intent = new Intent(mContext,RemoteService.class); conn = new MyServiceConn(); mContext.bindService(intent,conn, Context.BIND_AUTO_CREATE); } @@ -124,6 +125,9 @@ } } mContext.unbindService(conn); + if (intent!=null){ + mContext.stopService(intent); + } } /** -- Gitblit v1.8.0