From b41f9db09c0145d4530e78c0c53d0a1cacd29e03 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期五, 18 九月 2020 15:07:01 +0800
Subject: [PATCH] 完成线路采集(未充分测试——)

---
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java               |    9 +
 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java            |   54 +++++++
 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt |    2 
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java           |  173 +++++++++++++++++++++++-
 app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadCrossInfo.java  |    9 +
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineRepository.java     |   12 +
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteLineViewModel.java      |    4 
 app/src/main/java/safeluck/drive/evaluation/app.java                              |    5 
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java            |   12 +
 app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadInfo.java       |    8 +
 app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java    |    2 
 app/src/main/java/safeluck/drive/evaluation/widget/StatusDialog.java              |    7 +
 app/src/main/res/layout/layout_project_collect.xml                                |  102 +++++++++-----
 13 files changed, 349 insertions(+), 50 deletions(-)

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 dd73720..a0f86e8 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
@@ -138,7 +138,7 @@
             if (listContainsSameValue(indexs)) {
                 MyLog.i(TAG, "sendSignalConfigsToRemote: 鏈夌浉鍚岀殑index锛屼笉鑳藉彂閫�" + gson.toJson(signalConfiglist))
             } else {
-                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.SEND_CONFIG_SIGNAL, gson.toJson(signalConfiglist))
+//                AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.SEND_CONFIG_SIGNAL, gson.toJson(signalConfiglist))
             }
         }
     }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java
index a1a0854..17f0b8a 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java
@@ -17,6 +17,15 @@
     @PrimaryKey(autoGenerate = true)
     private int id;
     private String routeName;
+    private int currentCollectFlag;//1-褰撳墠姝e湪閲� ,鏁村紶琛ㄥ敮涓�锛屽彧鏈変竴涓嚎璺澶勪簬閲囬泦褰撲腑
+
+    public int getCurrentCollectFlag() {
+        return currentCollectFlag;
+    }
+
+    public void setCurrentCollectFlag(int currentCollectFlag) {
+        this.currentCollectFlag = currentCollectFlag;
+    }
 
     public int getId() {
         return id;
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
index f7b18d1..634e818 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java
@@ -19,6 +19,18 @@
 public interface RouteBeanDao {
     @Query("SELECT * FROM RouteBean")
     LiveData<List<RouteBean>> getAllRoutes();
+    @Query("SELECT * FROM RouteBean where currentCollectFlag=1")
+    RouteBean getCurrRouteBean();
+
+    //鏇存柊鏁村紶琛ㄧ殑 閲囬泦鏍囧織
+
+    @Query("UPDATE RouteBean SET currentCollectFlag=0 ")
+    void setCurrtentNotCollectFlag();
+
+    //鏇存柊鏌愪釜id鐨勯噰闆嗘爣蹇�
+
+    @Query("UPDATE RouteBean SET currentCollectFlag=1 where routeName=:name ")
+    void setCurrtentFlagWithName(String name);
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     void insertRouteBean(RouteBean routeBean);
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 37e4593..7abecf5 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
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.DB.route;
 
 import android.app.Application;
+import android.text.TextUtils;
 
 import androidx.lifecycle.LiveData;
 
@@ -72,4 +73,15 @@
     public LiveData<List<RouteBean>> getAllRouteBeans() {
         return routeBeans;
     }
+
+    public void updateCurrCollectFlag(String name) {
+        WorkRoomDataBase.dataBaseWriteExecutor.execute(()->{
+
+            routeBeanDao.setCurrtentNotCollectFlag();
+            if (!TextUtils.isEmpty(name)){
+
+                routeBeanDao.setCurrtentFlagWithName(name);
+            }
+        });
+    }
 }
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 3387e3e..142476d 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
@@ -49,5 +49,7 @@
     }
 
 
-
+    public void updateCurrCollectFlag(String name) {
+        workRepository.updateCurrCollectFlag(name);
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java
index 2541220..3dfe185 100644
--- a/app/src/main/java/safeluck/drive/evaluation/app.java
+++ b/app/src/main/java/safeluck/drive/evaluation/app.java
@@ -180,7 +180,10 @@
 //                CEventCenter.dispatchEvent(Constant.BIND_RTKCONFIG_TOPIC,cmd,0,"");
                 break;
             case Constant.JUDGE_INFO:
-
+                if (ExamPlatformData.getInstance().getTrainingMode()==ExamPlatformData.ROUTE_MODE){
+                    MyLog.i(TAG,"閲囬泦妯″紡涓嶆帴鍙楄瘎鍒ゆ秷鎭�");
+                    return;
+                }
                 if(!TextUtils.isEmpty(json)){
                     final JKMessage0203 jkMessage0203 = new JKMessage0203();
 
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 754d143..ba47c06 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -22,6 +22,7 @@
 import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker;
 import safeluck.drive.evaluation.app;
 import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
+import safeluck.drive.evaluation.routecollect.bean.RoadInfo;
 import safeluck.drive.evaluation.util.SPUtils;
 import safeluck.drive.evaluation.viewmodels.ExamPlatformModel;
 import safeluck.drive.evaluation.viewmodels.MainViewModel;
@@ -34,6 +35,25 @@
     public static final int PERSON_TYPE_STU = 1;//浜哄憳绫诲瀷涓哄鍛�
     public static final int COACH_ID = 1002;//鏁欑粌鏁版嵁搴撹〃閲岄潰鐨勫敮涓�id
     public static final int STU_ID = 1001;//瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮涓�id
+
+
+
+    //涓�id瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮
+    public static final int  ROAD_ITEM_NONE = 0;
+    //涓�id瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮
+    public static final int  ROAD_ITEM_CHANGE_LANE        = 1;
+    //涓�id瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮
+    public static final int  ROAD_ITEM_OVERTAKE           = 2;
+    //涓�id瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮
+    public static final int  ROAD_ITEM_STRAIGHT           = 3;
+    //涓�id瀛﹀憳鏁版嵁搴撹〃閲岄潰鐨勫敮
+    public static final int  ROAD_ITEM_OPERATE_GEAR       = 4;
+    public static final int  ROAD_ITEM_START_CAR                = 5;
+    public static final int  ROAD_ITEM_PARK_SIDE              = 6;
+    public static final int  ROAD_ITEM_CROSS_WALK              = 7;
+    public static final int  ROAD_ITEM_BUS_AREA               = 8;
+    public static final int  ROAD_ITEM_SCHOOL_AREA               = 9;
+
 
     public static final int MODE_NONE = 0;
     public static final int EXAM_TYPE_LUKAO_Light = 3;
@@ -159,6 +179,12 @@
     private String rtkIP = "47.93.80.84";
     public final int MAX_SCORE_DUCT = 20;
     private String coachID;//鏁欑粌鍛樿韩浠借瘉鍙风爜
+    //淇濆瓨閲囬泦妯″紡涓嬬殑閬撹矾淇℃伅
+    private RoadInfo roadInfo;
+
+    //褰撳墠閲囬泦绾胯矾鐨勫悕绉�
+    private String routeLineName;
+    private int routeItem= ROAD_ITEM_NONE;
 
     public static ExamPlatformData getInstance() {
         return ourInstance;
@@ -480,4 +506,32 @@
             mapInfoHeads.put(mapHeadInfo.getType(),mapHeadInfo);
         SPUtils.saveHashMap(mapInfoHeads,app.getAppContext());
     }
+
+    public void setRouteCollectRoadInfo(RoadInfo roadInfo) {
+        this.roadInfo = roadInfo;
+    }
+
+    public RoadInfo getRouteCollectRoadInfo() {
+        return roadInfo;
+    }
+
+    public void setRouteCollectLineName(String string) {
+        this.routeLineName = string;
+    }
+
+    public String getRouteLineName(){
+        return routeLineName;
+    }
+
+    /**
+     * 杩斿洖绾胯矾閲囬泦涓綋鍓嶉噰闆嗙殑椤圭洰
+     * @return
+     */
+    public int getCurrRouteItem() {
+        return routeItem;
+    }
+
+    public void setCurrRouteItem(int roadItemChangeLane) {
+        this.routeItem = roadItemChangeLane;
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
index bdc68e7..7726cb3 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SignalConfigFragment.java
@@ -119,7 +119,7 @@
                 Toast.makeText(_mActivity, "鍙戦�佷俊鍙烽厤缃�", Toast.LENGTH_SHORT).show();
                 CThreadPoolExecutor.runInBackground(()->{
                     MyLog.i("click鏃堕棿锛屽彂閫佷俊鍙�");
-                    DataInitKt.sendSignalConfigToRemote(app.getAppContext());
+//                    DataInitKt.sendSignalConfigToRemote(app.getAppContext());
                 });
 
                 break;
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 1d378da..7c5be3e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -7,15 +7,11 @@
 
 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;
-import androidx.work.WorkManager;
 
 import android.os.Handler;
 import android.os.Message;
-import android.text.Html;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.TextUtils;
@@ -30,8 +26,7 @@
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.ListView;
-import android.widget.RelativeLayout;
-import android.widget.TableRow;
+import android.widget.ScrollView;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -107,6 +102,8 @@
 
     private static final String TAG = TrainFragment.class.getSimpleName();
     private static final int ROUTE_COLLECT = 5;//绾胯矾閲囬泦鏍囧織
+    private RouteBean currRouteBean;
+    private ScrollView scrollView;
 
 
     public static SupportFragment newInstance() {
@@ -131,6 +128,11 @@
     private static final int ADD_DATA = 1;
     private TextView tv_speed,tv_total_score,tv_name
             ,tv_start_time,tv_coach_name;
+
+    //涓昏鐢ㄦ潵灞曠ず绾胯矾閲囬泦鏃剁殑淇℃伅
+    private TextView tv_route_collect_info;
+    private StringBuilder stringBuilder = new StringBuilder();
+
     private double speed=0.0;
     private ImageView iv_head,iv_coach_head;
     WokViewModel wokViewModel;
@@ -143,6 +145,12 @@
     private String content;//鐢ㄤ互鐢熸垚浜岀淮鐮佺殑鍐呭
 
     RouteCollectController routeCollectController;
+
+    //瑕佹彃鍏ユ暟鎹簱鐨勮矾鍙d俊鎭�
+    private RouteCross routeCross;
+
+    //瑕佹彃鍏ユ暟鎹簱鐨勮Е鍙戠嚎淇℃伅
+    private RouteTriggerLine routeTriggerLine;
 
 private List<Integer> btn_ids = new ArrayList<Integer>();
 private HashMap<String,Integer> routeCollect_btn_ids = new HashMap<>();
@@ -375,6 +383,7 @@
 
         }else{
             if (exam_type == ROUTE_COLLECT){
+
                 items_score.setVisibility(View.GONE);
                 items.setVisibility(View.GONE);
                 route_collect.setVisibility(View.VISIBLE);
@@ -397,6 +406,17 @@
 
                     mRouteBeans.clear();
                 if (routeBeans.size()>0){
+                    for (int i = 0; i < routeBeans.size(); i++) {
+                        if (routeBeans.get(i).getCurrentCollectFlag()==1){
+                            currRouteBean = routeBeans.get(i);
+                            ExamPlatformData.getInstance().setRouteCollectLineName(currRouteBean.getRouteName());
+                            stringBuilder.delete(0,stringBuilder.length());
+                            stringBuilder.append("褰撳墠閲囬泦绾胯矾鍚嶇О锛�"+currRouteBean.getRouteName());
+                            stringBuilder.append("\n");
+                            tv_route_collect_info.setText(stringBuilder.toString());
+                            break;
+                        }
+                    }
                     mRouteBeans.addAll(routeBeans);
                 }
             }
@@ -553,6 +573,8 @@
 
 
     private void initView(View view) {
+
+        tv_route_collect_info = view.findViewById(R.id.tv_route_info);
         routeCollectController = new RouteCollectController(this);
         items = view.findViewById(R.id.items);
         items_score=view.findViewById(R.id.items_score);
@@ -681,10 +703,12 @@
                                             if (string.equalsIgnoreCase(bean.getRouteName())){
                                                 //鏈夐噸鍚嶇殑绾胯矾锛屾彁绀虹敤鎴峰苟涓嶅紑鍚嚎璺噰闆�
                                                 Toast.makeText(_mActivity, "缁х画閲囬泦"+bean.getRouteName(), Toast.LENGTH_SHORT).show();
+                                                routeLineViewModel.updateCurrCollectFlag(string);
                                                 flag = true;
                                                 break;
                                             }
                                         }
+
                                         Toast.makeText(_mActivity, "绾胯矾閲囬泦", Toast.LENGTH_SHORT).show();
                                         ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.ROUTE_MODE);
                                         exam_type = 5;
@@ -693,8 +717,11 @@
                                         items_score.setVisibility(View.GONE);
                                         route_collect.setVisibility(View.VISIBLE);
                                         if (!flag){
+
                                             RouteBean routeBean = new RouteBean();
                                             routeBean.setRouteName(string);
+                                            routeBean.setCurrentCollectFlag(1);
+                                            ExamPlatformData.getInstance().setRouteCollectLineName(string);
                                             routeLineViewModel.insertRouteBean(routeBean);
 
                                         }
@@ -715,7 +742,7 @@
                     if (exam_type == ROUTE_COLLECT){
 
                         Toast.makeText(_mActivity, "缁撴潫閲囬泦", Toast.LENGTH_SHORT).show();
-
+                        routeLineViewModel.updateCurrCollectFlag("");
                         ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
                         exam_type = 0;
                         examStatusViewModel.updateStartExam(exam_type);
@@ -791,6 +818,34 @@
                     Map.Entry<String, Integer> next = iterator.next();
                     if (next.getValue()== v.getId()){
                 routeCollectController.startCollect();
+                switch (next.getKey()){
+                    case "瓒呰溅":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_OVERTAKE);
+                        break;
+                        case "鍙樻洿杞﹂亾":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_CHANGE_LANE);
+                        break;
+                        case "鐩寸嚎琛岄┒":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_STRAIGHT);
+                        break;
+                        case "鍔犲噺妗�":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_OPERATE_GEAR);
+                        break;
+                        case "闈犺竟鍋滆溅":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_PARK_SIDE);
+                        break;
+                        case "閫氳繃浜鸿妯亾":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_CROSS_WALK);
+                        break;
+                        case "閫氳繃瀛︽牎鍖哄煙":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_SCHOOL_AREA);
+                        break;
+                        case "閫氳繃鍏叡姹借溅绔�":
+                        ExamPlatformData.getInstance().setCurrRouteItem(ExamPlatformData.ROAD_ITEM_BUS_AREA);
+                        break;
+                }
+                        stringBuilder.append("褰撳墠閲囬泦椤圭洰锛�"+next.getKey());
+                        stringBuilder.append("\n");
                 Toast.makeText(_mActivity, String.format("鐐瑰嚮浜�%s",next.getKey()), Toast.LENGTH_SHORT).show();
                 break;
                     }
@@ -1050,26 +1105,128 @@
     @Override
     public void beginCollectView() {
         Log.i(TAG,"BIND_RTK_INFO_MAP");
+        CThreadPoolExecutor.runOnMainThread(()->{
+            StatusDialog.with(_mActivity).setType(StatusDialog.Type.PROGRESS).setCancelable(true).show();
+        });
+
     }
 
     @Override
     public void endCollectView() {
         Log.i(TAG,"endCollectView");
+        CThreadPoolExecutor.runOnMainThread(()->{
+//            StatusDialog.with(_mActivity).setType(StatusDialog.Type.PROGRESS).dismiss();
+        });
+
         routeCollectController.endCollect();
     }
 
     @Override
     public void routeItem(CollectPointResult collectPointResult) {
         Log.i(TAG,String.format("x=%f,y=%f",collectPointResult.getX(),collectPointResult.getY()));
+        RoadInfo roadInfo = ExamPlatformData.getInstance().getRouteCollectRoadInfo();
+
+        if (roadInfo != null && roadInfo.getStatus()==1){
+            Log.i(TAG,"鍦ㄦ煇涓矾閲岄潰"+roadInfo.getRoad_id());
+            routeTriggerLine.setX(collectPointResult.getX());
+            routeTriggerLine.setY(collectPointResult.getY());
+            routeTriggerLine.setType(ExamPlatformData.getInstance().getCurrRouteItem());
+            routeTriggerLine.setRoad(roadInfo.getRoad_id());
+            routeTriggerLine.setRouteline_id(currRouteBean.getId());
+            routeLineViewModel.insertRouteTriggerLine(routeTriggerLine);
+        }
+        stringBuilder.append(String.format("x=%f,y=%f",collectPointResult.getX(),collectPointResult.getY()));
+        stringBuilder.append("\n");
+        showRouteCollectInfoText();
+
     }
 
+    private void showRouteCollectInfoText(){
+        CThreadPoolExecutor.runOnMainThread(new Runnable() {
+            @Override
+            public void run() {
+                tv_route_collect_info.setText(stringBuilder.toString());
+            }
+        });
+    }
     @Override
     public void roadinfo(RoadInfo roadInfo) {
-        
+            Log.i(TAG,String.format("閬撹矾淇℃伅%s",roadInfo.toString()));
+            //閬撹矾淇℃伅鏄病鏈夎繘琛屾湰鍦颁繚瀛樼殑锛屽鏋滃穿婧冪殑璇濓紝灏辨湁闂
+            ExamPlatformData.getInstance().setRouteCollectRoadInfo(roadInfo);
+            stringBuilder.append(String.format("閬撹矾淇℃伅%s",roadInfo.toString()));
+            stringBuilder.append("\n");
+            showRouteCollectInfoText();
     }
 
     @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());
+                if (roadCrossInfo.getStatus() == 1){
+                    CThreadPoolExecutor.runOnMainThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            SelectDialogThree selectDialogThree = SelectDialogThree.newInstance("璺彛鐩磋","璺彛宸﹁浆寮�","璺彛鍙宠浆寮�","璺彛鎺夊ご");
+                            selectDialogThree.show(getFragmentManager(),"aaa");
+                            selectDialogThree.setSelectedListener(new SelectDialogThree.OnSelectedListener() {
+                                @Override
+                                public void makeYourChoice(int res) {
+                                    switch (res){
+                                        case 0:
+                                            //鐩磋
+                                            routeCross.setActive(1);
+
+                                            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病鏈夊仛鍑洪�夋嫨");
+                                    }
+                                }
+                            });
+                        }
+                    });
+                }
+
+
+            }
+        });
+
+
+    }
+
+    private int getRouteLine_id() {
+
+        for (int i = 0; i < mRouteBeans.size(); i++){
+            if (mRouteBeans.get(i).getRouteName().equalsIgnoreCase(ExamPlatformData.getInstance().getRouteLineName())){
+                return mRouteBeans.get(i).getId();
+            }
+        }
+        return -1;
     }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadCrossInfo.java b/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadCrossInfo.java
index d04a0f4..e7e6751 100644
--- a/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadCrossInfo.java
+++ b/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadCrossInfo.java
@@ -41,4 +41,13 @@
     public void setStatus(int status) {
         this.status = status;
     }
+
+    @Override
+    public String toString() {
+        return "RoadCrossInfo{" +
+                "road_id=" + road_id +
+                ", crossing_index=" + crossing_index +
+                ", status=" + status +
+                '}';
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadInfo.java b/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadInfo.java
index cd63083..699cbed 100644
--- a/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadInfo.java
+++ b/app/src/main/java/safeluck/drive/evaluation/routecollect/bean/RoadInfo.java
@@ -31,4 +31,12 @@
     public void setStatus(int status) {
         this.status = status;
     }
+
+    @Override
+    public String toString() {
+        return "RoadInfo{" +
+                "road_id=" + road_id +
+                ", status=" + status +
+                '}';
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/widget/StatusDialog.java b/app/src/main/java/safeluck/drive/evaluation/widget/StatusDialog.java
index 272820f..229e320 100644
--- a/app/src/main/java/safeluck/drive/evaluation/widget/StatusDialog.java
+++ b/app/src/main/java/safeluck/drive/evaluation/widget/StatusDialog.java
@@ -167,5 +167,12 @@
             return progressDialog;
         }
 
+        public void dismiss() {
+            if (P.type == -1) {
+                throw new IllegalArgumentException("Please set type");
+            }
+            progressDialog.dismiss();
+
+        }
     }
 }
diff --git a/app/src/main/res/layout/layout_project_collect.xml b/app/src/main/res/layout/layout_project_collect.xml
index 9d2d903..cb030bc 100644
--- a/app/src/main/res/layout/layout_project_collect.xml
+++ b/app/src/main/res/layout/layout_project_collect.xml
@@ -50,29 +50,30 @@
             android:background="@drawable/btn_item_collect_bg"
             />
 
-        <Button android:text="@string/turn_around"
-            android:layout_marginTop="@dimen/ui_margin_10dp"
-            android:layout_columnWeight="1"
-            android:layout_rowWeight="1"
-            android:id="@+id/btn_route_3"
+        <Button android:text="@string/crosswalk"
             android:layout_marginLeft="@dimen/ui_margin_20dp"
             android:layout_marginRight="@dimen/ui_margin_20dp"
             android:layout_marginBottom="10dp"
             android:textColor="@color/color_ffffff"
-            android:background="@drawable/btn_item_collect_bg"
-            />
+            android:layout_width="wrap_content"
+            android:layout_columnWeight="1"
+            android:layout_marginTop="@dimen/ui_margin_10dp"
 
-        <Button android:text="@string/by_crossing"
-            android:layout_marginTop="@dimen/ui_margin_10dp"
+            android:layout_rowWeight="1"
+            android:id="@+id/btn_route_12"
+            android:background="@drawable/btn_item_collect_bg"/>
+
+        <Button android:text="@string/straight_line"
             android:textColor="@color/color_ffffff"
-            android:layout_marginLeft="@dimen/ui_margin_20dp"
-            android:id="@+id/btn_route_4"
-            android:layout_marginRight="@dimen/ui_margin_20dp"
-            android:layout_marginBottom="10dp"
-            android:background="@drawable/btn_item_collect_bg"
             android:layout_columnWeight="1"
             android:layout_rowWeight="1"
-            />
+            android:layout_marginTop="@dimen/ui_margin_10dp"
+
+            android:layout_marginLeft="@dimen/ui_margin_20dp"
+            android:layout_marginRight="@dimen/ui_margin_20dp"
+            android:layout_marginBottom="10dp"
+            android:id="@+id/btn_route_13"
+            android:background="@drawable/btn_item_collect_bg"/>
 
         <Button android:text="@string/lane_change"
             android:layout_marginTop="@dimen/ui_margin_10dp"
@@ -86,16 +87,6 @@
             android:background="@drawable/btn_item_collect_bg"
      />
 
-        <Button android:text="@string/side_by_side"
-            android:layout_columnWeight="1"
-            android:layout_rowWeight="1"
-            android:layout_marginLeft="@dimen/ui_margin_20dp"
-            android:layout_marginRight="@dimen/ui_margin_20dp"
-            android:id="@+id/btn_route_6"
-            android:layout_marginBottom="10dp"
-            android:textColor="@color/color_ffffff"
-            android:background="@drawable/btn_item_collect_bg"
-            />
 
         <Button android:text="@string/over_take"
             android:layout_marginLeft="@dimen/ui_margin_20dp"
@@ -127,11 +118,23 @@
             android:layout_rowWeight="1"
             android:background="@drawable/btn_item_collect_bg"/>
 
+        <Button android:text="@string/side_by_side"
+            android:layout_columnWeight="1"
+            android:layout_rowWeight="1"
+            android:layout_marginLeft="@dimen/ui_margin_20dp"
+            android:layout_marginRight="@dimen/ui_margin_20dp"
+            android:id="@+id/btn_route_6"
+            android:visibility="gone"
+            android:layout_marginBottom="10dp"
+            android:textColor="@color/color_ffffff"
+            android:background="@drawable/btn_item_collect_bg"
+            />
         <Button android:text="@string/junction_left"
             android:layout_marginLeft="@dimen/ui_margin_20dp"
             android:layout_marginRight="@dimen/ui_margin_20dp"
             android:layout_marginBottom="10dp"
             android:textColor="@color/color_ffffff"
+            android:visibility="gone"
             android:id="@+id/btn_route_10"
             android:layout_columnWeight="1"
             android:layout_rowWeight="1"
@@ -142,33 +145,56 @@
             android:layout_marginRight="@dimen/ui_margin_20dp"
             android:layout_marginBottom="10dp"
             android:textColor="@color/color_ffffff"
+            android:visibility="gone"
             android:layout_columnWeight="1"
             android:id="@+id/btn_route_11"
             android:layout_rowWeight="1"
             android:background="@drawable/btn_item_collect_bg"/>
-
-        <Button android:text="@string/crosswalk"
+        <Button android:text="@string/turn_around"
+            android:layout_columnWeight="1"
+            android:layout_rowWeight="1"
+            android:id="@+id/btn_route_3"
+            android:visibility="gone"
             android:layout_marginLeft="@dimen/ui_margin_20dp"
             android:layout_marginRight="@dimen/ui_margin_20dp"
             android:layout_marginBottom="10dp"
             android:textColor="@color/color_ffffff"
-            android:layout_width="wrap_content"
-            android:layout_columnWeight="1"
-            android:layout_rowWeight="1"
-            android:id="@+id/btn_route_12"
-            android:background="@drawable/btn_item_collect_bg"/>
+            android:background="@drawable/btn_item_collect_bg"
+            />
 
-        <Button android:text="@string/straight_line"
+        <Button android:text="@string/by_crossing"
+
             android:textColor="@color/color_ffffff"
-            android:layout_columnWeight="1"
-            android:layout_rowWeight="1"
             android:layout_marginLeft="@dimen/ui_margin_20dp"
+            android:id="@+id/btn_route_4"
+            android:visibility="gone"
             android:layout_marginRight="@dimen/ui_margin_20dp"
             android:layout_marginBottom="10dp"
-            android:id="@+id/btn_route_13"
-            android:background="@drawable/btn_item_collect_bg"/>
+            android:background="@drawable/btn_item_collect_bg"
+            android:layout_columnWeight="1"
+            android:layout_rowWeight="1"
+            />
+
     </GridLayout>
-
+<ScrollView
+    android:layout_width="380dp"
+    android:id="@+id/scrollview"
+    android:layout_height="match_parent">
+    <TextView
+        android:layout_width="380dp"
+        android:layout_height="wrap_content"
+        android:background="@drawable/stu_score_title"
+        android:id="@+id/tv_route_info"
+        android:gravity="center_vertical"
+        android:descendantFocusability="blocksDescendants"
+        android:textColor="#FFFFFF"
+        android:focusable="false"
+        android:focusableInTouchMode="false"
+        android:drawablePadding="5dp"
+        android:paddingLeft="19dp"
+        android:textSize="@dimen/network_train_textsize22px"
+        android:text="椤圭洰鍒楄〃"/>
+</ScrollView>
 
 </LinearLayout>
 

--
Gitblit v1.8.0