package safeluck.drive.evaluation.DB.route;
|
|
import android.content.Context;
|
import android.util.Log;
|
|
import androidx.annotation.NonNull;
|
import androidx.work.Worker;
|
import androidx.work.WorkerParameters;
|
|
import com.google.gson.Gson;
|
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.stream.JsonReader;
|
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.io.InputStreamReader;
|
import java.lang.reflect.Type;
|
import java.util.List;
|
|
import okhttp3.Route;
|
import safeluck.drive.evaluation.DB.Student;
|
import safeluck.drive.evaluation.DB.WorkRoomDataBase;
|
import safeluck.drive.evaluation.bean.RouteCollect;
|
|
/**
|
* DriveJudge
|
* Created by lzw on 2020/9/16. 16:00:40
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class RouteInitWorker extends Worker {
|
private static final String TAG = "RouteInitWorker";
|
public RouteInitWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
|
super(context, workerParams);
|
}
|
|
@NonNull
|
@Override
|
public Result doWork() {
|
Log.i(TAG, "doWork: "+Thread.currentThread().getId());
|
try {
|
InputStream inputStream = getApplicationContext().getAssets().open("routeline.json");
|
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
|
JsonReader jsonReader = new JsonReader(inputStreamReader);
|
|
Gson gson = new Gson();
|
Type type = new TypeToken<List<RouteCollect>>(){}.getType();
|
|
List<RouteCollect> mstus=gson.fromJson(jsonReader, type);
|
for (int i = 0; i < mstus.size(); i++) {
|
RouteBean routeBean = new RouteBean();
|
routeBean.setRouteName(mstus.get(i).getName());
|
WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteBeanDao().insertRouteBean(routeBean);
|
RouteCollect routeCollect = mstus.get(i);
|
List<RouteCollect.CrossingActiveBean>crossingActiveBeans = routeCollect.getCrossing_active();
|
List<RouteCollect.TriggerLineBean> triggerLineBeans = routeCollect.getTrigger_line();
|
for (RouteCollect.TriggerLineBean bean:triggerLineBeans){
|
RouteTriggerLine routeTriggerLine = new RouteTriggerLine();
|
routeTriggerLine.setRoad(bean.getRoad());
|
routeTriggerLine.setRouteline_id(i+1);
|
routeTriggerLine.setType(bean.getType());
|
routeTriggerLine.setX(bean.getX_y().get(0));
|
routeTriggerLine.setY(bean.getX_y().get(1));
|
WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteTriggerLineDao().insertTriggerLine(routeTriggerLine);
|
}
|
for (RouteCollect.CrossingActiveBean bean:crossingActiveBeans){
|
RouteCross routeCross = new RouteCross();
|
routeCross.setActive(bean.getActive());
|
routeCross.setIdx(bean.getIdx());
|
routeCross.setRoad(bean.getRoad());
|
routeCross.setRouteline_id(i+1);
|
WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getRouteCrooDao().insertRouteCross(routeCross);
|
}
|
|
}
|
|
} catch (IOException e) {
|
e.printStackTrace();
|
return Result.failure();
|
}
|
return Result.success();
|
}
|
}
|