设置里面增加评判表更新功能和灯光题目库更新功能;模拟灯光结束关闭所有灯光修改wrong_code为41710不能正确关闭灯光不合格
4个文件已修改
2个文件已添加
241 ■■■■■ 已修改文件
app/src/main/assets/criteria.json 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/layout_base_datas.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | 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"