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