From 5fdd4458a3c9f99a3c951683d503f73a47ff976d Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期五, 13 三月 2020 15:43:07 +0800
Subject: [PATCH] 解决RTK配置,传感器配置收到NDK_Start的时候发两次的问题;在ExamStatusOutWork里面发送rtf配置 传感器配置、考试状态;RTK配置增加数据库访问;电话使用sn,sn更新发送给服务在RTKConfigUpdateWorker;基本设置里删除电话显示;修改鉴权消息,使用服务器注册给的密码,用des加密时间,发鉴权消息给服务;Utils增加des加密和解密算法
---
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 181 ++++++++++++++++++++++++---------------------
1 files changed, 96 insertions(+), 85 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index e0031b7..341aada 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -12,6 +12,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 android.os.Handler;
@@ -41,6 +43,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;
@@ -69,6 +72,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
* MyApplication2
@@ -100,7 +106,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;
@@ -111,8 +117,6 @@
String icson;//杩斿洖鐨刬c鍗′俊鎭� json
private Random random = new Random();
private List<SimulateNightBean.QuestionBean> tempQs= new ArrayList<>();
-
-
private Handler mHandler = new Handler(new Handler.Callback() {
@@ -128,7 +132,7 @@
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));
+ tv_speed.setText(_mActivity.getApplicationContext().getResources().getString(R.string.speed,speed));
}
if (msg.what == Constant.IC_ID){
try {
@@ -187,7 +191,13 @@
return getResources().getColor(R.color.colorAccent);
}else{
- ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸");
+ if (examStatus.getResult() ==1){
+ MyLog.i("宸茬粡鎾斁杩囧�掕溅鍏ュ簱鍚堟牸");
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍊掕溅鍏ュ簱鍚堟牸");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ }
+
return getResources().getColor(R.color.train_btn_return);
}
case 2:
@@ -195,7 +205,13 @@
MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
return getResources().getColor(R.color.colorAccent);
}else{
- ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�");
+ if (examStatus.getResult() ==1){
+ MyLog.i("宸茬粡鎾斁杩囧潯閬撳畾鐐瑰仠杞﹀拰璧锋鍚堟牸鍚堟牸");
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝ュ悎鏍�");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ }
+
return getResources().getColor(R.color.train_btn_return);
}
case 3:
@@ -203,7 +219,13 @@
MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
return getResources().getColor(R.color.colorAccent);
}else{
- ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
+ if (examStatus.getResult() ==1){
+ MyLog.i("宸茬粡鎾斁杩囦晶鏂瑰仠杞﹀悎鏍�");
+ }else{
+
+ ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ }
return getResources().getColor(R.color.train_btn_return);
}
case 4:
@@ -211,7 +233,13 @@
MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
return getResources().getColor(R.color.colorAccent);
}else{
- ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
+ if (examStatus.getResult() ==1){
+ MyLog.i("宸茬粡鎾斁杩囨洸绾胯椹跺悎鏍�");
+ }else{
+
+ ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ }
return getResources().getColor(R.color.train_btn_return);
}
case 5:
@@ -219,8 +247,13 @@
MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
return getResources().getColor(R.color.colorAccent);
}else{
- MyLog.i("璇ラ」鑰冭瘯鎴愬姛锛宼ype="+type);
- ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸");
+ if (examStatus.getResult() ==1){
+ MyLog.i("宸茬粡鎾斁杩囩洿瑙掕浆寮悎鏍�");
+ }else{
+ ExamPlatformData.getInstance().getTTS().speak("鐩磋杞集鍚堟牸");
+ examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
+ }
+
return getResources().getColor(R.color.train_btn_return);
}
@@ -270,8 +303,8 @@
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();
@@ -346,7 +379,7 @@
return view;
}
- private List<Integer> sns =new ArrayList<>();
+
private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
JKMessage0203 jkMessage0203 = new JKMessage0203();
jkMessage0203.phone = ExamPlatformData.getInstance().getPhone();
@@ -361,7 +394,7 @@
failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+
failedProj_selects.get(i).getScore_deducting()+"鍒�"));
MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn());
- sns.add(failedProj_selects.get(i).getSn());
+ ExamPlatformData.getInstance().addSn(failedProj_selects.get(i).getSn());
String utc = failedProj_selects.get(i).getUtc();
if (!TextUtils.isEmpty(utc)&&utc.length()>12){
utc =utc.substring(0,12);
@@ -385,11 +418,11 @@
}
private boolean hasSnEqulas(int failedProjSn){
- if (sns.size() > 0){
- for (int j = 0; j < sns.size(); j++) {
- MyLog.i("宸插瓨鍦ㄧ殑sn"+sns.get(j));
- if (sns.get(j) == failedProjSn){
- MyLog.i("sn鐩稿悓锛屼笉鍙�"+sns.get(j));
+ if (ExamPlatformData.getInstance().getSns().size() > 0){
+ for (int j = 0; j < ExamPlatformData.getInstance().getSns().size(); j++) {
+ MyLog.i("宸插瓨鍦ㄧ殑sn"+ExamPlatformData.getInstance().getSns().get(j));
+ if (ExamPlatformData.getInstance().getSns().get(j) == failedProjSn){
+ MyLog.i("sn鐩稿悓锛屼笉鍙�"+ExamPlatformData.getInstance().getSns().get(j));
return true;
}else{
continue;
@@ -401,63 +434,9 @@
}
- private int whatPaintColor(ExamStatus examStat) {
- int map_id = examStat.getMap_id();
- int status = examStat.getEnter();
- MyLog.i(TAG, "whatPaintColor: map_id="+map_id+" status="+status);
- switch (status) {
- case 0://鑰冭瘯瀹屾垚
- switch (map_id) {
- case 1://鍊掑簱
- if (item_conents.contains("鍊掕溅鍏ュ簱")) {
- return getResources().getColor(R.color.colorAccent);
- }else{
- return getResources().getColor(R.color.train_btn_return);
- }
- case 2:
- if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) {
- return getResources().getColor(R.color.colorAccent);
- }else{
- return getResources().getColor(R.color.train_btn_return);
- }
- case 3:
- if (item_conents.contains("渚ф柟鍋滆溅")) {
- return getResources().getColor(R.color.colorAccent);
- }else{
- return getResources().getColor(R.color.train_btn_return);
- }
- case 4:
- if (item_conents.contains("鏇茬嚎琛岄┒")) {
- return getResources().getColor(R.color.colorAccent);
- }else{
- return getResources().getColor(R.color.train_btn_return);
- }
- case 5:
- if (item_conents.contains("鐩磋杞集")) {
- return getResources().getColor(R.color.colorAccent);
- }else{
- return getResources().getColor(R.color.train_btn_return);
- }
- }
- case 1://杩涘叆鑰冨満椤圭洰
- MyLog.i("pink 杩涘叆鏌愪釜鑰冨満椤圭洰");
- return getResources().getColor(R.color.pink);
- case 2://寰呰��
- return getResources().getColor(R.color.examing);
- }
- return getResources().getColor(R.color.examing);
- }
private void initView(View view) {
-
- Intent intent = new Intent(ALARM_ACTION_CODE);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(_mActivity.getApplicationContext(),
- REQUEST_CODE, intent,
- PendingIntent.FLAG_CANCEL_CURRENT);
- AlarmManager alarmManager = (AlarmManager) _mActivity.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
- alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(),pendingIntent);
-
view.findViewById(R.id.iv_head).setOnClickListener(this);
av_curve = view.findViewById(R.id.av3);
@@ -474,6 +453,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);
@@ -500,8 +498,10 @@
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);
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));
@@ -514,10 +514,7 @@
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();
@@ -525,7 +522,6 @@
jkMessage0202.ID = ExamPlatformData.getInstance().getID();
jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
- failedProjViewModel.deleteAll();
if (myDialogFragment == null){
myDialogFragment = new MyDialogFragment();
@@ -535,10 +531,13 @@
@Override
public void changKao() {
exam_type = 2;
+ iv_head.getDrawable().setLevel(1);
examStatusViewModel.updateStartExam(exam_type);
sendExamJson(1,exam_type);
- ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯");
+ ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
jkMessage0202.curr_exam = 0;
+
+ ExamPlatformData.getInstance().setTrainingMode(true);//璁剧疆涓鸿缁冩ā寮�
MessageProcessor.getInstance().sendMessage(jkMessage0202);
}
@@ -551,8 +550,10 @@
if (simulateNightBean == null){
simulateNightBean = new SimulateNightBean();
}
+ iv_head.getDrawable().setLevel(1);
simulateNightBean.setExam(0);
-
+ ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
+ ExamPlatformData.getInstance().setTrainingMode(true);//璁剧疆涓鸿缁冩ā寮�
final List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips();
simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1));
AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean));
@@ -561,7 +562,7 @@
MessageProcessor.getInstance().sendMessage(jkMessage0202);
tempQs.add(list.get(0));
- int [] a = Utils.getRandomInts(4,12);
+ int [] a =Utils.getRandomInts(4,12);
for (int i = 0; i < a.length; i++) {
tempQs.add(list.get(a[i]));
}
@@ -578,9 +579,8 @@
}
});
- iv_head.getDrawable().setLevel(1);
- //娓呯┖sns
- sns.clear();
+
+
@@ -627,11 +627,22 @@
private void stopExam() {
MyLog.i(TAG,"缁撴潫鑰冭瘯");
+ //娓呯┖sns
+ ExamPlatformData.getInstance().clearSns();
+ //璁剧疆璁粌妯″紡涓篺alse
+ ExamPlatformData.getInstance().setTrainingMode(false);
+
+ //鎭㈠鍒濆鏁版嵁
+ OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class);
+ 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("缁撴潫鑰冭瘯");
+ ExamPlatformData.getInstance().getTTS().speak("缁撴潫璁粌");
examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM);
sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0
//TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯
--
Gitblit v1.8.0