From 8eef2d05a5e785ec0728e9ccbf8f9c4f672409cb Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期一, 21 九月 2020 17:34:02 +0800
Subject: [PATCH] 路口选择情况下,不断的重复路口采集的话给出提示是否覆盖以前
---
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 116 +++++++++++++++++++++++++-------------
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java | 6 ++
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java | 9 +++
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java | 3 +
4 files changed, 94 insertions(+), 40 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java
index b6dd6ca..aa5896c 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java
@@ -23,4 +23,7 @@
@Query("DELETE FROM RouteCross where routeline_id=:id")
void deleteRouteCross(int id);
+
+ @Query("UPDATE RouteCross SET active =:active where routeline_id=:id and road =:road and idx=:idx ")
+ void updateRouteCrossActive(int id, int road, int idx,int active);
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java
index 7abecf5..7fe78b1 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java
@@ -84,4 +84,10 @@
}
});
}
+
+ public void updateRouteCrossActive(int id, int road, int idx,int active) {
+ WorkRoomDataBase.dataBaseWriteExecutor.execute(()->{
+ routeCrossDao.updateRouteCrossActive(id,road,idx,active);
+ });
+ }
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java
index 142476d..9c20127 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java
@@ -10,6 +10,7 @@
import safeluck.drive.evaluation.DB.Student;
import safeluck.drive.evaluation.DB.WorkRepository;
+import safeluck.drive.evaluation.routecollect.bean.RoadCrossInfo;
/**
* MyApplication2
@@ -52,4 +53,12 @@
public void updateCurrCollectFlag(String name) {
workRepository.updateCurrCollectFlag(name);
}
+
+ public List<RouteCross> getRoadCrosses(int id) {
+ return workRepository.getAllRouteCross(id);
+ }
+
+ public void updateRouteCrossActive(int id, int road, int idx,int active) {
+ workRepository.updateRouteCrossActive(id,road,idx,active);
+ }
}
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 266a406..f952304 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -73,6 +73,7 @@
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
+import safeluck.drive.evaluation.customview.MyDialog;
import safeluck.drive.evaluation.customview.MyInputDialog;
import safeluck.drive.evaluation.customview.QRCodeDialog;
import safeluck.drive.evaluation.customview.SelectDialog;
@@ -1165,62 +1166,66 @@
//閬撹矾淇℃伅鏄病鏈夎繘琛屾湰鍦颁繚瀛樼殑锛屽鏋滃穿婧冪殑璇濓紝灏辨湁闂
stringBuilder.append(String.format("閬撹矾淇℃伅%s",roadInfo.toString()));
stringBuilder.append("\n");
+ ExamPlatformData.getInstance().getTTS().speak(String.format("%s%d璺�",roadInfo.getStatus()==1?"杩涘叆":"閫�鍑�",
+ roadInfo.getRoad_id()));
showRouteCollectInfoText();
}
SelectDialogThree roadCrossDialog;
+ //鏍囪鏄惁宸茬粡鎻掑叆浜嗚璺彛鏂瑰悜 宸茬粡鎻掑叆=true
+ private boolean hasInsertRoadCrossDirect = false;
@Override
public void roadcrossInfo(RoadCrossInfo roadCrossInfo) {
Log.i(TAG,String.format("閬撹矾璺彛淇℃伅%s",roadCrossInfo.toString()));
stringBuilder.append(String.format("閬撹矾璺彛淇℃伅%s",roadCrossInfo.toString()));
stringBuilder.append("\n");
showRouteCollectInfoText();
+
CThreadPoolExecutor.runInBackground(new Runnable() {
@Override
public void run() {
- routeCross = new RouteCross();
- routeCross.setRouteline_id(currRouteBean.getId());
- routeCross.setRoad(roadCrossInfo.getRoad_id());
- routeCross.setIdx(roadCrossInfo.getCrossing_index());
+ ExamPlatformData.getInstance().getTTS().speak(String.format("%s%d鍙疯矾绗�%d涓矾鍙�",roadCrossInfo.getStatus()==1?"杩涘叆":"閫�鍑�",
+ roadCrossInfo.getRoad_id(),roadCrossInfo.getCrossing_index()+1));
if (roadCrossInfo.getStatus() == 1){
+ List<RouteCross> roadCrosses = routeLineViewModel.getRoadCrosses(currRouteBean.getId());
+
+
+ routeCross = new RouteCross();
+
+ routeCross.setRouteline_id(currRouteBean.getId());
+ routeCross.setRoad(roadCrossInfo.getRoad_id());
+ routeCross.setIdx(roadCrossInfo.getCrossing_index());
CThreadPoolExecutor.runOnMainThread(new Runnable() {
@Override
public void run() {
- roadCrossDialog = SelectDialogThree.newInstance("璺彛鐩磋","璺彛宸﹁浆寮�","璺彛鍙宠浆寮�","璺彛鎺夊ご");
- roadCrossDialog.show(getFragmentManager(),"aaa");
- roadCrossDialog.setSelectedListener(new SelectDialogThree.OnSelectedListener() {
- @Override
- public void makeYourChoice(int res) {
- switch (res){
- case 0:
- //鐩磋
- routeCross.setActive(1);
+ for (RouteCross routeCross:roadCrosses){
+ if (routeCross.getIdx()==roadCrossInfo.getCrossing_index()&&routeCross.getRoad()==roadCrossInfo.getRoad_id()){
+ Log.i(TAG,"璇ヨ矾鍙e凡缁忛�夋嫨浜嗚椹舵柟鍚戯紝纭畾瑕佽鐩栦互鍓嶏紵");
+ MyDialog myDialog = MyDialog.Companion.newInstance("璇ヨ矾鍙e凡缁忛�夋嫨浜嗚椹舵柟鍚戯紝纭畾瑕佽鐩栦互鍓嶏紵");
+ hasInsertRoadCrossDirect = true;
+ myDialog.setOnClick(new MyDialog.MyOnClickListener() {
+ @Override
+ public void onSure() {
+ selectRoadCrossDirect(routeCross);
+ }
- break;
- case 1:
- //宸﹁浆寮�
- routeCross.setActive(2);
- break;
- case 2:
- //鍙宠浆寮�
- routeCross.setActive(4);
- break;
- case 3:
- //璋冨ご
- routeCross.setActive(8);
- break;
- }
- if (res != SelectDialogThree.SELECT_NONE){
-
- routeLineViewModel.insertRouteCross(routeCross);
- }else{
- Log.i(TAG,"鍦ㄨ矾鍙f病鏈夊仛鍑洪�夋嫨");
- }
+ @Override
+ public void onCancle() {
+ hasInsertRoadCrossDirect = false;
+ }
+ });
+ myDialog.show(getFragmentManager(),"tarindialog");
+ break;
}
- });
+ }
+ if (!hasInsertRoadCrossDirect){
+
+ selectRoadCrossDirect(routeCross);
+ }
}
});
}else{
+ if (roadCrossDialog != null)
roadCrossDialog.dismiss();
}
@@ -1231,15 +1236,46 @@
}
- private int getRouteLine_id() {
+ private void selectRoadCrossDirect(RouteCross routeCross) {
+ roadCrossDialog = SelectDialogThree.newInstance("璺彛鐩磋","璺彛宸﹁浆寮�","璺彛鍙宠浆寮�","璺彛鎺夊ご");
+ roadCrossDialog.show(getFragmentManager(),"aaa");
+ roadCrossDialog.setSelectedListener(new SelectDialogThree.OnSelectedListener() {
+ @Override
+ public void makeYourChoice(int res) {
+ switch (res){
+ case 0:
+ //鐩磋
+ routeCross.setActive(1);
- for (int i = 0; i < mRouteBeans.size(); i++){
- if (mRouteBeans.get(i).getRouteName().equalsIgnoreCase(ExamPlatformData.getInstance().getRouteLineName())){
- return mRouteBeans.get(i).getId();
+ break;
+ case 1:
+ //宸﹁浆寮�
+ routeCross.setActive(2);
+ break;
+ case 2:
+ //鍙宠浆寮�
+ routeCross.setActive(4);
+ break;
+ case 3:
+ //璋冨ご
+ routeCross.setActive(8);
+ break;
+ }
+ if (res != SelectDialogThree.SELECT_NONE){
+ if (!hasInsertRoadCrossDirect){
+
+ routeLineViewModel.insertRouteCross(routeCross);
+ }else{
+ hasInsertRoadCrossDirect = false;
+ routeLineViewModel.updateRouteCrossActive(currRouteBean.getId(),routeCross.getRoad(),routeCross.getIdx(),routeCross.getActive());
+ }
+ }else{
+ Log.i(TAG,"鍦ㄨ矾鍙f病鏈夊仛鍑洪�夋嫨");
+ }
}
- }
- return -1;
+ });
}
+
}
--
Gitblit v1.8.0