From a583cc69c148fb9766aa1cd728e1201d04244c57 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期三, 11 三月 2020 15:18:35 +0800 Subject: [PATCH] 完成考试项目状态跟随考试状态进行颜色变化 --- app/src/main/java/safeluck/drive/evaluation/Constant.java | 3 + app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 3 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt | 3 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java | 3 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java | 7 +- app/src/main/java/safeluck/drive/evaluation/app.java | 1 app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 2 app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java | 1 app/src/main/java/safeluck/drive/evaluation/DB/Constant.java | 7 ++ app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 126 ++++++++++++++++++++++++++++++++++++----- app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java | 14 ++++ app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java | 4 + app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java | 1 13 files changed, 151 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java index fcafc77..6c78e2e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java @@ -84,4 +84,7 @@ public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC"; public static final int EXIT_CURRENT_ITEM = 0;//閫�鍑烘煇鍦哄湴 public static String exam_enter_exitdata="exam_enter_exitdata"; + public static int Chang_di = 2; + public static int DaoLu_night = 3; + public static int DaoLu = 4; } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java index 4295bbc..deb55f5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java @@ -18,4 +18,11 @@ public static final String RTK_CONFIG_SN = "sn"; @NotNull public static final String EXAM_STATUS_TYPE = "exam_status_type"; + public static final int EXAM_MAP_TYPE_REVERSE = 1; + public static final int EXAM_MAP_TYPE_RAMP = 2; + public static final int EXAM_MAP_TYPE_PARK = 3; + public static final int EXAM_MAP_TYPE_CURVE = 4; + public static final int EXAM_MAP_TYPE_ANGLE = 5; + public static final int FINISH_ITEM = 0;//璇ラ」鍦哄湴鑰冭瘯缁撴潫锛堝嚭鍦哄湴锛� + public static final int BEGIN_ITEM = 1;//璇ラ」鑰冭瘯寮�濮嬭繘鍏ュ満鍦� } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java index 81da498..31bb742 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java @@ -26,6 +26,16 @@ //1 杩涘叆锛堟鍦ㄨ繘琛岃�冭瘯锛� 2-寰呰�� private int enter; + public ExamStatus(int map_id) { + this.map_id = map_id; + } + + public void setResult(int result) { + this.result = result; + } + + private int result=-1;//璇ラ」鑰冭瘯缁撴灉 榛樿-1 娌℃湁缁撴灉锛� 0-鎴愬姛 1-澶辫触 + //琛ㄧず宸茬粡鐐瑰嚮浜嗗紑濮嬭�冭瘯锛屽苟涓旀敹鍒颁簡鑰冭瘯搴旂瓟 0-鏈�冭瘯 2-鍦哄湴 3-妯℃嫙鐏厜锛岃矾鑰冿紝 4-璺�� private int startExam; @@ -78,4 +88,8 @@ ", startExam=" + startExam + '}'; } + + public int getResult() { + return result; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java index 7a8227f..5ceb35b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusDao.java @@ -2,6 +2,7 @@ import androidx.lifecycle.LiveData; import androidx.room.Dao; +import androidx.room.Delete; import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; @@ -25,4 +26,7 @@ LiveData<Integer> getStartExam(); @Query("select startExam from exam_status where map_id=1") int getStartExamInt(); + + @Query("delete from exam_status") + void deleteAll(); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java index 3527b3b..0376acb 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusInitWorker.java @@ -26,11 +26,12 @@ @NonNull @Override public Result doWork() { - MyLog.i(TAG,"exam_status琛╮eset 鍒濆鍖�"); - for (int i = 0; i < 5; i++) { + MyLog.i("exam_status琛╮eset 鍒濆鍖�"); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().deleteAll(); + for (int i = 0; i < 1; i++) { examStatus.setEnter(2);//榛樿寰呰�冮」鐩� examStatus.setStartExam(0);//榛樿娌℃湁寮�濮嬭�冭瘯 - examStatus.setMap_id(i+1); + examStatus.setMap_id(1); WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt index 66cc9f5..09f4e2a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt @@ -6,6 +6,7 @@ import androidx.work.Worker import androidx.work.WorkerParameters import com.anyun.exam.lib.AYSdk +import com.anyun.exam.lib.MyLog import org.json.JSONException import org.json.JSONObject import safeluck.drive.evaluation.DB.Constant @@ -15,7 +16,7 @@ val TAG:String = "ExamStatusOutWorker" override fun doWork(): Result { val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt; - Log.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType) + MyLog.i("鏌ュ埌鐨勮�冭瘯type="+examType) val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build() if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) { try { diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java index 78458d5..b840c2e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWoker.java @@ -32,10 +32,11 @@ jsonObject = new JSONObject(str); int mapId = jsonObject.getInt("map_id"); int enter = jsonObject.getInt("enter"); + int type = jsonObject.getInt("type"); ExamStatus examStatus = new ExamStatus(); examStatus.setEnter(enter); examStatus.setMap_id(mapId); - examStatus.setMap_item(1); + examStatus.setMap_item(type); WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getExamStatusDao().insert(examStatus); return Result.success(); } catch (JSONException e) { diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java index a3b467b..b584aaa 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusWorkRepo.java @@ -40,6 +40,7 @@ WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { @Override public void run() { + examStatusDao.updateStartExam(startex); } }); diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 0cda1f6..3987355 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -165,7 +165,7 @@ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); //鍒濆鍖杢ts - ExamPlatformData.getInstance().initTTS(this); + ExamPlatformData.getInstance().initTTS(getApplicationContext()); // TODO // 杩涜tcp杩炴帴 final String userId = "100002"; diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index ed04816..eb2892f 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -329,7 +329,6 @@ jkMessage0206.speed = speed; jkMessage0206.fangXiang = (int)track_ture; jkMessage0206.rf = qf; - utc =utc.substring(0,15); jkMessage0206.timeBCD = utc; jkMessage0206.json =json; jkMessage0206.length = jkMessage0206.json.length(); diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index 69cc989..d668133 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -69,7 +69,8 @@ simulate_light_tips.add(new SimulateNightBean.QuestionBean(6,"闆惧ぉ琛岄┒")); simulate_light_tips.add(new SimulateNightBean.QuestionBean(7,"鎷辨ˉ銆佷汉琛岄亾")); simulate_light_tips.add(new SimulateNightBean.QuestionBean(8,"澶滈棿鍦ㄩ亾璺笂鍙戠敓鏁呴殰锛屽Θ纰嶄氦閫氬張闅句互绉诲姩")); - simulate_light_tips.add(new SimulateNightBean.QuestionBean(9," 澶滈棿閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撱�佹垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙�")); + //銆佹嫳妗ャ�佷汉琛屾í閬撱�佹垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙� + simulate_light_tips.add(new SimulateNightBean.QuestionBean(9," 澶滈棿閫氳繃鎬ュ集銆佸潯璺�")); simulate_light_tips.add(new SimulateNightBean.QuestionBean(10,"娌℃湁浜ら�氭帶鍒剁伅涔嬭矾鍙�")); simulate_light_tips.add(new SimulateNightBean.QuestionBean(11,"涓存椂鍋滆溅")); simulate_light_tips.add(new SimulateNightBean.QuestionBean(12,"瓒呰溅")); diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java index b1452c4..5b0b0ba 100644 --- a/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/customview/MyDialogFragment.java @@ -42,6 +42,7 @@ } } }).create(); + dialog.setCancelable(false); return dialog; } private Callback callback; 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..2ebd2e2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -113,11 +113,12 @@ public boolean handleMessage(Message msg) { if (msg.what == ADD_DATA){ 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(whatPaintColor(examStatusList)); + 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 +131,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 +149,86 @@ 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("鏇茬嚎琛岄┒鍚堟牸"); + 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 @@ -174,11 +260,11 @@ 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(); } - MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊"); + MyLog.i("鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊"); mHandler.obtainMessage(ADD_DATA).sendToTarget(); }else{ MyLog.i(TAG,"澶辫触椤圭洰鏁版嵁琛ㄨ娓呯┖鏇存柊UI"); @@ -267,7 +353,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 +399,7 @@ switch (status) { case 0://鑰冭瘯瀹屾垚 switch (map_id) { - case 863://鍊掑簱 + case 1://鍊掑簱 if (item_conents.contains("鍊掕溅鍏ュ簱")) { return getResources().getColor(R.color.colorAccent); }else{ @@ -406,6 +497,8 @@ public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: + OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); + WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯 final JKMessage0202 jkMessage0202 = new JKMessage0202(); jkMessage0202.phone = ExamPlatformData.getInstance().getPhone(); @@ -423,6 +516,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 +527,7 @@ @Override public void luKao() { exam_type = 3; + examStatusViewModel.updateStartExam(exam_type); sendExamJson(1,exam_type); if (simulateNightBean == null){ simulateNightBean = new SimulateNightBean(); @@ -498,7 +593,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 +607,15 @@ 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