From fedd2c77e7159e243d964f6e00a346d09b1d24d8 Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期四, 21 一月 2021 10:57:49 +0800 Subject: [PATCH] 设置里面增加评判表更新功能和灯光题目库更新功能;模拟灯光结束关闭所有灯光修改wrong_code为41710不能正确关闭灯光不合格 --- app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java | 1 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java | 69 +++++++++++++ app/src/main/assets/criteria.json | 8 + app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java | 89 +++++++++++++++++ app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java | 39 +++++++ app/src/main/res/layout/layout_base_datas.xml | 35 +++++++ 6 files changed, 241 insertions(+), 0 deletions(-) diff --git a/app/src/main/assets/criteria.json b/app/src/main/assets/criteria.json index a9feee7..878ed07 100644 --- a/app/src/main/assets/criteria.json +++ b/app/src/main/assets/criteria.json @@ -2150,5 +2150,13 @@ "deducting_reason": "杩涘叆鏃犵収鏄庛�佺収鏄庝笉鑹殑閬撹矾琛岄┒鏃朵笉浣跨敤杩滃厜鐏�", "score_deducting":5, "required_precision":"" + }, + { + + "item_id":41710, + "item_content": "妯℃嫙澶滆��", + "deducting_reason": "涓嶈兘姝g‘鍏抽棴鐏厜", + "score_deducting":100, + "required_precision":"" } ] \ No newline at end of file diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java new file mode 100644 index 0000000..905d677 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java @@ -0,0 +1,69 @@ +package safeluck.drive.evaluation.DB.criterias; + +import android.content.Context; +import android.os.Environment; + +import androidx.annotation.NonNull; +import androidx.work.Worker; +import androidx.work.WorkerParameters; + +import com.anyun.basecommonlib.MyLog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Type; +import java.util.List; + +import safeluck.drive.evaluation.DB.Constant; +import safeluck.drive.evaluation.DB.WorkRoomDataBase; + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 11:59:25 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +public class CriteriaUpgradeWorker extends Worker { + + private static final String TAG = "CriteriaForIWorker"; + + public CriteriaUpgradeWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + } + + @NonNull + @Override + public Result doWork() { + + File file = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+ + File.separator+ Constant.CRITERIA_JSON); + + if (!file.exists()){ + return Result.failure(); + } + InputStream inputStream = null; + try { + inputStream =new FileInputStream(file); + } catch (IOException e) { + e.printStackTrace(); + } + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + JsonReader jsonReader = new JsonReader(inputStreamReader); + Gson gson = new Gson(); + Type type = new TypeToken<List<Criteria>>(){}.getType(); + + List<Criteria> criteriaForIS = gson.fromJson(jsonReader,type); + MyLog.i(TAG,"鏇存柊璇勫垽琛�"); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getCriteriaDao().insertAllCriteria(criteriaForIS); + if (file.exists()){ + file.delete(); + } + return Result.success(); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java new file mode 100644 index 0000000..54f4f7f --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java @@ -0,0 +1,89 @@ +package safeluck.drive.evaluation.DB.lightdb; + +import android.content.Context; +import android.os.Environment; + +import androidx.annotation.NonNull; +import androidx.work.Worker; +import androidx.work.WorkerParameters; + +import com.anyun.basecommonlib.MyLog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Type; +import java.util.List; + +import safeluck.drive.evaluation.Constant; +import safeluck.drive.evaluation.DB.WorkRoomDataBase; +import safeluck.drive.evaluation.DB.criterias.Criteria; + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 11:59:25 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +public class LightsQuestAnswersUpgradeWorker extends Worker { + + private static final String TAG = "CriteriaForIWorker"; + + public LightsQuestAnswersUpgradeWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + } + + @NonNull + @Override + public Result doWork() { + + File file = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+ + File.separator+ Constant.LIGHT_ALL_ANSWER_JSON); + + File fileQuest = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+ + File.separator+ Constant.LIGHT_ALL_DEFAULT_JSON); + + if (!file.exists()){ + return Result.failure(); + } + if (!fileQuest.exists()){ + return Result.failure(); + } + InputStream inputStream = null; + try { + inputStream =new FileInputStream(fileQuest); + } catch (IOException e) { + e.printStackTrace(); + } + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + JsonReader jsonReader = new JsonReader(inputStreamReader); + Gson gson = new Gson(); + Type type = new TypeToken<List<LightQuestion>>(){}.getType(); + + List<LightQuestion> criteriaForIS = gson.fromJson(jsonReader,type); + MyLog.i(TAG,"鏇存柊鐏厜搴撴墍鏈夐棶棰橀儴鍒�"); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLightAllQuestionsDao().insertAll(criteriaForIS); + + + + try { + inputStream =new FileInputStream(file); + } catch (IOException e) { + e.printStackTrace(); + } + inputStreamReader = new InputStreamReader(inputStream); + jsonReader = new JsonReader(inputStreamReader); + + Type type1 = new TypeToken<List<LightAnswers>>(){}.getType(); + + List<LightAnswers> criteriaForISa = gson.fromJson(jsonReader,type1); + MyLog.i(TAG,"鏇存柊鐏厜搴撴墍鏈夌瓟妗堥儴鍒�"); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLightAllAnswersDao().insertAll(criteriaForISa); + return Result.success(); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java index 1029eb8..4993995 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java @@ -62,6 +62,7 @@ this.solution.add(-6); this.solution.add(-7); this.solution.add(-8); + this.wrong_code = 41710; } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java index 2229bc5..2e10dd8 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java @@ -22,12 +22,14 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.work.Data; import androidx.work.OneTimeWorkRequest; +import androidx.work.Operation; import androidx.work.WorkInfo; import androidx.work.WorkManager; import com.anyun.exam.lib.AYSdk; import com.anyun.basecommonlib.MyLog; import com.anyun.exam.lib.util.ByteUtil; +import com.google.common.util.concurrent.ListenableFuture; import com.google.gson.Gson; import com.safeluck.aykj.utils.BytesUtils; @@ -45,6 +47,8 @@ import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.appstatusdb.AppStatus; import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel; +import safeluck.drive.evaluation.DB.criterias.CriteriaUpgradeWorker; +import safeluck.drive.evaluation.DB.lightdb.LightsQuestAnswersUpgradeWorker; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel; import safeluck.drive.evaluation.MainActivity; @@ -177,6 +181,9 @@ rtkPlatform_port = view.findViewById(R.id.rtk_addr_port); city = view.findViewById(R.id.city_id); province = view.findViewById(R.id.province_id); + + view.findViewById(R.id.btn_lights_update).setOnClickListener(this); + view.findViewById(R.id.btn_judgedata_upgrade).setOnClickListener(this); } @Override public void onClick(View v) { @@ -282,6 +289,38 @@ DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"road"); UserOpStatus.getInstance().resetRoadFileSelectState(); break; + case R.id.btn_judgedata_upgrade: + Toast.makeText(_mActivity, "鏇存柊璇勫垽琛�", Toast.LENGTH_SHORT).show(); + OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(CriteriaUpgradeWorker.class); + + WorkManager.getInstance(_mActivity).getWorkInfoByIdLiveData(oneTimeWorkRequest.getId()).observe(this, new Observer<WorkInfo>() { + @Override + public void onChanged(WorkInfo workInfo) { + if (workInfo.getState()== WorkInfo.State.FAILED){ + Toast.makeText(_mActivity, "璇勫垽琛ㄦ枃浠朵笉瀛樺湪", Toast.LENGTH_SHORT).show(); + }else if (workInfo.getState() == WorkInfo.State.SUCCEEDED){ + Toast.makeText(_mActivity, "璇勫垽琛ㄦ洿鏂版垚鍔�", Toast.LENGTH_SHORT).show(); + } + } + }); + WorkManager.getInstance(_mActivity).enqueue(oneTimeWorkRequest); + break; + case R.id.btn_lights_update: + Toast.makeText(_mActivity, "鏇存柊鐏厜棰樼洰搴�", Toast.LENGTH_SHORT).show(); + OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(LightsQuestAnswersUpgradeWorker.class); + + WorkManager.getInstance(_mActivity).getWorkInfoByIdLiveData(oneTimeWorkRequest1.getId()).observe(this, new Observer<WorkInfo>() { + @Override + public void onChanged(WorkInfo workInfo) { + if (workInfo.getState()== WorkInfo.State.FAILED){ + Toast.makeText(_mActivity, "鐏厜搴撴洿鏂版枃浠朵笉瀛樺湪", Toast.LENGTH_SHORT).show(); + }else if (workInfo.getState() == WorkInfo.State.SUCCEEDED){ + Toast.makeText(_mActivity, "鐏厜棰樼洰搴撴洿鏂版垚鍔�", Toast.LENGTH_SHORT).show(); + } + } + }); + WorkManager.getInstance(_mActivity).enqueue(oneTimeWorkRequest1); + break; default: break; } diff --git a/app/src/main/res/layout/layout_base_datas.xml b/app/src/main/res/layout/layout_base_datas.xml index 7b3b3a0..84703e6 100644 --- a/app/src/main/res/layout/layout_base_datas.xml +++ b/app/src/main/res/layout/layout_base_datas.xml @@ -260,6 +260,41 @@ </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_marginBottom="10dp" + android:layout_height="60dp" + android:gravity="center_vertical" + android:orientation="horizontal"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textColor="@android:color/white" + android:textSize="@dimen/network_train_textsize25px" + android:text="鍦板浘鍗囩骇锛�"/> + + + <Button android:layout_width="129dp" + android:layout_height="@dimen/ui_margin_50dp" + android:text="璇勫垽琛ㄥ崌绾�" + android:padding="5dp" + android:textColor="@android:color/white" + android:textSize="@dimen/network_train_textsize21px" + android:layout_marginLeft="60dp" + android:id="@+id/btn_judgedata_upgrade" + android:background="@drawable/btn_bg_baseset"/> + <Button android:layout_width="129dp" + android:layout_height="@dimen/ui_margin_50dp" + android:text="鐏厜棰樼洰搴撳崌绾�" + android:padding="5dp" + android:textColor="@android:color/white" + android:textSize="@dimen/network_train_textsize21px" + android:id="@+id/btn_lights_update" + android:layout_marginLeft="8dp" + android:background="@drawable/btn_bg_baseset"/> + + + </LinearLayout> </LinearLayout> <Button android:id="@+id/btn_return" -- Gitblit v1.8.0