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