app/src/main/assets/criteria.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/src/main/res/layout/layout_base_datas.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/assets/criteria.json
@@ -2150,5 +2150,13 @@ "deducting_reason": "进入无照明、照明不良的道路行驶时不使用远光灯", "score_deducting":5, "required_precision":"" }, { "item_id":41710, "item_content": "模拟夜考", "deducting_reason": "不能正确关闭灯光", "score_deducting":100, "required_precision":"" } ] app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java
New file @@ -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(); } } app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java
New file @@ -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(); } } 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; } } 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; } 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"