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