From 12d8a62ad4e26b21d2abfe54bb5dab4eef6435f2 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期四, 17 九月 2020 14:51:02 +0800
Subject: [PATCH] 加入删除线路功能;选择好线路之后才开始 训练;数据库表增加删除功能

---
 app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java        |   38 ++++++------
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java        |    4 +
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java |    3 +
 app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java   |   31 +++++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java       |   94 ++++++++++++++++++-------------
 app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java       |    3 +
 6 files changed, 112 insertions(+), 61 deletions(-)

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 d6d7205..f7b18d1 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
@@ -2,6 +2,7 @@
 
 import androidx.lifecycle.LiveData;
 import androidx.room.Dao;
+import androidx.room.Delete;
 import androidx.room.Insert;
 import androidx.room.OnConflictStrategy;
 import androidx.room.Query;
@@ -21,4 +22,7 @@
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     void insertRouteBean(RouteBean routeBean);
+
+    @Delete
+    void deleteRouteBean(RouteBean item);
 }
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 2ca893d..b6dd6ca 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
@@ -20,4 +20,7 @@
     void insertRouteCross(RouteCross routeCross);
     @Query("SELECT * FROM RouteCross where routeline_id = :routeline_id")
     List<RouteCross> getAllRouteCross(int routeline_id);
+
+    @Query("DELETE FROM RouteCross where routeline_id=:id")
+    void deleteRouteCross(int id);
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java
index 767cdf4..bb2111e 100644
--- a/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java
@@ -21,4 +21,7 @@
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     void insertTriggerLine(RouteTriggerLine routeTriggerLine);
+
+    @Query("DELETE FROM ROUTETRIGGERLINE where routeline_id=:id")
+    void deleteRouteTriggerLine(int id);
 }
diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java
index bf4ec9c..21a9a65 100644
--- a/app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java
+++ b/app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java
@@ -7,15 +7,19 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.fragment.app.FragmentActivity;
 import androidx.recyclerview.widget.RecyclerView;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
 import safeluck.drive.evaluation.DB.route.RouteBean;
 import safeluck.drive.evaluation.R;
 import safeluck.drive.evaluation.bean.SysExamSettingLargeMenu;
+import safeluck.drive.evaluation.customview.MyDialog;
 import safeluck.drive.evaluation.listener.OnItemClickListener;
+import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 
 /**
  *
@@ -58,8 +62,31 @@
         RouteBean item = mItems.get(position);
         holder.tvTitle.setText(item.getRouteName());
         holder.iv_delete.setOnClickListener((v)->{
-            mItems.remove(item);
-            notifyDataSetChanged();
+            MyDialog myDialog = MyDialog.Companion.newInstance(String.format("纭畾瑕佸垹闄�%s鍚�?",item.getRouteName()));
+            myDialog.setOnClick(new MyDialog.MyOnClickListener() {
+                @Override
+                public void onSure() {
+                    mItems.remove(item);
+                    CThreadPoolExecutor.runInBackground(new Runnable() {
+                        @Override
+                        public void run() {
+                            //todo 闇�瑕佷紭鍖�
+                            //鍒犻櫎鐩稿叧椤圭洰
+                            WorkRoomDataBase.getWorkRoomDataBase(mContext.getApplicationContext()).getRouteBeanDao().deleteRouteBean(item);
+                            WorkRoomDataBase.getWorkRoomDataBase(mContext.getApplicationContext()).getRouteTriggerLineDao().deleteRouteTriggerLine(item.getId());
+                            WorkRoomDataBase.getWorkRoomDataBase(mContext.getApplicationContext()).getRouteCrooDao().deleteRouteCross(item.getId());
+
+                        }
+                    });
+                    notifyDataSetChanged();
+                }
+
+                @Override
+                public void onCancle() {
+
+                }
+            });
+        myDialog.show((((FragmentActivity)mContext).getSupportFragmentManager()),"xxx");
         });
 
     }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
index 5d1d90e..c5dd073 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -111,25 +111,25 @@
                 break;
             case R.id.exit_sys:
 
-//                MyDialog myDialog = MyDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
-//
-//                myDialog.setOnClick(new MyDialog.MyOnClickListener() {
-//                    @Override
-//                    public void onSure() {
-//                        AYSdk.getInstance().uninit();
-//                        _mActivity.finish();
-//                        System.exit(0);
-//
-//
-//                    }
-//
-//                    @Override
-//                    public void onCancle() {
-//
-//                    }
-//                });
-//
-//                myDialog.show(getFragmentManager(),"mydialog");
+                MyDialog myDialog = MyDialog.Companion.newInstance("鎮ㄥ皢閫�鍑虹郴缁�,璇风‘璁ゆ暟鎹凡淇濆瓨");
+
+                myDialog.setOnClick(new MyDialog.MyOnClickListener() {
+                    @Override
+                    public void onSure() {
+                        AYSdk.getInstance().uninit();
+                        _mActivity.finish();
+                        System.exit(0);
+
+
+                    }
+
+                    @Override
+                    public void onCancle() {
+
+                    }
+                });
+
+                myDialog.show(getFragmentManager(),"mydialog");
 
 
 
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 d2b8b6d..eb04c8d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -384,8 +384,9 @@
         routeLineViewModel.getRouteBeans().observe(this, new Observer<List<RouteBean>>() {
             @Override
             public void onChanged(List<RouteBean> routeBeans) {
-                if (routeBeans.size()>0){
+
                     mRouteBeans.clear();
+                if (routeBeans.size()>0){
                     mRouteBeans.addAll(routeBeans);
                 }
             }
@@ -779,19 +780,25 @@
 
     private void sendJK0202(int type) {
 
+        exam_type = type;
+
         if (type==3|| type==4){
 
             sendRouteLine();
+        }else{
+            changeUi(type);
         }
 
+    }
+
+    private void changeUi(int type) {
         //闅愯棌閲囬泦椤圭洰
         items_score.setVisibility(View.VISIBLE);
         items.setVisibility(View.VISIBLE);
-    route_collect.setVisibility(View.GONE);
-
-        exam_type = type;
-        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
+        route_collect.setVisibility(View.GONE);
         ExamPlatformData.getInstance().setExamType(exam_type);
+        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
+
         examStatusViewModel.updateStartExam(exam_type);
         ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�");
     }
@@ -832,50 +839,57 @@
                 RouteCollect routeCollect = new RouteCollect();
                 List<RouteCollect> routeCollects = new ArrayList<>();
                 int id = res;
+                changeUi(exam_type);
                 CThreadPoolExecutor.runInBackground(new Runnable() {
                     @Override
                     public void run() {
+                            for (RouteBean bean:mRouteBeans){
+                                if (id==bean.getId()){
 
-                            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();
+                                routeCollect.setName(bean.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);
+                                        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();
+                                    break;
+                                }
                             }
-                            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();
                     }
                 });
             }

--
Gitblit v1.8.0