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/fragment/TrainFragment.java |  173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 165 insertions(+), 8 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 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;
     }
 }

--
Gitblit v1.8.0