From f680d40e5519c02e4357fd94dfa184b9beff815f Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期四, 07 五月 2020 16:45:18 +0800
Subject: [PATCH] 编码、调试根据协议格式生成一个二维码,采用des加密、然后Base64编码,调试通过
---
app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt | 1
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 25 ++++++++
app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java | 2
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 46 +++++++++++---
app/src/main/java/safeluck/drive/evaluation/util/Utils.java | 26 ++++++++
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 49 ++++++++++------
6 files changed, 119 insertions(+), 30 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
index aa90196..b87b8ce 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt
@@ -63,7 +63,6 @@
getMap(sn, "yard")
getMap(sn, "car")
-
MyLog.i(PlatFormConstant.TAG,"閲嶇疆TCP杩炴帴")
IMSClientBootstrap.getInstance().resetConnect();
}
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 5940779..4a842ff 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -407,4 +407,29 @@
public String getCoachID() {
return coachID;
}
+
+ /**
+ * 杩斿洖瀛﹀憳鏄惁绛惧埌锛宼rue-宸茬粡绛惧埌
+ */
+ public boolean IsStuSign() {
+ isStuSign = (boolean) SPUtils.get(app.getAppContext(),SPUtils.STU_SIGN_STATUS,false);
+ return isStuSign;
+ }
+ public void setStuSign(boolean flag){
+ isStuSign = flag;
+ SPUtils.put(app.getAppContext(),SPUtils.STU_SIGN_STATUS,flag);
+ }
+ private boolean isStuSign;
+ /**
+ * 杩斿洖鏁欑粌鏄惁绛惧埌锛宼rue-宸茬粡绛惧埌
+ */
+ public boolean IsCoachSign() {
+ isCoachSign = (boolean) SPUtils.get(app.getAppContext(),SPUtils.Coach_SIGN_STATUS,false);
+ return isCoachSign;
+ }
+ public void setCoachSign(boolean flag){
+ isCoachSign = flag;
+ SPUtils.put(app.getAppContext(),SPUtils.Coach_SIGN_STATUS,flag);
+ }
+ private boolean isCoachSign;
}
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 9d5667e..e013251 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -12,6 +12,7 @@
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
+import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -21,12 +22,10 @@
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
-import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.work.OneTimeWorkRequest;
@@ -34,11 +33,11 @@
import com.anyun.exam.lib.AYSdk;
import com.anyun.exam.lib.MyLog;
-import com.google.gson.Gson;
import org.json.JSONException;
import org.json.JSONObject;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -48,8 +47,6 @@
import safeluck.drive.evaluation.Constant;
import safeluck.drive.evaluation.DB.Student;
import safeluck.drive.evaluation.DB.WokViewModel;
-import safeluck.drive.evaluation.DB.appstatusdb.AppStatus;
-import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker;
import safeluck.drive.evaluation.DB.exam_status.ExamStatusViewModel;
import safeluck.drive.evaluation.DB.failitems.FailedProjViewModel;
@@ -60,22 +57,16 @@
import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.ScoreBean;
-import safeluck.drive.evaluation.bean.SimulateNightBean;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
-import safeluck.drive.evaluation.customview.ArrowView;
-import safeluck.drive.evaluation.customview.HouseView;
-import safeluck.drive.evaluation.customview.LoadProgressDialog;
import safeluck.drive.evaluation.customview.QRCodeDialog;
import safeluck.drive.evaluation.customview.SelectDialog;
-import safeluck.drive.evaluation.httpmodule.RetrofitCreator;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.JKMessage0201;
import safeluck.drive.evaluation.platformMessage.JKMessage0202;
import safeluck.drive.evaluation.platformMessage.JKMessage0204;
import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
import safeluck.drive.evaluation.util.Utils;
-import safeluck.drive.evaluation.viewmodels.TimeViewModel;
/**
* 鑱旂綉璁粌UI
@@ -536,6 +527,7 @@
btn_ids.add(R.id.btn_10);
view.findViewById(R.id.iv_head).setOnClickListener(this);
+ view.findViewById(R.id.iv_coach_head).setOnClickListener(this);
((TextView)view.findViewById(R.id.tv_score_tip)).setText("褰撳墠鑰冭瘯寰楀垎");
av_curve = view.findViewById(R.id.av3);
av_park = view.findViewById(R.id.av2);
@@ -580,7 +572,6 @@
}
-private LoadProgressDialog loadProgressDialog;
@Override
public void onClick(View v) {
switch (v.getId()) {
@@ -634,16 +625,38 @@
break;
case R.id.iv_head:
- MyLog.i(PlatFormConstant.HTTPTAG,"绛惧埌");
- loadProgressDialog = LoadProgressDialog.newInstance("璇风◢鍚�...");
- loadProgressDialog.setStyle(DialogFragment.STYLE_NORMAL,R.style.Dialog_FullScreen);
- loadProgressDialog.showNow(getFragmentManager(),"loadingdiaolog");
+ MyLog.i(TAG,"瀛﹀憳绛惧埌");
+ if (ExamPlatformData.getInstance().IsStuSign()){
+ ExamPlatformData.getInstance().setStuSign(false);
+ qrcode(1,false);
+ }else{
+ ExamPlatformData.getInstance().setStuSign(true);
+ qrcode(1,true);
+ }
+ break;
+ case R.id.iv_coach_head:
+ MyLog.i(PlatFormConstant.HTTPTAG,"鏁欑粌绛惧埌");
+ if (ExamPlatformData.getInstance().IsCoachSign()){
+ ExamPlatformData.getInstance().setCoachSign(false);
+ qrcode(0,false);
+ }else{
+ ExamPlatformData.getInstance().setCoachSign(true);
+ qrcode(0,true);
+ }
- //浠庢湇鍔″櫒鑾峰彇鐢ㄤ簬鐢熸垚绛惧埌浜岀淮鐮佺殑url
break;
}
}
-
+ private void qrcode(int type,boolean isSign) {
+ content = "87,"+String.valueOf(type)+ ","+ExamPlatformData.getInstance().getPhone()
+ +(isSign?",signin":",signout");
+ Log.i(TAG,String.format("浜岀淮鐮佸唴瀹癸細%s",content));
+ byte[] bytes = Utils.qrencrypt(content.getBytes(),"safeluck");
+ String str = Base64.encodeToString(bytes,Base64.DEFAULT);
+ Log.i(TAG,"base64鍔犲瘑鍚庣殑瀛楃涓�="+str);
+ QRCodeDialog qrCodeDialog = QRCodeDialog.newInstance(str);
+ qrCodeDialog.show(getFragmentManager(),"qrdialog" );
+ }
private void sendJK0202(int type) {
final JKMessage0202 jkMessage0202 = new JKMessage0202();
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 b48e1f5..b16bf92 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -21,6 +21,7 @@
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
+import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -41,6 +42,7 @@
import org.json.JSONException;
import org.json.JSONObject;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@@ -62,19 +64,16 @@
import safeluck.drive.evaluation.adapter.ScoreAdapter;
import safeluck.drive.evaluation.bean.ExamPlatformData;
import safeluck.drive.evaluation.bean.ScoreBean;
-import safeluck.drive.evaluation.bean.SimulateNightBean;
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
-import safeluck.drive.evaluation.customview.ArrowView;
-import safeluck.drive.evaluation.customview.HouseView;
import safeluck.drive.evaluation.customview.LoadProgressDialog;
+import safeluck.drive.evaluation.customview.QRCodeDialog;
import safeluck.drive.evaluation.customview.SelectDialog;
import safeluck.drive.evaluation.im.MessageProcessor;
import safeluck.drive.evaluation.platformMessage.JKMessage0201;
import safeluck.drive.evaluation.platformMessage.JKMessage0202;
-import safeluck.drive.evaluation.util.DimenUtil;
+import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
import safeluck.drive.evaluation.util.Utils;
-import safeluck.drive.evaluation.viewmodels.TimeViewModel;
/**鍗曟満璁粌UI
* MyApplication2
@@ -107,7 +106,7 @@
private TextView tv_speed,tv_total_score,tv_name
,tv_start_time,tv_coach_name;
private double speed=0.0;
- private ImageView iv_head;
+ private ImageView iv_head,iv_coach_head;
WokViewModel wokViewModel;
private int currTotalScore = 100;
@@ -117,7 +116,6 @@
String icson;//杩斿洖鐨刬c鍗′俊鎭� json
private String content;//鐢ㄤ互鐢熸垚浜岀淮鐮佺殑鍐呭
- private LoadProgressDialog loadProgressDialog;
private List<Integer> btn_ids = new ArrayList<Integer>();
@@ -517,6 +515,7 @@
view.findViewById(R.id.iv_head).setOnClickListener(this);
+ view.findViewById(R.id.iv_coach_head).setOnClickListener(this);
av_curve = view.findViewById(R.id.av3);
av_park = view.findViewById(R.id.av2);
av_podao = view.findViewById(R.id.av1);
@@ -610,14 +609,39 @@
}
break;
case R.id.iv_head:
- MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿");
- loadProgressDialog = LoadProgressDialog.newInstance("璇风◢鍚�...");
- loadProgressDialog.setStyle(DialogFragment.STYLE_NORMAL,R.style.Dialog_FullScreen);
- loadProgressDialog.showNow(getFragmentManager(),"loadingdiaolog");
+ MyLog.i(TAG,"瀛﹀憳绛惧埌");
+ if (ExamPlatformData.getInstance().IsStuSign()){
+ ExamPlatformData.getInstance().setStuSign(false);
+ qrcode(1,false);
+ }else{
+ ExamPlatformData.getInstance().setStuSign(true);
+ qrcode(1,true);
+ }
+
+ break;
+ case R.id.iv_coach_head:
+ MyLog.i(PlatFormConstant.HTTPTAG,"鏁欑粌绛惧埌");
+ if (ExamPlatformData.getInstance().IsCoachSign()){
+ ExamPlatformData.getInstance().setCoachSign(false);
+ qrcode(0,false);
+ }else{
+ ExamPlatformData.getInstance().setCoachSign(true);
+ qrcode(0,true);
+ }
break;
}
}
+ private void qrcode(int type,boolean isSign) {
+ content = "87,"+String.valueOf(type)+ ","+ExamPlatformData.getInstance().getPhone()
+ +(isSign?",signin":",signout");
+ Log.i(TAG,String.format("浜岀淮鐮佸唴瀹癸細%s",content));
+ byte[] bytes = Utils.qrencrypt(content.getBytes(Charset.forName("utf-8")),"safeluck");
+ String str = Base64.encodeToString(bytes,Base64.DEFAULT);
+ QRCodeDialog qrCodeDialog = QRCodeDialog.newInstance(str);
+ qrCodeDialog.show(getFragmentManager(),"qrdialog" );
+ }
+
private void sendJK0202(int type) {
final JKMessage0202 jkMessage0202 = new JKMessage0202();
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
index 7e8e818..102995c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
+++ b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java
@@ -23,6 +23,8 @@
public static final String TRAIN_MODE = "training_mode";
public static final String FAIL_PROJ_SNS = "failed_projs_sns";
public static final String ROAD_MAP_PATH = "road_map_path";
+ public static final String STU_SIGN_STATUS = "stu_sign_";
+ public static final String Coach_SIGN_STATUS = "coach_sign_";
/**
* 淇濆瓨鏁版嵁鐨勬柟娉曪紝鎴戜滑闇�瑕佹嬁鍒颁繚瀛樻暟鎹殑鍏蜂綋绫诲瀷锛岀劧鍚庢牴鎹被鍨嬭皟鐢ㄤ笉鍚岀殑淇濆瓨鏂规硶
diff --git a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
index b93b924..b7e43f5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
+++ b/app/src/main/java/safeluck/drive/evaluation/util/Utils.java
@@ -14,6 +14,7 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.math.BigDecimal;
+import java.nio.charset.Charset;
import java.security.SecureRandom;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -34,6 +35,7 @@
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
+import javax.crypto.spec.IvParameterSpec;
import safeluck.drive.evaluation.bean.Point;
@@ -275,6 +277,30 @@
e.printStackTrace();
}
return null;
+ } /**
+ * 浜岀淮鐮佸姞瀵�
+ * @param datasource byte[]
+ * @param password String
+ * @return byte[]
+ */
+ public static byte[] qrencrypt(byte[] datasource, String password) {
+ try{
+ Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
+ DESKeySpec desKeySpec = new DESKeySpec(password.getBytes());
+ SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
+ SecretKey securekey = keyFactory.generateSecret(desKeySpec);
+ IvParameterSpec desKey = new IvParameterSpec(password.getBytes());
+ //鍒涘缓涓�涓瘑鍖欏伐鍘傦紝鐒跺悗鐢ㄥ畠鎶奃ESKeySpec杞崲鎴�
+ //Cipher瀵硅薄瀹為檯瀹屾垚鍔犲瘑鎿嶄綔
+ //鐢ㄥ瘑鍖欏垵濮嬪寲Cipher瀵硅薄
+ cipher.init(Cipher.ENCRYPT_MODE, securekey, desKey);
+ //鐜板湪锛岃幏鍙栨暟鎹苟鍔犲瘑
+ //姝e紡鎵ц鍔犲瘑鎿嶄綔
+ return cipher.doFinal(datasource);
+ }catch(Throwable e){
+ e.printStackTrace();
+ }
+ return null;
}
/**
* 瑙e瘑
--
Gitblit v1.8.0