package safeluck.drive.evaluation.bean;
|
|
import android.os.Environment;
|
import android.renderscript.Element;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.widget.Toast;
|
|
import com.anyun.basecommonlib.MyLog;
|
|
import java.util.concurrent.Executors;
|
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.TimeUnit;
|
|
|
import safeluck.drive.evaluation.app;
|
|
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
|
import safeluck.drive.evaluation.util.DataInitKt;
|
|
import static safeluck.drive.evaluation.util.DataInitKt.sendJudgeArgs;
|
|
/**
|
* DriveJudge
|
* Created by lzw on 2020/12/3. 15:45:26
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class AbsInitialData {
|
private UserOpStatus userOpStatus = UserOpStatus.getInstance();
|
private static boolean hasSend = false;
|
|
public static AbsInitialData getInstance(){
|
return new AbsInitialData();
|
}
|
|
private boolean checkPermission(){
|
return ExamPlatformData.getInstance().isCanWriteSD();
|
}
|
|
/***
|
* 如果服务异常死亡,可以置hasSend为false,然后sendINintdata
|
*/
|
public void resethasSendInitData(){
|
hasSend = false;
|
}
|
|
/**********f发送灯光考试项和考试状态**********/
|
private void sendLightsAndExamStatus(){
|
DataInitKt.sendExamLightsAndExamStatus(app.getAppContext());
|
}
|
|
private void sendCarModelFile(){
|
if (userOpStatus.getCarFileSelectState()== UserOpStatus.State.SELECT_CAR_FILE_STATE){
|
MyLog.i("用户在设置里面选择车模型文件");
|
DataInitKt.sendVehicleInfo();
|
}else{
|
MyLog.i("用户没有在设置里面选择车模型文件,则进行htp请求(先检查sn是否为空)");
|
if (ExamPlatformData.getInstance().getMcuSN() != null){
|
DataInitKt.getMap(ExamPlatformData.getInstance().getMcuSN(),"car");
|
}else{
|
MyLog.i("sn为空,不能请求http下载车模型");
|
DataInitKt.sendVehicleInfo();
|
}
|
}
|
|
}
|
private void sendRoadMapFile(){
|
if (userOpStatus.getRoadFileSelectState()== UserOpStatus.State.SELECT_ROAD_MAP_STATE){
|
MyLog.i("用户在设置里面选择车模型文件");
|
DataInitKt.sendRoadMapInfo();
|
}else{
|
MyLog.i("用户没有在设置里面选择车模型文件,则进行htp请求(先检查sn是否为空)");
|
if (ExamPlatformData.getInstance().getMcuSN() != null){
|
DataInitKt.getMap(ExamPlatformData.getInstance().getMcuSN(),"road");
|
}else{
|
MyLog.i("sn为空,不能请求http下载道路;但可以发送用户选择的道路文件");
|
DataInitKt.sendRoadMapInfo();
|
}
|
}
|
}
|
|
|
private void sendItemsMapFile(){
|
|
if (userOpStatus.getItemsFileSelectState()== UserOpStatus.State.SELECT_ITEMS_MAP_STATE){
|
MyLog.i("用户在设置里面选择场地文件");
|
DataInitKt.sendMapInfo();
|
}else{
|
MyLog.i("用户没有在设置里面选择场地文件,则进行htp请求(先检查sn是否为空)");
|
if (ExamPlatformData.getInstance().getMcuSN() != null){
|
DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"yard");
|
}else{
|
MyLog.i("sn为空,不能请求http下载场地但可以发送用户选择的场地文件");
|
DataInitKt.sendMapInfo();
|
}
|
}
|
}
|
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
|
public synchronized void sendInitialData(){
|
if (checkPermission() && !hasSend){
|
/**********只有权限满足(读写SD卡权限)和没有发送过的情况下才进行以下操作*********/
|
hasSend = true;
|
sendCarModelFile();
|
sendRoadMapFile();
|
sendItemsMapFile();
|
sendJudgeArgs();
|
//需要延迟发送,因为前面有http请求
|
executorService.schedule(()->{
|
Log.i("AYJiaKao","延迟发送");
|
// if (DataInitKt.getSendVehiSucc() && (DataInitKt.getSendMapSucc() || DataInitKt.getSendRoadMapSucc())){
|
CThreadPoolExecutor.runInBackground(()->{
|
sendLightsAndExamStatus();
|
});
|
|
// }else{
|
MyLog.i(DataInitKt.getSendRoadMapSucc()?String.format("道路地图发送成功"):"道路地图发送失败");
|
MyLog.i(DataInitKt.getSendMapSucc()?String.format("场地地图发送成功"):"场地地图发送失败");
|
MyLog.i(DataInitKt.getSendVehiSucc()?String.format("车辆模型发送成功"):"车辆模型发送失败");
|
Toast.makeText(app.getAppContext(), "地图或车模型不存在,请检查平台配置或手工配置", Toast.LENGTH_SHORT).show();
|
// }
|
},2, TimeUnit.SECONDS);
|
|
|
}else{
|
MyLog.i(hasSend?"已经发送过了初始数据":"权限不允许,不能发送初始数据");
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|