加入删除线路功能;选择好线路之后才开始 训练;数据库表增加删除功能
6个文件已修改
173 ■■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteBeanDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteCrossDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/route/RouteTriggerLineDao.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/adapter/RouteSelectAdapter.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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);
}
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);
}
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");
        });
    }
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");
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();
                    }
                });
            }