endian11
2020-09-21 8eef2d05a5e785ec0728e9ccbf8f9c4f672409cb
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -73,6 +73,7 @@
import safeluck.drive.evaluation.cEventCenter.CEventCenter;
import safeluck.drive.evaluation.cEventCenter.ICEventListener;
import safeluck.drive.evaluation.customview.MyDialog;
import safeluck.drive.evaluation.customview.MyInputDialog;
import safeluck.drive.evaluation.customview.QRCodeDialog;
import safeluck.drive.evaluation.customview.SelectDialog;
@@ -1165,62 +1166,66 @@
            //道路信息是没有进行本地保存的,如果崩溃的话,就有问题
            stringBuilder.append(String.format("道路信息%s",roadInfo.toString()));
            stringBuilder.append("\n");
        ExamPlatformData.getInstance().getTTS().speak(String.format("%s%d路",roadInfo.getStatus()==1?"进入":"退出",
                roadInfo.getRoad_id()));
            showRouteCollectInfoText();
    }
    SelectDialogThree roadCrossDialog;
    //标记是否已经插入了该路口方向 已经插入=true
    private boolean hasInsertRoadCrossDirect = false;
    @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());
                ExamPlatformData.getInstance().getTTS().speak(String.format("%s%d号路第%d个路口",roadCrossInfo.getStatus()==1?"进入":"退出",
                        roadCrossInfo.getRoad_id(),roadCrossInfo.getCrossing_index()+1));
                if (roadCrossInfo.getStatus() == 1){
                    List<RouteCross> roadCrosses = routeLineViewModel.getRoadCrosses(currRouteBean.getId());
                    routeCross = new RouteCross();
                    routeCross.setRouteline_id(currRouteBean.getId());
                    routeCross.setRoad(roadCrossInfo.getRoad_id());
                    routeCross.setIdx(roadCrossInfo.getCrossing_index());
                    CThreadPoolExecutor.runOnMainThread(new Runnable() {
                        @Override
                        public void run() {
                            roadCrossDialog = SelectDialogThree.newInstance("路口直行","路口左转弯","路口右转弯","路口掉头");
                            roadCrossDialog.show(getFragmentManager(),"aaa");
                            roadCrossDialog.setSelectedListener(new SelectDialogThree.OnSelectedListener() {
                                @Override
                                public void makeYourChoice(int res) {
                                    switch (res){
                                        case 0:
                                            //直行
                                            routeCross.setActive(1);
                            for (RouteCross routeCross:roadCrosses){
                                if (routeCross.getIdx()==roadCrossInfo.getCrossing_index()&&routeCross.getRoad()==roadCrossInfo.getRoad_id()){
                                    Log.i(TAG,"该路口已经选择了行驶方向,确定要覆盖以前?");
                                    MyDialog myDialog = MyDialog.Companion.newInstance("该路口已经选择了行驶方向,确定要覆盖以前?");
                                    hasInsertRoadCrossDirect = true;
                                    myDialog.setOnClick(new MyDialog.MyOnClickListener() {
                                        @Override
                                        public void onSure() {
                                            selectRoadCrossDirect(routeCross);
                                        }
                                            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,"在路口没有做出选择");
                                    }
                                        @Override
                                        public void onCancle() {
                                            hasInsertRoadCrossDirect = false;
                                        }
                                    });
                                    myDialog.show(getFragmentManager(),"tarindialog");
                                    break;
                                }
                            });
                            }
                            if (!hasInsertRoadCrossDirect){
                                selectRoadCrossDirect(routeCross);
                            }
                        }
                    });
                }else{
                    if (roadCrossDialog != null)
                    roadCrossDialog.dismiss();
                }
@@ -1231,15 +1236,46 @@
    }
    private int getRouteLine_id() {
    private void selectRoadCrossDirect(RouteCross routeCross) {
        roadCrossDialog = SelectDialogThree.newInstance("路口直行","路口左转弯","路口右转弯","路口掉头");
        roadCrossDialog.show(getFragmentManager(),"aaa");
        roadCrossDialog.setSelectedListener(new SelectDialogThree.OnSelectedListener() {
            @Override
            public void makeYourChoice(int res) {
                switch (res){
                    case 0:
                        //直行
                        routeCross.setActive(1);
        for (int i = 0; i < mRouteBeans.size(); i++){
            if (mRouteBeans.get(i).getRouteName().equalsIgnoreCase(ExamPlatformData.getInstance().getRouteLineName())){
                return mRouteBeans.get(i).getId();
                        break;
                    case 1:
                        //左转弯
                        routeCross.setActive(2);
                        break;
                    case 2:
                        //右转弯
                        routeCross.setActive(4);
                        break;
                    case 3:
                        //调头
                        routeCross.setActive(8);
                        break;
                }
                if (res != SelectDialogThree.SELECT_NONE){
                    if (!hasInsertRoadCrossDirect){
                    routeLineViewModel.insertRouteCross(routeCross);
                    }else{
                        hasInsertRoadCrossDirect = false;
                        routeLineViewModel.updateRouteCrossActive(currRouteBean.getId(),routeCross.getRoad(),routeCross.getIdx(),routeCross.getActive());
                    }
                }else{
                    Log.i(TAG,"在路口没有做出选择");
                }
            }
        }
        return -1;
        });
    }
}