From c125fc0a5ee47ef32db587899d972491231167ee Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期四, 12 三月 2020 17:40:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java |  163 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 143 insertions(+), 20 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 edbca12..21612d1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -23,6 +23,8 @@
 import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModelProviders;
 import androidx.work.OneTimeWorkRequest;
+import androidx.work.PeriodicWorkRequest;
+import androidx.work.WorkInfo;
 import androidx.work.WorkManager;
 
 import com.anyun.exam.lib.AYSdk;
@@ -37,6 +39,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Random;
+import java.util.concurrent.TimeUnit;
 
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.Constant;
@@ -65,6 +68,9 @@
 import safeluck.drive.evaluation.platformMessage.JKMessage0203;
 import safeluck.drive.evaluation.platformMessage.JKMessage0204;
 import safeluck.drive.evaluation.util.Utils;
+import safeluck.drive.evaluation.worker.TimeWorker;
+
+import static androidx.work.PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS;
 
 /**
  * 鑱旂綉璁粌UI
@@ -91,7 +97,7 @@
     private int item_id;//鎵e垎鍒嗘暟鎬诲拰
     private ExamStatusViewModel examStatusViewModel;
     private static final int ADD_DATA = 1;
-    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform;
+    private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform,tv_network_time;
     private double speed=0.0;
     private ImageView iv_rtk_status,iv_head;
 
@@ -112,12 +118,13 @@
         @Override
         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(whatPaintColor(examStatusList.get(0)));
-                av_podao.setColor(whatPaintColor(examStatusList.get(1)));
-                av_park.setColor(whatPaintColor(examStatusList.get(2)));
-                av_curve.setColor(whatPaintColor(examStatusList.get(3)));
-                av_zhijiao.setColor(whatPaintColor(examStatusList.get(4)));
+                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));
             }
             if (msg.what == SPEED_DATA){
                 tv_speed.setText(getResources().getString(R.string.speed,speed));
@@ -130,7 +137,12 @@
                     if (result == 0) {
                         JKMessage0201 jkMessage0201 = new JKMessage0201();
                         jkMessage0201.phone = ExamPlatformData.getInstance().getPhone();
-                        jkMessage0201.currentExam = 0;
+                        if (exam_type==Constant.Chang_di){
+                            jkMessage0201.currentExam = 0;
+                        }else{
+                            jkMessage0201.currentExam = 1;
+                        }
+
                         jkMessage0201.id = icStr;
                         MessageProcessor.getInstance().sendMessage(jkMessage0201);
                     }
@@ -143,6 +155,87 @@
             return false;
         }
     });
+
+    private int aaa(int type) {
+        if (examStatusList!=null &&examStatusList.size()>0){
+            for (ExamStatus examStatus:
+                 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("杩涘叆鑰冨満缁撴潫鑰冭瘯锛宻tartexam="+examStatus.getStartExam());
+                            return getResources().getColor(R.color.colorAccent);
+                        }else{
+                            MyLog.i("杩涘叆鑰冨満锛宼ype="+type);
+                            return getResources().getColor(R.color.pink);
+                        }
+
+
+                    }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);
+                        }
+
+                        switch (type) {
+                            case 1://鍊掑簱
+                                if (item_conents.contains("鍊掕溅鍏ュ簱")) {
+                                    MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+
+                                    return getResources().getColor(R.color.colorAccent);
+                                }else{
+                                    ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸");
+                                    return getResources().getColor(R.color.train_btn_return);
+                                }
+                            case 2:
+                                if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) {
+                                    MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+                                    return getResources().getColor(R.color.colorAccent);
+                                }else{
+                                    ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�");
+                                    return getResources().getColor(R.color.train_btn_return);
+                                }
+                            case 3:
+                                if (item_conents.contains("渚ф柟鍋滆溅")) {
+                                    MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+                                    return getResources().getColor(R.color.colorAccent);
+                                }else{
+                                    ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
+                                    return getResources().getColor(R.color.train_btn_return);
+                                }
+                            case 4:
+                                if (item_conents.contains("鏇茬嚎琛岄┒")) {
+                                    MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+                                    return getResources().getColor(R.color.colorAccent);
+                                }else{
+                                    ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
+                                    examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+                                    return getResources().getColor(R.color.train_btn_return);
+                                }
+                            case 5:
+                                if (item_conents.contains("鐩磋杞集")) {
+                                    MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
+                                    return getResources().getColor(R.color.colorAccent);
+                                }else{
+                                    MyLog.i("璇ラ」鑰冭瘯鎴愬姛锛宼ype="+type);
+                                    ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸");
+                                    return getResources().getColor(R.color.train_btn_return);
+                                }
+
+
+
+                        }
+
+                    }else{
+                        return getResources().getColor(R.color.examing);
+                    }
+                }
+            }
+        }
+        return getResources().getColor(R.color.examing);
+    }
 
     @Nullable
     @Override
@@ -157,6 +250,7 @@
                 if (failedProj_selects != null && failedProj_selects.size()>0){
                    
                     item_id = 0;
+                    currTotalScore = 100;
                     mArrayList.clear();
                     item_conents.clear();
                     for (FailedProj_select f :
@@ -171,14 +265,15 @@
                     }
                     //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊
                     sendJKMessage0203(failedProj_selects);
+                    MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore);
                     currTotalScore -=item_id;
                     MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore);
                     if (currTotalScore < Constant.PASSING_SCORE){
-                        MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸"+currTotalScore);
+                        MyLog.i("浣庝簬80锛屼笉鍚堟牸"+currTotalScore);
                         ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�");
-                        stopExam();
+//                        stopExam();
                     }
-                    MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
+                    MyLog.i("鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊");
                     mHandler.obtainMessage(ADD_DATA).sendToTarget();
                 }else{
                     MyLog.i(TAG,"澶辫触椤圭洰鏁版嵁琛ㄨ娓呯┖鏇存柊UI");
@@ -267,7 +362,12 @@
                         failedProj_selects.get(i).getScore_deducting()+"鍒�"));
                 MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
                 sns.add(failedProj_selects.get(i).getSn());
-                jkMessage0203.timeBCD = failedProj_selects.get(i).getUtc();
+                String utc =   failedProj_selects.get(i).getUtc();
+                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
+                    utc =utc.substring(0,12);
+                }
+                jkMessage0203.timeBCD = utc ;
+
                 jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
                 jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
                 jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
@@ -308,7 +408,7 @@
         switch (status) {
             case 0://鑰冭瘯瀹屾垚
                 switch (map_id) {
-                    case 863://鍊掑簱
+                    case 1://鍊掑簱
                         if (item_conents.contains("鍊掕溅鍏ュ簱")) {
                             return getResources().getColor(R.color.colorAccent);
                         }else{
@@ -366,6 +466,25 @@
         tv_sat_num = view.findViewById(R.id.tv_sat_num);
         tv_speed = view.findViewById(R.id.tv_speed);
         tv_total_score = view.findViewById(R.id.tv_total_score);
+        tv_network_time = view.findViewById(R.id.network_time);
+
+
+        PeriodicWorkRequest periodicWorkRequest = new PeriodicWorkRequest.Builder(TimeWorker.class,MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MICROSECONDS).build();
+        WorkManager.getInstance(getContext().getApplicationContext()).enqueue(periodicWorkRequest);
+        WorkManager.getInstance(getContext().getApplicationContext()).getWorkInfoByIdLiveData(periodicWorkRequest.getId())
+                .observe(this, new Observer<WorkInfo>() {
+                    @Override
+                    public void onChanged(WorkInfo workInfo) {
+                        if (workInfo!= null&&workInfo.getState().isFinished()){
+                            String time = workInfo.getOutputData().getString(Constant.TIME_MINUTE);
+                            MyLog.i("Time="+time);
+                            tv_network_time.setText(time);
+                        }
+
+                    }
+                });
+        tv_network_time.setText(Utils.getHHmm());
+
         tv_speed.setText(getResources().getString(R.string.speed,speed));
 
         view.findViewById(R.id.btn_return).setOnClickListener(this);
@@ -406,6 +525,10 @@
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.btn_start:
+                OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
+                WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+                item_id = 0;
+                currTotalScore = 100;
                 //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
                 final JKMessage0202 jkMessage0202 = new JKMessage0202();
                 jkMessage0202.phone = ExamPlatformData.getInstance().getPhone();
@@ -423,6 +546,7 @@
                     @Override
                     public void changKao() {
                         exam_type = 2;
+                        examStatusViewModel.updateStartExam(exam_type);
                         sendExamJson(1,exam_type);
                         ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
                         jkMessage0202.curr_exam = 0;
@@ -433,6 +557,7 @@
                     @Override
                     public void luKao() {
                         exam_type = 3;
+                        examStatusViewModel.updateStartExam(exam_type);
                         sendExamJson(1,exam_type);
                         if (simulateNightBean == null){
                             simulateNightBean = new SimulateNightBean();
@@ -498,7 +623,7 @@
 
     private void sendExamJson(int i,int type) {
         try {
-            examStatusViewModel.updateStartExam(type);
+
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("exam", i);
             jsonObject.put("type", type);
@@ -512,16 +637,14 @@
 
     private void stopExam() {
         MyLog.i(TAG,"缁撴潫鑰冭瘯");
-        //娓呯┖宸茬粡瀛樺湪鐨剆ns
-        sns.clear();
-        item_id = 0;
-        currTotalScore = 100;
+
+
         tv_total_score.setText(String.valueOf(currTotalScore));
         iv_head.getDrawable().setLevel(0);
-        OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
-        WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork);
+
         ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯");
-        sendExamJson(0,exam_type);
+        examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
+        sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0
         //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯
         JKMessage0204 jkMessage0204 = new JKMessage0204();
         jkMessage0204.phone = ExamPlatformData.getInstance().getPhone();

--
Gitblit v1.8.0