From 7c3b8b6084bab565c3af60026a11636cdf65a051 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期四, 17 九月 2020 11:41:11 +0800
Subject: [PATCH] 完善开始训练(道路)选择线路、发送消息等;开始采集后输入线路名称,检查有无重名;重名提示;

---
 app/src/main/assets/routeline.json                                            |   51 ++++++++++
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBean.java           |   15 ++
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java       |  185 +++++++++++++++++++++++-------------
 app/src/main/java/safeluck/drive/evaluation/customview/SelectMutliDialog.java |   29 ++---
 app/src/main/java/safeluck/drive/evaluation/customview/MyInputDialog.kt       |    2 
 5 files changed, 196 insertions(+), 86 deletions(-)

diff --git a/app/src/main/assets/routeline.json b/app/src/main/assets/routeline.json
new file mode 100644
index 0000000..2022663
--- /dev/null
+++ b/app/src/main/assets/routeline.json
@@ -0,0 +1,51 @@
+[
+  {
+    "name":"绾胯矾涓�",
+    "crossing_active":[
+      {
+        "road":2,
+        "idx":0,
+        "active":1
+      },
+      {
+        "road":2,
+        "idx":1,
+        "active":1
+      }
+    ],
+    "trigger_line":[
+      {
+        "x_y":[
+          333.365,
+          696.3354
+        ],
+        "road":2,
+        "type":2
+      },
+      {
+        "x_y":[
+          333.365,
+          696.3354
+        ],
+        "road":5,
+        "type":4
+      },
+      {
+        "x_y":[
+          333.365,
+          696.3354
+        ],
+        "road":3,
+        "type":3
+      },
+      {
+        "x_y":[
+          333.365,
+          696.3354
+        ],
+        "road":6,
+        "type":1
+      }
+    ]
+  }
+]
\ No newline at end of file
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 4fd42c5..a1a0854 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
@@ -1,5 +1,8 @@
 package safeluck.drive.evaluation.DB.route;
 
+import android.os.Parcel;
+import android.os.Parcelable;
+
 import androidx.room.Entity;
 import androidx.room.PrimaryKey;
 
@@ -10,7 +13,7 @@
  * All Rights Saved! Chongqing AnYun Tech co. LTD
  */
 @Entity
-public class RouteBean {
+public class RouteBean implements Parcelable {
     @PrimaryKey(autoGenerate = true)
     private int id;
     private String routeName;
@@ -30,4 +33,14 @@
     public void setRouteName(String routeName) {
         this.routeName = routeName;
     }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+
+    }
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/MyInputDialog.kt b/app/src/main/java/safeluck/drive/evaluation/customview/MyInputDialog.kt
index ae84c75..8e176b5 100644
--- a/app/src/main/java/safeluck/drive/evaluation/customview/MyInputDialog.kt
+++ b/app/src/main/java/safeluck/drive/evaluation/customview/MyInputDialog.kt
@@ -20,7 +20,7 @@
 import safeluck.drive.evaluation.R
 
 /**
- *
+ *甯︽湁杈撳叆妗嗙殑dialog
  * @ProjectName: DriveJudge
  * @Package: safeluck.drive.evaluation.customview
  * @ClassName: MyDialog
diff --git a/app/src/main/java/safeluck/drive/evaluation/customview/SelectMutliDialog.java b/app/src/main/java/safeluck/drive/evaluation/customview/SelectMutliDialog.java
index d78d502..c93f1b7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/customview/SelectMutliDialog.java
+++ b/app/src/main/java/safeluck/drive/evaluation/customview/SelectMutliDialog.java
@@ -5,6 +5,7 @@
 import android.graphics.drawable.ColorDrawable;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Parcelable;
 import android.util.DisplayMetrics;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -58,7 +59,7 @@
     public static final int SELECT_NONE = -1;
     private int result = SELECT_NONE;
 
-    private ArrayList<String> stringArrayList;
+    private List<RouteBean> routeBeanList;
     private RecyclerView mRecy;
     private RouteSelectAdapter mAdapter;
 
@@ -82,8 +83,8 @@
         }
         View view = inflater.inflate(R.layout.layout_select_dlg_multi,container,false);
         Bundle bundle = getArguments();
-        if (bundle != null){
-            stringArrayList = bundle.getStringArrayList("content");
+        if (bundle != null) {
+            routeBeanList = bundle.getParcelableArrayList("content");
         }
         initView(view);
         return view;
@@ -101,6 +102,7 @@
             @Override
             public void onItemClick(int position, View view) {
                 Toast.makeText(getActivity(), position+"", Toast.LENGTH_SHORT).show();
+                result = routeBeanList.get(position).getId();
                 if (onSelectedListener != null){
                     onSelectedListener.makeYourChoice(result);
                 }
@@ -112,15 +114,8 @@
             @Override
             public void run() {
                 // Init Datas
-                ArrayList<String> menues = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.array_large_item_menu)));
-                List<RouteBean> items = new ArrayList<>();
-                for (int i = 0; i < menues.size(); i++) {
-                    RouteBean item  = new RouteBean();
-                    item.setRouteName(menues.get(i));
-                    item.setId(i);
-                    items.add(item);
-                }
-                mAdapter.setDatas(items);
+
+                mAdapter.setDatas(routeBeanList);
             }
         });
 //        button = view.findViewById(R.id.btn_sure_);
@@ -164,16 +159,14 @@
 
 
 
-    public static SelectMutliDialog newInstance(String... args){
+    public static SelectMutliDialog newInstance( List<RouteBean> args){
 
         SelectMutliDialog sle = new SelectMutliDialog();
-        if (args != null && args.length>=2){
-            List<String> strs = Arrays.asList(args);
-            ArrayList<String> list = new ArrayList<>(strs);
+
             Bundle bundle = new Bundle();
-            bundle.putStringArrayList("content",list);
+            bundle.putParcelableArrayList("content", (ArrayList<? extends Parcelable>) args);
             sle.setArguments(bundle);
-        }
+
 
 
         return sle;
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 700c286..d2b8b6d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -40,6 +40,7 @@
 import com.google.gson.Gson;
 
 
+import org.jetbrains.annotations.NotNull;
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -632,73 +633,55 @@
                             }else if (res == SelectDialogThree.THIRD){
                                 sendJK0202(4);
                             }else{
-                                Toast.makeText(_mActivity, "绾胯矾閲囬泦", Toast.LENGTH_SHORT).show();
-                                ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
-                                exam_type = 5;
-                                examStatusViewModel.updateStartExam(exam_type);
-                                items.setVisibility(View.GONE);
-                                items_score.setVisibility(View.GONE);
-                                route_collect.setVisibility(View.VISIBLE);
+                                MyInputDialog myDialog = MyInputDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
+
+
+
+                                myDialog.show(getFragmentManager(),"MyInputDialog");
+
+                                myDialog.setOnClick(new MyInputDialog.MyOnClickListener() {
+                                    @Override
+                                    public void onSure(@NotNull String string) {
+                                        //杈撳叆绾胯矾鍚嶇О涔嬪悗 鐐瑰嚮纭畾鎵嶈兘璁や负鏄紑濮嬮噰闆�
+                                        boolean flag = false;//鏍囪鏄惁鏈夐噸鍚嶇殑绾胯矾锛屽鏋滄湁鍒欎负true
+                                        for (RouteBean bean:mRouteBeans){
+                                            if (string.equalsIgnoreCase(bean.getRouteName())){
+                                                //鏈夐噸鍚嶇殑绾胯矾锛屾彁绀虹敤鎴峰苟涓嶅紑鍚嚎璺噰闆�
+                                                Toast.makeText(_mActivity, "璇ョ嚎璺悕绉板凡琚娇鐢紝璇锋洿鎹�", Toast.LENGTH_SHORT).show();
+                                                flag = true;
+                                                break;
+                                            }
+                                        }
+                                        if (!flag){
+                                            RouteBean routeBean = new RouteBean();
+                                            routeBean.setRouteName(string);
+                                            routeLineViewModel.insertRouteBean(routeBean);
+                                            Toast.makeText(_mActivity, "绾胯矾閲囬泦", Toast.LENGTH_SHORT).show();
+                                            ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
+                                            exam_type = 5;
+                                            examStatusViewModel.updateStartExam(exam_type);
+                                            items.setVisibility(View.GONE);
+                                            items_score.setVisibility(View.GONE);
+                                            route_collect.setVisibility(View.VISIBLE);
+                                        }
+
+                                    }
+
+                                    @Override
+                                    public void onCancle() {
+
+                                    }
+                                });
+
                             }
                         }
                     });
                     selectDialog.show(getFragmentManager(),"selectdialog");
                 }else{
                     if (exam_type == ROUTE_COLLECT){
-                        List<RouteCollect.CrossingActiveBean> crossingActiveBeans = new ArrayList<>();
-                        List<RouteCollect.TriggerLineBean> triggerLineBeans = new ArrayList<>();
-                        List<Double> xy = new ArrayList<>();
-                        RemoteRouteCollect remoteRouteCollect = new RemoteRouteCollect();
-                        RouteCollect routeCollect = new RouteCollect();
-                        List<RouteCollect> routeCollects = new ArrayList<>();
+
                         Toast.makeText(_mActivity, "缁撴潫閲囬泦", Toast.LENGTH_SHORT).show();
-                        CThreadPoolExecutor.runInBackground(new Runnable() {
-                            @Override
-                            public void run() {
-                                for (RouteBean routeBean:mRouteBeans){
-                                    int id = routeBean.getId();
 
-                                    routeCollect.setName(routeBean.getRouteName());
-                                    List<RouteTriggerLine> routeTriggerLines = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteTriggerLineDao().getAllRouteTriggerLine(id);
-                                    List<RouteCross> routeCrosses = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteCrooDao().getAllRouteCross(id);
-                                    for (RouteTriggerLine line:routeTriggerLines){
-                                        RouteCollect.TriggerLineBean triggerLineBean = new RouteCollect.TriggerLineBean();
-                                        int road = line.getRoad();
-                                        int type = line.getType();
-
-                                        double x = line.getX();
-                                        double y = line.getY();
-                                        xy.clear();
-                                        xy.add(x);
-                                        xy.add(y);
-                                        triggerLineBean.setRoad(road);
-                                        triggerLineBean.setType(type);
-                                        triggerLineBean.setX_y(xy);
-                                        triggerLineBeans.add(triggerLineBean);
-
-
-                                    }
-                                    routeCollect.setTrigger_line(triggerLineBeans);
-
-                                    for (RouteCross routeCross:routeCrosses){
-                                        int idx = routeCross.getIdx();
-                                        int road = routeCross.getRoad();
-                                        int active = routeCross.getActive();
-                                        RouteCollect.CrossingActiveBean crossingActiveBean = new RouteCollect.CrossingActiveBean();
-                                        crossingActiveBean.setActive(active);
-                                        crossingActiveBean.setIdx(idx);
-                                        crossingActiveBean.setRoad(road);
-                                        crossingActiveBeans.add(crossingActiveBean);
-                                    }
-                                    routeCollect.setCrossing_active(crossingActiveBeans);
-                                    routeCollects.add(routeCollect);
-
-                                }
-                                remoteRouteCollect.setScheme(routeCollects);
-                                String str = new Gson().toJson(remoteRouteCollect);
-                                Log.i(TAG,"json====="+str);
-                            }
-                        });
                         ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
                         exam_type = 0;
                         examStatusViewModel.updateStartExam(exam_type);
@@ -723,11 +706,7 @@
 //                startArcGisMapFragment(url);
 //                StatusDialog.with(_mActivity).setCancelable(true).setPrompt("鍔犺浇涓紝璇风◢鍚�...").setType(StatusDialog.Type.PROGRESS).show();
 
-                SelectMutliDialog myDialog = SelectMutliDialog.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
 
-
-
-                myDialog.show(getFragmentManager(),"mydialog");
                 break;
             case R.id.iv_head:
                 MyLog.i(TAG,"瀛﹀憳绛惧埌");
@@ -799,18 +778,27 @@
     }
 
     private void sendJK0202(int type) {
+
+        if (type==3|| type==4){
+
+            sendRouteLine();
+        }
+
         //闅愯棌閲囬泦椤圭洰
         items_score.setVisibility(View.VISIBLE);
         items.setVisibility(View.VISIBLE);
     route_collect.setVisibility(View.GONE);
-        final JKMessage0202 jkMessage0202 = new JKMessage0202();
+
         exam_type = type;
         ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
         ExamPlatformData.getInstance().setExamType(exam_type);
         examStatusViewModel.updateStartExam(exam_type);
-        sendExamJson(1,exam_type);
         ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
+    }
 
+    private void sendMessage() {
+        sendExamJson(1,exam_type);
+        final JKMessage0202 jkMessage0202 = new JKMessage0202();
         Date date = new Date();
         wokViewModel.updateBeginTime(date.getTime());
         jkMessage0202.timeBCD = date;
@@ -818,7 +806,7 @@
         jkMessage0202.stu_id = ExamPlatformData.getInstance().getID();
         jkMessage0202.coach_id = ExamPlatformData.getInstance().getCoachID();
         jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id();
-        if (type > ExamPlatformData.EXAM_TYPE_ChangKAO){
+        if (exam_type > ExamPlatformData.EXAM_TYPE_ChangKAO){
 
             jkMessage0202.curr_exam = 1;//  璺熺Щ鍔ㄧ珯鏈嶅姟瀹氫箟鐨勫満鑰冩槸2  锛屽钩鍙版槸0 锛�  绉诲姩绔欒矾鑰冩槸3 锛屽钩鍙版槸1
         }else{
@@ -829,6 +817,71 @@
         MessageProcessor.getInstance().sendMessage(jkMessage0202);
     }
 
+    private void sendRouteLine() {
+
+        SelectMutliDialog selectMutliDialog = SelectMutliDialog.newInstance(mRouteBeans);
+        selectMutliDialog.show(getFragmentManager(),"multidialog");
+        selectMutliDialog.setSelectedListener(new SelectMutliDialog.OnSelectedListener() {
+            @Override
+            public void makeYourChoice(int res) {
+
+                List<RouteCollect.CrossingActiveBean> crossingActiveBeans = new ArrayList<>();
+                List<RouteCollect.TriggerLineBean> triggerLineBeans = new ArrayList<>();
+                List<Double> xy = new ArrayList<>();
+                RemoteRouteCollect remoteRouteCollect = new RemoteRouteCollect();
+                RouteCollect routeCollect = new RouteCollect();
+                List<RouteCollect> routeCollects = new ArrayList<>();
+                int id = res;
+                CThreadPoolExecutor.runInBackground(new Runnable() {
+                    @Override
+                    public void run() {
+
+                            routeCollect.setName(mRouteBeans.get(id).getRouteName());
+                            List<RouteTriggerLine> routeTriggerLines = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteTriggerLineDao().getAllRouteTriggerLine(id);
+                            List<RouteCross> routeCrosses = WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getRouteCrooDao().getAllRouteCross(id);
+                            for (RouteTriggerLine line:routeTriggerLines){
+                                RouteCollect.TriggerLineBean triggerLineBean = new RouteCollect.TriggerLineBean();
+                                int road = line.getRoad();
+                                int type = line.getType();
+
+                                double x = line.getX();
+                                double y = line.getY();
+                                xy.clear();
+                                xy.add(x);
+                                xy.add(y);
+                                triggerLineBean.setRoad(road);
+                                triggerLineBean.setType(type);
+                                triggerLineBean.setX_y(xy);
+                                triggerLineBeans.add(triggerLineBean);
+
+
+                            }
+                            routeCollect.setTrigger_line(triggerLineBeans);
+
+                            for (RouteCross routeCross:routeCrosses){
+                                int idx = routeCross.getIdx();
+                                int road = routeCross.getRoad();
+                                int active = routeCross.getActive();
+                                RouteCollect.CrossingActiveBean crossingActiveBean = new RouteCollect.CrossingActiveBean();
+                                crossingActiveBean.setActive(active);
+                                crossingActiveBean.setIdx(idx);
+                                crossingActiveBean.setRoad(road);
+                                crossingActiveBeans.add(crossingActiveBean);
+                            }
+                            routeCollect.setCrossing_active(crossingActiveBeans);
+                            routeCollects.add(routeCollect);
+
+                        remoteRouteCollect.setScheme(routeCollects);
+                        String str = new Gson().toJson(remoteRouteCollect);
+                        Log.i(TAG,"json====="+str);
+                        //todo 鍙戦�佺嚎璺�
+                        sendMessage();
+                    }
+                });
+            }
+        });
+    }
+
     private void sendExamJson(int i,int type) {
         try {
 

--
Gitblit v1.8.0