() {
- @Override
- public void onSuccess(BusRoutesResponse o) {
- OchChainLogManager.writeChainLog("选择线路成功","taskId:"+taskId+"--lineId:"+lineId);
- SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId);
- if (mBusLinesCallback != null){
- mBusLinesCallback.onChangeLineIdSuccess();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- OchChainLogManager.writeChainLog("选择线路失败","taskId:"+taskId+"--lineId:"+lineId);
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort("选择任务失败:"+failMsg);
- }
- }
- });
- }
-
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java
deleted file mode 100644
index d447f7f67d..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java
+++ /dev/null
@@ -1,1343 +0,0 @@
-package com.mogo.och.bus.model;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-import static com.mogo.och.bus.constant.BusConst.DELAY_10S;
-import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_ARRIVING;
-import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_STOPPED;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.ArrayMap;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.elegant.network.utils.GsonUtil;
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.map.MogoLocation;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
-import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils;
-import com.mogo.eagle.core.utilcode.util.GsonUtils;
-import com.mogo.eagle.core.utilcode.util.NetworkUtils;
-import com.mogo.eagle.core.utilcode.util.StringUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.bus.R;
-import com.mogo.och.bus.bean.response.BusRoutesResponse;
-import com.mogo.och.bus.bean.WriteOffPassenger;
-import com.mogo.och.bus.callback.IPassengerCallback;
-import com.mogo.och.bus.constant.BusConst;
-import com.mogo.och.bus.net.OrderServiceManager;
-import com.mogo.och.bus.presenter.BusModelLoopManager;
-import com.mogo.och.bus.util.BusTrajectoryManager;
-import com.mogo.och.bus.util.BusVoiceManager;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics;
-import com.mogo.och.common.module.manager.autopilot.line.LineManager;
-import com.mogo.och.common.module.manager.socket.cloud.IOchOnMessageListener;
-import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction2;
-import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener;
-import com.mogo.och.common.module.manager.socket.lan.LanSocketManager;
-import com.mogo.och.common.module.manager.socket.lan.LedScreenManager;
-import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg;
-import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey;
-import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType;
-import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType;
-import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus;
-import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg;
-import com.mogo.och.common.module.network.OchCommonServiceCallback;
-import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
-import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager;
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation;
-import com.mogo.och.common.module.manager.autopilot.trajectory.ITrajectoryListListener;
-import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager;
-import com.mogo.och.common.module.manager.distance.ITrajectoryListener;
-import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-import com.mogo.och.common.module.utils.DateTimeUtil;
-import com.mogo.och.common.module.utils.MultiRequestLimitChecker;
-import com.mogo.och.common.module.utils.NumberFormatUtil;
-import com.mogo.och.common.module.utils.OCHThreadPoolManager;
-import com.mogo.och.common.module.utils.PinYinUtil;
-import com.mogo.och.common.module.utils.ToastUtilsOch;
-import com.mogo.och.common.module.voice.VoiceNotice;
-import com.mogo.och.data.bean.BusRoutesResult;
-import com.mogo.och.data.bean.BusStationBean;
-import com.mogo.och.data.bean.BusTransferData;
-import com.mogo.och.data.bean.LineInfo;
-import com.mogo.och.data.manager.cache.CacheDataManager;
-import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import io.reactivex.exceptions.UndeliverableException;
-import io.reactivex.plugins.RxJavaPlugins;
-
-/**
- * @author congtaowang
- * @since 2021/3/23
- *
- * 小巴订单管理
- */
-public class OrderModel {
- private final String TAG = OrderModel.class.getSimpleName();
- private int currentLineId = -1;
- private int currentTaskId = -1;
- private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引
-
- private static volatile OrderModel sInstance;
- private static final byte[] obj = new byte[0];
- private Context mContext;
- private final List stationList = new ArrayList<>();
- private BusRoutesResult busRoutesResult = null;
- /**
- * 用来表示是否正在开往下一站
- */
- private boolean isGoingToNextStation = false;
- // 运营类型
- private static final int VEHICLE_TYPE = 10;
-
- private IPassengerCallback mPassengerCallback; //乘客核销回调
-
- private volatile boolean isArrivedStation = false;
-
- //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0
- private volatile int firstStartAutopilot = 0;
-
- private OrderModel() {
- }
-
- public static OrderModel getInstance() {
- if (sInstance == null) {
- synchronized (obj) {
- if (sInstance == null) {
- sInstance = new OrderModel();
- }
- }
- }
- return sInstance;
- }
-
- public void init() {
- mContext = AbsMogoApplication.getApp();
- // 定位监听
- OchLocationManager.addGCJ02Listener(TAG,5, mMapLocationListener);
-
- TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,iTrajectoryListener);
-
- //开启自驾后 异常信息返回
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener);
-
- OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息
- OCHSocketMessageManager.msgMonitorType,
- new OperateAction2());
-
- OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客
- OCHSocketMessageManager.msgWriteOffPassengerType,
- mWriteOffPassengerOnMessageListener);
-
- AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext);
-
- TrajectoryAndDistanceManager.INSTANCE.addTrajectoryListener(TAG,trajectoryListener);
- LanSocketManager.INSTANCE.registerSocketMessageListener(DPMsgType.TYPE_TASK_DETAILS.getType(),taskDetailsMsgListener);
-
- //2022.1.28
- // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃
- // The exception could not be delivered to the consumer because it has already canceled/disposed
- // the flow or the exception has nowhere to go to begin with
- RxJavaPlugins.setErrorHandler(e -> {
- if (e instanceof UndeliverableException) {
- e = e.getCause();
- CallerLogger.d(M_BUS + TAG, "UndeliverableException");
- }
- if ((e instanceof IOException)) {
- // fine, irrelevant network problem or API that throws on cancellation
- CallerLogger.d(M_BUS + TAG, "IOException");
- return;
- }
- if (e instanceof InterruptedException) {
- // fine, some blocking code was interrupted by a dispose call
- CallerLogger.d(M_BUS + TAG, "InterruptedException");
- return;
- }
- if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {
- // that's likely a bug in the application
- CallerLogger.d(M_BUS + TAG, "NullPointerException or IllegalArgumentException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- if (e instanceof IllegalStateException) {
- // that's a bug in RxJava or in a custom operator
- CallerLogger.d(M_BUS + TAG, "IllegalStateException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- CallerLogger.d(M_BUS + TAG, "Undeliverable exception");
- });
- }
-
- // 初始化调用
- // 登录状态发生变化调用
- public void queryBusCacheRoutes(){
-
- String loginStr = CacheDataManager.Companion.getInstance().getCacheData(
- mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE);
- if (!loginStr.isEmpty()){
- LoginCacheStatus status = GsonUtils.fromJson(loginStr,LoginCacheStatus.class);
- LoginStatusManager.setLoginStatus(status.getLoginStatus());
- if (status.getUpdateTime() > DateTimeUtil.getTodayStartTime() &&
- status.getLoginStatus() == 1){//登陆
-
- String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext,
- BusCacheKey.BUS_LINE_CACHE);
-
- if (cacheData == null || cacheData.isEmpty()){
- queryBusRoutes();
- }else {
- BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class);
- getCacheRouteSuccess(data.getRoutesResult());
- }
- }else{ // 未登陆
- CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE);
- sendTaskDetailsToClients();
- }
- }
- }
-
- private void sendTaskDetailsToClients() {
-
- BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult);
- TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.bus);
- CallerLogger.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg));
- LanSocketManager.sendMsgToClient(msg);
- }
-
-
- private void getCacheRouteSuccess(BusRoutesResult data){
- if (data == null || data.getSites() == null
- || data.getSites().isEmpty()
- || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) {
- //当为空时,显示无绑定路线图
- queryBusRoutes();
- CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE);
- return;
- }
- CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data));
- updateBusStatus(data);
- }
-
- private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving
- , long writeVersion) {
- if (busRoutesResult != null){
- busRoutesResult.setWriteVersion(writeVersion);
- List sites = busRoutesResult.getSites();
- BusStationBean bean = sites.get(currentIndex);
- bean.setDrivingStatus(currentDrivingStatus);
- bean.setLeaving(isLeaving);
- sites.set(currentIndex,bean);
- if (currentDrivingStatus == STATION_STATUS_STOPPED && !isLeaving){
- BusStationBean beanPre = sites.get(currentIndex -1);
- beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING);
- beanPre.setLeaving(false);
- sites.set(currentIndex -1,beanPre);
- }
- //busRoutesResult.setSite(sites);
-
- pushCacheTransferData(busRoutesResult);
-
- updateBusStatus(busRoutesResult);
- }
- }
-
- private void pushCacheTransferData(BusRoutesResult result) {
- BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result);
- CallerLogger.d(M_BUS + TAG, "pushCacheTransferData = " + GsonUtils.toJson(data));
- CacheDataManager.Companion.getInstance().putCacheData(mContext,
- BusCacheKey.BUS_LINE_CACHE,
- GsonUtils.toJson(data));
- }
-
- private final IOchOnMessageListener mWriteOffPassengerOnMessageListener =
- new IOchOnMessageListener() {
- @Override
- public Class target() {
- return WriteOffPassenger.class;
- }
-
- @Override
- public void onMsgReceived(WriteOffPassenger passenger) {
- //进行播报
- CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger));
- if (passenger != null && passenger.passengerSize == 0) return;
- if (mPassengerCallback != null){
- mPassengerCallback.playPassenger(passenger);
- }
- }
- };
-
- public void setPassengerCallback(IPassengerCallback callback) {
- this.mPassengerCallback = callback;
- }
-
-
- private final ITrajectoryListener trajectoryListener = (routeArrivied, routeArriving, location) -> {
-
- };
-
- private final ILanMessageListener taskDetailsMsgListener = new ILanMessageListener(){
- @Override
- public Class targetLan() {
- return TaskDetailsMsg.class;
- }
-
- @Override
- public void onLanMsgReceived(TaskDetailsMsg obj) {
- sendTaskDetailsToClients();
- }
- };
-
-
-
- private final ITrajectoryListListener iTrajectoryListener = new ITrajectoryListListener() {
-
- @Override
- public void trajectoryCallback(@NonNull List trajectoryList) {
- updateOrderRoute(trajectoryList);
- }
- };
-
-
- /**
- * 上报订单全路径规划数据
- */
- public void updateOrderRoute(List trajectoryList) {
- if (!isGoingToNextStation || backgroundCurrentStationIndex + 1 >= stationList.size() || trajectoryList.size() == 0) {
- return;
- }
-
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
-
- OrderServiceManager.updateOrderRoute(mContext, currentLineId, currentStation.getSiteId()
- , nextStation.getSiteId(), trajectoryList, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
-
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (isGoingToNextStation) {//重试
- updateOrderRoute(trajectoryList);
- }
- }
- });
- }
-
- public void release() {
-
- startOrStopOrderLoop(false);
-
- // 注销定位监听
- OchLocationManager.removeGCJ02Listener(TAG);
-
- TrajectoryManager.INSTANCE.addTrajectoryListListenerr(TAG,null);
-
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
-
- OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
- OCHSocketMessageManager.msgMonitorType);
- OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
- OCHSocketMessageManager.msgWriteOffPassengerType);
-
- AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors();
-
- TrajectoryAndDistanceManager.INSTANCE.removeListener(TAG);
- }
-
- private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
-
- @Override
- public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
- if (mPassengerCallback != null && !FunctionBuildConfig.isDemoMode){
- CallerLogger.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage );
- mPassengerCallback.onStartAdasFailure();
- }
- }
- };
-
- // 自车定位
- private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
- @Override
- public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
- if (null == gnssInfo) return;
-
- //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站
- if (isGoingToNextStation && !isArrivedStation) {
- OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() {
- @Override
- public void run() {
- judgeArrivedStation(gnssInfo);
- }
- });
- }
- }
- };
-
- //根据围栏判断,是否到达站点
- private void judgeArrivedStation(MogoLocation location) {
-
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) {
- CallerLogger.e(M_BUS + TAG, "到站数组越界");
- return;
- }
- BusStationBean upcomingStation = stationList.get(backgroundCurrentStationIndex + 1);
-
- double startLon = upcomingStation.getGcjLon();
- double startLat = upcomingStation.getGcjLat();
- double distance = CoordinateUtils.calculateLineDistance(
- startLon, startLat,
- location.getLongitude(), location.getLatitude());
-
- if (distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE) {//1、当前位置和站点围栏15m内
- CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance
- + " to " + upcomingStation.getName());
-
- //2、开始计算当前位置和站点的向量角度 < 90度 未经过 >90度 经过
- double stationAngle = DrivingDirectionUtils.getDegreeOfCar2Poi(
- location.getLongitude(),
- location.getLatitude(),
- startLon,
- startLat,
- (int) location.getHeading());
-
- CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() stationAngle = " + stationAngle);
-
- //3、刚过站且过站距离在15m内, 提交到站
- if (stationAngle > 90 && distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE){
- CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() = 刚过站且在15m内");
- onArriveAt(null,"兜底:根据定位计算到站"); //无自动驾驶到站信息传null
- }
- }
- }
-
- /**
- * 查询小巴路线
- */
- public void queryBusRoutes() {
- CallerLogger.d(M_BUS + TAG, "查询小巴路线");
- OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BusRoutesResponse data) {
- if (data == null
- || data.getResult() == null
- || data.getResult().getSites() == null
- || data.getResult().getSites().isEmpty()) {
- //当为空时,显示无绑定路线图
- CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据:空 ");
- if (mPassengerCallback != null) {
- mPassengerCallback.updateEmptyUi();
- }
- clearAutopilotControlParameters();
- closeBeautificationMode();
- clearStartAutopilotTag();
- removeTipRunnables();
- updateBusStatus(null);
- CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE);
- return;
- }
-
- if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){
- CallerLogger.d(M_BUS + TAG, "更新小巴路线数据: " + data);
- updateBusStatus(data.getResult());
- pushCacheTransferData(data.getResult());
- }
- }
-
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
-
- }
-
- /**
- * 更新正在运行的任务UI
- *
- * @param stations
- */
- private void updateBusTaskStatus(List stations) {
-
- int arrivingOrArrivedStationIndex = 0;//已经到站或者即将到站的索引呢
-
- for (int i = 0; i < stations.size(); i++) {
- BusStationBean station = stations.get(i);
-
- if (i == 0) { // 首发站 显示在最上面
- if (station.getDrivingStatus() == STATION_STATUS_STOPPED
- && !station.isLeaving()) { //到达第一站
- arrivingOrArrivedStationIndex = i;
- break;
- }
- } else {
- BusStationBean preStation = stations.get(i - 1);
- if ((station.getDrivingStatus() == STATION_STATUS_STOPPED && !station.isLeaving())
- || (station.getDrivingStatus() == STATION_STATUS_ARRIVING
- && preStation.isLeaving())) {
- //到站未离开 | 即将到站 显示在最中间
- arrivingOrArrivedStationIndex = i;
- break;
- }
- }
- }
-
- BusStationBean arrivingOrArrivedStation = stations.get(arrivingOrArrivedStationIndex);
-
- String lineTime = DateTimeUtil.formatLongToString(
- busRoutesResult.getTaskTime(),
- DateTimeUtil.HH_mm);
-
- if (arrivingOrArrivedStationIndex == 0 ||
- arrivingOrArrivedStation.getDrivingStatus() == STATION_STATUS_STOPPED
- && !arrivingOrArrivedStation.isLeaving()) {
- if (mPassengerCallback != null) {
- mPassengerCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime,
- stationList, arrivingOrArrivedStationIndex, true);
- }
- clearAutopilotControlParameters();
- } else {
- if (mPassengerCallback != null) {
- mPassengerCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime,
- stationList, arrivingOrArrivedStationIndex, false);
- }
- updateAutopilotControlParameters();
- }
- }
-
- /**
- * 重置路线站点状态--结束路线,当前路线恢复到始发站
- */
- public void abortTask() {
- CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask");
- OrderServiceManager.abortTask(mContext, currentTaskId
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "abortTask success: " + o);
- if (o.code == 0) { // 重置成功
- endOrAbortTaskSuccess();
- clearBusStationDatas();
- queryBusRoutes();
- removeTipRunnables();
- CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
- // 取消自驾
- setTrajectoryStation(null,null,-1L);
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
-
- }
-
- /**
- * 中断或者正常结束任务后的处理
- */
- private void endOrAbortTaskSuccess() {
-
- isGoingToNextStation = false;
- backgroundCurrentStationIndex = 0;
-
- if (busRoutesResult != null) {
- LedScreenManager.sendTripInfo2Led(LedScreenManager.END_TRIP
- , busRoutesResult.getName()
- , ""
- , ""
- , false);
- }
-
- CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE);
- busRoutesResult = null;
- }
-
- /**
- * 离站上报成功后渲染站点
- * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站,
- * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染
- */
- private void leaveStationSuccess(int leaveIndex, String leaveStation,
- String nextStation, String nextStationKr,
- long writeVersion) {
-
- onStartAutopilot(leaveIndex);
-
- leaveTTSTips(nextStation,nextStationKr);
-
- if (busRoutesResult != null) {
- boolean isLastStop = leaveIndex + 1 == stationList.size() - 1;
- //给bus外屏发送
- LedScreenManager.sendTripInfo2Led(LedScreenManager.LEAVE_STATION
- , busRoutesResult.getName()
- , leaveStation
- , nextStation
- , isLastStop);
- }
-
- reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true,writeVersion);
-
- }
-
- private void onStartAutopilot(int leaveIndex) {
- //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启
- isGoingToNextStation = true;
- if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
- == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- startAutopilot(false, leaveIndex);
- } else {
- firstStartAutopilot = 0;
- }
- }
-
- /**
- * 开启自动驾驶
- *
- * @param isRestart
- */
- private void startAutopilot(boolean isRestart, int leaveIndex) {
-
- /**
- * 存在Session
- */
- if (!OchAutoPilotManager.canStartAutopilotBySessionId()) {
- return;
- }
-
- OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis());
-
- // 非自驾状态---->预写日志----> 启动自驾 ---> 自驾启动成功 ----> 上报日志
- // 自驾状态---->启动自驾 ---> 自驾启动成功
-
- //1、判断轨迹url是否可用
- if (FunctionBuildConfig.isPassStartAutopilotCommand
- && TextUtils.isEmpty(busRoutesResult.csvFileUrl)
- && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP)
- ){
- ToastUtils.showLong("无发布轨迹, 请发布后重试");
- CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " +
- FunctionBuildConfig.isPassStartAutopilotCommand
- + "busRoutesResult.csvFileUrl = "+ busRoutesResult.csvFileUrl
- + "busRoutesResult.csvFileUrlDPQP = "+busRoutesResult.csvFileUrlDPQP);
- return;
- }
- //2、6个条件判断
- if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true, 0)) {
- return;
- }
-
- CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " +
- FunctionBuildConfig.isPassStartAutopilotCommand);
-
- //3、距离轨迹15m计算
- String resion = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId());
- if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){
- MogoLocation nextStationPoint = new MogoLocation();
- if (backgroundCurrentStationIndex < stationList.size() - 1) {
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- nextStationPoint.setLongitude(nextStation.getGcjLon());
- nextStationPoint.setLatitude(nextStation.getGcjLat());
- }
- BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex);
- MogoLocation currentStationPoint = new MogoLocation();
- currentStationPoint.setLongitude(busStationBean.getGcjLon());
- currentStationPoint.setLatitude(busStationBean.getGcjLat());
- setTrajectoryStation(currentStationPoint,nextStationPoint, (long)busRoutesResult.getLineId());
- resion = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId());
- }
- if(!StringUtils.isEmpty(resion)){
- ToastUtils.showShort(resion);
- VoiceNotice.showNotice(resion);
- return;
- }
-
- //4、ssm 给出数据
- if (!OchAutoPilotManager.canStartAutoPilotSSM()) {
- triggerUnableStartAPReasonEvent();
- return;
- }
-
- firstStartAutopilot++;
-
- if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
- // 预写日志
- triggerStartServiceEvent(isRestart, false,0);
- }
-
- AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex);
- if (null == parameters) {
- CallerLogger.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.");
- return;
- }
-
- long sessionId = OchAutoPilotManager.startAutoPilot(parameters);
- triggerUpdateStartAutoPilotSessionId(sessionId);
-
- CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
- + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName +
- "isRestart = " + isRestart);
-
- if (mPassengerCallback != null) {
- mPassengerCallback.startOpenAutopilot();
- }
- }
-
- /**
- * 到站后重置站点状态
- */
- private void arriveSiteStation(String changeInfo) {
- OchChainLogManager.writeChainLog("触发进站", changeInfo);
- if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次
- CallerLogger.e( M_BUS + TAG, "数组越界" );
- return;
- }
- int arrivedStationIndex = backgroundCurrentStationIndex + 1;
- String arriveStation = stationList.get(arrivedStationIndex).getName();
- String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr();
- String departureStopName = stationList.get(backgroundCurrentStationIndex).getName();
- CallerLogger.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex);
-
- isArrivedStation = true;
- isGoingToNextStation = false;
- long writeVersion = DateTimeUtil.getCurrentTimeStamp();
- arriveStationSuccess(arrivedStationIndex, departureStopName,
- arriveStation,arriveStationKr,writeVersion);
-
- String requestId = MultiRequestLimitChecker.Companion.generateRequestId(TAG + "-arriveSiteStation"
- , String.valueOf(stationList.get(arrivedStationIndex).getSiteId())
- , String.valueOf(currentTaskId));
- if (!MultiRequestLimitChecker.Companion.getInstance().canMakeRequest(requestId, 5)) {
- CallerLogger.d(M_BUS + TAG, "arriveSiteStation-MultiRequestLimitChecker: 超过最大请求数,本次请求return");
- return;
- }
- OrderServiceManager.arriveSiteStation(mContext,
- stationList.get(arrivedStationIndex).getSeq(),
- stationList.get(arrivedStationIndex).getSiteId(),
- currentTaskId,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success");
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- }
-
- @Override
- public void onError() {
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- if (ToastUtilsOch.isCustomFastClick(5000)) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- } else {
- if (isArrivedStation) return;
- ToastUtils.showShort(failMsg);
- }
- }
- }
- });
- }
-
- private void arriveStationSuccess(int arrivedStationIndex, String departureStopName,
- String arriveStation, String arriveStationKr,long writeVersion) {
- if (busRoutesResult != null) {
- boolean isLastStop = arrivedStationIndex == busRoutesResult.getSites().size() - 1;
- //给bus外屏发送
- LedScreenManager.sendTripInfo2Led(LedScreenManager.ARRIVE_STATION
- , busRoutesResult.getName()
- , departureStopName
- , arriveStation
- , isLastStop);
- }
- BusVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
-
- reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false,writeVersion);
-
- }
-
- /**
- * 离站上报
- */
- public void leaveStation() {
- CallerLogger.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex);
- String nextStationName = "";
- String nextStationNameKr = "";
- MogoLocation nextStationPoint = new MogoLocation();
- if (backgroundCurrentStationIndex < stationList.size() - 1) {
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- nextStationName = nextStation.getName();
- nextStationNameKr = nextStation.getNameKr();
- nextStationPoint.setLongitude(nextStation.getGcjLon());
- nextStationPoint.setLatitude(nextStation.getGcjLat());
- }
- BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex);
- final String currentStationName = busStationBean.getName();
- String finalNextStationName = nextStationName;
- String finalNextStationNameKr = nextStationNameKr;
- MogoLocation currentStationPoint = new MogoLocation();
- currentStationPoint.setLongitude(busStationBean.getGcjLon());
- currentStationPoint.setLatitude(busStationBean.getGcjLat());
-
- isArrivedStation = false;
- CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站====");
-
- long writeVersion = DateTimeUtil.getCurrentTimeStamp();
- leaveStationSuccess(backgroundCurrentStationIndex, currentStationName,
- finalNextStationName,finalNextStationNameKr,writeVersion);
- setTrajectoryStation(currentStationPoint,nextStationPoint, (long) currentLineId);
-
- String changeInfo = "taskId:" + currentTaskId + "--lineId:" + currentLineId +
- "--currentStationName:"+currentStationName+"--finalNextStationName:"+finalNextStationName;
- OchChainLogManager.writeChainLog("滑动出发", changeInfo);
- OrderServiceManager.leaveStation(mContext,
- busStationBean.getSeq(),
- busStationBean.getSiteId(),
- currentTaskId,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- OchChainLogManager.writeChainLog("滑动出发成功", changeInfo);
- }
-
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- } else {
- ToastUtils.showShort("离站上报失败:" + failMsg);
- }
- }
- });
- }
-
- //车站10s后播报
- private void leaveTTSTips(String nextStation,String nextStationKr) {
-
- UiThreadHandler.postDelayed(() -> BusVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S);
- }
-
- /**
- * 关闭美化模式
- */
- public void closeBeautificationMode() {
- if (FunctionBuildConfig.isDemoMode) {//收车结束美化
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; //是否强制绘制引导线
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);// 同步给乘客屏
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为false");
- }
- }
-
- /**
- * 开启自动驾驶到下一站
- */
- public void autoDriveToNextStation() {
- if (backgroundCurrentStationIndex >= stationList.size() - 1) {
- // 当前站是最后一站,结束当前行程
- travelOver();
- return;
- }
- leaveStation();
- }
-
- /**
- * 渲染站点信息
- * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站,
- * 车机端展示 三站: 中间为即将到到达或者刚到达的站
- *
- * @param result
- */
- private void updateBusStatus(BusRoutesResult result) {
- if (result == null) {
- LineManager.setLineInfo(null);
- return;
- }
- busRoutesResult = result;
- List site = result.getSites();
- currentTaskId = result.getTaskId();
- currentLineId = result.getLineId();
- String lineName = result.getName();
- ArrayMap objectObjectArrayMap = new ArrayMap<>();
- try{
- String lineTime = DateTimeUtil.formatLongToString(
- busRoutesResult.getTaskTime(),
- DateTimeUtil.HH_mm);
- objectObjectArrayMap.put("taskInfo",lineTime);
- }catch (Exception e){
- OchChainLogManager.writeChainLog("设置任务名称","设置任务名称报错"+e.getStackTrace());
- }
- LineManager.setLineInfo(new LineInfo(currentLineId,lineName,objectObjectArrayMap));
-
- stationList.clear();
- stationList.addAll(site);
-
- for (int i = 0; i < stationList.size(); i++) {
- BusStationBean s = stationList.get(i);
-
- CallerLogger.d(M_BUS + "updateBusStationsStatus--",
- "Index=" + i + " ,name = " + s.getName() + " ," + s.isLeaving() + "," + s.getDrivingStatus());
-
- // 是否正在开往下一站
- if (s.isLeaving()) {
- isGoingToNextStation = true;
- }
- // 当前站点信息
- if (s.getDrivingStatus() == STATION_STATUS_STOPPED) {
- backgroundCurrentStationIndex = i;
- break;
- }
- }
-
- if (backgroundCurrentStationIndex == 0 &&
- stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED
- && !stationList.get(0).isLeaving()) { //默认是第一站到站查询
- if (busRoutesResult != null) { // 第一站到站也是行程开始的时候
- LedScreenManager.sendTripInfo2Led(LedScreenManager.START_TRIP
- , busRoutesResult.getName(), "", "", false);
- }
-
- //任务选择后首发前给司机提示任务
- if (busRoutesResult != null){
- beforeTaskTips();
- }
- }else {
- removeTipRunnables();
- }
-
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
-
- CallerLogger.d(M_BUS + TAG,
- "行程日志-STATION_STATUS_STOPPED-backgroundCurrentStationIndex="
- + backgroundCurrentStationIndex
- + " isLeaving()=" + currentStation.isLeaving());
-
- // 美化是否开始
- if (FunctionBuildConfig.isDemoMode && (backgroundCurrentStationIndex >= 0
- && backgroundCurrentStationIndex <= stationList.size() - 1)) {//行驶过程中设置美化
- if (stationList.get(backgroundCurrentStationIndex).isLeaving()) {
- startBeautificationMode();
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)");
- } else if (backgroundCurrentStationIndex > 0 && backgroundCurrentStationIndex < stationList.size() - 1) {
- //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)");
- clearStartAutopilotTag();
- } else {
- closeBeautificationMode();
- clearStartAutopilotTag();
- }
- }
-
-
- if (currentStation.isLeaving() && mPassengerCallback != null) {
- mPassengerCallback.hideSlidePanel();
- }
-
- sendTaskDetailsToClients();
-
- //更新bus路线面板
- updateBusTaskStatus(stationList);
-
- //需放在currentStationIndex赋值之后
- BusTrajectoryManager.getInstance().syncTrajectoryInfo();
- }
-
- private void beforeTaskTips() {
- if (busRoutesResult == null) return;
-
- removeTipRunnables();
-
- long taskTime = busRoutesResult.getTaskTime();
- long tip3Time = taskTime- 3*60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前3分钟提示
- long tip1Time = taskTime-60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前1分钟提示
-
- if (tip3Time > 0){
- UiThreadHandler.postDelayed(tip3Runnable,tip3Time);
- }
-
- if (tip1Time > 0){
- UiThreadHandler.postDelayed(tip1Runnable,tip1Time);
- }
- }
-
- Runnable tip3Runnable = () -> {
- if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED
- && !stationList.get(0).isLeaving()){
- tipStartTask("3");
- }else {
- removeTipRunnables();
- }
- };
-
- private void tipStartTask(String s) {
- String tips = String.format(mContext
- .getString(R.string.bus_before_tips_s), s);
- //展示在运营消息
- OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(
- DateTimeUtil.getCurrentTimeStamp(),
- tips,OCHSocketMessageManager.OPERATION_SYSTEM);
- BusVoiceManager.INSTANCE.showLeafTime(tips);
- }
-
- Runnable tip1Runnable = () -> {
- if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == STATION_STATUS_STOPPED && !stationList.get(0).isLeaving()){
- tipStartTask("1");
- }else {
- removeTipRunnables();
- }
- };
-
- public void removeTipRunnables(){
- if (tip3Runnable != null){
- UiThreadHandler.removeCallbacks(tip3Runnable);
- }
- if (tip1Runnable != null){
- UiThreadHandler.removeCallbacks(tip1Runnable);
- }
- }
-
- private void clearStartAutopilotTag() {
- firstStartAutopilot = 0;
- }
-
- private void startBeautificationMode() {
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
- }
-
- public void clearBusStationDatas() {
- if (mPassengerCallback != null) {
- mPassengerCallback.clearBusStationsMarkers();
- }
- }
-
- /**
- * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地
- */
- public void restartAutopilot() {
- CallerLogger.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation);
- //只去启动自动驾驶,不再去上报离站
- startAutopilot(firstStartAutopilot >= 1, -1);
- }
-
- public boolean isRestartAutopilot() {
- return firstStartAutopilot > 1;
- }
-
- /**
- * 行程结束
- */
- private void travelOver() {
-
- if (backgroundCurrentStationIndex >= stationList.size()) {
- CallerLogger.e(M_BUS + TAG, "travel over index out of station list");
- return;
- }
- CallerLogger.d(M_BUS + TAG, "单程结束====");
- CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
- setTrajectoryStation(null,null,-1L);
- endTask();
- }
-
- /**
- * task正常结束
- */
- private void endTask() {
- CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()");
- OrderServiceManager.endTask(mContext, currentTaskId
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "endTask success: " + o);
- if (o.code == 0) {
- endOrAbortTaskSuccess();
- clearBusStationDatas();
- queryBusRoutes();// 重新获取任务
- removeTipRunnables();
- ttsEndTask();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
- }
-
- private void ttsEndTask() {
- BusVoiceManager.INSTANCE.endOrderBus();
- }
-
- /**
- * 到站
- *
- * @param data
- */
- public void onArriveAt(ArrivedStation data,String type) {
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) {
- CallerLogger.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束");
- return;
- }
-
- //MAP 280 每隔100ms左右返回一次到站, 导致在到达中间站后再次滑动出发后会有时间差,收到一次到站,出现问题
- //此处比对 自驾告诉的到站站点坐标和本地应到站站点坐标, 一致时才能到站
- if (data != null && data.getEndLocation() != null) {
-
- String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(), 5); //wgs
- String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(), 5);
-
- int arrivedStationIndex = backgroundCurrentStationIndex + 1;
- BusStationBean arriveStation = stationList.get(arrivedStationIndex);
- String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(), 5);
- String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(), 5);
-
- CallerLogger.d(M_BUS + TAG, "行程日志-dataLatitude = "+ latitude+
- ", dataLongitude = " + longitude + "; arriveLat = " + arriveLat +
- ", arriveLon = " +arriveLon);
-
- if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)) {
- CallerLogger.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致");
- return;
- }
- }
-
- if (isArrivedStation) return;
-
- CallerLogger.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex="
- + backgroundCurrentStationIndex);
-
- arriveSiteStation(type);
- }
-
- public boolean isGoingToNextStation() {
- return isGoingToNextStation;
- }
-
- public void sendWriteOffNumToClient(String msg){
- AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1);
- LanSocketManager.sendMsgToClient(passengerMsg);
- }
-
- // 车机端上传心跳数据(只在出车状态时上传)
- public void runCarHeartbeat() {
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- double mLatitude = gcj02Location.getLatitude();
- double mLongitude = gcj02Location.getLongitude();
- OrderServiceManager.runCarHeartbeat(mContext, mLongitude, mLatitude,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
-
- }
-
- @Override
- public void onFail(int code, String failMsg) {
-
- }
- });
- }
-
- public void startOrStopOrderLoop(boolean start) {
- CallerLogger.d(M_BUS + TAG, "startOrStopOrderLoop() " + start);
- if (start) {
- BusModelLoopManager.getInstance().startHeartbeatLoop();
- } else {
- BusModelLoopManager.getInstance().stopHeartbeatLoop();
- }
- }
-
- // 登出
- public void logout() {
- LoginStatusManager.loginOut();
- }
-
- public void triggerStartServiceEvent(boolean isRestart, boolean send,int source) {
- if (backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestart, send,
- currentStation.getName(), nextStation.getName(), currentLineId,"",System.currentTimeMillis(),source);
- }
-
- public void triggerUpdateStartAutoPilotSessionId(long sessionId) {
- if (backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId);
- }
-
- public void triggerUnableStartAPReasonEvent() {
- if (backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent(
- currentStation.getName(), nextStation.getName(), String.valueOf(currentLineId),"",
- OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason());
- }
-
- public BusRoutesResult getBusRoutesResult() {
- return busRoutesResult;
- }
-
- public int getCurrentStationIndex() {
- return backgroundCurrentStationIndex;
- }
-
- /**
- * 将业务订单信息保存,鹰眼可取用
- */
- private void updateAutopilotControlParameters() {
-
- AutopilotControlParameters parameters = initAutopilotControlParameters(-1);
- if (null == parameters) {
- CallerLogger.e(M_BUS + TAG, "AutopilotControlParameters is empty.");
- return;
- }
- CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is update.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
- }
-
- private void clearAutopilotControlParameters() {
- CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is clear.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
- }
-
- private AutopilotControlParameters initAutopilotControlParameters(int leaveIndex) {
- BusStationBean currentStation;
- BusStationBean nextStation;
-
- if (leaveIndex < 0) {
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) {
- CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition1.");
- return null;
- }
- currentStation = stationList.get(backgroundCurrentStationIndex);
- nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- } else {
- if (leaveIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) {
- CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition2.");
- return null;
- }
- currentStation = stationList.get(leaveIndex);
- nextStation = stationList.get(leaveIndex + 1);
- }
-
- AutopilotControlParameters parameters = new AutopilotControlParameters();
- parameters.routeID = busRoutesResult.getLineId();
- parameters.routeName = busRoutesResult.getName();
- parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName());
- parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName());
- parameters.startLatLon = new AutopilotControlParameters
- .AutoPilotLonLat(currentStation.getLat(), currentStation.getLon());
- parameters.endLatLon = new AutopilotControlParameters
- .AutoPilotLonLat(nextStation.getLat(), nextStation.getLon());
- parameters.vehicleType = VEHICLE_TYPE;
- if (parameters.autoPilotLine == null) {
- parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
- busRoutesResult.getLineId(), busRoutesResult.getName(),
- busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5,
- busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5,
- busRoutesResult.contrailSaveTime, busRoutesResult.carModel,
- busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP,
- busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP,
- busRoutesResult.contrailSaveTimeDPQP);
- }
-
- return parameters;
- }
-
- public void setTrajectoryStation(MogoLocation startStation,MogoLocation endStation,Long lineId){
- TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,lineId);
- }
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.kt
deleted file mode 100644
index 5520d1cf83..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.kt
+++ /dev/null
@@ -1,166 +0,0 @@
-package com.mogo.och.bus.net
-
-import com.mogo.eagle.core.data.BaseData
-import com.mogo.och.bus.bean.request.BusCloseTaskRequest
-import com.mogo.och.bus.bean.request.BusQueryLineStationsRequest
-import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest
-import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean
-import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest
-import com.mogo.och.bus.bean.request.CarHeartbeatReqBean
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse
-import com.mogo.och.bus.bean.response.BusRoutesResponse
-import io.reactivex.Observable
-import retrofit2.http.Body
-import retrofit2.http.GET
-import retrofit2.http.Header
-import retrofit2.http.Headers
-import retrofit2.http.POST
-import retrofit2.http.Query
-
-/**
- * 小巴车相关接口
- *
- * @author tongchenfei
- *
- *
- * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
- */
-interface IBascApiService {
- /**
- * 根据车机坐标获取所在区域全部站点信息
- *
- * @param request 请求参数
- * @return 接口返回数据
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/line/v2/driver/bus/lineDataWithDriver/query")
- fun queryBusRoutes(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusQueryLineStationsRequest?
- ): Observable
-
- /**
- * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
- * @return 返回值是重置后的车站列表
- * 开始路线
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startTask")
- fun switchLine(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusResetDrivingLineRequest?
- ): Observable
-
- /**
- * 离站,通知服务器
- * @param request
- * @return
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave")
- fun leaveStation(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusUpdateSiteStatusRequest?
- ): Observable
-
- /**
- * 到站 更新到站信息
- * @param request
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/arrive")
- fun arriveSiteStation(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusUpdateSiteStatusRequest?
- ): Observable
-
-
- /**
- * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
- * @param data
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/location/v2/driver/bus/heartbeat")
- fun runCarHeartbeat(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: CarHeartbeatReqBean?
- ): Observable
-
- /**
- * 查询车辆配置的所有路线
- * @param appId
- * @param ticket
- * @param sn
- * @return
- */
- @GET("/autopilot-car-hailing/line/v2/driver/bus/bindLine/query")
- fun queryBusLines(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Query("sn") sn: String?
- ): Observable
-
- /**
- * 查询路线当天的任务
- * @param appId
- * @param ticket
- * @param lineId 线路id
- * @return
- */
- @GET("/autopilot-car-hailing/line/v2/driver/bus/task/query")
- fun queryBusTaskByLineId(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("lineId") lineId: String?): Observable
-
-
- /**
- * 上传轨迹信息
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate")
- fun updateOrderRoute(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusRoutePlanningUpdateReqBean?
- ): Observable
-
- /**
- * 中止任务
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask")
- fun abortTask(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusCloseTaskRequest?
- ): Observable
-
- /**
- * 任务正常跑完结束
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask")
- fun endTask(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusCloseTaskRequest?
- ): Observable
-}
-
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt
deleted file mode 100644
index 13dddf8f0b..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/ISAASApiService.kt
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.mogo.och.bus.net
-
-import com.mogo.eagle.core.data.BaseData
-import com.mogo.och.bus.bean.request.BusCloseTaskRequest
-import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest
-import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean
-import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse
-import com.mogo.och.bus.bean.response.BusRoutesResponse
-import io.reactivex.Observable
-import retrofit2.http.Body
-import retrofit2.http.GET
-import retrofit2.http.Header
-import retrofit2.http.Headers
-import retrofit2.http.POST
-import retrofit2.http.Query
-
-/**
- * 小巴车相关接口
- *
- * @author tongchenfei
- *
- *
- * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
- */
-interface ISAASApiService {
- /**
- * 根据车机坐标获取所在区域全部站点信息
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @GET("/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query")
- fun queryBusRoutes(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Query("sn") sn: String?
- ): Observable
-
- /**
- * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
- * @return 返回值是重置后的车站列表
- * 开始路线
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @POST("/och-bus-cabin/cab/flow/v1/bus/driver/startTask")
- fun switchLine(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusResetDrivingLineRequest?
- ): Observable
-
- /**
- * 离站,通知服务器
- */
- @Headers("Content-Type:application/json;charset=UTF-8")
- @POST("/och-bus-cabin/cab/flow/v1/bus/driver/leave")
- fun leaveStation(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusUpdateSiteStatusRequest?
- ): Observable
-
- /**
- * 到站 更新到站信息
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/och-bus-cabin/cab/flow/v1/bus/driver/arrive")
- fun arriveSiteStation(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body request: BusUpdateSiteStatusRequest?
- ): Observable
-
-
- /**
- * 查询车辆配置的所有路线
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @GET("/och-bus-cabin/api/business/v1/driver/BusBindLine")
- fun queryBusLines(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Query("sn") sn: String?
- ): Observable
-
- /**
- * 查询路线当天的任务
- * @param appId
- * @param ticket
- * @param lineId 线路id
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @GET("/och-bus-cabin/api/business/v1/driver/bus/task/query")
- fun queryBusTaskByLineId(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Query("lineId") lineId: String?
- ): Observable
-
-
- /**
- * 上传轨迹信息
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate")
- fun updateOrderRoute(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusRoutePlanningUpdateReqBean?
- ): Observable
-
- /**
- * 中止任务
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/och-bus-cabin/cab/flow/v1/bus/driver/abortTask")
- fun abortTask(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusCloseTaskRequest?
- ): Observable
-
- /**
- * 任务正常跑完结束
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers("Content-type:application/json;charset=UTF-8")
- @POST("/och-bus-cabin/cab/flow/v1/bus/driver/endTask")
- fun endTask(
- @Header("appId") appId: String?,
- @Header("ticket") ticket: String?,
- @Body data: BusCloseTaskRequest?
- ): Observable
-}
-
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt
deleted file mode 100644
index 92884c272b..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt
+++ /dev/null
@@ -1,331 +0,0 @@
-package com.mogo.och.bus.net
-
-import android.content.Context
-import com.mogo.cloud.passport.MoGoAiCloudClientConfig
-import com.mogo.commons.debug.DebugConfig
-import com.mogo.eagle.core.data.BaseData
-import com.mogo.eagle.core.network.MoGoRetrofitFactory
-import com.mogo.commons.storage.SharedPrefsMgr
-import com.mogo.eagle.core.data.map.MogoLocation
-import com.mogo.och.bus.bean.request.BusCloseTaskRequest
-import com.mogo.och.bus.bean.request.BusQueryLineStationsRequest
-import com.mogo.och.bus.bean.request.BusResetDrivingLineRequest
-import com.mogo.och.bus.bean.request.BusRoutePlanningUpdateReqBean
-import com.mogo.och.bus.bean.request.BusUpdateSiteStatusRequest
-import com.mogo.och.bus.bean.request.CarHeartbeatReqBean
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse
-import com.mogo.och.bus.bean.response.BusRoutesResponse
-import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.network.OchCommonServiceCallback
-import com.mogo.och.common.module.network.OchCommonSubscribeImpl
-import com.mogo.och.common.module.network.interceptor.transformTry
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/20
- */
-object OrderServiceManager {
-
- private val M_SERVICE: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
- IBascApiService::class.java
- )
-
- private val M_SAAS_SERVICE: ISAASApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
- ISAASApiService::class.java
- )
-
- /**
- * 查询小巴车当前任务
- * @param context
- * @param callback
- */
- @JvmStatic
- fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) {
- //获取当前高德坐标
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.queryBusRoutes(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- SharedPrefsMgr.getInstance().sn
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
-
- }else{
- M_SERVICE.queryBusRoutes(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusQueryLineStationsRequest()
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
- }
-
- }
-
- /**
- * 重置线路站点
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun switchLine(
- context: Context,
- taskId: Int,
- callback: OchCommonServiceCallback?
- ) {
-
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.switchLine(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusResetDrivingLineRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
- }else{
- M_SERVICE.switchLine(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusResetDrivingLineRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
- }
- }
-
- /**
- * 中断当前任务
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) {
-
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.abortTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
- }else{
- M_SERVICE.abortTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
- }
- }
-
- /**
- * 正常结束任务
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.endTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
- }else{
- M_SERVICE.endTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
- }
-
- }
-
- /**
- * 离站上报
- * @param context
- * @param seq
- * @param siteId
- * @param callback
- */
- @JvmStatic
- fun leaveStation(
- context: Context,
- seq: Int,
- siteId: Int,
- taskId: Int,
- callback: OchCommonServiceCallback?
- ) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.leaveStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
- }else{
- M_SERVICE.leaveStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
- }
- }
-
- /**
- * 到站更新站点状态
- * @param context
- * @param seq
- * @param siteId
- * @param callback
- */
- @JvmStatic
- fun arriveSiteStation(
- context: Context, seq: Int, siteId: Int, taskId: Int,
- callback: OchCommonServiceCallback?
- ) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.arriveSiteStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
- }else{
- M_SERVICE.arriveSiteStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
- }
- }
-
- @JvmStatic
- fun queryBusLines(context: Context, callback: OchCommonServiceCallback?) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.queryBusLines(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- SharedPrefsMgr.getInstance().sn
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }else{
- M_SERVICE.queryBusLines(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- SharedPrefsMgr.getInstance().sn
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }
-
- }
- @JvmStatic
- fun queryBusTaskByLineId(
- context: Context,
- lineId: String?,
- callback: OchCommonServiceCallback?
- ) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.queryBusTaskByLineId(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- lineId
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }else{
- M_SERVICE.queryBusTaskByLineId(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- lineId
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }
- }
- @JvmStatic
- fun updateOrderRoute(
- context: Context,
- lineId: Int,
- startSiteId: Int,
- endSiteId: Int,
- points: List,
- callback: OchCommonServiceCallback?
- ) {
- val pointsResult = mutableListOf()
- points.forEach {
- val result = BusRoutePlanningUpdateReqBean.Result()
- result.latitude = it.latitude;
- result.longitude = it.longitude;
- pointsResult.add(result);
- }
- if (DebugConfig.getProjectFlavor().contains("saas")){
- M_SAAS_SERVICE.updateOrderRoute(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusRoutePlanningUpdateReqBean(
- SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult
- )
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute"))
- }else{
- M_SERVICE.updateOrderRoute(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusRoutePlanningUpdateReqBean(
- SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult
- )
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute"))
- }
- }
-
- /**
- * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
- * @param context
- * @param lon
- * @param lat
- * @param callback
- */
- @JvmStatic
- fun runCarHeartbeat(
- context: Context, lon: Double, lat: Double,
- callback: OchCommonServiceCallback?
- ) {
- if (DebugConfig.getProjectFlavor().contains("saas")){
-
- }else{
- M_SERVICE.runCarHeartbeat(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- CarHeartbeatReqBean(
- SharedPrefsMgr.getInstance().sn, lon, lat
- )
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "runCarHeartbeat",false))
- }
- }
-
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java
deleted file mode 100644
index 2e395b5be5..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package com.mogo.och.bus.presenter;
-
-import android.os.Looper;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LifecycleOwner;
-
-import com.mogo.commons.mvp.Presenter;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse;
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse;
-import com.mogo.och.bus.callback.IBusLinesCallback;
-import com.mogo.och.bus.model.BusLineModel;
-import com.mogo.och.bus.model.OrderModel;
-import com.mogo.och.bus.ui.BusSwitchLineView;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.disposables.Disposable;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class BusLinePresenter extends Presenter implements IBusLinesCallback {
-
- private Disposable subscribe;
-
- public BusLinePresenter(BusSwitchLineView view) {
- super(view);
- BusLineModel.getInstance().init();
- OrderModel.getInstance().init();
- }
-
- @Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
- initListener();
- }
-
- private void initListener() {
- BusLineModel.getInstance().setBusLinesCallback(this);
- }
-
- private void runOnUIThread( Runnable executor ) {
- if ( executor == null ) {
- return;
- }
- if ( Looper.myLooper() != Looper.getMainLooper() ) {
- UiThreadHandler.post( executor );
- } else {
- executor.run();
- }
- }
-
- @Override
- public void onBusLinesChange(BusQueryLinesResponse lines) {
- runOnUIThread(() -> mView.onBusLinesChange(lines));
- }
-
- @Override
- public void onChangeLineIdSuccess() {
- OrderModel.getInstance().clearBusStationDatas();
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onChangeLineIdSuccess();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- public void queryBusLines(){
- BusLineModel.getInstance().queryBusLines();
- }
-
- public void queryBusLineTasks(int lineId, int position,boolean close){
- if(subscribe!=null&&!subscribe.isDisposed()){
- subscribe.dispose();
- }
- if(close){
- return;
- }
- BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false);
- subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> {
- BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true);
- });
- }
-
- public void commitSwitchLineId(int taskId,int lineId){
- BusLineModel.getInstance().commitSwitchLineId(taskId,lineId);
- }
-
- public void removeListener(){
- BusLineModel.getInstance().setBusLinesCallback(null);
- }
-
- public void queryBusRoutes(){
- OrderModel.getInstance().queryBusRoutes();
- }
-
- @Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- if(subscribe!=null&&!subscribe.isDisposed()){
- subscribe.dispose();
- }
- }
-
-
- @Override
- public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) {
- if(mView!=null) {
- mView.onBusLineTasks(o,position,autoRefresh);
- }
- }
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java
deleted file mode 100644
index 8545f5f399..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.mogo.och.bus.presenter;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.och.bus.constant.BusConst;
-import com.mogo.och.bus.model.OrderModel;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.schedulers.Schedulers;
-
-/**
- * Created on 2021/11/22
- *
- * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等)
- */
-public class BusModelLoopManager {
-
- private static final String TAG = BusModelLoopManager.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final BusModelLoopManager INSTANCE = new BusModelLoopManager();
- }
-
- public static BusModelLoopManager getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private Disposable mHeartbeatDisposable; //心跳轮询
-
- public void startHeartbeatLoop() {
- if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) {
- return;
- }
- CallerLogger.i(M_BUS + TAG, "startHeartbeatLoop()");
- mHeartbeatDisposable = Observable.interval(BusConst.LOOP_DELAY,
- BusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> OrderModel.getInstance().runCarHeartbeat());
- }
-
- public void stopHeartbeatLoop() {
- if (mHeartbeatDisposable != null) {
- CallerLogger.i(M_BUS + TAG, "stopHeartbeatLoop()");
- mHeartbeatDisposable.dispose();
- mHeartbeatDisposable = null;
- }
- }
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt
deleted file mode 100644
index 7391028f87..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.kt
+++ /dev/null
@@ -1,259 +0,0 @@
-package com.mogo.och.bus.presenter
-
-import androidx.lifecycle.LifecycleOwner
-import com.mogo.commons.AbsMogoApplication
-import com.mogo.commons.mvp.Presenter
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler
-import com.mogo.och.bus.bean.WriteOffPassenger
-import com.mogo.och.bus.callback.IPassengerCallback
-import com.mogo.och.bus.fragment.BusFragment
-import com.mogo.och.bus.model.OrderModel
-import com.mogo.och.bus.util.BusTrajectoryManager
-import com.mogo.och.bus.util.BusVoiceManager
-import com.mogo.och.common.module.biz.login.ILoginCallback
-import com.mogo.och.common.module.biz.login.LoginStatusEnum
-import com.mogo.och.common.module.biz.login.LoginStatusManager
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation
-import com.mogo.och.data.bean.BusStationBean
-import mogo_msg.MogoReportMsg;
-
-/**
- * 网约车小巴
- */
-class BusPresenter(view: BusFragment?) : Presenter(view), ILoginCallback,
- IPassengerCallback, IOchAutopilotStatusListener {
- private val mStationList: MutableList = ArrayList()
- private var mCurrentStation = 0
-
- init {
- //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
- OrderModel.getInstance().init()
- OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp())
- }
-
- override fun onCreate(owner: LifecycleOwner) {
- super.onCreate(owner)
- initModelListener()
-
- OrderModel.getInstance().queryBusCacheRoutes()
- }
-
- override fun onDestroy(owner: LifecycleOwner) {
- super.onDestroy(owner)
- OrderModel.getInstance().release()
- releaseListener()
- }
-
- fun initModelListener() {
- OrderModel.getInstance().setPassengerCallback(this)
- OchAutoPilotStatusListenerManager.addListener(TAG, this)
- LoginStatusManager.addListener(TAG, this)
- }
-
- fun releaseListener() {
- OrderModel.getInstance().setPassengerCallback(null)
- OCHAdasAbilityManager.getInstance().release()
- OchAutoPilotStatusListenerManager.removeListener(TAG)
- LoginStatusManager.removeListener(TAG)
- }
-
- fun abortTask() {
- OrderModel.getInstance().abortTask()
- }
-
- fun autoDriveToNextStation() {
- OrderModel.getInstance().autoDriveToNextStation()
- }
-
- fun restartAutopilot() {
- if (OrderModel.getInstance().isGoingToNextStation) {
- OrderModel.getInstance().restartAutopilot()
- }
- }
-
- // 登出
- fun logout() {
- OrderModel.getInstance().logout()
- }
-
- override fun updateBusTaskStatus(
- lineName: String, lineTime: String,
- stationList: List,
- arrivingOrArrivedIndex: Int,
- isArrived: Boolean
- ) {
- mStationList.clear()
- mStationList.addAll(stationList)
- mCurrentStation = if (arrivingOrArrivedIndex == 0 || isArrived) {
- arrivingOrArrivedIndex
- } else {
- arrivingOrArrivedIndex - 1
- }
- CallerLogger.d(
- SceneConstant.Companion.M_BUS + "BusOrderModel =",
- " mCurrentStation =$mCurrentStation"
- )
- UiThreadHandler.post({
- mView?.updateBusTaskStatus(
- lineName, lineTime,
- stationList, arrivingOrArrivedIndex, isArrived
- )
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- override fun updateEmptyUi() {
- UiThreadHandler.post({
- mView?.updateLineEmptyUI()
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- override fun clearBusStationsMarkers() {
- UiThreadHandler.post({
- mView?.clearBusStationsMarkers()
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- override fun hideSlidePanel() {
- mView?.hideSlidePanel()
- mView?.setArrivedClickable(true)
- }
-
- override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation) {
- CallerLogger.e(
- SceneConstant.Companion.M_BUS + TAG,
- "行程日志-onAutopilotArriveAtStation arrive"
- )
- arriveStation(arrivedStation, "底盘触发进站")
- }
-
- fun arriveStation(arrivedStation: ArrivedStation?, type: String?) {
- OrderModel.getInstance().onArriveAt(arrivedStation, type)
- }
-
-
- override fun onAutopilotStatusResponse(state: Int) {
- when (state) {
- IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE, IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE, IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
- if (FunctionBuildConfig.isDemoMode
- && ((mCurrentStation >= 0 && mCurrentStation <= mStationList.size - 1)
- && OrderModel.getInstance().isGoingToNextStation
- )
- ) {
- CallerLogger.d(SceneConstant.Companion.M_BUS + "BusOrderModel=", "有美化功能")
- return
- }
- // 改变UI自动驾驶状态
- UiThreadHandler.post({
- mView?.onAutopilotStatusChanged(
- state,
- CallerAutoPilotControlManager.isCanStartAutopilot(false, 0)
- )
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
- OrderModel.getInstance().triggerStartServiceEvent(
- OrderModel.getInstance().isRestartAutopilot, true, 0
- )
- // 改变UI自动驾驶状态
- UiThreadHandler.post({
- mView?.onAutopilotStatusChanged(
- state,
- CallerAutoPilotControlManager.isCanStartAutopilot(false, 0)
- )
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- else -> UiThreadHandler.post({
- mView?.onAutopilotEnableChange(false)
- }, UiThreadHandler.MODE.QUEUE)
- }
- }
-
- override fun onAutopilotStatusResponseFromCan(state: Int) {
- if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- OrderModel.getInstance().triggerStartServiceEvent(
- OrderModel.getInstance().isRestartAutopilot, true, 1
- )
- }
- }
-
- override fun startOpenAutopilot() {
- //非美化模式下启动动画
- UiThreadHandler.post({
- mView?.startAutopilotAnimation()
- }, UiThreadHandler.MODE.QUEUE)
-
- //中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示
- if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
- == CallerAutoPilotStatusListenerManager.getState() && mView != null
- ) {
- mView?.onAutopilotStatusChanged(
- CallerAutoPilotStatusListenerManager.getState(),
- CallerAutoPilotControlManager.isCanStartAutopilot(false, 0)
- )
- }
- }
-
- /**
- * 测试使用
- */
- fun debugAutoPilotStatus(status: Int) {
- onAutopilotStatusResponse(status)
- }
-
-
- override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?, lineId: Long) {
- BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo, lineId)
- }
-
-
- override fun onStatusChange(currentStatus: LoginStatusEnum) {
- CallerLogger.d(
- SceneConstant.Companion.M_BUS + TAG,
- " loginStatus =" + LoginStatusManager.isLogin()
- )
- if (LoginStatusManager.isLogin()) {
- OrderModel.getInstance().startOrStopOrderLoop(true)
- OrderModel.getInstance().queryBusCacheRoutes()
- } else {
- BusTrajectoryManager.getInstance().stopTrajReqLoop()
- OrderModel.getInstance().startOrStopOrderLoop(false)
- BusTrajectoryManager.getInstance().stopTrajReqLoop()
- clearBusStationsMarkers()
- mView?.hideSlidePanel()
- OrderModel.getInstance().closeBeautificationMode()
- }
- }
-
- override fun playPassenger(passenger: WriteOffPassenger) {
- val passengerNum = passenger.passengerSize
- BusVoiceManager.writeOffCount(passengerNum)
- }
-
- override fun onStartAdasFailure() {
- UiThreadHandler.post({
- mView?.stopAnimAndUpdateBtnStatus()
- }, UiThreadHandler.MODE.QUEUE)
- }
-
- override fun canStartAutopilot(canStart: Boolean) {
- mView?.onAutopilotStatusChanged(
- CallerAutoPilotStatusListenerManager.getState(),
- canStart
- )
- }
-
- companion object {
- private const val TAG = "BusPresenter"
- }
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt
deleted file mode 100644
index ed9f463413..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.mogo.och.bus.ui
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.widget.ImageView
-import android.widget.LinearLayout
-import androidx.core.content.ContextCompat
-import com.mogo.och.bus.R
-import com.mogo.och.common.module.utils.BlinkAnimationUtil
-import kotlinx.android.synthetic.main.bus_stations_common_item.view.*
-
-/**
- * @author: wangmingjun
- * @date: 2022/9/15
- */
-class BusStationCommonItem @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : LinearLayout(context, attrs, defStyleAttr){
-
- init {
- LayoutInflater.from(context).inflate(R.layout.bus_stations_common_item,this,true)
- }
-
- fun setStationName(name: String){
- busStationNameTv.text = name
- }
-
- fun setStationNameColor(color: Int){
- busStationNameTv.setTextColor(color)
- }
-
- fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站
- BlinkAnimationUtil.clearAnimation(busCircleIv)
- when (type) {
- 0 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_grey_bus
- )
- )
- }
- 1 -> {
- busCircleIvBg.visibility = VISIBLE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_green_bus
- )
- )
- BlinkAnimationUtil.setAnimation(busCircleIv)
- }
- 2 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_blue_bus
- )
- )
- }
-
- }
- }
-
- fun getCircleImageView() : ImageView{
- return busCircleIv
- }
-
- fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站
- when(type){
- 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus)
- 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus)
- 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus)
- }
-
- }
-
- fun setStationTag(tag: String){ // 0:起 1:终
- if (tag.isNullOrEmpty()){
- busTagTxt.visibility = GONE
- }else{
- busTagTxt.text = tag
- busTagTxt.visibility = VISIBLE
- }
- }
-
- fun showOrHideStationArrowBg(isShow:Boolean){
- if (isShow){
- busArrowBg.visibility = VISIBLE
- }else{
- busArrowBg.visibility = GONE
- }
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt
deleted file mode 100644
index 877921a5e0..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt
+++ /dev/null
@@ -1,223 +0,0 @@
-package com.mogo.och.bus.ui
-
-import android.graphics.Point
-import android.os.Bundle
-import android.view.Gravity
-import android.view.View
-import android.view.ViewGroup
-import android.view.WindowManager
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.commons.mvp.MvpActivity
-import com.mogo.commons.storage.SharedPrefsMgr
-import com.mogo.och.bus.presenter.BusLinePresenter
-import com.mogo.och.bus.ui.adapter.SwitchLineAdapter
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse
-import com.mogo.och.bus.ui.adapter.OpenItemAnimator
-import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
-import com.mogo.eagle.core.utilcode.util.ToastUtils
-import com.mogo.och.bus.R
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse
-import com.mogo.och.common.module.utils.ResourcesUtils
-import java.util.ArrayList
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/8
- */
-class BusSwitchLineActivity : MvpActivity(),
- View.OnClickListener, BusSwitchLineView {
-
- companion object{
- const val LASTCOMMITLINEID = "lastcommitlineid"
- }
-
- private lateinit var mClose: ImageView
- private lateinit var mNoDatasView: ConstraintLayout
- private lateinit var mLinesListView: RecyclerView
- private lateinit var mLineCommitBtn: TextView
- private lateinit var mAdapter: SwitchLineAdapter
- private lateinit var linearLayoutManager:LinearLayoutManager
- private val mData: MutableList = ArrayList()
- override fun getLayoutId(): Int {
- return R.layout.bus_switch_line
- }
-
- override fun createPresenter(): BusLinePresenter {
- return BusLinePresenter(this)
- }
-
- override fun initViews() {
- initWH()
- initView()
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- initDatas()
- }
-
- /**
- * 初始化view
- */
- private fun initView() {
- mClose = findViewById(R.id.switch_line_close)
- mClose.setOnClickListener(this)
- mNoDatasView = findViewById(R.id.no_order_data_view)
- mLineCommitBtn = findViewById(R.id.switch_line_btn_commit)
- mLineCommitBtn.setOnClickListener(this)
- mLinesListView = findViewById(R.id.switch_line_rv)
- linearLayoutManager = LinearLayoutManager(this)
- mLinesListView.setLayoutManager(linearLayoutManager)
- mLinesListView.setItemAnimator(OpenItemAnimator())
- mAdapter = SwitchLineAdapter(applicationContext, mData)
- mLinesListView.addItemDecoration(
- SpacesItemDecoration(
- 4
- )
- )
- mLinesListView.setAdapter(mAdapter)
- //设置item 点击事件
- mAdapter.setOnLineItemClickListener(object :SwitchLineAdapter.LineItemClickListener{
- override fun onItemClick(position: Int, close: Boolean) {
- mPresenter?.queryBusLineTasks(mData[position].lineId, position, close)
- }
- })
- }
-
- /**
- * 设置布局宽高
- */
- private fun initWH() {
- val window = window
- val params = window.attributes
- val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager
- val point = Point()
- windowManager.defaultDisplay.getSize(point) //用于获取屏幕高度
- params.width = (point.x * 0.375).toInt()
- params.height = ViewGroup.LayoutParams.MATCH_PARENT
- window.attributes = params
- window.setGravity(Gravity.START or Gravity.BOTTOM)
- }
-
- /**
- * 初始化数据
- */
- private fun initDatas() {
- mPresenter?.queryBusLines()
- }
-
- /**
- * 查询返回绑定路线集合
- * @param data
- */
- override fun onBusLinesChange(data: BusQueryLinesResponse?) {
- if (null == data) {
- showNoData(true)
- return
- }
- val lastCommitLineid = SharedPrefsMgr.getInstance().getInt(LASTCOMMITLINEID, -1)
- if (data.data != null && data.data.isNullOrEmpty()) {
- showNoData(false)
- mData.clear()
- mData.addAll(data.data!!)
- mAdapter.notifyDataSetChanged()
- if(lastCommitLineid>0){
- mData.forEachIndexed { index, line ->
- if(line.lineId==lastCommitLineid){
- line.open = true
- mPresenter?.queryBusLineTasks(line.lineId,index,false)
- return
- }
- }
- }
- } else {
- showNoData(true)
- }
- }
-
- override fun onChangeLineIdSuccess() {
- ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_change_line_commit_tip_s))
- mPresenter?.queryBusRoutes()
- mAdapter.setOnLineItemClickListener(null)
- mPresenter?.removeListener()
- finish()
- }
-
- override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) {
- val result = mData[position]
- if (result.taskList == null) {
- result.taskList = ArrayList()
- }
- if (lineTaskInfo == null) {
- result.haveTask = true
- // 打开操作
- mAdapter.notifyItemChanged(position)
- } else {
- if (lineTaskInfo.data.isNullOrEmpty()) {
- result.haveTask = true
- lineTaskInfo.data = ArrayList()
- }
- if (lineTaskInfo.data!!.size != result.taskList!!.size) { // 不相等有变动 重新赋值
- result.taskList!!.clear()
- result.taskList!!.addAll(lineTaskInfo.data!!)
- if(autoRefresh) {
- mAdapter.checkTaskId = -1
- mAdapter.checkLineId = -1
- lineTaskInfo.data?.forEach {
- if (it.id == mAdapter.checkTaskId) {
- mAdapter.checkTaskId = it.id
- mAdapter.checkLineId = result.lineId
- }
- }
- }
- // 打开操作
- mAdapter.notifyItemChanged(position)
- linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6
- mLinesListView.smoothScrollToPosition(position)
- }else if(lineTaskInfo.data.isNullOrEmpty()){
- mAdapter.notifyItemChanged(position)
- }
- }
- }
-
- /**
- * 有无数据UI显示
- * @param b
- */
- private fun showNoData(b: Boolean) {
- if (b) {
- mLinesListView.visibility = View.GONE
- mLineCommitBtn.visibility = View.GONE
- mNoDatasView.visibility = View.VISIBLE
- } else {
- mLinesListView.visibility = View.VISIBLE
- mLineCommitBtn.visibility = View.VISIBLE
- mNoDatasView.visibility = View.GONE
- }
- }
-
- override fun onClick(v: View) {
- //关闭dialog
- if (v.id == R.id.switch_line_close) {
- finish()
- return
- }
- //切换路线提交
- if (v.id == R.id.switch_line_btn_commit) {
- if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){
- mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId)
- }else{
- ToastUtils.showLong("请选择任务")
- }
- }
- }
-
- override fun onDestroy() {
- mPresenter!!.removeListener()
- super.onDestroy()
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java
deleted file mode 100644
index 9b84e36e43..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mogo.och.bus.ui;
-
-import com.mogo.commons.mvp.IView;
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse;
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/10
- */
-public interface BusSwitchLineView extends IView {
-
- void onBusLinesChange(BusQueryLinesResponse data);
- void onChangeLineIdSuccess();
-
- void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh);
-}
-
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java
deleted file mode 100644
index 15ff420cc1..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java
+++ /dev/null
@@ -1,642 +0,0 @@
-package com.mogo.och.bus.ui.adapter;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.TimeInterpolator;
-import android.animation.ValueAnimator;
-import android.view.View;
-import android.view.ViewPropertyAnimator;
-
-import androidx.annotation.NonNull;
-import androidx.core.view.ViewCompat;
-import androidx.recyclerview.widget.DefaultItemAnimator;
-import androidx.recyclerview.widget.RecyclerView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * This implementation of {@link RecyclerView.ItemAnimator} provides basic
- * animations on remove, add, and move events that happen to the items in
- * a RecyclerView. RecyclerView uses a DefaultItemAnimator by default.
- *
- * @see RecyclerView#setItemAnimator(RecyclerView.ItemAnimator)
- */
-public class OpenItemAnimator extends DefaultItemAnimator {
- private static final boolean DEBUG = false;
-
- private static TimeInterpolator sDefaultInterpolator;
-
- private final ArrayList mPendingRemovals = new ArrayList<>();
- private final ArrayList mPendingAdditions = new ArrayList<>();
- private final ArrayList mPendingMoves = new ArrayList<>();
- private final ArrayList mPendingChanges = new ArrayList<>();
-
- private final ArrayList> mAdditionsList = new ArrayList<>();
- private final ArrayList> mMovesList = new ArrayList<>();
- private final ArrayList> mChangesList = new ArrayList<>();
-
- private final ArrayList mAddAnimations = new ArrayList<>();
- private final ArrayList mMoveAnimations = new ArrayList<>();
- private final ArrayList mRemoveAnimations = new ArrayList<>();
- private final ArrayList mChangeAnimations = new ArrayList<>();
-
- private static class MoveInfo {
- public RecyclerView.ViewHolder holder;
- public int fromX, fromY, toX, toY;
-
- MoveInfo(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) {
- this.holder = holder;
- this.fromX = fromX;
- this.fromY = fromY;
- this.toX = toX;
- this.toY = toY;
- }
- }
-
- private static class ChangeInfo {
- public RecyclerView.ViewHolder oldHolder, newHolder;
- public int fromX, fromY, toX, toY;
- private ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder) {
- this.oldHolder = oldHolder;
- this.newHolder = newHolder;
- }
-
- ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder,
- int fromX, int fromY, int toX, int toY) {
- this(oldHolder, newHolder);
- this.fromX = fromX;
- this.fromY = fromY;
- this.toX = toX;
- this.toY = toY;
- }
-
- @Override
- public String toString() {
- return "ChangeInfo{"
- + "oldHolder=" + oldHolder
- + ", newHolder=" + newHolder
- + ", fromX=" + fromX
- + ", fromY=" + fromY
- + ", toX=" + toX
- + ", toY=" + toY
- + '}';
- }
- }
-
- @Override
- public void runPendingAnimations() {
- boolean removalsPending = !mPendingRemovals.isEmpty();
- boolean movesPending = !mPendingMoves.isEmpty();
- boolean changesPending = !mPendingChanges.isEmpty();
- boolean additionsPending = !mPendingAdditions.isEmpty();
- if (!removalsPending && !movesPending && !additionsPending && !changesPending) {
- // nothing to animate
- return;
- }
- // First, remove stuff
- for (RecyclerView.ViewHolder holder : mPendingRemovals) {
- animateRemoveImpl(holder);
- }
- mPendingRemovals.clear();
- // Next, move stuff
- if (movesPending) {
- final ArrayList moves = new ArrayList<>(mPendingMoves);
- mMovesList.add(moves);
- mPendingMoves.clear();
- Runnable mover = () -> {
- for (MoveInfo moveInfo : moves) {
- animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY,
- moveInfo.toX, moveInfo.toY);
- }
- moves.clear();
- mMovesList.remove(moves);
- };
- if (removalsPending) {
- View view = moves.get(0).holder.itemView;
- ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration());
- } else {
- mover.run();
- }
- }
- // Next, change stuff, to run in parallel with move animations
- if (changesPending) {
- final ArrayList changes = new ArrayList<>(mPendingChanges);
- mChangesList.add(changes);
- mPendingChanges.clear();
- Runnable changer = () -> {
- for (ChangeInfo change : changes) {
- animateChangeImpl(change);
- }
- changes.clear();
- mChangesList.remove(changes);
- };
- if (removalsPending) {
- RecyclerView.ViewHolder holder = changes.get(0).oldHolder;
- ViewCompat.postOnAnimationDelayed(holder.itemView, changer, getRemoveDuration());
- } else {
- changer.run();
- }
- }
- // Next, add stuff
- if (additionsPending) {
- final ArrayList additions = new ArrayList<>(mPendingAdditions);
- mAdditionsList.add(additions);
- mPendingAdditions.clear();
- Runnable adder = () -> {
- for (RecyclerView.ViewHolder holder : additions) {
- animateAddImpl(holder);
- }
- additions.clear();
- mAdditionsList.remove(additions);
- };
- if (removalsPending || movesPending || changesPending) {
- long removeDuration = removalsPending ? getRemoveDuration() : 0;
- long moveDuration = movesPending ? getMoveDuration() : 0;
- long changeDuration = changesPending ? getChangeDuration() : 0;
- long totalDelay = removeDuration + Math.max(moveDuration, changeDuration);
- View view = additions.get(0).itemView;
- ViewCompat.postOnAnimationDelayed(view, adder, totalDelay);
- } else {
- adder.run();
- }
- }
- }
-
- @Override
- public boolean animateRemove(final RecyclerView.ViewHolder holder) {
- resetAnimation(holder);
- mPendingRemovals.add(holder);
- return true;
- }
-
- private void animateRemoveImpl(final RecyclerView.ViewHolder holder) {
- final View view = holder.itemView;
- final ViewPropertyAnimator animation = view.animate();
- mRemoveAnimations.add(holder);
- animation.setDuration(getRemoveDuration()).alpha(0).setListener(
- new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchRemoveStarting(holder);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- view.setAlpha(1);
- dispatchRemoveFinished(holder);
- mRemoveAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateAdd(final RecyclerView.ViewHolder holder) {
- resetAnimation(holder);
- holder.itemView.setAlpha(0);
- mPendingAdditions.add(holder);
- return true;
- }
-
- void animateAddImpl(final RecyclerView.ViewHolder holder) {
- final View view = holder.itemView;
- final ViewPropertyAnimator animation = view.animate();
- mAddAnimations.add(holder);
- animation.alpha(1).setDuration(getAddDuration())
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchAddStarting(holder);
- }
-
- @Override
- public void onAnimationCancel(Animator animator) {
- view.setAlpha(1);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- dispatchAddFinished(holder);
- mAddAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY,
- int toX, int toY) {
- final View view = holder.itemView;
- fromX += (int) holder.itemView.getTranslationX();
- fromY += (int) holder.itemView.getTranslationY();
- resetAnimation(holder);
- int deltaX = toX - fromX;
- int deltaY = toY - fromY;
- if (deltaX == 0 && deltaY == 0) {
- dispatchMoveFinished(holder);
- return false;
- }
- if (deltaX != 0) {
- view.setTranslationX(-deltaX);
- }
- if (deltaY != 0) {
- view.setTranslationY(-deltaY);
- }
- mPendingMoves.add(new MoveInfo(holder, fromX, fromY, toX, toY));
- return true;
- }
-
- void animateMoveImpl(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) {
- final View view = holder.itemView;
- final int deltaX = toX - fromX;
- final int deltaY = toY - fromY;
- if (deltaX != 0) {
- view.animate().translationX(0);
- }
- if (deltaY != 0) {
- view.animate().translationY(0);
- }
- // TODO: make EndActions end listeners instead, since end actions aren't called when
- // vpas are canceled (and can't end them. why?)
- // need listener functionality in VPACompat for this. Ick.
- final ViewPropertyAnimator animation = view.animate();
- mMoveAnimations.add(holder);
- animation.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchMoveStarting(holder);
- }
-
- @Override
- public void onAnimationCancel(Animator animator) {
- if (deltaX != 0) {
- view.setTranslationX(0);
- }
- if (deltaY != 0) {
- view.setTranslationY(0);
- }
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- dispatchMoveFinished(holder);
- mMoveAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder,
- int fromX, int fromY, int toX, int toY) {
- if (oldHolder == newHolder) {
- // Don't know how to run change animations when the same view holder is re-used.
- // run a move animation to handle position changes.
- return animateMove(oldHolder, fromX, fromY, toX, toY);
- }
- final float prevTranslationX = oldHolder.itemView.getTranslationX();
- final float prevTranslationY = oldHolder.itemView.getTranslationY();
- final float prevAlpha = oldHolder.itemView.getAlpha();
- resetAnimation(oldHolder);
- int deltaX = (int) (toX - fromX - prevTranslationX);
- int deltaY = (int) (toY - fromY - prevTranslationY);
- // recover prev translation state after ending animation
- oldHolder.itemView.setTranslationX(prevTranslationX);
- oldHolder.itemView.setTranslationY(prevTranslationY);
- oldHolder.itemView.setAlpha(prevAlpha);
- if (newHolder != null) {
- // carry over translation values
- resetAnimation(newHolder);
- newHolder.itemView.setTranslationX(-deltaX);
- newHolder.itemView.setTranslationY(-deltaY);
- newHolder.itemView.setAlpha(0);
- }
- mPendingChanges.add(new ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY));
- return true;
- }
-
- void animateChangeImpl(final ChangeInfo changeInfo) {
- final RecyclerView.ViewHolder holder = changeInfo.oldHolder;
- final View view = holder == null ? null : holder.itemView;
- final RecyclerView.ViewHolder newHolder = changeInfo.newHolder;
- final View newView = newHolder != null ? newHolder.itemView : null;
- if (view != null) {
- final ViewPropertyAnimator oldViewAnim = view.animate().setDuration(
- getChangeDuration());
- mChangeAnimations.add(changeInfo.oldHolder);
- oldViewAnim.translationX((float) (changeInfo.toX - changeInfo.fromX));
- oldViewAnim.translationY((float) (changeInfo.toY - changeInfo.fromY));
- oldViewAnim.alpha(0).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchChangeStarting(changeInfo.oldHolder, true);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- oldViewAnim.setListener(null);
- view.setAlpha(1);
- view.setTranslationX(0);
- view.setTranslationY(0);
- dispatchChangeFinished(changeInfo.oldHolder, true);
- mChangeAnimations.remove(changeInfo.oldHolder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
- if (newView != null) {
- final ViewPropertyAnimator newViewAnimation = newView.animate();
- mChangeAnimations.add(changeInfo.newHolder);
- newViewAnimation.translationX(0).translationY(0).setDuration(getChangeDuration())
- .alpha(1).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchChangeStarting(changeInfo.newHolder, false);
- }
- @Override
- public void onAnimationEnd(Animator animator) {
- newViewAnimation.setListener(null);
- newView.setAlpha(1);
- newView.setTranslationX(0);
- newView.setTranslationY(0);
- dispatchChangeFinished(changeInfo.newHolder, false);
- mChangeAnimations.remove(changeInfo.newHolder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
- }
-
- private void endChangeAnimation(List infoList, RecyclerView.ViewHolder item) {
- for (int i = infoList.size() - 1; i >= 0; i--) {
- ChangeInfo changeInfo = infoList.get(i);
- if (endChangeAnimationIfNecessary(changeInfo, item)) {
- if (changeInfo.oldHolder == null && changeInfo.newHolder == null) {
- infoList.remove(changeInfo);
- }
- }
- }
- }
-
- private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) {
- if (changeInfo.oldHolder != null) {
- endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder);
- }
- if (changeInfo.newHolder != null) {
- endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder);
- }
- }
- private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) {
- boolean oldItem = false;
- if (changeInfo.newHolder == item) {
- changeInfo.newHolder = null;
- } else if (changeInfo.oldHolder == item) {
- changeInfo.oldHolder = null;
- oldItem = true;
- } else {
- return false;
- }
- item.itemView.setAlpha(1);
- item.itemView.setTranslationX(0);
- item.itemView.setTranslationY(0);
- dispatchChangeFinished(item, oldItem);
- return true;
- }
-
- @Override
- public void endAnimation(RecyclerView.ViewHolder item) {
- final View view = item.itemView;
- // this will trigger end callback which should set properties to their target values.
- view.animate().cancel();
- // TODO if some other animations are chained to end, how do we cancel them as well?
- for (int i = mPendingMoves.size() - 1; i >= 0; i--) {
- MoveInfo moveInfo = mPendingMoves.get(i);
- if (moveInfo.holder == item) {
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item);
- mPendingMoves.remove(i);
- }
- }
- endChangeAnimation(mPendingChanges, item);
- if (mPendingRemovals.remove(item)) {
- view.setAlpha(1);
- dispatchRemoveFinished(item);
- }
- if (mPendingAdditions.remove(item)) {
- view.setAlpha(1);
- dispatchAddFinished(item);
- }
-
- for (int i = mChangesList.size() - 1; i >= 0; i--) {
- ArrayList changes = mChangesList.get(i);
- endChangeAnimation(changes, item);
- if (changes.isEmpty()) {
- mChangesList.remove(i);
- }
- }
- for (int i = mMovesList.size() - 1; i >= 0; i--) {
- ArrayList moves = mMovesList.get(i);
- for (int j = moves.size() - 1; j >= 0; j--) {
- MoveInfo moveInfo = moves.get(j);
- if (moveInfo.holder == item) {
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item);
- moves.remove(j);
- if (moves.isEmpty()) {
- mMovesList.remove(i);
- }
- break;
- }
- }
- }
- for (int i = mAdditionsList.size() - 1; i >= 0; i--) {
- ArrayList additions = mAdditionsList.get(i);
- if (additions.remove(item)) {
- view.setAlpha(1);
- dispatchAddFinished(item);
- if (additions.isEmpty()) {
- mAdditionsList.remove(i);
- }
- }
- }
-
- // animations should be ended by the cancel above.
- //noinspection Pointless BooleanExpression,ConstantConditions
- if (mRemoveAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mRemoveAnimations list");
- }
-
- //noinspection Pointless BooleanExpression,ConstantConditions
- if (mAddAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mAddAnimations list");
- }
-
- //noinspection Pointless BooleanExpression,ConstantConditions
- if (mChangeAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mChangeAnimations list");
- }
-
- //noinspection Pointless BooleanExpression,ConstantConditions
- if (mMoveAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mMoveAnimations list");
- }
- dispatchFinishedWhenDone();
- }
-
- private void resetAnimation(RecyclerView.ViewHolder holder) {
- if (sDefaultInterpolator == null) {
- sDefaultInterpolator = new ValueAnimator().getInterpolator();
- }
- holder.itemView.animate().setInterpolator(sDefaultInterpolator);
- endAnimation(holder);
- }
-
- @Override
- public boolean isRunning() {
- return (!mPendingAdditions.isEmpty()
- || !mPendingChanges.isEmpty()
- || !mPendingMoves.isEmpty()
- || !mPendingRemovals.isEmpty()
- || !mMoveAnimations.isEmpty()
- || !mRemoveAnimations.isEmpty()
- || !mAddAnimations.isEmpty()
- || !mChangeAnimations.isEmpty()
- || !mMovesList.isEmpty()
- || !mAdditionsList.isEmpty()
- || !mChangesList.isEmpty());
- }
-
- /**
- * Check the state of currently pending and running animations. If there are none
- * pending/running, call {@link #dispatchAnimationsFinished()} to notify any
- * listeners.
- */
- void dispatchFinishedWhenDone() {
- if (!isRunning()) {
- dispatchAnimationsFinished();
- }
- }
-
- @Override
- public void endAnimations() {
- int count = mPendingMoves.size();
- for (int i = count - 1; i >= 0; i--) {
- MoveInfo item = mPendingMoves.get(i);
- View view = item.holder.itemView;
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item.holder);
- mPendingMoves.remove(i);
- }
- count = mPendingRemovals.size();
- for (int i = count - 1; i >= 0; i--) {
- RecyclerView.ViewHolder item = mPendingRemovals.get(i);
- dispatchRemoveFinished(item);
- mPendingRemovals.remove(i);
- }
- count = mPendingAdditions.size();
- for (int i = count - 1; i >= 0; i--) {
- RecyclerView.ViewHolder item = mPendingAdditions.get(i);
- item.itemView.setAlpha(1);
- dispatchAddFinished(item);
- mPendingAdditions.remove(i);
- }
- count = mPendingChanges.size();
- for (int i = count - 1; i >= 0; i--) {
- endChangeAnimationIfNecessary(mPendingChanges.get(i));
- }
- mPendingChanges.clear();
- if (!isRunning()) {
- return;
- }
-
- int listCount = mMovesList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList moves = mMovesList.get(i);
- count = moves.size();
- for (int j = count - 1; j >= 0; j--) {
- MoveInfo moveInfo = moves.get(j);
- RecyclerView.ViewHolder item = moveInfo.holder;
- View view = item.itemView;
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(moveInfo.holder);
- moves.remove(j);
- if (moves.isEmpty()) {
- mMovesList.remove(moves);
- }
- }
- }
- listCount = mAdditionsList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList additions = mAdditionsList.get(i);
- count = additions.size();
- for (int j = count - 1; j >= 0; j--) {
- RecyclerView.ViewHolder item = additions.get(j);
- View view = item.itemView;
- view.setAlpha(1);
- dispatchAddFinished(item);
- additions.remove(j);
- if (additions.isEmpty()) {
- mAdditionsList.remove(additions);
- }
- }
- }
- listCount = mChangesList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList changes = mChangesList.get(i);
- count = changes.size();
- for (int j = count - 1; j >= 0; j--) {
- endChangeAnimationIfNecessary(changes.get(j));
- if (changes.isEmpty()) {
- mChangesList.remove(changes);
- }
- }
- }
-
- cancelAll(mRemoveAnimations);
- cancelAll(mMoveAnimations);
- cancelAll(mAddAnimations);
- cancelAll(mChangeAnimations);
-
- dispatchAnimationsFinished();
- }
-
- void cancelAll(List viewHolders) {
- for (int i = viewHolders.size() - 1; i >= 0; i--) {
- viewHolders.get(i).itemView.animate().cancel();
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * If the payload list is not empty, DefaultItemAnimator returns true.
- * When this is the case:
- *
- * If you override {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, both
- * ViewHolder arguments will be the same instance.
- *
- *
- * If you are not overriding {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)},
- * then DefaultItemAnimator will call {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int)} and
- * run a move animation instead.
- *
- *
- */
- @Override
- public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder,
- @NonNull List payloads) {
- return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads);
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt
deleted file mode 100644
index 4ed6b0817d..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt
+++ /dev/null
@@ -1,182 +0,0 @@
-package com.mogo.och.bus.ui.adapter
-
-import android.content.Context
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import androidx.appcompat.widget.AppCompatTextView
-import androidx.core.content.ContextCompat
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.och.bus.R
-import com.mogo.och.bus.bean.response.BusQueryLinesResponse
-import com.mogo.och.bus.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder
-import java.lang.Exception
-import kotlin.text.StringBuilder
-
-/**
- * 路线列表adapter
- */
-class SwitchLineAdapter(
- private val mContext: Context,
- private val mData: List
-) : RecyclerView.Adapter() {
- companion object{
- const val TAG = "SwitchLineAdapter"
- }
- // RecyclerView设置点击事件
- private var mItemClickListener: LineItemClickListener? = null
- var checkLineId:Int = -1
- var checkTaskId:Int = -1
- override fun onCreateViewHolder(
- parent: ViewGroup,
- viewType: Int
- ): SwitchLineViewHolder {
- val view = LayoutInflater.from(mContext).inflate(
- R.layout.bus_switch_line_list_item, parent, false
- )
- return SwitchLineViewHolder(view)
- }
-
- override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) {
- val currentPosition = holder.bindingAdapterPosition
- val line = mData[currentPosition]
- if(line.name!=null&&line.name!!.length>10){
- line.name = line.name!!.substring(0,10)+"…"
- }
- holder.lineName.text = line.name
- val sb = StringBuilder()
- if (line.endSiteName!=null&&line.endSiteName!!.length>10) {
- sb.append(line.endSiteName!!.substring(0,5))
- sb.append("…")
- sb.append(line.endSiteName!!.substring(line.endSiteName!!.length-5,line.endSiteName!!.length))
- }else{
- sb.append(line.endSiteName)
- }
- val string = mContext.getString(R.string.bus_line_goto_end, sb.toString())
- holder.lineEndName.text = string
- holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3)
- val switchLineTaskAdapter = SwitchLineTaskAdapter(
- mContext,
- checkTaskId,
- line.taskList,
- object : SwitchLineTaskAdapter.TaskItemClickListener {
- override fun onItemClick(position: Int,isCheck:Boolean) {
- try {
- if (isCheck) {
- checkLineId = line.lineId
- checkTaskId = line.taskList!![position].id ?: 0
- } else {
- checkLineId = -1
- checkTaskId = -1
- }
- }catch (e:Exception){
- e.printStackTrace()
- checkLineId=-1
- checkTaskId=-1
- }
- }
- })
- holder.rvLineTask.adapter = switchLineTaskAdapter
- holder.rvLineTask.isFocusableInTouchMode = false
- holder.actvShowMore.visibility = View.VISIBLE
-
- if(line.open){
- if(line.taskList.isNullOrEmpty()){
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.INVISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- }else {
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
- holder.vLineTask.visibility = View.VISIBLE
- holder.rvLineTask.visibility = View.VISIBLE
- holder.selectIv.visibility = View.VISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected)
- holder.selectIv.apply {
- pivotX = 9.5f
- pivotY = 17f
- rotation = 90f
- }
- }
- }else{
- if(line.haveTask){
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.INVISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- }else {
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.VISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- holder.selectIv.apply {
- pivotX = 9.5f
- pivotY = 17f
- rotation = 0f
- }
- }
- }
-
-
- //设置item点击事件
- holder.itemView.setOnClickListener {
- if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){
- return@setOnClickListener
- }
- mData.forEachIndexed { index, result ->
- if(result.open){
- result.open = false;
- notifyItemChanged(index)
- if(result.taskList!=null) {
- result.taskList!!.clear()
- }
- if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求
- mItemClickListener?.onItemClick(currentPosition,true)
- return@setOnClickListener
- }
- }
- }
- mItemClickListener?.onItemClick(currentPosition,false)
- line.open = holder.rvLineTask.visibility == View.GONE
- }
- }
-
- override fun getItemCount(): Int {
- return mData.size
- }
-
- fun setOnLineItemClickListener(itemClickListener: LineItemClickListener?) {
- mItemClickListener = itemClickListener
- }
-
- class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val selectIv: ImageView
- val lineName: AppCompatTextView//线路名称
- val lineEndName: AppCompatTextView //终点
- val actvShowMore: AppCompatTextView //选择时间
- val rvLineTask: RecyclerView// 排班时间
- val vLineTask: View// 白色分割线
-
- init {
- selectIv = itemView.findViewById(R.id.switch_line_item_select_iv)
- lineName = itemView.findViewById(R.id.switch_line_name)
- lineEndName = itemView.findViewById(R.id.switch_line_end_station)
- rvLineTask = itemView.findViewById(R.id.rv_line_task_list)
- vLineTask = itemView.findViewById(R.id.v_line_task)
- actvShowMore = itemView.findViewById(R.id.actv_show_more)
- }
- }
-
- interface LineItemClickListener {
- fun onItemClick(position: Int,close:Boolean)
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt
deleted file mode 100644
index 3c018a2389..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.mogo.och.bus.ui.adapter
-
-import android.content.Context
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.eagle.core.utilcode.util.TimeUtils
-import com.mogo.och.bus.R
-import com.mogo.och.bus.bean.response.BusQueryLineTaskResponse
-import com.mogo.och.bus.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder
-
-/**
- * 路线列表adapter
- */
-class SwitchLineTaskAdapter(
- private val mContext: Context,
- private var checkTaskId:Int,
- private val mData: List?,
- private val mTaskItemClickListener: TaskItemClickListener?
-) : RecyclerView.Adapter() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder {
- val view = LayoutInflater.from(mContext).inflate(
- R.layout.bus_switch_line_list_task_item, parent, false
- )
- return SwitchLineTaskViewHolder(view)
- }
-
- override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) {
- val currentPosition = holder.bindingAdapterPosition
- val task = mData!![currentPosition]
- val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm")
- holder.lineTask.text = taskStartTime
- if(checkTaskId==task.id){
- holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected)
- }else{
- holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg)
- }
- holder.lineTask.setOnClickListener {
- if(checkTaskId==task.id){
- checkTaskId = -1
- mTaskItemClickListener?.onItemClick(currentPosition,false)
- }else {
- resetOther()
- checkTaskId = task.id
- mTaskItemClickListener?.onItemClick(currentPosition,true)
- }
- notifyItemChanged(currentPosition)
- }
- }
-
- private fun resetOther() {
- mData?.forEachIndexed { index, result ->
- if(result.id==checkTaskId){
- checkTaskId = -1
- notifyItemChanged(index)
- }
- }
- }
-
- override fun getItemCount(): Int {
- return mData?.size ?: 0
- }
-
- class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val lineTask: TextView // 时间
- init {
- lineTask = itemView.findViewById(R.id.actv_line_task)
- }
- }
-
- interface TaskItemClickListener {
- fun onItemClick(position: Int,isCheck:Boolean)
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt
deleted file mode 100644
index 467b932361..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.mogo.och.bus.util
-
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey
-
-/**
- * OCH Bus埋点工具
- *
- * Created on 2022/3/24
- */
-object BusAnalyticsManager: IOchEventKey {
-
- // 埋点key:接管后点击'自动驾驶'按钮启动
- private const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_bus_restart_autopilot"
- // 埋点key:开始服务开启自动驾驶(成功/失败)
- private const val EVENT_KEY_START_SERVICE = "event_key_och_bus_start_service"
- // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾
- private const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason"
- // 埋点key:点击启动自驾
- private const val EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_bus_click_start_autopilot"
-
-
- override fun getEventKeyStartService(): String {
- return EVENT_KEY_START_SERVICE
- }
-
- override fun getEventKeyRestartService(): String {
- return EVENT_KEY_RESTART_AUTOPILOT
- }
-
- override fun getEventKeyApUnableStartReason(): String {
- return EVENT_KEY_AP_UNABLE_START_REASON
- }
-
- override fun getEventKeyClickStartAutopilot(): String {
- return EVENT_KEY_CLICK_START_AUTOPILOT
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java
deleted file mode 100644
index 46b894bee1..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package com.mogo.och.bus.util;
-
-import androidx.annotation.Nullable;
-
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.GsonUtils;
-import com.mogo.och.bus.constant.BusConst;
-import com.mogo.och.bus.model.OrderModel;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-import com.mogo.och.data.bean.BusRoutesResult;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.schedulers.Schedulers;
-import mogo_msg.MogoReportMsg;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-/**
- * Bus轨迹管理:给MEC下发用于轨迹下载的信息
- * Created on 2022/6/23
- */
-public class BusTrajectoryManager {
- private static final String TAG = BusTrajectoryManager.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager();
- }
-
- public static BusTrajectoryManager getInstance() {
- return BusTrajectoryManager.SingletonHolder.INSTANCE;
- }
-
- private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null;
- private Disposable mSendReqDisposable = null;
-
- public BusTrajectoryManager() {
- mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "",
- "", "", "", "", 0, "",
- "", "", "", "", 0);
- }
-
- /**
- * 同步Bus路线信息
- */
- public void syncTrajectoryInfo() {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- if (LoginStatusManager.isLogin() && routesResult != null
- && OrderModel.getInstance().getCurrentStationIndex() == 0
- && !OrderModel.getInstance().isGoingToNextStation()) {
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
- startTrajReqLoop();
- } else {
- // 无路线信息or当前未在始发站
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop.");
- stopTrajReqLoop();
- }
- }
-
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) {
- onAutopilotGuardian(guardianInfo);
- }
-
- /**
- * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息)
- * @param guardianInfo
- */
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
- if (guardianInfo == null || !guardianInfo.hasCode()) return;
- if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) {
- // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹开始下载");
- stopTrajReqLoop();
- } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) {
- // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载成功");
- stopTrajReqLoop();
- } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) {
- // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " +
- "轨迹下载失败,本地无对应轨迹");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹");
- } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) {
- // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " +
- "轨迹下载失败,本地有对应轨迹,认为成功");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功");
- } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) {
- // 5. 轨迹管理_轨迹下载超时
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载超时");
- } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) {
- // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() ssm ready,再次发起下载");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 再次发起下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- syncTrajectoryInfo();
- }
- }
-
- private void setupAutoPilotLine() {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- if (routesResult == null) {
- CallerLogger.e(M_BUS + TAG,
- "setupAutoPilotLine(): routesResult is null.");
- return;
- } else {
- if (mAutoPilotLine == null) {
- mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(
- routesResult.getLineId(), routesResult.getName(),
- routesResult.csvFileUrl, routesResult.csvFileMd5,
- routesResult.txtFileUrl, routesResult.txtFileMd5,
- routesResult.contrailSaveTime, routesResult.carModel,
- routesResult.csvFileUrlDPQP, routesResult.csvFileMd5DPQP,
- routesResult.txtFileUrlDPQP, routesResult.txtFileMd5DPQP,
- routesResult.contrailSaveTimeDPQP);
- } else {
- mAutoPilotLine.setLineId(routesResult.getLineId());
- mAutoPilotLine.setLineName(routesResult.getName());
- mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl);
- mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5);
- mAutoPilotLine.setStopUrl(routesResult.txtFileUrl);
- mAutoPilotLine.setStopMd5(routesResult.txtFileMd5);
- mAutoPilotLine.setTimestamp(routesResult.contrailSaveTime);
- mAutoPilotLine.setVehicleModel(routesResult.carModel);
- mAutoPilotLine.setTrajUrl_dpqp(routesResult.csvFileUrlDPQP);
- mAutoPilotLine.setTrajMd5_dpqp(routesResult.csvFileMd5DPQP);
- mAutoPilotLine.setStopUrl_dpqp(routesResult.txtFileUrlDPQP);
- mAutoPilotLine.setStopMd5_dpqp(routesResult.txtFileMd5DPQP);
- mAutoPilotLine.setTimestamp_dpqp(routesResult.contrailSaveTimeDPQP);
- }
- }
- }
-
- private void clearAutoPilotLine() {
- if (mAutoPilotLine == null) return;
- mAutoPilotLine.setLineId(-1);
- mAutoPilotLine.setLineName("");
- mAutoPilotLine.setTrajUrl("");
- mAutoPilotLine.setTrajMd5("");
- mAutoPilotLine.setStopUrl("");
- mAutoPilotLine.setStopMd5("");
- mAutoPilotLine.setTimestamp(0);
- mAutoPilotLine.setVehicleModel("");
- mAutoPilotLine.setTrajUrl_dpqp("");
- mAutoPilotLine.setTrajMd5_dpqp("");
- mAutoPilotLine.setStopUrl_dpqp("");
- mAutoPilotLine.setStopMd5_dpqp("");
- mAutoPilotLine.setTimestamp_dpqp(0);
- }
-
- private void startTrajReqLoop() {
- if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) {
- return;
- }
- CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()");
- setupAutoPilotLine();
- mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY,
- BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> {
- if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) {
- stopTrajReqLoop();
- return;
- }
- CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong);
- sendTrajectoryReq();
- });
- }
-
- public void stopTrajReqLoop() {
- if (mSendReqDisposable != null) {
- CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()");
- mSendReqDisposable.dispose();
- mSendReqDisposable = null;
- clearAutoPilotLine();
- }
- }
-
- private void sendTrajectoryReq() {
- if (mAutoPilotLine == null) {
- CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!");
- return;
- }
- OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine);
- CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): "
- + GsonUtils.toJson(mAutoPilotLine));
- }
-}
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt
deleted file mode 100644
index fcd34525ae..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt
+++ /dev/null
@@ -1,162 +0,0 @@
-package com.mogo.och.bus.util
-
-import com.mogo.commons.AbsMogoApplication
-import com.mogo.commons.voice.AIAssist
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-import com.mogo.och.bus.R
-import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
-import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
-import com.mogo.och.common.module.utils.ResourcesUtils
-import com.mogo.och.common.module.voice.VoiceNotice
-import com.mogo.tts.base.LangTtsEntity
-import com.mogo.tts.base.LanguageType
-import java.util.ArrayList
-
-object BusVoiceManager {
-
- fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
- val context = AbsMogoApplication.getApp()
- val list: MutableList = ArrayList()
- siteNameCN?.let {
- val chineseTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_tip, it),
- LanguageType.CHINESE
- )
- val engTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_english_tip, it),
- LanguageType.ENGLISH
- )
- val koreanTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR ?: it),
- LanguageType.KOREAN
- )
- list.add(chineseTTS)
- list.add(engTTS)
- list.add(koreanTTS)
-
- }
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL1, null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- siteNameCN?.let {
- sendArrivedStationToClient(it)
- }
- }
- }
-
- private fun sendArrivedStationToClient(arriveStation: String) {
- val arrivedMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_arrived_station_tip, arriveStation),
- )
- LanSocketManager.sendMsgToClient(arrivedMsg)
- }
-
- fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) {
- val list: MutableList = ArrayList()
- val context = AbsMogoApplication.getApp()
- siteNameCN?.let {
- val chineseTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_tip, it),
- LanguageType.CHINESE
- )
- val engTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_english_tip, it),
- LanguageType.ENGLISH
- )
- list.add(chineseTTS)
- list.add(engTTS)
-
- val koreanTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it),
- LanguageType.KOREAN
- )
-
- list.add(koreanTTS)
- }
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL1, null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- siteNameCN?.let {
- sendStartStationToClient(it)
- }
- }
- }
-
- private fun sendStartStationToClient(nextStation: String) {
- val startMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_leave_station_tip, nextStation),
- )
- LanSocketManager.sendMsgToClient(startMsg)
- }
-
- fun endOrderBus() {
- val context = AbsMogoApplication.getApp()
- val list: MutableList = ArrayList()
- val chineseTTS =
- LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE)
- val engTTS = LangTtsEntity(
- context.getString(R.string.bus_end_task_english_tip),
- LanguageType.ENGLISH
- )
- val koreanTTS =
- LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN)
- list.add(chineseTTS)
- list.add(engTTS)
- list.add(koreanTTS)
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL0, null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- sendEndTaskToClient()
- }
-
- }
-
- private fun sendEndTaskToClient() {
- val endMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_end_task_tip),
- )
- LanSocketManager.sendMsgToClient(endMsg)
- }
-
-
- fun writeOffCount(successNum: Int) {
- if (successNum <= 1) {
- VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3)
- //sendWriteOffNumToClient("核验通过")
- } else {
- VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3)
- //sendWriteOffNumToClient("$successNum 人核验通过")
- }
- }
-
- private fun sendWriteOffNumToClient(msg: String?) {
- val passengerMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = msg!!,
- )
- LanSocketManager.sendMsgToClient(passengerMsg)
- }
-
-
- // 距离发车还有1分钟
- fun showLeafTime(tips: String) {
- //语音提示
- VoiceNotice.showNotice(tips)
- }
-
- fun writeOffFaile(reaseon: String) {
- VoiceNotice.showNotice(reaseon, AIAssist.LEVEL3)
- }
-
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt
deleted file mode 100644
index fe5d97bbcc..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.mogo.och.bus.view
-
-import android.content.Context
-import android.os.Bundle
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.widget.FrameLayout
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.function.view.MapBizView
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-import com.mogo.map.uicontroller.IMogoMapUIController
-import com.mogo.och.bus.R
-
-class BizMapView @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : FrameLayout(context, attrs, defStyleAttr) {
-
- private lateinit var mapBizView: MapBizView
-
- init {
- if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- LayoutInflater.from(context).inflate(R.layout.bus_m2_bizmap_map, this, true)
- }else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){
- LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true)
- }else{
- LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true)
- }
- mapBizView = findViewById(R.id.bizMapView)
- }
-
- fun getUI(): IMogoMapUIController? {
- return mapBizView.getUI()
- }
-
- fun onCreate(bundle: Bundle?) {
- mapBizView.onCreate(bundle)
- }
- fun onResume() {
- mapBizView.onResume()
- }
-
- fun onSaveInstanceState(outState: Bundle){
- mapBizView.onSaveInstanceState(outState)
- }
-
- fun onLowMemory() {
- mapBizView.onLowMemory()
- }
-
- fun onPause() {
- mapBizView.onPause()
- }
-
- fun onDestroy() {
- mapBizView.onDestroy()
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java
deleted file mode 100644
index d83e5272a5..0000000000
--- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java
+++ /dev/null
@@ -1,305 +0,0 @@
-package com.mogo.och.bus.view;
-
-import android.animation.ObjectAnimator;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.LinearGradient;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.Shader;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.animation.DecelerateInterpolator;
-
-import androidx.annotation.Nullable;
-
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.ConvertUtils;
-import com.mogo.eagle.core.utilcode.util.ThreadUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.bus.R;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-
-import me.jessyan.autosize.AutoSizeConfig;
-import me.jessyan.autosize.utils.AutoSizeUtils;
-
-/**
- * 滑块滑动面板
- *
- * @author tongchenfei
- */
-public class SlidePanelView extends View {
- private static final String TAG = "SlidePanelView";
-
- public SlidePanelView(Context context) {
- this(context, null);
- }
-
- public SlidePanelView(Context context, @Nullable AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public SlidePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlidePanelView);
- textSize = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_textSize, textSize);
- BLOCK_START_X = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_X, BLOCK_START_X);
- BLOCK_START_Y = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_Y, BLOCK_START_Y);
- NORMAL_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_LEFT, NORMAL_TEXT_MARGIN_LEFT);
- NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT);
- SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT);
- SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT);
- mTypedArray.recycle();
- init();
- }
-
- private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
-
- private static int textSize = 40;
- private static int BLOCK_START_X = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15);
- private static int BLOCK_START_Y = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15);
- private static int NORMAL_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),40);
- private static int NORMAL_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60);
- private static int SHORT_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60);
- private static int SHORT_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),70);
-
- private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT;
- private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT;
-
- private OnSlidePanelMoveToEndListener moveToEndListener;
-
- private int blockWidth = 0;
- private int blockOffset = 0;
-
- private float lastX;
- private boolean isToEnd = false;
-
- private static final String STRING_SLIDE_TO_RIGHT = "向右滑动";
- private RectF bgRectF;
- private Bitmap bmBlock;
-
- private final Matrix gradientMatrix = new Matrix();
- private float matrixTranslate;
- private final Rect textRect = new Rect();
- private LinearGradient textGradient;
-
- private ObjectAnimator matrixAnim;
-
- private String blockText = STRING_SLIDE_TO_RIGHT;
- private final Paint.FontMetrics blockTextMetrics = new Paint.FontMetrics();
-
- private static final int GRADIENT_OFFSET = 200;
-
- public void setOnSlidePanelMoveToEndListener(OnSlidePanelMoveToEndListener moveToEndListener) {
- this.moveToEndListener = moveToEndListener;
- }
-
- private void setBlockOffset(int blockOffset) {
- this.blockOffset = blockOffset;
- invalidate();
- }
-
- private void setMatrixTranslate(float matrixTranslate) {
- this.matrixTranslate = matrixTranslate;
- invalidate();
- }
-
- public void setText(String text) {
- this.blockText = text;
- requestLayout();
- invalidate();
- }
-
- private void init() {
- bgRectF = new RectF(0, 0, 0, 0);
- bgPaint.setColor(Color.parseColor("#CC0F1325"));
- bgPaint.setStyle(Paint.Style.FILL);
-
- textPaint.setStyle(Paint.Style.FILL);
- textPaint.setTextSize(textSize);
- textPaint.setTextAlign(Paint.Align.LEFT);
- textGradient = new LinearGradient(-GRADIENT_OFFSET, 0, 0, 0, new int[]{0x33ffffff, 0xffffffff, 0x33ffffff}, null, Shader.TileMode.CLAMP);
- textGradient.setLocalMatrix(gradientMatrix);
- textPaint.setShader(textGradient);
- textPaint.getFontMetrics(blockTextMetrics);
- decodeImage();
- }
-
- private void decodeImage(){
- ThreadUtils.getCpuPool().execute(() -> {
- int size = AutoSizeUtils.dp2px(getContext(), 120);
- BitmapFactory.Options opts = new BitmapFactory.Options();
- opts.inDensity = (int) AutoSizeConfig.getInstance().getInitDensity();
- bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.bus_base_slide_block,opts);
- bmBlock = Bitmap.createScaledBitmap(bmBlock, size, size, true);
- blockWidth = bmBlock.getWidth();
- UiThreadHandler.post(this::requestLayout,UiThreadHandler.MODE.QUEUE);
- });
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int widthMode = MeasureSpec.getMode(widthMeasureSpec);
- int heightMode = MeasureSpec.getMode(heightMeasureSpec);
- int widthSize;
- int heightSize;
-
- if (blockText.length() < 5) {
- textMarginLeft = SHORT_TEXT_MARGIN_LEFT;
- textMarginRight = SHORT_TEXT_MARGIN_RIGHT;
- } else {
- textMarginLeft = NORMAL_TEXT_MARGIN_LEFT;
- textMarginRight = NORMAL_TEXT_MARGIN_RIGHT;
- }
-
- if(bmBlock!=null) {
- if (widthMode == MeasureSpec.AT_MOST) {
- // 宽度根据图片大小,字符串长度,各种间隔确定
- // 高度根据图片大小和上下间隔确定
- textPaint.getTextBounds(blockText, 0, blockText.length(), textRect);
- widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width();
- heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight();
- widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode);
- heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode);
- }
- }
-
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
-
- private float textOffset = 0;
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
- if (bgRectF != null){
- bgRectF.left = 0;
- bgRectF.top = 0;
- bgRectF.right = w;
- bgRectF.bottom = h;
- }
-
- if (matrixAnim != null) {
- matrixAnim.cancel();
- }
- textOffset = (getHeight() - blockTextMetrics.ascent - blockTextMetrics.descent) / 2;
- matrixAnim = ObjectAnimator.ofFloat(this, "matrixTranslate", 0, w + GRADIENT_OFFSET).setDuration(2000);
- matrixAnim.setRepeatCount(ValueAnimator.INFINITE);
- matrixAnim.start();
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- if (matrixAnim != null) {
- matrixAnim.start();
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
- if (matrixAnim != null) {
- matrixAnim.cancel();
- }
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- float x = event.getX();
- float y = event.getY();
-
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- if (x > BLOCK_START_X + blockOffset && x < blockWidth + BLOCK_START_X + blockOffset && y > BLOCK_START_Y && y < getHeight() - BLOCK_START_Y) {
- isToEnd = false;
- lastX = x;
- }
- break;
- case MotionEvent.ACTION_MOVE:
- if (lastX != 0) {
- blockOffset = (int) (x - lastX);
- if (blockOffset < 0) {
- blockOffset = 0;
- }
- if (blockOffset + BLOCK_START_X + blockWidth > getWidth()) {
- // 超出右边界
- blockOffset = getWidth() - BLOCK_START_X - blockWidth;
- if (!isToEnd) {
- isToEnd = true;
- if (moveToEndListener != null) {
- moveToEndListener.moveToEnd();
- }
- startBlockBackAnim();
- }
- }
- invalidate();
- }
- break;
- case MotionEvent.ACTION_UP:
- // 执行滑块回归动画
- if (!isToEnd) {
- startBlockBackAnim();
- }
- break;
- default:
- break;
- }
-
- return true;
- }
-
- private void startBlockBackAnim() {
- ObjectAnimator blockBackAnimator = ObjectAnimator.ofInt(this, "blockOffset", blockOffset, 0);
- blockBackAnimator.setInterpolator(new DecelerateInterpolator());
- blockBackAnimator.setDuration(1000L * blockOffset / getWidth());
- blockBackAnimator.start();
- lastX = 0;
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- // 画背景
- canvas.drawRoundRect(bgRectF, (float) getHeight() / 2.0f, (float) getHeight() / 2.0f, bgPaint);
- // 画文字
- gradientMatrix.setTranslate(matrixTranslate, 0);
- textGradient.setLocalMatrix(gradientMatrix);
- canvas.save();
- canvas.drawText(blockText, (float) (blockWidth + BLOCK_START_X + textMarginLeft), (float) textOffset, textPaint);
- canvas.restore();
- if (bmBlock != null) {
- if(bmBlock.getByteCount()>=5*1024*1024){
- OchChainLogManager.writeChainLog("崩溃兜底策略",
- "图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount()),true,OchChainLogManager.EVENT_KEY_INFE_ERROR);
- bmBlock.recycle();
- bmBlock = null;
- blockWidth = 0;
- decodeImage();
- }else {
- // 画滑块
- canvas.drawBitmap(bmBlock, (float) (BLOCK_START_X + blockOffset), (float) BLOCK_START_Y, blockPaint);
- CallerLogger.d(TAG,"图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount()));
- }
- }
-
- }
-
- public interface OnSlidePanelMoveToEndListener {
- /**
- * 滑块滑到了末尾
- */
- void moveToEnd();
- }
-}
diff --git a/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml
deleted file mode 100644
index 15f6897792..0000000000
--- a/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png
deleted file mode 100644
index ed7b293b90..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png
deleted file mode 100644
index 170f254cd1..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png
deleted file mode 100644
index 186001352c..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_dot_line.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png
deleted file mode 100644
index be978145dc..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png
deleted file mode 100644
index 8a065b66dd..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png
deleted file mode 100644
index 4ed57a0e30..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png
deleted file mode 100644
index e0bb24c526..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png
deleted file mode 100644
index bc9fed952d..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png
deleted file mode 100644
index 8732508ded..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png
deleted file mode 100644
index bae01408fd..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png
deleted file mode 100755
index 3166d20e37..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png
deleted file mode 100755
index 09a9c252da..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png
deleted file mode 100644
index b32f0693a6..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png
deleted file mode 100644
index f21a1081f1..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png
deleted file mode 100755
index fc20dca73c..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png
deleted file mode 100644
index a720a532ea..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png
deleted file mode 100644
index 3c339efde4..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png
deleted file mode 100644
index c6717d2518..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png
deleted file mode 100644
index cc2b18083d..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png
deleted file mode 100644
index 3f05565483..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_selected_btn.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png
deleted file mode 100644
index 370b61de38..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png
deleted file mode 100644
index 0114bb4f2b..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png
deleted file mode 100644
index 0c8988acb3..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png
deleted file mode 100755
index 8acf113151..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/end_maker_icon.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png
deleted file mode 100755
index e98738b192..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_normal.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png
deleted file mode 100755
index d3e0107c02..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_ai_select.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png
deleted file mode 100755
index 026c36086f..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png
deleted file mode 100755
index 06bebc7013..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png
deleted file mode 100755
index f4f9b2bca2..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png
deleted file mode 100755
index 22f88301f9..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png
deleted file mode 100755
index c0a978fc2b..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png
deleted file mode 100755
index ebacf3a11a..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png
deleted file mode 100755
index fc20dca73c..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png
deleted file mode 100755
index dc4c4f6f0d..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png
deleted file mode 100755
index ed3b871338..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png
deleted file mode 100755
index d43e34bb26..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png b/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png
deleted file mode 100644
index 04580a8f0d..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/icon_station_start_end.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png b/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png
deleted file mode 100644
index 0e61996d3f..0000000000
Binary files a/OCH/bus/driver/src/main/res/drawable-nodpi/no_order_data.png and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml
deleted file mode 100644
index e0b90b9c55..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml
deleted file mode 100644
index 9c91366aa3..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
- -
-
-
-
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml
deleted file mode 100644
index f0e15d25d2..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
- -
-
-
-
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml
deleted file mode 100644
index d95e931160..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml
deleted file mode 100644
index b00fbd8bd6..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml
deleted file mode 100644
index ee555aae15..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml
deleted file mode 100755
index 3a3dc6a292..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml
deleted file mode 100644
index 21b39b7e37..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml
deleted file mode 100644
index 69539ed40f..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml
deleted file mode 100644
index 203971340e..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
deleted file mode 100644
index 272e718cce..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
deleted file mode 100644
index e5faafb27b..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
deleted file mode 100644
index ee8088637c..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
deleted file mode 100644
index e2b482ee5f..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml
deleted file mode 100644
index fe46ef2228..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml
deleted file mode 100644
index 376e0a472c..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- -
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml
deleted file mode 100644
index 8b066b0ce8..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- -
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml
deleted file mode 100644
index e94992d507..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml
deleted file mode 100644
index b34021d977..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml
deleted file mode 100644
index 917f3932fe..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml b/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml
deleted file mode 100644
index 2ef90e60f7..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml b/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml
deleted file mode 100644
index dea7a88bb6..0000000000
--- a/OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml b/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml
deleted file mode 100644
index c1a8d6958d..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bug_fragment_och.xml
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml
deleted file mode 100644
index bd33539f86..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml
+++ /dev/null
@@ -1,279 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml b/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml
deleted file mode 100644
index ffb955a311..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_jl_bizmap_map.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml b/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml
deleted file mode 100644
index 625b786557..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_m2_bizmap_map.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml b/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml
deleted file mode 100644
index e27a976e9b..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_no_data_common_view.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml b/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml
deleted file mode 100644
index 6d81e77fc7..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_no_line_view.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml b/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml
deleted file mode 100644
index 28078230ca..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_stations_common_item.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml
deleted file mode 100644
index 703490ed83..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_switch_line.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml
deleted file mode 100644
index ec0a05030b..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_item.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml b/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml
deleted file mode 100644
index 07cb6d0eec..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_switch_line_list_task_item.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml b/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml
deleted file mode 100644
index a64bdaa4d9..0000000000
--- a/OCH/bus/driver/src/main/res/layout/bus_test_bar_view.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json b/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json
deleted file mode 100644
index e76436f2dc..0000000000
--- a/OCH/bus/driver/src/main/res/raw/bus_away_passengers.json
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "info": [
- {
- "_id": "cee57b3ae07c4486b0357319368487d7",
- "orderNo": "XB20210422000002",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-22 16:31:58",
- "orderEndTime": "2021-04-26 10:38:13",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-22 16:31:58",
- "updateTime": "2021-04-26 10:38:13",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "ce69b1bcfb9840c6a4563bc6ef947caf",
- "orderNo": "XB20210426000000",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:38:48",
- "orderEndTime": "2021-04-26 10:46:16",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:38:48",
- "updateTime": "2021-04-26 10:46:16",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "cae07b56f41c4e0fa60ab3543ffc258e",
- "orderNo": "XB20210426000001",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:47:05",
- "orderEndTime": "2021-04-26 10:48:07",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:47:05",
- "updateTime": "2021-04-26 10:48:07",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "62bc84afbc434d01b644c74ee406e772",
- "orderNo": "XB20210426000002",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:48:22",
- "orderEndTime": "2021-04-26 10:50:32",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:48:22",
- "updateTime": "2021-04-26 10:50:32",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "fa3214c7a6ec411bb3d6edbc98907423",
- "orderNo": "XB20210426000009",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 19:26:05",
- "orderEndTime": "2021-04-27 14:35:50",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 19:26:05",
- "updateTime": "2021-04-27 14:35:50",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/raw/bus_di.mp3 b/OCH/bus/driver/src/main/res/raw/bus_di.mp3
deleted file mode 100644
index 15b31ed247..0000000000
Binary files a/OCH/bus/driver/src/main/res/raw/bus_di.mp3 and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/raw/bus_order_1.json b/OCH/bus/driver/src/main/res/raw/bus_order_1.json
deleted file mode 100644
index 050b67447d..0000000000
--- a/OCH/bus/driver/src/main/res/raw/bus_order_1.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "_id": "62bc84afbc434d01b644c74ee406e772",
- "areaCode": "1001",
- "carNum": "京NB010",
- "cityCode": "010",
- "createTime": "Apr 26, 2021 10:48:22 AM",
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "endStationId": 2,
- "orderDispatchType": 1,
- "orderNo": "XB20210426000002",
- "orderStartTime": "Apr 26, 2021 10:48:22 AM",
- "orderType": 10,
- "sn": "F803EB2046PZD00149",
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "startStationId": 1,
- "travelDistance": 1.2,
- "updateTime": "Apr 26, 2021 10:48:23 AM",
- "userName": "董QAD",
- "userPhone": "15631204018"
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/raw/bus_station_list1.json b/OCH/bus/driver/src/main/res/raw/bus_station_list1.json
deleted file mode 100644
index c74daa1174..0000000000
--- a/OCH/bus/driver/src/main/res/raw/bus_station_list1.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "site": [
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7354579447,
- 40.1974932972
- ],
- "lon": 116.7354579447,
- "lat": 40.1974932972,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "市政府前街18号",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.729134342,
- 40.1953113732
- ],
- "lon": 116.729134342,
- "lat": 40.1953113732,
- "siteDesc": "市政府前街18号",
- "siteState": 1.0,
- "isCurrentSite": 3.0,
- "siteColor": 2.0,
- "peoples": "0",
- "ifStop": 0.0
- },
- {
- "lineId": 1.0,
- "siteId": 3.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.721520973,
- 40.1940181096
- ],
- "lon": 116.721520973,
- "lat": 40.1940181096,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/raw/bus_station_list2.json b/OCH/bus/driver/src/main/res/raw/bus_station_list2.json
deleted file mode 100644
index 48d6782cc3..0000000000
--- a/OCH/bus/driver/src/main/res/raw/bus_station_list2.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "site": [
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7354579447,
- 40.1974932972
- ],
- "lon": 116.7354579447,
- "lat": 40.1974932972,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7374429112,
- 40.2023987087
- ],
- "lon": 116.7374429112,
- "lat": 40.2023987087,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.721520973,
- 40.1940181096
- ],
- "lon": 116.721520973,
- "lat": 40.1940181096,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.723146,
- 40.179637
- ],
- "lon": 116.723146,
- "lat": 40.179637,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 2.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.738835502,
- 40.2023958306
- ],
- "lon": 116.738835502,
- "lat": 40.2023958306,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/raw/end_marker.nt3d b/OCH/bus/driver/src/main/res/raw/end_marker.nt3d
deleted file mode 100644
index be6057c547..0000000000
Binary files a/OCH/bus/driver/src/main/res/raw/end_marker.nt3d and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/raw/star_marker.nt3d b/OCH/bus/driver/src/main/res/raw/star_marker.nt3d
deleted file mode 100644
index c6e546fc31..0000000000
Binary files a/OCH/bus/driver/src/main/res/raw/star_marker.nt3d and /dev/null differ
diff --git a/OCH/bus/driver/src/main/res/values/attrs.xml b/OCH/bus/driver/src/main/res/values/attrs.xml
deleted file mode 100644
index 396db92f74..0000000000
--- a/OCH/bus/driver/src/main/res/values/attrs.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/values/colors.xml b/OCH/bus/driver/src/main/res/values/colors.xml
deleted file mode 100644
index 2851302580..0000000000
--- a/OCH/bus/driver/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
- #FF1FA7FF
- #FFFFFFFF
- #FFFFFFFF
- #FF51649D
- #7F8299EB
-
- #51649D
- #427d8e
- #1FA7FF
- #3FC281
- #427d8e
- #3FC281
-
- #FFFFFF
- #99FFFFFF
- #FF52BBFF
-
- #BF30334C
- #fff
- #f1f1f1
-
- #7DE261
- #FF2B2B
- #E3BC59
- #FFF
- #256BFF
- #FFFFFF
-
- #DB3137
- #3E77F6
- #323C6F
-
- #2966EC
- #F7151D41
-
- #19FFFFFF
- #FFFFFF
-
- #FFFFA28B
- #FFDA1100
- #FF60FFD3
- #FF006D43
- #FFFFE198
- #FFFF9B00
- #59FFFFFF
-
- #CCB9C3E9
- #4Dffffff
-
- #8E9DD4
- #2B6EFF
- #00FFF8
-
- #FFFFFF
- #4DFFFFFF
- #FFFFFF
- #323C6F
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/values/dimens.xml b/OCH/bus/driver/src/main/res/values/dimens.xml
deleted file mode 100644
index fd1ec0cd92..0000000000
--- a/OCH/bus/driver/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
- 460dp
- 30dp
-
- 110dp
- 40dp
- 320dp
- 20dp
- 40dp
- 320dp
- 460dp
- 70dp
- 460dp
- 130dp
- 30dp
-
- #FFFFFF
- #4DFFFFFF
- #FFFFFF
- #323C6F
- 10dp
- 20dp
- 200dp
- 52dp
- 65dp
- 20dp
- 50dp
- 20dp
- 38dp
- 33dp
- 368dp
- 76dp
- 60dp
- 276dp
- 112dp
- 22dp
- 36dp
- 50dp
- 822dp
-
- 46dp
- 700dp
- 120dp
- 560dp
- 116dp
- 50dp
-
- 225dp
- 154dp
- 60dp
- 40dp
- 23dp
- 210dp
- 120dp
- 15dp
- 17dp
- 154dp
- 130dp
- 60dp
-
- 27dp
-
-
- 40dp
- 32dp
- 13dp
- 12dp
- 350dp
-
- 30dp
- 618dp
- 754dp
-
- 92dp
-
- 112dp
- 112dp
-
-
-
-
-
- 300dp
- 348dp
- 211dp
- 276dp
-
-
- 220dp
- 98dp
- 159dp
-
- 32dp
- 20dp
- 40dp
- 42dp
-
- 15dp
-
- 20dp
- 36dp
- 28dp
- 36dp
-
- 3dp
- 3dp
- 17dp
- 17dp
-
-
- 300dp
- 270dp
- 30dp
- 24dp
- 24dp
- 1dp
- 30dp
- 23dp
- 30dp
- 146dp
- 20dp
- 23dp
- 30dp
- 23dp
- 26dp
- 34dp
- 20dp
- 80dp
- 3dp
- 34dp
- 20dp
- 28dp
- 27dp
-
-
- 25.6dp
- 20dp
- 20dp
- 64dp
- 16dp
-
- 40dp
- 40dp
- 46dp
- 24dp
-
- 530dp
- 492dp
-
- 20dp
- 20dp
- 70dp
- 130dp
- 93dp
- 150dp
- 70dp
-
- 24dp
- 616dp
- 180dp
-
-
-
\ No newline at end of file
diff --git a/OCH/bus/driver/src/main/res/values/strings.xml b/OCH/bus/driver/src/main/res/values/strings.xml
deleted file mode 100644
index 331daed88b..0000000000
--- a/OCH/bus/driver/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
- 近距视角
- 远距视角
- 启动中…
- 启动成功
- 启动失败
- 自动驾驶
- 任务列表
- 暂无任务
- 选择时间
- 路线:
- 起点:
- 终点:
- 确认
- 选择任务
- 结束任务
- 自动驾驶状态中,不可切换或结束路线
- 当前行程未完成,不可切换路线
- 当前车辆无路线\n请联系运营人员绑定
- 起点:
- 终点:
- 往%1$s方向
- 更换任务成功
- 更换任务失败
-
- 起点:
- 终点:
- 当前站点:
- 下一站:
- 自动驾驶状态为0不可用
- 进站
- 起
- 终
- 班次:
-
- 提示
- 您确认要结束任务吗?
- 确认
- 取消
-
- 暂无任务
-
- 距离发车时间还有%1$s分钟
-
- 平行驾驶
-
-
- 已到达%1$s,带好随身物品,下车请注意安全。
- We are arriving at %1$s ,get off with your belongings
- %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요
-
- 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。
- The next station is %1$s ,please get ready for your arrival
- 전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요
-
- 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。
- Thank you for experiencing the self-driving minibus. See you next time
- 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다
-
-
-
diff --git a/OCH/bus/driver/src/main/res/values/style.xml b/OCH/bus/driver/src/main/res/values/style.xml
deleted file mode 100644
index 36d7ef0d93..0000000000
--- a/OCH/bus/driver/src/main/res/values/style.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
diff --git a/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml b/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml
deleted file mode 100644
index 587a6eccbe..0000000000
--- a/OCH/bus/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/.gitignore b/OCH/shuttle/driver/.gitignore
deleted file mode 100644
index 42afabfd2a..0000000000
--- a/OCH/shuttle/driver/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/OCH/shuttle/driver/build.gradle b/OCH/shuttle/driver/build.gradle
deleted file mode 100644
index 9d0078f8e6..0000000000
--- a/OCH/shuttle/driver/build.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-apply plugin: 'kotlin-kapt'
-
-android {
- compileSdkVersion rootProject.ext.android.compileSdkVersion
- // buildToolsVersion rootProject.ext.android.buildToolsVersion
- defaultConfig {
- minSdkVersion rootProject.ext.android.minSdkVersion
- targetSdkVersion rootProject.ext.android.targetSdkVersion
- versionCode Integer.valueOf(VERSION_CODE)
- versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
-
-
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- consumerProguardFiles "consumer-rules.pro"
-
- kapt {
- useBuildCache = false
- arguments {
- arg("AROUTER_MODULE_NAME", "shuttle"+project.getName())
- }
- }
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- lintOptions {
- abortOnError false
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- debug {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
-
-}
-
-dependencies {
- implementation fileTree(dir: "libs", include: ["*.jar"])
- implementation rootProject.ext.dependencies.kotlinstdlib
- implementation rootProject.ext.dependencies.androidxappcompat
- implementation rootProject.ext.dependencies.arouter
- kapt rootProject.ext.dependencies.aroutercompiler
- implementation rootProject.ext.dependencies.androidxconstraintlayout
- implementation rootProject.ext.dependencies.amapnavi3dmap
-
- implementation rootProject.ext.dependencies.rxjava
- implementation rootProject.ext.dependencies.rxandroid
- implementation rootProject.ext.dependencies.androidxrecyclerview
- compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper
-
- implementation project(":OCH:common:common")
- implementation project(":OCH:common:data")
- compileOnly project(":libraries:mogo-map")
-
-}
-
-apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString()
\ No newline at end of file
diff --git a/OCH/shuttle/driver/consumer-rules.pro b/OCH/shuttle/driver/consumer-rules.pro
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/OCH/shuttle/driver/gradle.properties b/OCH/shuttle/driver/gradle.properties
deleted file mode 100644
index dd5c44ee62..0000000000
--- a/OCH/shuttle/driver/gradle.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-GROUP=com.mogo.och
-POM_ARTIFACT_ID=och-bus
-VERSION_CODE=1
diff --git a/OCH/shuttle/driver/proguard-rules.pro b/OCH/shuttle/driver/proguard-rules.pro
deleted file mode 100644
index 481bb43481..0000000000
--- a/OCH/shuttle/driver/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/AndroidManifest.xml b/OCH/shuttle/driver/src/main/AndroidManifest.xml
deleted file mode 100644
index b24b4d5534..0000000000
--- a/OCH/shuttle/driver/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt
deleted file mode 100644
index 183b989fea..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ShuttleDriverProvider.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.mogo.och.shuttle
-
-import android.content.Context
-import androidx.fragment.app.Fragment
-import com.alibaba.android.arouter.facade.annotation.Route
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.och.shuttle.fragment.ShuttleFragment
-import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.biz.provider.CommonServiceImpl
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
-import com.mogo.och.shuttle.util.ShuttleAnalyticsEventKey
-
-/**
- * 网约车小巴业务实现入口
- *
- * @author tongchenfei
- */
-@Route(path = OchCommonConst.SHUTTLE_DRIVER)
-class ShuttleDriverProvider : CommonServiceImpl() {
-
- private val TAG = ShuttleDriverProvider::class.java.simpleName
- private var busFragment: ShuttleFragment?=null
-
- override fun init(context: Context) {
- d(SceneConstant.M_TAXI + TAG, "init")
- }
-
- override fun getFragment(): Fragment {
- if(busFragment==null){
- busFragment = ShuttleFragment()
- }
- OchAutopilotAnalytics.ochEventKey = ShuttleAnalyticsEventKey.getInstance()
- return busFragment!!
- }
-
- override fun resetFragment() {
- OchAutopilotAnalytics.ochEventKey = null
- busFragment = null
- }
-
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java
deleted file mode 100644
index 7854aa0e07..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusCloseTaskRequest.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-import com.mogo.och.common.module.utils.DateTimeUtil;
-
-/**
- * 中止/结束任务请求
- */
-public class BusCloseTaskRequest {
-
- private String sn;
- private int taskId;
- private long writeVersion;
- public BusCloseTaskRequest(int taskId) {
- this.sn = SharedPrefsMgr.getInstance().getSn();
- this.taskId = taskId;
- this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
- }
-
- public String getSn() {
- return sn;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java
deleted file mode 100644
index 4a4230ccd6..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrderBean.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-/**
- * @author congtaowang
- * @since 2021/3/23
- *
- * 小巴订单
- */
-public class BusOrderBean {
-
- /**
- * orderNo number
- * passengerPhone string 下单用户电话
- * startStationId integer 开始站点
- * startStationName string
- * endStationId integer 结束站点
- * endStationName string
- */
-
- private String orderNo;
- private String passengerPhone;
- private int startStationId;//乘客上车点
- private String startStationName;
- private String endStationName;
- private int endStationId;//乘客下车点
-
- public void setOrderNo(String orderNo) {
- this.orderNo = orderNo;
- }
-
- public void setPassengerPhone(String passengerPhone) {
- this.passengerPhone = passengerPhone;
- }
-
- public void setStartStationId(int startStationId) {
- this.startStationId = startStationId;
- }
-
- public void setStartStationName(String startStationName) {
- this.startStationName = startStationName;
- }
-
- public void setEndStationName(String endStationName) {
- this.endStationName = endStationName;
- }
-
- public void setEndStationId(int endStationId) {
- this.endStationId = endStationId;
- }
-
- public String getOrderNo() {
- return orderNo;
- }
-
- public String getPassengerPhone() {
- return passengerPhone;
- }
-
- public int getStartStationId() {
- return startStationId;
- }
-
- public String getStartStationName() {
- return startStationName;
- }
-
- public String getEndStationName() {
- return endStationName;
- }
-
- public int getEndStationId() {
- return endStationId;
- }
-
- @Override
- public String toString() {
- return "BusOrderBean{" +
- "orderNo=" + orderNo +
- ", passengerPhone='" + passengerPhone + '\'' +
- ", startStationId=" + startStationId +
- ", startStationName='" + startStationName + '\'' +
- ", endStationName='" + endStationName + '\'' +
- ", endStationId=" + endStationId +
- '}';
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java
deleted file mode 100644
index 03a2b23b96..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusOrdersResponse.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/19
- */
-public class BusOrdersResponse extends BaseData {
- public Result data;
- public static class Result{
- public List orders;
- }
-
- @Override
- public String toString() {
- return "BusOrdersResponse{" +
- "data=" + data +
- '}';
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java
deleted file mode 100644
index 0f3cd777ea..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineStationsRequest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-
-/**
- * @author congtaowang
- * @since 2021/3/22
- *
- * 根据车机行驶线路站点信息
- */
-public class BusQueryLineStationsRequest {
-
- private String sn;
- public BusQueryLineStationsRequest() {
- this.sn = SharedPrefsMgr.getInstance().getSn();
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java
deleted file mode 100644
index fbf8f22c3b..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLineTaskResponse.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class BusQueryLineTaskResponse extends BaseData {
-
- public List data;
-
- public static class Result {
- public int id;
- public long taskStartTime;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java
deleted file mode 100644
index a5ad54daa8..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusQueryLinesResponse.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class BusQueryLinesResponse extends BaseData {
- public List data;
-
- public static class Result {
-
- public int lineId;//线路id
- public String name;//线路名字
- public int choose; // 1:绑定 2:未被绑定
- public String startSiteName;//始发站名称
- public String endSiteName;//终点名称
-
- public boolean open;//true 打开状态 false
- public boolean haveTask;
-
- public List taskList;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java
deleted file mode 100644
index ef6cdbda93..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusResetDrivingLineRequest.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-import com.mogo.och.common.module.utils.DateTimeUtil;
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/18
- */
-public class BusResetDrivingLineRequest {
- public String sn;
- public int taskId; //切换到的线路id
- public long writeVersion; //更新时间戳
-
- public BusResetDrivingLineRequest(int taskId) {
- this.sn = SharedPrefsMgr.getInstance().getSn();
- this.taskId = taskId;
- this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java
deleted file mode 100644
index 667135077b..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusRoutesResponse.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.data.bean.BusRoutesResult;
-
-/**
- * 网约车小巴路线接口请求响应结果
- *
- * @author tongchenfei
- */
-public class BusRoutesResponse extends BaseData {
- private BusRoutesResult data;
-
- public BusRoutesResult getResult() {
- return data;
- }
-
- public void setResult(BusRoutesResult data) {
- this.data = data;
- }
-
- @Override
- public String toString() {
- return "BusRoutesResponse{" +
- "data=" + data +
- '}';
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java
deleted file mode 100644
index 13ba2e4f3c..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/BusUpdateSiteStatusRequest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-
-/**
- * @author congtaowang
- * @since 2021/3/22
- *
- * 小巴车运营状态请求参数
- */
-public class BusUpdateSiteStatusRequest {
-
- public String sn;
- public int taskId;
- public int seq;//站点序号
- public int siteId;//站点id
- public long writeVersion; //更新时间戳
-
- public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq, long writeVersion) {
- this.sn = SharedPrefsMgr.getInstance().getSn();
- this.seq = seq;
- this.siteId = siteId;
- this.taskId = taskId;
- this.writeVersion = writeVersion;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java
deleted file mode 100644
index 8c13428bff..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersRequest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-
-/**
- * 查询下车乘客请求参数
- *
- * @author tongchenfei
- */
-public class QueryLeaveAwayPassengersRequest {
- private String sn;
- private int seq; //站点在线路中的序号
- private int siteId; //站点id
-
- public QueryLeaveAwayPassengersRequest(int seq, int siteId) {
- this.sn = SharedPrefsMgr.getInstance().getSn();
- this.seq = seq;
- this.siteId = siteId;
- }
-
- public void setSeq(int seq) {
- this.seq = seq;
- }
-
- public void setSiteId(int siteId) {
- this.siteId = siteId;
- }
-
- public int getSeq() {
- return seq;
- }
-
- public int getSiteId() {
- return siteId;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java
deleted file mode 100644
index b11ba9329b..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/QueryLeaveAwayPassengersResponse.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-public
-/**
- * @author congtaowang
- * @since 2021/3/26
- *
- * 到站查询下车乘客
- */
-class QueryLeaveAwayPassengersResponse extends BaseData {
-
- public Result data;
-
- public static class Result {
-
- public List< LeaveAwayPassenger > orders;
- }
-
- public static class LeaveAwayPassenger {
- /**
- * orderNo: 订单no
- * orderStatus: 订单状态
- * orderType:订单类型:0及时,1预约
- * bookingTime:预计用车时间
- * businessType:订单运营类型 9:taxi,10:bus
- * startSiteId: 起点站点id
- * userPhone: 乘客联系方式
- * startSitePoint:开始站点坐标
- * startSiteAddr:开始地址
- * endSiteId:结束站点id
- * endSitePoint:结束站点坐标
- * carNumber:车牌号
- * createTime: 创建时间
- * startTime:开始时间
- * startSiteGcjPoint:高精坐标
- * endSiteGcjPoint:
- */
-//todo 目前是需要乘客电话来通知乘客下车 目前后台没有乘客信息userPhone
- public String orderNo;
- public int orderStatus;
- public int orderType;
- public long bookingTime;
- public int businessType;
- public int startSiteId;
- public String passengerPhone;
- public List startSitePoint;
- public String startSiteAddr;
- public int endSiteId;
- public List endSitePoint;
- public String carNumber;
- public long createTime;
- public long startTime;
- public List< Double > startSiteGcjPoint;
- public List< Double > endSiteGcjPoint;
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java
deleted file mode 100644
index 931a6e0a42..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffCountResponse.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class WriteOffCountResponse extends BaseData {
-
- public Integer data;
-
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java
deleted file mode 100644
index cdedc26acb..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/bean/WriteOffPassenger.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mogo.och.shuttle.bean;
-
-import java.io.Serializable;
-
-/**
- * @author: wangmingjun
- * @date: 2022/9/23
- */
-public class WriteOffPassenger implements Serializable {
- public String phone;
- public String orderNo;
- public String ticketName;
- public int passengerSize;
- public long writeOffTime;
-
- @Override
- public String toString() {
- return "WriteOffPassenger{" +
- "phone='" + phone + '\'' +
- ", orderNo='" + orderNo + '\'' +
- ", ticketName='" + ticketName + '\'' +
- ", passengerSize=" + passengerSize +
- ", writeOffTime=" + writeOffTime +
- '}';
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java
deleted file mode 100644
index 8a59bcb206..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusADASStatusCallback.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.mogo.och.shuttle.callback;
-
-/**
- * Created on 2021/9/8
- *
- * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等)
- */
-public interface IBusADASStatusCallback {
- //自驾返回失败
- void onStartAdasFailure();
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java
deleted file mode 100644
index 2e3a71fff3..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusControllerStatusCallback.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.mogo.och.shuttle.callback;
-
-import com.mogo.eagle.core.data.map.MogoLocation;
-
-/**
- * Created on 2021/9/10
- *
- * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等)
- */
-public interface IBusControllerStatusCallback {
- // 自车定位
- void onCarLocationChanged(MogoLocation location);
- //开始开启自动驾驶
- void startOpenAutopilot();
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java
deleted file mode 100644
index f52a9c7454..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IBusLinesCallback.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.mogo.och.shuttle.callback;
-
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse;
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public interface IBusLinesCallback {
- void onBusLinesChange(BusQueryLinesResponse lines);
- void onChangeLineIdSuccess();
- void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh);
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java
deleted file mode 100644
index 14e30a34fa..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/IRefreshBusStationsCallback.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mogo.och.shuttle.callback;
-
-import com.mogo.och.data.bean.BusStationBean;
-
-import java.util.List;
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/22
- */
-public interface IRefreshBusStationsCallback {
- void updateBusTaskStatus(String lineName,String lintTime,
- List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived);
-
- /**
- * 结束清理一遍、选择任务后清理一遍
- */
- void clearBusStationsMarkers();
-
- void updateEmptyUi();
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java
deleted file mode 100644
index 6acad8a540..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/callback/ISlidePannelHideCallback.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.mogo.och.shuttle.callback;
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/22
- */
-public interface ISlidePannelHideCallback {
- void hideSlidePanel();
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt
deleted file mode 100644
index 3c2f380d67..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/constant/BusConst.kt
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.mogo.och.shuttle.constant
-
-import com.mogo.commons.debug.DebugConfig
-
-/**
- * Created on 2021/12/6
- */
-class BusConst {
- companion object {
- // OCH arouter 路由path
-
- // 测试用的广播
- const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType"
- // 无状态
- const val STATION_STATUS_IDLE = 0
- // 已过站(历史站)
- const val STATION_STATUS_LEAVING = 1
- // 到站(当前站)
- const val STATION_STATUS_STOPPED = 2
- // 未到站(未到站)
- const val STATION_STATUS_ARRIVING = 3
-
- // 上报心跳轮询ms
- const val LOOP_PERIOD_60S = 60 * 1000L
- // 开始服务启动自动驾驶等待时间(埋点上传)
- const val LOOP_PERIOD_15S = 15 * 1000L
- const val LOOP_PERIOD_1S = 1 * 1000L
- const val LOOP_DELAY = 100L
-
- // 下发给MEC轨迹信息间隔时间 10秒
- const val LOOP_PERIOD_10S = 10 * 1000L
- // 尝试下发给MEC轨迹最多10次
- const val LOOP_SEND_TRAJ_TIMES = 10
-
- //起点UUID
- const val BUS_START_MAP_MAKER = "bus_start_map_maker";
- //终点UUID
- const val BUS_END_MAP_MAKER = "bus_end_map_maker";
-
-
- /**
- * 订单起终点Marker类型
- */
- const val TYPE_MARKER_BUS_ORDER = "TYPE_MARKER_BUS_ORDER"
-
- const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L
-
- //围栏到站 暂定10米
- const val ARRIVE_AT_END_STATION_DISTANCE = 10
-
- // 轮询
- const val LOOP_PASSENGER_5S = 5 * 1000L
- const val LOOP_PASSENGER_2S = 2 * 1000L
- const val LOOP_PASSENGER_1S = 1 * 1000L
- const val LOOP_DELAY_500 = 500L
-
- const val DELAY_10S = 10 * 1000L
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java
deleted file mode 100644
index f7f7cd1c84..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/BaseShuttleTabFragment.java
+++ /dev/null
@@ -1,534 +0,0 @@
-package com.mogo.och.shuttle.fragment;
-
-import static com.mogo.och.shuttle.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL;
-
-import android.animation.ObjectAnimator;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.LinearInterpolator;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.constraintlayout.widget.Group;
-import androidx.core.content.ContextCompat;
-
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.commons.mvp.IView;
-import com.mogo.commons.mvp.MvpFragment;
-import com.mogo.commons.mvp.Presenter;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.config.HdMapBuildConfig;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
-import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
-import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
-import com.mogo.eagle.core.function.smp.view.SmallMapView;
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
-import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.map.MogoMap;
-import com.mogo.map.uicontroller.IMogoMapUIController;
-import com.mogo.och.common.module.utils.ResourcesUtils;
-import com.mogo.och.shuttle.R;
-import com.mogo.och.shuttle.view.BizMapView;
-import com.mogo.och.data.bean.BusRoutesResult;
-import com.mogo.och.shuttle.model.OrderModel;
-import com.mogo.och.shuttle.view.SlidePanelView;
-import com.mogo.och.common.module.utils.SoundPoolHelper;
-
-import org.greenrobot.eventbus.EventBus;
-/**
- * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况
- *
- * 部分业务放在了此处处理
- *
- * @author tongchenfei
- */
-public abstract class BaseShuttleTabFragment> extends MvpFragment{
-
- private static final String TAG = "BaseBusTabFragment";
-
- protected SlidePanelView slidePanelView;
- private RelativeLayout ctvAutopilotStatus;
- private ImageView ctvAutopilotStatusIv;
- private TextView ctvAutopilotStatusTv;
- protected TextView tvArrived;
- private FrameLayout flStationPanelContainer;
- private BizMapView mapBizView;
- private Group groupTestPanel;
-
- protected SmallMapView smallMapView;
-
- private ObjectAnimator autopilotLoadingAnimator;
-
- public boolean isAnimateRunning = false;
-
- /**
- * 滑动按钮触发的事件
- */
- private final SlidePanelView.OnSlidePanelMoveToEndListener onSlideToEndListener = () -> {
- // 此处做一个代理,处理一下共有情况
- if (getSlidePanelOnEndListener() != null) {
- getSlidePanelOnEndListener().moveToEnd();
- }
- };
-
- @Override
- protected int getLayoutId() {
- return R.layout.shuttle_base_fragment;
- }
-
- @Override
- protected void initViews() {
- mapBizView = findViewById(R.id.mapBizView);
- groupTestPanel = findViewById(R.id.groupTestPanel);
- slidePanelView = findViewById(R.id.module_mogo_och_slide_panel);
- ctvAutopilotStatus = findViewById(R.id.module_mogo_och_autopilot_status);
- ctvAutopilotStatusIv = findViewById(R.id.bus_autopilot_btn_iv);
- ctvAutopilotStatusTv = findViewById(R.id.bus_autopolot_btn_tv);
- flStationPanelContainer = findViewById(R.id.module_mogo_och_station_panel_container);
-
- tvArrived = findViewById(R.id.module_mogo_och_arrived_tv);
-
- FrameLayout flSpeed = findViewById(R.id.fl_speed);
- if (flSpeed != null) {
- CallerDevaToolsManager.INSTANCE.attachAutopilotBeforeLaunchView(flSpeed.getContext(), flSpeed);
- }
-
- LayoutInflater.from(getContext()).inflate(getStationPanelViewId(), flStationPanelContainer);
- slidePanelView.setOnSlidePanelMoveToEndListener(onSlideToEndListener);
-
- updateSwitchMapIcon();
-
- initListener();
- setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
- CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
-
- @Override
- public void onClickImpl(View v) {
- restartAutopilot();
- }
- });
-
- // 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接
- findViewById(R.id.btnAutopilotDisable).setOnClickListener(view ->
- debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)
- );
-
- // 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态
- findViewById(R.id.btnAutopilotEnable).setOnClickListener(view ->
- debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)
- );
-
- // 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人
- findViewById(R.id.btnAutopilotRunning).setOnClickListener(view ->
- debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)
- );
-
- findViewById(R.id.btnAutopilotPingxing).setOnClickListener(view ->
- debugAutoPilotStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING)
- );
-
- // 模拟 自动驾驶网约车回调数据
- findViewById(R.id.btnAutopilotArrive).setOnClickListener(view ->
- debugArrivedStation()
- );
-
- tvArrived.setOnClickListener(view -> {
- onArriveStation();
- });
-
-
- smallMapView = findViewById(R.id.smallMapView);
- }
-
- @Override
- protected void initViews(Bundle savedInstanceState) {
- super.initViews(savedInstanceState);
- mapBizView.onCreate(savedInstanceState);
- smallMapView.onCreateView(savedInstanceState);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- mapBizView.onResume();
- smallMapView.onResume();
- }
-
- @Nullable
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container
- , @Nullable Bundle savedInstanceState) {
- EventBus.getDefault().register(this);
- return super.onCreateView(inflater, container, savedInstanceState);
- }
-
- protected abstract void onArriveStation();
-
- private void updateSwitchMapIcon() {
-
- IMogoMapUIController mapUIController = CallerMapUIServiceManager.INSTANCE.getMapUIController(MogoMap.DEFAULT);
- if(mapUIController!=null){
- if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- mapUIController.changeCurrentIcon(R.raw.m2);
- HdMapBuildConfig.currentCarVrIconRes = R.raw.m2;
- }else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- mapUIController.changeCurrentIcon(R.raw.xiaoba);
- HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaoba;
- }
- }
- }
-
- @Override
- public void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- mapBizView.onSaveInstanceState(outState);
- }
-
- @Override
- public void onLowMemory() {
- super.onLowMemory();
- mapBizView.onLowMemory();
- }
-
- @Override
- public void onPause() {
- super.onPause();
- mapBizView.onPause();
- smallMapView.onPause();
- }
-
- @Override
- public void onDestroyView() {
- mapBizView.onDestroy();
- if(smallMapView != null){
- smallMapView.onDestroy();
- }
- super.onDestroyView();
- CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG);
- EventBus.getDefault().unregister(this);
- }
-
- /**
- * 测试到站
- */
- protected abstract void debugArrivedStation();
-
- private void initListener() {
-
- }
-
- /**
- * 展示滑动按钮
- *
- * @param text 指定的文字
- */
- public void showSlidePanel(String text) {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- slidePanelView.setText(text);
- slidePanelView.setVisibility(View.VISIBLE);
- }
- }, UiThreadHandler.MODE.QUEUE);
- setArrivedClikable(false);
- }
-
- /**
- * 设置进站按钮状态
- *
- * @param isClickable
- */
- public void setArrivedClikable(boolean isClickable) {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- tvArrived.setEnabled(isClickable);
- if (isClickable) {
- tvArrived.setTextColor(ContextCompat.getColor(AbsMogoApplication.getApp(),R.color.bus_white));
- } else {
- tvArrived.setTextColor(ContextCompat.getColor(AbsMogoApplication.getApp(),R.color.bus_arrived_btn_un_clickable_color));
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- /**
- * 隐藏滑动按钮
- */
- public void hideSlidePanel() {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- slidePanelView.setVisibility(View.GONE);
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- public void playDI() {
- SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(getContext(), R.raw.bus_di);
- }
-
- /**
- * 改变自动驾驶状态
- *
- * @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中
- */
- public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAuto) {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAuto);
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAuto) {
- if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用
- ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_disable));
- ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv));
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
- ctvAutopilotStatus.setClickable(true);
- ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_start_fail);
- } else {
- ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal));
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot);
- if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用
- ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_runnig_tv));
- if(canStartAuto){
- ctvAutopilotStatus.setClickable(true);
- ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_press);
- }else {
- ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_disable));
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
- ctvAutopilotStatus.setClickable(true);
- ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_start_fail);
- }
- } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {
- ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv);
- ctvAutopilotStatus.setClickable(true);
- ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_in_autopilot);
- } else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
- == autopilotStatus){
- ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver);
- ctvAutopilotStatus.setClickable(false);
- ctvAutopilotStatus.setBackgroundResource(R.drawable.common_autopilot_pxjs);
- }
- }
- }
-
- public void updateAutopilotStatus(int autopilotStatus) {
- if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
- == autopilotStatus) {//2 running
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_right_autopilot_icon);
- ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal));
- ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_success_tv));
-// ctvAutopilotStatus.setSelected(false);
- ctvAutopilotStatus.setClickable(false);
- } else {
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_wrong_autopilot_icon);
- ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal));
- ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_failure_tv));
- ctvAutopilotStatus.setClickable(false);
-// ctvAutopilotStatus.setSelected(false);
- }
- UiThreadHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- }, 1000);
- }
-
- private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning,boolean canStartAuto) {
- if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
- != autopilotStatus) {
- // 主动开启自动驾驶中,不为2(为0、1)则继续loading
- return;
- }
- if (isAnimateRunning) {
- stopAnimAndUpdateBtnStatus();
- } else {
- setAutopilotBtnStatus(autopilotStatus,canStartAuto);
- }
-
- }
-
- public void stopAnimAndUpdateBtnStatus() {
- stopAutopilotAnimation();
- updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
- }
-
- /**
- * 隐藏【自动驾驶】按钮
- */
- public void hideAutopilotBiz() {
- }
-
- /**
- * 展示【自动驾驶】按钮
- */
- public void showAutopilotBiz() {
- }
-
- public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() {
- return null;
- }
-
- /**
- * 获取站点面板view,在{@link #initViews()}时候添加到container中
- *
- * @return 站点面板view
- */
- public abstract int getStationPanelViewId();
-
- /**
- * 重新开启自动驾驶
- */
- public abstract void restartAutopilot();
-
- /**
- * 模拟自动驾驶返回状态
- *
- * @param status
- */
- public abstract void debugAutoPilotStatus(int status);
-
- /**
- * 开启自动驾驶中间动画
- */
- public void startAutopilotAnimation() {
- isAnimateRunning = true;
- ctvAutopilotStatusTv.setText(ResourcesUtils.getString(R.string.bus_loading_autopilot_tv));
- ctvAutopilotStatusTv.setTextColor(ResourcesUtils.getColor(R.color.bus_autopilot_text_color_normal));
- ctvAutopilotStatus.setClickable(true);
- ctvAutopilotStatusIv.setImageResource(R.drawable.bus_loading_autopilot_icon);
- if (autopilotLoadingAnimator == null) {
- autopilotLoadingAnimator = ObjectAnimator.ofFloat(ctvAutopilotStatusIv, "rotation", 0f, 360f);
- autopilotLoadingAnimator.setInterpolator(new LinearInterpolator());
- autopilotLoadingAnimator.setRepeatCount(-1);//无限循环
- autopilotLoadingAnimator.setDuration(1000);//设置持续时间
- }
- autopilotLoadingAnimator.start();//动画开始
-
- startingAutoApilotCountDown();
-
- }
-
- private void startingAutoApilotCountDown() {
- //10s 若自动驾驶没有开启,则结束动画
- UiThreadHandler.postDelayed(new Runnable() {
- @Override
- public void run() { //未启动成功做处理
- if (isAnimateRunning) {// 只判断动画是否在进行,根据自动驾驶当前状态去设置自动驾驶状态
- stopAutopilotAnimation();
- updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
- }
- }
- }, TIMER_START_AUTOPILOT_INTERVAL);
-
- }
-
- /**
- * 停止自动驾驶中间动画
- */
- protected void stopAutopilotAnimation() {
- if (autopilotLoadingAnimator != null) {
- autopilotLoadingAnimator.end();
- ctvAutopilotStatusIv.clearAnimation();
- autopilotLoadingAnimator = null;
- isAnimateRunning = false;
- }
- }
-
-// /**
-// * 迈速表实时更新
-// *
-// * @param newSpeed
-// */
-// public void updateSpeedView(float newSpeed) {
-// int speed = (int) (Math.abs(newSpeed) * 3.6F); // 倒车时工控机反馈定位信息中speed为负值
-// if (mTrafficDataView != null) {
-// mTrafficDataView.updateSpeedWithValue(speed);
-// }
-// }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- }
-
- /**
- * bus调试面板打开关闭
- */
- public void debugTestBar() {
- if (groupTestPanel.getVisibility() == View.VISIBLE) {
- groupTestPanel.setVisibility(View.GONE);
- } else {
- groupTestPanel.setVisibility(View.VISIBLE);
- }
- }
-
- /**
- * Bus调试信息:线路、轨迹等信息
- *
- * START
- */
- private View busTestBar;
- private TextView lineIdTV;
- private TextView lineNameTV;
- private TextView trajMd5TV;
- private TextView stopMd5TV;
- private TextView trajMd5DPQPTV;
- private TextView stopMd5DPQPTV;
-
- public void showHideTestBar() {
- if (busTestBar == null) {
- busTestBar = findViewById(R.id.module_mogo_och_bus_test_bar);
- lineIdTV = findViewById(R.id.bus_test_bar_current_line_id);
- lineNameTV = findViewById(R.id.bus_test_bar_current_line_name);
- trajMd5TV = findViewById(R.id.bus_test_bar_current_traj_md5);
- stopMd5TV = findViewById(R.id.bus_test_bar_current_stop_md5);
- trajMd5DPQPTV = findViewById(R.id.bus_test_bar_current_traj_md5_dpqp);
- stopMd5DPQPTV = findViewById(R.id.bus_test_bar_current_stop_md5_dpqp);
- }
-
- if (busTestBar.getVisibility() == View.VISIBLE) {
- busTestBar.setVisibility(View.GONE);
- } else {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId())));
- lineNameTV.setText("lineName:" + (routesResult == null ? "" : routesResult.getName()));
- trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5));
- stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5));
- trajMd5DPQPTV.setText("TMd5DPQP:" + (routesResult == null ? "" : routesResult.csvFileMd5DPQP));
- stopMd5DPQPTV.setText("SMd5DPQP:" + (routesResult == null ? "" : routesResult.txtFileMd5DPQP));
- busTestBar.setVisibility(View.VISIBLE);
- }
- }
-
- public void updateBusTestBarInfo() {
- if (busTestBar != null && busTestBar.getVisibility() == View.VISIBLE) {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- lineIdTV.setText("lineId:" + (routesResult == null ? "" : String.valueOf(routesResult.getLineId())));
- lineNameTV.setText("lineName:" + (routesResult == null ? "" : routesResult.getName()));
- trajMd5TV.setText("TMd5:" + (routesResult == null ? "" : routesResult.csvFileMd5));
- stopMd5TV.setText("SMd5:" + (routesResult == null ? "" : routesResult.txtFileMd5));
- trajMd5DPQPTV.setText("TMd5DPQP:" + (routesResult == null ? "" : routesResult.csvFileMd5DPQP));
- stopMd5DPQPTV.setText("SMd5DPQP:" + (routesResult == null ? "" : routesResult.txtFileMd5DPQP));
- }
- }
- /**
- * END
- */
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java
deleted file mode 100644
index 3ff99861e0..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/fragment/ShuttleFragment.java
+++ /dev/null
@@ -1,551 +0,0 @@
-package com.mogo.och.shuttle.fragment;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-import static com.mogo.map.MogoMap.DEFAULT;
-
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Bundle;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.constraintlayout.widget.Group;
-import androidx.annotation.Nullable;
-
-import com.mogo.commons.storage.SharedPrefsMgr;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.temp.EventLogout;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant;
-import com.mogo.eagle.core.utilcode.util.ActivityUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.map.overlay.IMoGoOverlayManager;
-import com.mogo.map.overlay.core.Level;
-import com.mogo.map.overlay.point.Point;
-import com.mogo.och.common.module.utils.ResourcesUtils;
-import com.mogo.och.shuttle.R;
-import com.mogo.och.data.bean.BusStationBean;
-import com.mogo.och.shuttle.constant.BusConst;
-import com.mogo.och.shuttle.presenter.BusPresenter;
-import com.mogo.och.shuttle.ui.BusStationCommonItem;
-import com.mogo.och.shuttle.ui.BusSwitchLineActivity;
-import com.mogo.och.shuttle.view.SlidePanelView;
-import com.mogo.och.common.module.utils.BlinkAnimationUtil;
-import com.mogo.och.common.module.utils.OCHThreadPoolManager;
-import com.mogo.och.common.module.utils.QRUtilsKt;
-import com.mogo.och.common.module.wigets.BindQRCodeDialog;
-import com.mogo.och.common.module.wigets.MarqueeTextView;
-import com.mogo.och.common.module.wigets.OCHCommitDialog;
-
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-import java.util.List;
-import java.util.Objects;
-
-import me.jessyan.autosize.utils.AutoSizeUtils;
-
-
-/**
- * 网约车小巴界面
- *
- * @author tongchenfei
- */
-public class ShuttleFragment extends BaseShuttleTabFragment
- implements SlidePanelView.OnSlidePanelMoveToEndListener, View.OnClickListener {
- public static final String TAG = "BusFragment";
-
- private TextView mSwitchLine; //切换路线
- private MarqueeTextView mLineName;
- private TextView mTaskTime;
- private Group groupStationsPanel;
- private ConstraintLayout noDataView;
-
- private BusStationBean startStation = null;
- private BusStationBean endStation = null;
- private BusStationCommonItem firstStationItem;
- private BusStationCommonItem secondStationItem;
- private BusStationCommonItem thirdStationItem;
-
-
- @Override
- public String getTagName() {
- return "BusFragment";
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- }
- @Override
- public void onDestroyView() {
- if (mPresenter != null) {
- mPresenter.onDestroy(this);
- }
- IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
- if(overlayManager!=null) {
- overlayManager.removeAllLines();
- overlayManager.removeAllPoints();
- }
- super.onDestroyView();
- }
-
- @Override
- protected void initViews() {
- super.initViews();
-
- mSwitchLine = findViewById(R.id.switch_line_btn);
- mSwitchLine.setTag(0);
- mLineName = findViewById(R.id.module_och_bus_line_name);
-
- firstStationItem = findViewById(R.id.bus_panel_first_station);
- secondStationItem = findViewById(R.id.bus_panel_second_station);
- thirdStationItem = findViewById(R.id.bus_panel_third_station);
- mTaskTime = findViewById(R.id.bus_task_time_tv);
- groupStationsPanel = findViewById(R.id.group_stations_panel);
- noDataView = findViewById(R.id.no_line_data_view);
-
- CallerLogger.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState());
- // 初始化的时候设置 UI 按钮状态
- showAutopilotBiz();
-
- mSwitchLine.setOnClickListener(this);
-
- mLineName.setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- showHideTestBar();
- return false;
- }
- });
- }
-
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void changeOverview(EventLogout eventLogout){
- if (eventLogout.getMessgae() == EventLogout.LOGOUT_TYPE){
- CallerLogger.d(M_BUS + TAG,"changeOverview Event消息去登出");
- mPresenter.logout();
- }else if (eventLogout.getMessgae() == EventLogout.SHOW_QR_TYPE){ //显示二维码
- CallerLogger.d(M_BUS + TAG,"changeOverview Event qrcode,sn = "
- + SharedPrefsMgr.getInstance().getSn());
- String qrUrl = String.format(FunctionBuildConfig.urlJson.getBindDriverQRUrl(),
- SharedPrefsMgr.getInstance().getSn());
- Bitmap bmQr = QRUtilsKt.createQRCodeWithPicture(
- BitmapFactory.decodeResource(getResources(), R.drawable.icon_qr_center_logo)
- ,qrUrl, AutoSizeUtils.dp2px(getContext(),340f),
- AutoSizeUtils.dp2px(getContext(),340f),true);
- if (bmQr != null){
- BindQRCodeDialog.Builder builder = new BindQRCodeDialog.Builder();
- builder.title(getString(R.string.bind_driver_qr_title))
- .cancelStr(getString(R.string.qr_cancel))
- .qrBm(bmQr).build(getContext()).show();
- }else {
- CallerLogger.d(M_BUS + TAG,"bmQr = null ");
- }
- }
- }
-
- @Override
- protected void onArriveStation() {
- mPresenter.onAutopilotArriveAtStation(null);
- mPresenter.arriveStation(null,"点击进站触发进站操作");
- }
-
- @Override
- protected void debugArrivedStation() {
- mPresenter.onAutopilotArriveAtStation(null);
- mPresenter.arriveStation(null,"点击debug进站按钮触发进站操作");
- }
-
- @NonNull
- @Override
- protected BusPresenter createPresenter() {
- return new BusPresenter(this);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- }
-
- public void hideStationsPanel(){
- groupStationsPanel.setVisibility(View.GONE);
- noDataView.setVisibility(View.VISIBLE);
- }
-
- public void showStationsPanel(){
- groupStationsPanel.setVisibility(View.VISIBLE);
- noDataView.setVisibility(View.GONE);
- }
-
- public void updateLineEmptyUI(){
- setArrivedClikable(false);
- showOrHideSwitchLineBtn(true);
- hideStationsPanel();
- hideSlidePanel();
- resetStationBlinkAnim();
- }
-
- private void resetStationBlinkAnim() {
- BlinkAnimationUtil.clearAnimation(firstStationItem.getCircleImageView());
- BlinkAnimationUtil.clearAnimation(secondStationItem.getCircleImageView());
- BlinkAnimationUtil.clearAnimation(thirdStationItem.getCircleImageView());
- }
-
- public void updateBusTaskStatus(String lineName, String lineTime,
- List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived){
-
- if (getActivity() == null) {
- return;
- }
-
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if (stationList == null) {
- // 获取小巴数据失败
- return;
- }
-
- showStationsPanel();
- showOrHideSwitchLineBtn(false);
-
- mLineName.setText(lineName);
- mTaskTime.setText(getString(R.string.bus_line_time_tag)+ lineTime);
- // 渲染小巴路线数据
- updateBusStationStatus(stationList,arrivingOrArrivedIndex,isArrived);
- }
- },UiThreadHandler.MODE.QUEUE);
- }
-
- private void updateBusStationStatus(List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived) {
-
- startStation = stationList.get(0);
- endStation = stationList.get(stationList.size() - 1);
-
- if (arrivingOrArrivedIndex == stationList.size() - 1 && isArrived){
- //切换路线和结束路线按钮切换
- showSlidePanel("单程结束");
-
- setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat()
- , endStation.getLon(),R.raw.end_marker);
- }else if (arrivingOrArrivedIndex == 0 && isArrived){
-
- showSlidePanel("滑动出发");
-
- setOrRemoveMapMaker(true, BusConst.BUS_START_MAP_MAKER,
- startStation.getLat(), startStation.getLon(),R.raw.star_marker);
- setOrRemoveMapMaker(true, BusConst.BUS_END_MAP_MAKER,
- endStation.getLat(), endStation.getLon(),R.raw.end_marker);
- }else{
- if (isArrived){
- // 重置滑动按钮文字
- showSlidePanel("滑动出发");
- }
-
- setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat()
- , startStation.getLon(),R.raw.star_marker);
- setOrRemoveMapMaker(true, BusConst.BUS_END_MAP_MAKER, endStation.getLat()
- , endStation.getLon(),R.raw.end_marker);
- }
-
- if (stationList.size() > 2){ //只有两个站点
- updateMoreThanTwoStationsUI(stationList,arrivingOrArrivedIndex,isArrived);
- }else {
- updateTwoStationsUI(stationList,arrivingOrArrivedIndex,isArrived);
- }
-
- updateBusTestBarInfo();
- }
-
- /**
- * 有两个以上站点的路线
- * @param stationList
- * @param arrivingOrArrivedIndex
- * @param isArrived
- */
- private void updateMoreThanTwoStationsUI(List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived) {
- secondStationItem.setStationTag("");
- secondStationItem.showOrHideStationArrowBg(true);
- thirdStationItem.setStationTag("");
- secondStationItem.setVisibility(View.VISIBLE);
- thirdStationItem.showOrHideStationArrowBg(false);
-
- if (arrivingOrArrivedIndex == 0 || arrivingOrArrivedIndex -1 == 0
- || (arrivingOrArrivedIndex -2 == 0 && stationList.size() == 3)){
- firstStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start));
- }else {
- firstStationItem.setStationTag("");
- }
-
- if (arrivingOrArrivedIndex + 1 == stationList.size() - 1 || arrivingOrArrivedIndex == stationList.size() - 1
- || (arrivingOrArrivedIndex == 0 && arrivingOrArrivedIndex + 2 == stationList.size() - 1)){ //确认是否显示 "终"
- thirdStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end));
- }else {
- thirdStationItem.setStationTag("");
- }
-
- //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站
- if (arrivingOrArrivedIndex == 0 && isArrived){
- firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected));
- secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color));
- thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color));
-
- firstStationItem.setStationName(stationList.get(0).getName());
- secondStationItem.setStationName(stationList.get(1).getName());
- thirdStationItem.setStationName(stationList.get(2).getName());
-
- firstStationItem.setStationPointBg(1);
- secondStationItem.setStationPointBg(2);
- thirdStationItem.setStationPointBg(2);
-
- firstStationItem.setStationArrowBg(2);
- secondStationItem.setStationArrowBg(2);
-
- }else if (arrivingOrArrivedIndex == stationList.size() - 1){
- firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color));
- secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color));
- thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected));
-
- firstStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -2).getName());
- secondStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -1).getName());
- thirdStationItem.setStationName(stationList.get(arrivingOrArrivedIndex).getName());
-
- firstStationItem.setStationPointBg(0);
- secondStationItem.setStationPointBg(0);
- thirdStationItem.setStationPointBg(1);
-
- firstStationItem.setStationArrowBg(0);
- if (isArrived){
- secondStationItem.setStationArrowBg(0);
- }else {
- secondStationItem.setStationArrowBg(1);
- }
-
- }else {
- firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color));
- secondStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected));
- thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color));
-
- firstStationItem.setStationName(stationList.get(arrivingOrArrivedIndex -1).getName());
- secondStationItem.setStationName(stationList.get(arrivingOrArrivedIndex).getName());
- thirdStationItem.setStationName(stationList.get(arrivingOrArrivedIndex + 1).getName());
-
- firstStationItem.setStationPointBg(0);
- secondStationItem.setStationPointBg(1);
- thirdStationItem.setStationPointBg(2);
-
- secondStationItem.setStationArrowBg(2);
- if (isArrived){
- firstStationItem.setStationArrowBg(0);
- }else {
- firstStationItem.setStationArrowBg(1);
- }
- }
-
- }
-
- /**
- * 只有两个站点的路线
- * @param stationList
- * @param arrivingOrArrivedIndex
- * @param isArrived
- */
- private void updateTwoStationsUI(List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived) {
-
- secondStationItem.setVisibility(View.GONE);
- secondStationItem.showOrHideStationArrowBg(false);
- thirdStationItem.showOrHideStationArrowBg(false);
-
- firstStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_start));
- thirdStationItem.setStationTag(ResourcesUtils.getString(R.string.bus_station_txt_tag_end));
-
- firstStationItem.setStationName(stationList.get(0).getName());
- thirdStationItem.setStationName(stationList.get(1).getName());
-
- //圆点: 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站
- if (arrivingOrArrivedIndex == 0 && isArrived){//到站
- firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected));
- thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_arrived_station_name_text_color));
- firstStationItem.setStationPointBg(1);
- firstStationItem.setStationArrowBg(2);
- thirdStationItem.setStationPointBg(0);
-
- }else {
- firstStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_station_tag_txt_un_color));
- thirdStationItem.setStationNameColor(ResourcesUtils.getColor(R.color.bus_line_station_color_selected));
- if (isArrived){ //到终点
- firstStationItem.setStationPointBg(0);
- firstStationItem.setStationArrowBg(0);
- thirdStationItem.setStationPointBg(1);
-
- }else { //到终点途中
- firstStationItem.setStationPointBg(0);
- firstStationItem.setStationArrowBg(1);
- thirdStationItem.setStationPointBg(1);
- }
- }
- }
-
- private void showOrHideSwitchLineBtn(boolean isShow) {
- if (isShow){//显示切换路线
- mSwitchLine.setTag(0);
- mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_switch_line_btn));
- }else {//显示结束路线
- mSwitchLine.setTag(1);
- mSwitchLine.setText(ResourcesUtils.getString(R.string.bus_close_line_btn));
- }
- }
-
- public void hideOchBus() {
-// tvNotice.setVisibility(View.GONE);
- }
-
- @Override
- public int getStationPanelViewId() {
- return R.layout.shuttle_fragment_och;
- }
-
- @Override
- public void restartAutopilot() {
- if (!isAnimateRunning) {
- mPresenter.restartAutopilot();
- }
- }
-
- @Override
- public SlidePanelView.OnSlidePanelMoveToEndListener getSlidePanelOnEndListener() {
- return this;
- }
-
- @Override
- public void moveToEnd() {
- // 开启自动驾驶到下一站
- if (isAnimateRunning){
- stopAutopilotAnimation();
- }
- mPresenter.autoDriveToNextStation();
- }
-
- /**
- * 设置自动驾驶可用状态
- */
- public void onAutopilotEnableChange(boolean isEnable) {
- if (isEnable) {
- showAutopilotBiz();
- } else {
- hideAutopilotBiz();
- }
- }
-
- public void clearBusStationsMarkers(){
- CallerLogger.d(M_BUS + TAG,"clearBusStationsMarkers()");
- if (null != startStation) {
- setOrRemoveMapMaker(false, BusConst.BUS_START_MAP_MAKER, startStation.getLat()
- , startStation.getLon(),R.raw.star_marker);
- }
- if (null != endStation) {
- setOrRemoveMapMaker(false, BusConst.BUS_END_MAP_MAKER, endStation.getLat()
- , endStation.getLon(),R.raw.end_marker);
- }
-
- //清除鹰眼右下角小地图轨迹
- CallerLogger.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->");
- smallMapView.clearPolyline();
- }
-
- /**
- * 绘制地图起点终点
- *
- * @param isAdd
- * @param uuid
- */
- private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi,int resourceId) {
- if (isAdd) {
- Runnable setMapMarkerRunnable = () -> {
- CallerLogger.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(),
- uuid + "=latitude=" + lat + ",longitude=" + longi);
-
- Point.Options.Builder builder = new Point.Options.Builder(BusConst.TYPE_MARKER_BUS_ORDER, Level.MAP_MARKER)
- .setId(uuid)
- .anchor(0.5f, 0.5f)
- .set3DMode(true)
- .isUseGps(true)
- .controlAngle(false)
- .icon3DRes(resourceId)
- .latitude(lat)
- .longitude(longi);
- IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager();
- if (overlayManager != null) {
- overlayManager.showOrUpdatePoint(builder.build(),DEFAULT);
- }
- };
-
- OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable);
-
- }else {
- Runnable removeMapMarkerRunnable = () -> {
- CallerLogger.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(),
- uuid+"=latitude="+lat+",longitude="+longi);
- Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getOverlayManager()).removePoint(uuid);
- };
- OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable);
- }
- }
-
- @Override
- public void debugAutoPilotStatus(int status) {
- mPresenter.debugAutoPilotStatus(status);
- }
-
- @Override
- public void onClick(View v) {
- if (v.getId() == R.id.switch_line_btn) {//切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线
- //本次行程未结束,不支持切换路线。点击则toast提示:当前行程未完成,不可切换路线
- if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
- == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- ToastUtils.showLong(ResourcesUtils.getString(R.string.bus_switch_line_btn_warning1));
- return;
- }
- if ((int)mSwitchLine.getTag() == 0){//切换路线
- Intent intent = new Intent(getContext(), BusSwitchLineActivity.class);
- ActivityUtils.startActivity(intent);
- }else {//结束任务
- OCHCommitDialog.Builder builder = new OCHCommitDialog.Builder();
- OCHCommitDialog closeLineConfirmDialog = builder
- .title(getString(R.string.bus_dialog_title))
- .tips(getString(R.string.bus_dialog_tips))
- .confirmStr(getString(R.string.bus_dialog_confirm))
- .cancelStr(getString(R.string.bus_dialog_cancel))
- .build(getContext());
- closeLineConfirmDialog.setClickListener(new OCHCommitDialog.ClickListener() {
- @Override
- public void confirm() {
- mPresenter.abortTask();
- }
-
- @Override
- public void cancel() {
- closeLineConfirmDialog.dismiss();
- }
- });
- closeLineConfirmDialog.show();
- }
- }
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java
deleted file mode 100644
index ef35581c24..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/BusLineModel.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package com.mogo.och.shuttle.model;
-
-import android.content.Context;
-
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.commons.storage.SharedPrefsMgr;
-import com.mogo.eagle.core.utilcode.util.NetworkUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.och.shuttle.R;
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse;
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse;
-import com.mogo.och.shuttle.bean.BusRoutesResponse;
-import com.mogo.och.shuttle.callback.IBusLinesCallback;
-import com.mogo.och.shuttle.net.OrderServiceManager;
-import com.mogo.och.shuttle.ui.BusSwitchLineActivity;
-import com.mogo.och.common.module.network.OchCommonServiceCallback;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class BusLineModel {
- private static volatile BusLineModel sInstance;
- private Context mContext;
- private IBusLinesCallback mBusLinesCallback;
- public static BusLineModel getInstance() {
- if ( sInstance == null ) {
- synchronized ( BusLineModel.class ) {
- if ( sInstance == null ) {
- sInstance = new BusLineModel();
- }
- }
- }
- return sInstance;
- }
- private BusLineModel() {
-
- }
- public void init() {
- mContext = AbsMogoApplication.getApp();
- }
- public void setBusLinesCallback(IBusLinesCallback callback){
- mBusLinesCallback = callback;
- }
- public void queryBusLines(){
- OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BusQueryLinesResponse data) {
- if (null == data && mBusLinesCallback != null) {
- mBusLinesCallback.onBusLinesChange(null);
- return;
- }
-
- if (mBusLinesCallback != null){
- mBusLinesCallback.onBusLinesChange(data);
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort("查询所有绑定路线失败:"+failMsg);
- }
- }
- });
- }
-
- /**
- * 通过线路id 查询线路排班表
- * @param lineId 线路ID
- * @param position 位置
- */
- public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){
- OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BusQueryLineTaskResponse data) {
- if (null == data && mBusLinesCallback != null) {
- mBusLinesCallback.onBusLineTasks(null,position,autoRefresh);
- return;
- }
-
- if (mBusLinesCallback != null){
- mBusLinesCallback.onBusLineTasks(data,position,autoRefresh);
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort("查询所有绑定路线失败:"+failMsg);
- }
- }
- });
- }
-
- public void commitSwitchLineId(int taskId,int lineId){
- OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BusRoutesResponse o) {
- SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId);
- if (mBusLinesCallback != null){
- mBusLinesCallback.onChangeLineIdSuccess();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort("选择任务失败:"+failMsg);
- }
- }
- });
- }
-
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java
deleted file mode 100644
index 577c44b09a..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/OrderModel.java
+++ /dev/null
@@ -1,1256 +0,0 @@
-package com.mogo.och.shuttle.model;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.ArrayMap;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.elegant.network.utils.GsonUtil;
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.map.MogoLocation;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener;
-import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
-import com.mogo.eagle.core.utilcode.util.GsonUtils;
-import com.mogo.eagle.core.utilcode.util.NetworkUtils;
-import com.mogo.eagle.core.utilcode.util.StringUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
-import com.mogo.och.common.module.constant.OchCommonConst;
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics;
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager;
-import com.mogo.och.common.module.manager.autopilot.line.LineManager;
-import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager;
-import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager;
-import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager;
-import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction;
-import com.mogo.och.common.module.manager.socket.lan.LanSocketManager;
-import com.mogo.och.common.module.manager.socket.lan.LedScreenManager;
-import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg;
-import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey;
-import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType;
-import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType;
-import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus;
-import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg;
-import com.mogo.och.common.module.network.OchCommonServiceCallback;
-import com.mogo.och.common.module.utils.DateTimeUtil;
-import com.mogo.och.common.module.utils.MultiRequestLimitChecker;
-import com.mogo.och.common.module.utils.NumberFormatUtil;
-import com.mogo.och.common.module.utils.OCHThreadPoolManager;
-import com.mogo.och.common.module.utils.PinYinUtil;
-import com.mogo.och.common.module.voice.VoiceNotice;
-import com.mogo.och.data.bean.BusRoutesResult;
-import com.mogo.och.data.bean.BusStationBean;
-import com.mogo.och.data.bean.BusTransferData;
-import com.mogo.och.data.bean.LineInfo;
-import com.mogo.och.data.manager.cache.CacheDataManager;
-import com.mogo.och.shuttle.R;
-import com.mogo.och.shuttle.bean.BusRoutesResponse;
-import com.mogo.och.shuttle.callback.IBusADASStatusCallback;
-import com.mogo.och.shuttle.callback.IBusControllerStatusCallback;
-import com.mogo.och.shuttle.callback.IRefreshBusStationsCallback;
-import com.mogo.och.shuttle.callback.ISlidePannelHideCallback;
-import com.mogo.och.shuttle.constant.BusConst;
-import com.mogo.och.shuttle.net.OrderServiceManager;
-import com.mogo.och.shuttle.util.BusTrajectoryManager;
-import com.mogo.och.shuttle.util.ShuttleVoiceManager;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import io.reactivex.exceptions.UndeliverableException;
-import io.reactivex.functions.Consumer;
-import io.reactivex.plugins.RxJavaPlugins;
-
-/**
- * @author congtaowang
- * @since 2021/3/23
- *
- * 小巴订单管理
- */
-public class OrderModel {
- private final String TAG = OrderModel.class.getSimpleName();
- private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引
- private static volatile OrderModel sInstance;
- private Context mContext;
- private final List stationList = new ArrayList<>();
- private BusRoutesResult busRoutesResult = null;
- /**
- * 用来表示是否正在开往下一站
- */
- private boolean isGoingToNextStation = false;
- // 运营类型
- private static final int VEHICLE_TYPE = 10;
-
- private IRefreshBusStationsCallback refreshBusStationsCallback;
- private ISlidePannelHideCallback slidePanelHideCallback;
- private IBusControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等
- private IBusADASStatusCallback mADASStatusCallback;
-
- private volatile boolean isArrivedStation = false;
-
- //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0
- private volatile int firstStartAutopilot = 0;
-
- public static OrderModel getInstance() {
- if (sInstance == null) {
- synchronized (OrderModel.class) {
- if (sInstance == null) {
- sInstance = new OrderModel();
- }
- }
- }
- return sInstance;
- }
-
- private OrderModel() {
-
- }
-
- public void init() {
- mContext = AbsMogoApplication.getApp();
- // 定位监听
- OchLocationManager.addGCJ02Listener(TAG,5,mMapLocationListener);
-
- //开启自驾后 异常信息返回
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener);
-
- OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息
- OCHSocketMessageManager.msgMonitorType,
- new OperateAction(true));
-
- TicketModel.INSTANCE.load();
-
- AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext);
-
- //监听乘客屏发来的消息
- CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener);
-
- //2022.1.28
- // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃
- // The exception could not be delivered to the consumer because it has already canceled/disposed
- // the flow or the excTeption has nowhere to go to begin with
- RxJavaPlugins.setErrorHandler(new Consumer() {
- @Override
- public void accept(Throwable e) {
- if (e instanceof UndeliverableException) {
- e = e.getCause();
- CallerLogger.d(M_BUS + TAG, "UndeliverableException");
- }
- if ((e instanceof IOException)) {//
- // fine, irrelevant network problem or API that throws on cancellation
- CallerLogger.d(M_BUS + TAG, "IOException");
- return;
- }
- if (e instanceof InterruptedException) {
- // fine, some blocking code was interrupted by a dispose call
- CallerLogger.d(M_BUS + TAG, "InterruptedException");
- return;
- }
- if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {
- // that's likely a bug in the application
- CallerLogger.d(M_BUS + TAG, "NullPointerException or IllegalArgumentException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- if (e instanceof IllegalStateException) {
- // that's a bug in RxJava or in a custom operator
- CallerLogger.d(M_BUS + TAG, "IllegalStateException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- CallerLogger.d(M_BUS + TAG, "Undeliverable exception");
- }
- });
- }
-
- private final IReceivedMsgListener mReceivedMsgListener =
- new IReceivedMsgListener() {
- @Override
- public void onDemoMode(boolean isDemoMode) {
-
- }
-
- @Override
- public void onReceivedServerSn(@Nullable String sn) {
-
- }
-
- @Override
- public void onReceivedMsg(int type, @NonNull byte[] byteArray) {
- if (OchCommonConst.BUSINESS_STRING == type){
- CallerLogger.d(M_BUS + BaseDPMsg.TAG,new String(byteArray));
- BaseDPMsg msg = GsonUtils.fromJson(new String(byteArray),BaseDPMsg.class);
- if(msg!=null) {
- if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) {
- sendTaskDetailsToClients();
- }
- }
- }
- }
- };
-
- public void setAdasStatusCallback(IBusADASStatusCallback callback){
- this.mADASStatusCallback = callback;
- }
-
- public void setRefreshBusStationsCallback(IRefreshBusStationsCallback callback){
- this.refreshBusStationsCallback = callback;
- }
-
- public void setSlidePanelHideCallback(ISlidePannelHideCallback callback) {
- this.slidePanelHideCallback = callback;
- }
-
- public void setControllerStatusCallback(IBusControllerStatusCallback callback) {
- this.mControllerStatusCallback = callback;
- }
-
- public void release() {
-
- // 注销定位监听
- OchLocationManager.removeGCJ02Listener(TAG);
-
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
-
- OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
- OCHSocketMessageManager.msgMonitorType);
- OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(
- OCHSocketMessageManager.msgWriteOffPassengerType);
-
- AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors();
- //监听乘客屏发来的消息
- CallerTelematicListenerManager.INSTANCE.removeListener(TAG);
- }
-
- private Object readResolve() {
- // 阻止反序列化,必须实现 Serializable 接口
- return sInstance;
- }
-
- private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
-
- @Override
- public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
- if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){
- CallerLogger.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage );
- mADASStatusCallback.onStartAdasFailure();
- }
- }
- };
-
- // 自车定位
- private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
-
- @Override
- public void onChassisLocationGCJ02(@Nullable MogoLocation mogoLocation) {
- if (null == mogoLocation) return;
- if (mControllerStatusCallback != null) {
- mControllerStatusCallback.onCarLocationChanged(mogoLocation);
- }
-
- //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站
- if (isGoingToNextStation && !isArrivedStation) {
- OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() {
- @Override
- public void run() {
- judgeArrivedStation(mogoLocation);
- }
- });
- }
- }
- };
-
- //根据围栏判断,是否到达站点
- private void judgeArrivedStation(MogoLocation location) {
-
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) {
- CallerLogger.e(M_BUS + TAG, "到站数组越界");
- return;
- }
- BusStationBean upcomingStation = stationList.get(backgroundCurrentStationIndex + 1);
-
- double startLon = upcomingStation.getGcjLon();
- double startLat = upcomingStation.getGcjLat();
- double distance = CoordinateUtils.calculateLineDistance(
- startLon, startLat,
- location.getLongitude(), location.getLatitude());
-
- if (distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE) {
- CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance
- + " to " + upcomingStation.getName());
- onArriveAt(null,"兜底:根据定位计算到站");
- }
- }
-
- public void queryBusCacheRoutes(){
-
- String loginStr = CacheDataManager.Companion.getInstance().getCacheData(
- mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE);
- if (!loginStr.isEmpty()){
- LoginCacheStatus status = GsonUtils.fromJson(loginStr,LoginCacheStatus.class);
- LoginStatusManager.setLoginStatus(status.getLoginStatus());
- if (status.getUpdateTime() > DateTimeUtil.getTodayStartTime() &&
- status.getLoginStatus() == 1){//登陆
-
- String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext,
- BusCacheKey.BUS_LINE_CACHE);
-
- if (cacheData == null || cacheData.isEmpty()){
- queryBusRoutes();
- }else {
- BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class);
- getCacheRouteSuccess(data.getRoutesResult());
- }
- }else{ // 未登陆
- CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE);
- sendTaskDetailsToClients();
- }
- }
- }
-
- private void getCacheRouteSuccess(BusRoutesResult data){
- if (data == null || data.getSites() == null
- || data.getSites().isEmpty()
- || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) {
- //当为空时,显示无绑定路线图
- queryBusRoutes();
- CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE);
- return;
- }
- CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data));
- updateBusStatus(data);
- }
-
- /**
- * 查询小巴路线
- */
- public void queryBusRoutes() {
- CallerLogger.d(M_BUS + TAG, "查询小巴路线");
- OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BusRoutesResponse data) {
- if (data == null
- || data.getResult() == null
- || data.getResult().getSites() == null
- || data.getResult().getSites().isEmpty()) {
-// //当为空时,显示无绑定路线图
- CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据:空 ");
- if (refreshBusStationsCallback != null) {
- refreshBusStationsCallback.updateEmptyUi();
- }
- updateBusStatus(null);
- clearAutopilotControlParameters();
- closeBeautificationMode();
- clearStartAutopilotTag();
- removeTipRunnables();
- CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE);
- return;
- }
-
- if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){
- CallerLogger.d(M_BUS + TAG, "更新小巴路线数据: " + data);
- updateBusStatus(data.getResult());
- pushCacheTransferData(data.getResult());
- }
- }
-
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
-
- }
-
- /**
- * 更新正在运行的任务UI
- *
- * @param stations
- */
- private void updateBusTaskStatus(List stations) {
-
- int arrivingOrArrivedStationIndex = 0;//已经到站或者即将到站的索引呢
-
- for (int i = 0; i < stations.size(); i++) {
- BusStationBean station = stations.get(i);
-
- if (i == 0) { // 首发站 显示在最上面
- if (station.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED
- && !station.isLeaving()) { //到达第一站
- arrivingOrArrivedStationIndex = i;
- break;
- }
- } else {
- BusStationBean preStation = stations.get(i - 1);
- if ((station.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED && !station.isLeaving())
- || (station.getDrivingStatus() == BusConst.STATION_STATUS_ARRIVING
- && preStation.isLeaving())) {
- //到站未离开 | 即将到站 显示在最中间
- arrivingOrArrivedStationIndex = i;
- break;
- }
- }
- }
-
- BusStationBean arrivingOrArrivedStation = stations.get(arrivingOrArrivedStationIndex);
-
- String lineTime = DateTimeUtil.formatLongToString(
- busRoutesResult.getTaskTime(),
- DateTimeUtil.HH_mm);
-
- if (arrivingOrArrivedStationIndex == 0 ||
- arrivingOrArrivedStation.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED
- && !arrivingOrArrivedStation.isLeaving()) {
- if (refreshBusStationsCallback != null) {
- refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime,
- stationList, arrivingOrArrivedStationIndex, true);
- }
- clearAutopilotControlParameters();
- } else {
- if (refreshBusStationsCallback != null) {
- refreshBusStationsCallback.updateBusTaskStatus(busRoutesResult.getName(), lineTime,
- stationList, arrivingOrArrivedStationIndex, false);
- }
- updateAutopilotControlParameters();
- }
- }
-
- /**
- * 重置路线站点状态--结束路线,当前路线恢复到始发站
- */
- public void abortTask() {
- CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask");
- if(busRoutesResult==null){
- ToastUtils.showLong("数据异常、请稍后再试");
- return;
- }
- OrderServiceManager.abortTask(mContext, busRoutesResult.getTaskId()
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "abortTask success: " + o);
- if (o.code == 0) { // 重置成功
- endOrAbortTaskSuccess();
- clearBusStationDatas();
- queryBusRoutes();
- removeTipRunnables();
- // 取消自驾
- CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
- setTrajectoryStation(null,null,-1L);
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
-
- }
-
- /**
- * 中断或者正常结束任务后的处理
- */
- private void endOrAbortTaskSuccess() {
-
- isGoingToNextStation = false;
- backgroundCurrentStationIndex = 0;
-
- if (busRoutesResult != null) {
- LedScreenManager.sendTripInfo2Led(LedScreenManager.END_TRIP
- , busRoutesResult.getName()
- , ""
- , ""
- , false);
- }
-
- CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE);
- busRoutesResult = null;
-
- sendTaskDetailsToClients();
- }
-
- /**
- * 离站上报成功后渲染站点
- * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站,
- * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染
- */
- private void leaveStationSuccess(int leaveIndex, String leaveStation,
- String nextStation,String nextStationKr,
- long writeVersion) {
-
- onStartAutopilot(leaveIndex);
-
- leaveTTSTips(nextStation,nextStationKr);
-
- if (busRoutesResult != null) {
- boolean isLastStop = false;
- if (leaveIndex + 1 == stationList.size() - 1) {
- isLastStop = true;
- }
- //给bus外屏发送
- LedScreenManager.sendTripInfo2Led(LedScreenManager.LEAVE_STATION
- , busRoutesResult.getName()
- , leaveStation
- , nextStation
- , isLastStop);
- }
-
- reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true,writeVersion);
- }
-
- private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving
- , long writeVersion) {
- if (busRoutesResult != null){
- busRoutesResult.setWriteVersion(writeVersion);
- List sites = busRoutesResult.getSites();
- BusStationBean bean = sites.get(currentIndex);
- bean.setDrivingStatus(currentDrivingStatus);
- bean.setLeaving(isLeaving);
- sites.set(currentIndex,bean);
- if (currentDrivingStatus == BusConst.STATION_STATUS_STOPPED && !isLeaving){
- BusStationBean beanPre = sites.get(currentIndex -1);
- beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING);
- beanPre.setLeaving(false);
- sites.set(currentIndex -1,beanPre);
- }
- //busRoutesResult.setSite(sites);
-
- pushCacheTransferData(busRoutesResult);
-
- updateBusStatus(busRoutesResult);
- }
- }
-
- private void onStartAutopilot(int leaveIndex) {
- //开启自动驾驶 2.10.0: 如果自动驾驶状态下开启, 非自动驾驶状态下不开启,需手动点击自动驾驶按钮开启
- isGoingToNextStation = true;
- if (CallerAutoPilotStatusListenerManager.INSTANCE.getState()
- == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- startAutopilot(false, leaveIndex);
- } else {
- firstStartAutopilot = 0;
- }
- }
-
- /**
- * 开启自动驾驶
- *
- * @param isRestart
- */
- private void startAutopilot(boolean isRestart, int leaveIndex) {
-
- /**
- * 存在Session
- */
- if (!OchAutoPilotManager.canStartAutopilotBySessionId()) {
- return;
- }
-
- OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis());
-
- //1、判断轨迹url是否可用
- if(busRoutesResult!=null){
- //根据开关和后台是否发布轨迹启动自驾
- if (FunctionBuildConfig.isPassStartAutopilotCommand
- && TextUtils.isEmpty(busRoutesResult.csvFileUrl)
- && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP)
- ) {
- ToastUtils.showLong("无发布轨迹, 请发布后重试");
- CallerLogger.e(
- TAG, "isPassStartAutopilotCommand = " +
- FunctionBuildConfig.isPassStartAutopilotCommand
- + "busRoutesResult.csvFileUrl = " + busRoutesResult.csvFileUrl
- );
- return;
- }
- }
- //2、6个条件判断
- if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true,0)) {
- return;
- }
- // 3、距离轨迹15m计算
- //3、距离轨迹15m计算
- String resion = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId());
- if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){
- MogoLocation nextStationPoint = new MogoLocation();
- if (backgroundCurrentStationIndex < stationList.size() - 1) {
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- nextStationPoint.setLongitude(nextStation.getGcjLon());
- nextStationPoint.setLatitude(nextStation.getGcjLat());
- }
- BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex);
- MogoLocation currentStationPoint = new MogoLocation();
- currentStationPoint.setLongitude(busStationBean.getGcjLon());
- currentStationPoint.setLatitude(busStationBean.getGcjLat());
- setTrajectoryStation(currentStationPoint,nextStationPoint, (long) busRoutesResult.getLineId());
- resion = OchAutoPilotManager.canStartAutoPilotByDistance(busRoutesResult.getLineId());
- }
- if(!StringUtils.isEmpty(resion)){
- ToastUtils.showShort(resion);
- VoiceNotice.showNotice(resion);
- return;
- }
- //4、ssm 给出数据
- if (!OchAutoPilotManager.canStartAutoPilotSSM()) {
- triggerUnableStartAPReasonEvent();
- return;
- }
-
- firstStartAutopilot++;
-
- triggerStartServiceEvent(isRestart, false,0);
-
- AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex);
- if (null == parameters) {
- CallerLogger.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.");
- return;
- }
-
- long sessionId = OchAutoPilotManager.startAutoPilot(parameters);
- // 更新埋点中发送命令的sessionId
- triggerUpdateStartAutoPilotSessionId(sessionId);
-
- CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
- + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName +
- "isRestart = " + isRestart);
-
- if (mControllerStatusCallback != null) {
- mControllerStatusCallback.startOpenAutopilot();
- }
- }
-
- /**
- * 到站后重置站点状态
- */
- private void arriveSiteStation(String changeInfo) {
- OchChainLogManager.writeChainLog("触发进站", changeInfo);
- if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次
- CallerLogger.e( M_BUS + TAG, "数组越界" );
- return;
- }
- int arrivedStationIndex = backgroundCurrentStationIndex + 1;
- String arriveStation = stationList.get(arrivedStationIndex).getName();
- String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr();
- String departureStopName = stationList.get(backgroundCurrentStationIndex).getName();
- CallerLogger.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex);
-
- isArrivedStation = true;
- isGoingToNextStation = false;
-
- long writeVersion = DateTimeUtil.getCurrentTimeStamp();
- arriveStationSuccess(arrivedStationIndex, departureStopName,
- arriveStation,arriveStationKr,writeVersion);
-
- String requestId = MultiRequestLimitChecker.Companion.generateRequestId(TAG + "-arriveSiteStation"
- , String.valueOf(stationList.get(arrivedStationIndex).getSiteId())
- , String.valueOf(busRoutesResult.getTaskId()));
- if (!MultiRequestLimitChecker.Companion.getInstance().canMakeRequest(requestId, 5)) {
- CallerLogger.d(M_BUS + TAG, "arriveSiteStation-MultiRequestLimitChecker: 超过最大请求数,本次请求return");
- return;
- }
- OrderServiceManager.arriveSiteStation(mContext,
- stationList.get(arrivedStationIndex).getSeq(),
- stationList.get(arrivedStationIndex).getSiteId(),
- busRoutesResult.getTaskId(),writeVersion,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success");
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- }
-
- @Override
- public void onError() {
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- MultiRequestLimitChecker.Companion.getInstance().decreaseRequestCount(requestId);
- }
- });
- }
-
- private void arriveStationSuccess(int arrivedStationIndex, String departureStopName,
- String arriveStation,String arriveStationKr,
- long writeVersion) {
- if (busRoutesResult != null) {
- boolean isLastStop = false;
- if (arrivedStationIndex == busRoutesResult.getSites().size() - 1) {
- isLastStop = true;
- }
- //给bus外屏发送
- LedScreenManager.sendTripInfo2Led(LedScreenManager.ARRIVE_STATION
- , busRoutesResult.getName()
- , departureStopName
- , arriveStation
- , isLastStop);
- }
-
- ShuttleVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr);
-
- reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false,writeVersion);
- }
-
- private void sendTaskDetailsToClients() {
-
- BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult);
- TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle);
- CallerLogger.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg));
- LanSocketManager.sendMsgToClient(msg);
- }
-
- private void pushCacheTransferData(BusRoutesResult result) {
- BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result);
- CallerLogger.d(M_BUS + TAG, "pushCacheTransferData = " + GsonUtils.toJson(data));
- CacheDataManager.Companion.getInstance().putCacheData(mContext,
- BusCacheKey.BUS_LINE_CACHE,
- GsonUtils.toJson(data));
- }
-
- /**
- * 离站上报
- */
- public void leaveStation() {
- CallerLogger.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex);
- if(busRoutesResult==null){
- ToastUtils.showLong("数据异常、请稍后再试");
- return;
- }
- String nextStationName = "";
- String nextStationNameKr = "";
- MogoLocation nextStationPoint = new MogoLocation();
- if (backgroundCurrentStationIndex < stationList.size() - 1) {
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- nextStationName = nextStation.getName();
- nextStationNameKr = nextStation.getNameKr();
- nextStationPoint.setLongitude(nextStation.getGcjLon());
- nextStationPoint.setLatitude(nextStation.getGcjLat());
- }
- final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName();
- String finalNextStationName = nextStationName;
- String finalNextStationNameKr = nextStationNameKr;
-
- isArrivedStation = false;
- CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站====");
-
- long writeVersion = DateTimeUtil.getCurrentTimeStamp();
- leaveStationSuccess(backgroundCurrentStationIndex, currentStationName,
- finalNextStationName,finalNextStationNameKr,writeVersion);
-
- BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex);
- MogoLocation currentStationPoint = new MogoLocation();
- currentStationPoint.setLongitude(busStationBean.getGcjLon());
- currentStationPoint.setLatitude(busStationBean.getGcjLat());
- setTrajectoryStation(currentStationPoint,nextStationPoint, (long) busRoutesResult.getLineId());
-
- String changeInfo = "taskId:" + busRoutesResult.getTaskId() + "--lineId:" + busRoutesResult.getLineId() +
- "--currentStationName:"+currentStationName+"--finalNextStationName:"+finalNextStationName;
- OchChainLogManager.writeChainLog("滑动出发", changeInfo);
- OrderServiceManager.leaveStation(mContext,
- stationList.get(backgroundCurrentStationIndex).getSeq(),
- stationList.get(backgroundCurrentStationIndex).getSiteId(),
- busRoutesResult.getTaskId(),writeVersion,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- OchChainLogManager.writeChainLog("滑动出发成功", changeInfo);
- }
-
-
- @Override
- public void onError() {
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- }
- });
- }
-
- //车站10s后播报
- private void leaveTTSTips(String nextStation,String nextStationKr) {
- UiThreadHandler.postDelayed(new Runnable() {
- @Override
- public void run() {//延迟10s播报
- ShuttleVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr);
- }
- }, BusConst.DELAY_10S);
-
- }
-
- /**
- * 关闭美化模式
- */
- public void closeBeautificationMode() {
- if (FunctionBuildConfig.isDemoMode) {//收车结束美化
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; //是否强制绘制引导线
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);// 同步给乘客屏
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为false");
- }
- }
-
- /**
- * 开启自动驾驶到下一站
- */
- public void autoDriveToNextStation() {
- if (backgroundCurrentStationIndex >= stationList.size() - 1) {
- // 当前站是最后一站,结束当前行程
- travelOver();
- return;
- }
- leaveStation();
- }
-
- /**
- * 渲染站点信息
- * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站,
- * 车机端展示 三站: 中间为即将到到达或者刚到达的站
- *
- * @param result
- */
- private void updateBusStatus(BusRoutesResult result) {
- if (result == null) {
- LineManager.setLineInfo(null);
- return;
- }
- busRoutesResult = result;
- ArrayMap attach = new ArrayMap<>();
- try {
- String lineTime = DateTimeUtil.formatLongToString(
- busRoutesResult.getTaskTime(),
- DateTimeUtil.HH_mm);
- attach.put("taskInfo",lineTime);
- }catch (Exception e){
- OchChainLogManager.writeChainLog("设置任务名称","设置任务名称报错"+e.getStackTrace());
- }
- LineInfo lineInfo = new LineInfo(busRoutesResult.getLineId(), busRoutesResult.getName(),attach);
- LineManager.setLineInfo(lineInfo);
- stationList.clear();
- stationList.addAll(result.getSites());
- for (int i = 0; i < stationList.size(); i++) {
- BusStationBean s = stationList.get(i);
-
- CallerLogger.d(M_BUS + "updateBusStationsStatus--",
- "Index=" + i + " ,name = " + s.getName() + " ," + s.isLeaving() + "," + s.getDrivingStatus());
-
- // 是否正在开往下一站
- if (s.isLeaving()) {
- isGoingToNextStation = true;
- }
- // 当前站点信息
- if (s.getDrivingStatus() == BusConst.STATION_STATUS_STOPPED) {
- backgroundCurrentStationIndex = i;
- break;
- }
- }
-
- if (backgroundCurrentStationIndex == 0 &&
- stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED
- && !stationList.get(0).isLeaving()) { //默认是第一站到站查询
- if (busRoutesResult != null) { // 第一站到站也是行程开始的时候
- LedScreenManager.sendTripInfo2Led(LedScreenManager.START_TRIP
- , busRoutesResult.getName(), "", "", false);
- }
-
- //任务选择后首发前给司机提示任务
- if (busRoutesResult != null){
- beforeTaskTips();
- }
- }else {
- removeTipRunnables();
- }
-
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
-
- CallerLogger.d(M_BUS + TAG,
- "行程日志-STATION_STATUS_STOPPED-backgroundCurrentStationIndex="
- + backgroundCurrentStationIndex
- + " isLeaving()=" + currentStation.isLeaving());
-
- // 美化是否开始
- if (FunctionBuildConfig.isDemoMode && (backgroundCurrentStationIndex >= 0
- && backgroundCurrentStationIndex <= stationList.size() - 1)) {//行驶过程中设置美化
- if (stationList.get(backgroundCurrentStationIndex).isLeaving()) {
- startBeautificationMode();
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)");
- } else if (backgroundCurrentStationIndex > 0 && backgroundCurrentStationIndex < stationList.size() - 1) {
- //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
- CallerLogger.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)");
- clearStartAutopilotTag();
- } else {
- closeBeautificationMode();
- clearStartAutopilotTag();
- }
- }
-
-
- if (currentStation.isLeaving() && slidePanelHideCallback != null) {
- slidePanelHideCallback.hideSlidePanel();
- }
-
- sendTaskDetailsToClients();
-
- //更新bus路线面板
- updateBusTaskStatus(stationList);
-
- //需放在currentStationIndex赋值之后
- BusTrajectoryManager.getInstance().syncTrajectoryInfo();
- }
-
- private void beforeTaskTips() {
- if (busRoutesResult == null) return;
-
- removeTipRunnables();
-
- long taskTime = busRoutesResult.getTaskTime();
- long tip3Time = taskTime- 3*60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前3分钟提示
- long tip1Time = taskTime-60*1000 - DateTimeUtil.getCurrentTimeStamp(); // 首站离开前1分钟提示
-
- if (tip3Time > 0){
- UiThreadHandler.postDelayed(tip3Runnable,tip3Time);
- }
-
- if (tip1Time > 0){
- UiThreadHandler.postDelayed(tip1Runnable,tip1Time);
- }
- }
-
- Runnable tip3Runnable = new Runnable() {
- @Override
- public void run() {
-
- if (backgroundCurrentStationIndex == 0 && stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED
- && !stationList.get(0).isLeaving()){
- tipStartTask("3");
- }else {
- removeTipRunnables();
- }
- }
- };
-
- private void tipStartTask(String s) {
- String tips = String.format(mContext
- .getString(R.string.bus_before_tips_s), s);
- //展示在运营消息
- OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(
- DateTimeUtil.getCurrentTimeStamp(),
- tips,OCHSocketMessageManager.OPERATION_SYSTEM);
- ShuttleVoiceManager.INSTANCE.showLeafTime(tips);
- }
-
- Runnable tip1Runnable = new Runnable() {
- @Override
- public void run() {
- if (backgroundCurrentStationIndex == 0 && stationList != null &&
- stationList.get(0).getDrivingStatus() == BusConst.STATION_STATUS_STOPPED
- && !stationList.get(0).isLeaving()){
- tipStartTask("1");
- }else {
- removeTipRunnables();
- }
- }
- };
-
- public void removeTipRunnables(){
- if (tip3Runnable != null){
- UiThreadHandler.removeCallbacks(tip3Runnable);
- }
- if (tip1Runnable != null){
- UiThreadHandler.removeCallbacks(tip1Runnable);
- }
- }
-
- private void clearStartAutopilotTag() {
- firstStartAutopilot = 0;
- }
-
- private void startBeautificationMode() {
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
- }
-
- public void clearBusStationDatas() {
- if (refreshBusStationsCallback != null) {
- refreshBusStationsCallback.clearBusStationsMarkers();
- }
- }
-
- /**
- * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地
- */
- public void restartAutopilot() {
- CallerLogger.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation);
- //只去启动自动驾驶,不再去上报离站
- startAutopilot(firstStartAutopilot >= 1, -1);
- }
-
- public boolean isRestartAutopilot() {
- return firstStartAutopilot > 1;
- }
-
- /**
- * 行程结束
- */
- private void travelOver() {
-
- if (backgroundCurrentStationIndex >= stationList.size()) {
- CallerLogger.e(M_BUS + TAG, "travel over index out of station list");
- return;
- }
- CallerLogger.d(M_BUS + TAG, "单程结束====");
- CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
- setTrajectoryStation(null,null,-1L);
- endTask();
- }
-
- /**
- * task正常结束
- */
- private void endTask() {
- CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()");
- OrderServiceManager.endTask(mContext, busRoutesResult.getTaskId()
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData o) {
- CallerLogger.d(M_BUS + TAG, "endTask success: " + o);
- if (o.code == 0) {
- endOrAbortTaskSuccess();
- clearBusStationDatas();
- queryBusRoutes();// 重新获取任务
- removeTipRunnables();
- ShuttleVoiceManager.INSTANCE.endOrderBus();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String failMsg) {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort("网络异常,请稍后重试");
- }else {
- ToastUtils.showShort(failMsg);
- }
- }
- });
- }
-
- /**
- * 到站
- *
- * @param data
- */
- public void onArriveAt(ArrivedStation data,String type) {
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) {
- CallerLogger.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束");
- return;
- }
-
- //MAP 280 每隔100ms左右返回一次到站, 导致在到达中间站后再次滑动出发后会有时间差,收到一次到站,出现问题
- //此处比对 自驾告诉的到站站点坐标和本地应到站站点坐标, 一致时才能到站
- if (data != null && data.getEndLocation() != null) {
-
- String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(), 5); //wgs
- String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(), 5);
-
- int arrivedStationIndex = backgroundCurrentStationIndex + 1;
- BusStationBean arriveStation = stationList.get(arrivedStationIndex);
- String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(), 5);
- String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(), 5);
-
- if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)) {
- CallerLogger.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致");
- return;
- }
- }
-
- if (isArrivedStation) return;
-
- CallerLogger.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex="
- + backgroundCurrentStationIndex);
-
- arriveSiteStation(type);
- }
-
- public boolean isGoingToNextStation() {
- return isGoingToNextStation;
- }
-
- // 登出
- public void logout() {
- LoginStatusManager.loginOut();
- }
-
- public void triggerStartServiceEvent(boolean isRestart, boolean send,int source) {
- if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestart, send,
- currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId(),"",System.currentTimeMillis(),source);
- }
-
- public void triggerUpdateStartAutoPilotSessionId(long sessionId) {
- if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId);
- }
-
- public void triggerUnableStartAPReasonEvent() {
- if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) {
- return;
- }
- BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
- BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent(
- currentStation.getName(), nextStation.getName(), String.valueOf(busRoutesResult.getLineId()),"",
- OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason());
- }
-
- public BusRoutesResult getBusRoutesResult() {
- return busRoutesResult;
- }
-
- public BusStationBean getBusNextStation() {
- // A->B 的过程中A站点的信息
- if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) {
- return null;
- }
- return stationList.get(backgroundCurrentStationIndex);
- }
-
- public int getCurrentStationIndex() {
- return backgroundCurrentStationIndex;
- }
-
- /**
- * 将业务订单信息保存,鹰眼可取用
- */
- private void updateAutopilotControlParameters() {
-
- AutopilotControlParameters parameters = initAutopilotControlParameters(-1);
- if (null == parameters) {
- CallerLogger.e(M_BUS + TAG, "AutopilotControlParameters is empty.");
- return;
- }
- CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is update.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
- }
-
- private void clearAutopilotControlParameters() {
- CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is clear.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
- }
-
- private AutopilotControlParameters initAutopilotControlParameters(int leaveIndex) {
- BusStationBean currentStation = null;
- BusStationBean nextStation = null;
-
- if (leaveIndex < 0) {
- if (backgroundCurrentStationIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) {
- CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition1.");
- return null;
- }
- currentStation = stationList.get(backgroundCurrentStationIndex);
- nextStation = stationList.get(backgroundCurrentStationIndex + 1);
- } else {
- if (leaveIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) {
- CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition2.");
- return null;
- }
- currentStation = stationList.get(leaveIndex);
- nextStation = stationList.get(leaveIndex + 1);
- }
-
- AutopilotControlParameters parameters = new AutopilotControlParameters();
- parameters.routeID = busRoutesResult.getLineId();
- parameters.routeName = busRoutesResult.getName();
- parameters.startName = PinYinUtil.getPinYinHeadChar(currentStation.getName());
- parameters.endName = PinYinUtil.getPinYinHeadChar(nextStation.getName());
- parameters.startLatLon = new AutopilotControlParameters
- .AutoPilotLonLat(currentStation.getLat(), currentStation.getLon());
- parameters.endLatLon = new AutopilotControlParameters
- .AutoPilotLonLat(nextStation.getLat(), nextStation.getLon());
- parameters.vehicleType = VEHICLE_TYPE;
- if (parameters.autoPilotLine == null) {
- parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
- busRoutesResult.getLineId(), busRoutesResult.getName(),
- busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5,
- busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5,
- busRoutesResult.contrailSaveTime, busRoutesResult.carModel,
- busRoutesResult.csvFileUrlDPQP, busRoutesResult.csvFileMd5DPQP,
- busRoutesResult.txtFileUrlDPQP, busRoutesResult.txtFileMd5DPQP,
- busRoutesResult.contrailSaveTimeDPQP);
- }
-
- return parameters;
- }
-
- public void setTrajectoryStation(MogoLocation startStation,MogoLocation endStation,Long lineId){
- TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,lineId);
- }
-
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt
deleted file mode 100644
index e02dd0144a..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/model/TicketModel.kt
+++ /dev/null
@@ -1,228 +0,0 @@
-package com.mogo.och.shuttle.model
-
-import com.elegant.network.utils.GsonUtil
-import com.mogo.commons.AbsMogoApplication
-import com.mogo.eagle.core.data.enums.EventTypeEnumNew
-import com.mogo.eagle.core.data.msgbox.MsgBoxBean
-import com.mogo.eagle.core.data.msgbox.MsgBoxType
-import com.mogo.eagle.core.data.msgbox.V2XMsg
-import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
-import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox
-import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.eagle.core.utilcode.util.GsonUtils
-import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.manager.loop.BizLoopManager
-import com.mogo.och.common.module.manager.loop.LoopInfo
-import com.mogo.och.common.module.manager.socket.cloud.IOchOnMessageListener
-import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
-import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
-import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
-import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDevicesMsg
-import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
-import com.mogo.och.common.module.network.OchCommonServiceCallback
-import com.mogo.och.shuttle.bean.WriteOffCountResponse
-import com.mogo.och.shuttle.bean.WriteOffPassenger
-import com.mogo.och.shuttle.net.OrderServiceManager
-import com.mogo.och.shuttle.util.ShuttleVoiceManager
-import io.reactivex.Observable
-import io.reactivex.ObservableEmitter
-import io.reactivex.ObservableOnSubscribe
-import io.reactivex.schedulers.Schedulers
-
-object TicketModel : IReceivedMsgListener, IOchOnMessageListener {
-
- private val TAG = "TicketModel"
-
- private val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT"
-
- private var emitterMain: ObservableEmitter?=null
-
- private val observable = Observable.create(ObservableOnSubscribe { emitter -> emitterMain = emitter })
-
- init {
-
- //监听乘客屏发来的消息
- CallerTelematicListenerManager.addListener(TAG, this)
- OCHSocketMessageManager.registerSocketMessageListener( //监听核销乘客
- OCHSocketMessageManager.msgWriteOffPassengerType,
- this
- )
- }
-
- fun load(){
- BizLoopManager.setLoopFunction(
- SELECTWRITEOFFCOUNT, LoopInfo(3,
- TicketModel::selectWriteOffCount,scheduler = Schedulers.io()))
- }
-
- // 收到局域网的核验信息
- override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
- if (OchCommonConst.BUSINESS_STRING == type) {
- d(SceneConstant.M_BUS + TAG, "局域网核验"+String(byteArray))
- val msg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java)
- if (msg != null) {
- if (msg.type == DPMsgType.TYPE_WRITEOFF_INFO.type) {
- val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffMsg::class.java)
- receiveWrteOffInfo(writeOffMsg)
- } else if (msg.type == DPMsgType.TYPE_WRITEOFF_DEVICES_INFO.type) {
- val writeOffMsg = GsonUtils.fromJson(String(byteArray), WriteOffDevicesMsg::class.java)
- receiveWrteOffDevicesInfo(writeOffMsg)
- }
- }
- }
- }
-
- override fun target(): Class {
- return WriteOffPassenger::class.java
- }
-
- // 收到服务器的核验信息
- override fun onMsgReceived(passenger: WriteOffPassenger?) {
- //进行播报
- i(SceneConstant.M_BUS + TAG, "后台socket 核验:passenger = " + GsonUtil.jsonFromObject(passenger))
- if(passenger==null||passenger.passengerSize==0){
- return
- }
- playPassenger(
- passenger.passengerSize,
- passenger.phone ?: "",
- passenger.ticketName?:"",
- passenger.orderNo?:""
- )
- selectWriteOffCount()
- }
-
- private fun selectWriteOffCount(){
- val busRoutesResult = OrderModel.getInstance().busRoutesResult
- val busNextStation = OrderModel.getInstance().busNextStation
- if(busRoutesResult==null||busNextStation==null){
- emitterMain?.onNext(0)
- d(SceneConstant.M_BUS + TAG, "线路或者站点未空:${busRoutesResult}----${busNextStation}")
- return
- }
- OrderServiceManager.queryBusTaskByLineId(AbsMogoApplication.getApp(),
- "${busRoutesResult.taskId}",
- "${busNextStation.siteId}",
- object : OchCommonServiceCallback {
- override fun onSuccess(data: WriteOffCountResponse?) {
- data?.data?.let {
- emitterMain?.onNext(it)
- d(SceneConstant.M_BUS + TAG, "${busNextStation.name}核销人数:${it}")
- }
- }
-
- override fun onFail(code: Int, msg: String?) {
-
- }
- })
- }
-
- fun getWriteOffCountObservable():Observable{
- return observable
- }
-
- private fun receiveWrteOffInfo(writeOffMsg: WriteOffMsg?) {
- if(writeOffMsg!=null) {
- if (writeOffMsg.isScuccess != null) {
- if (writeOffMsg.isScuccess == true) { // 核验成功
- if(writeOffMsg.ticketSize==null||writeOffMsg.ticketSize==0){
- return
- }
-// playPassenger(
-// writeOffMsg.ticketSize?:0,
-// writeOffMsg.phone ?: "",
-// writeOffMsg.ticketName ?: "",
-// writeOffMsg.orderNo?:""
-// )
- } else { // 核验失败
- ShuttleVoiceManager.writeOffFaile(writeOffMsg.failedReason ?: "")
- var tempPhone = writeOffMsg.phone
- tempPhone?.let {
- if (it.length > 8) {
- //截取电话号码前三位
- val phoneNumPre = it.substring(0, 3)
- //截取电话号码后四位
- val phoneNumFix = it.substring(7)
- tempPhone = "$phoneNumPre****$phoneNumFix"
- }
- }
- val reaseonAndPhone = if(tempPhone.isNullOrEmpty()) {
- "${writeOffMsg.failedReason}"
- }else{
- "${writeOffMsg.failedReason};乘客:${tempPhone}"
- }
- saveMsgBox(
- MsgBoxBean(
- MsgBoxType.V2X, V2XMsg(
- EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.poiType,
- reaseonAndPhone,
- EventTypeEnumNew.TYPE_ABNORMAL_VERIFICATION.tts,
- ""
- )
- )
- )
- }
- }
- }
- }
-
- private fun receiveWrteOffDevicesInfo(writeOffMsg: WriteOffDevicesMsg) {
- if (writeOffMsg.isConnectScanner != null) {
- val reason = if (writeOffMsg.reason == null) "" else writeOffMsg.reason!!
- if (writeOffMsg.isConnectScanner==true) { // 链接成功
- saveMsgBox(
- MsgBoxBean(
- MsgBoxType.V2X,
- V2XMsg(
- EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.poiType,
- reason,
- EventTypeEnumNew.TYPE_DEVICE_STATUS_NORMAL.tts,
- ""
- )
- )
- )
- } else { // 核验失败
- saveMsgBox(
- MsgBoxBean(
- MsgBoxType.V2X,
- V2XMsg(
- EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.poiType,
- reason,
- EventTypeEnumNew.TYPE_DEVICE_STATUS_ABNORMAL.tts,
- ""
- )
- )
- )
- }
- }
- }
-
- private fun playPassenger(ticketSize: Int,phone:String,ticketName:String,orderNo:String) {
-
- ShuttleVoiceManager.writeOffCount(ticketSize)
-
- var tempPhone = phone
- if (tempPhone.length > 8) {
- //截取电话号码前三位
- val phoneNumPre = tempPhone.substring(0, 3)
- //截取电话号码后四位
- val phoneNumFix = tempPhone.substring(7)
- tempPhone = "$phoneNumPre****$phoneNumFix"
- }
- val content = "${ticketSize}张 $ticketName $tempPhone"
- saveMsgBox(MsgBoxBean(
- MsgBoxType.V2X,
- V2XMsg(
- EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.poiType,
- content,
- EventTypeEnumNew.TYPE_VERIFICATION_SUCCESSFUL.tts,
- ""
- )
- )
- )
- }
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java
deleted file mode 100644
index 88d5ecbb0d..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/IBascApiService.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.mogo.och.shuttle.net;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.shuttle.bean.BusCloseTaskRequest;
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse;
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse;
-import com.mogo.och.shuttle.bean.BusQueryLineStationsRequest;
-import com.mogo.och.shuttle.bean.BusRoutesResponse;
-import com.mogo.och.shuttle.bean.BusResetDrivingLineRequest;
-import com.mogo.och.shuttle.bean.BusUpdateSiteStatusRequest;
-import com.mogo.och.shuttle.bean.WriteOffCountResponse;
-
-import io.reactivex.Observable;
-import retrofit2.http.Body;
-import retrofit2.http.GET;
-import retrofit2.http.Header;
-import retrofit2.http.Headers;
-import retrofit2.http.POST;
-import retrofit2.http.Query;
-
-/**
- * 小巴车相关接口
- *
- * @author tongchenfei
- *
- * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
- */
-public interface IBascApiService {
- /**
- * 查询当前运行任务
- *
- * @param request 请求参数
- * @return 接口返回数据
- */
- @Headers( {"Content-Type:application/json;charset=UTF-8"} )
- @POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
- Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
-
- /**
- * @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
- * @return 返回值是重置后的车站列表
- * 开始路线
- */
- @Headers( {"Content-Type:application/json;charset=UTF-8"} )
- @POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" )
- Observable switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request);
-
- /**
- * 离站,通知服务器
- * @param request
- * @return
- */
- @Headers({"Content-Type:application/json;charset=UTF-8"})
- @POST("/och-shuttle-cabin/api/flow/v1/driver/leave")
- Observable leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request);
-
- /**
- * 到站 更新到站信息
- * @param request
- * @return
- */
- @Headers({"Content-type:application/json;charset=UTF-8"})
- @POST("/och-shuttle-cabin/api/flow/v1/driver/arrive")
- Observable arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request);
-
- /**
- * 查询车辆配置的所有路线
- * @param appId
- * @param ticket
- * @param sn
- * @return
- */
- @GET("/och-shuttle-cabin/api/business/v1/driver/bindLine/query")
- Observable queryBusLines(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
-
- /**
- * 查询线路的任务
- * @param appId
- * @param ticket
- * @param lineId 线路id
- * @return
- */
- @GET("/och-shuttle-cabin/api/business/v1/driver/task/query")
- Observable queryBusTaskByLineId(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("lineId") String lineId);
-
- /**
- * 中止任务
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask")
- Observable abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
-
- /**
- * 任务正常跑完结束
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST("/och-shuttle-cabin/api/flow/v1/driver/endTask")
- Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
-
-
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @GET("och-shuttle-cabin/api/business/v1/task/writeOffCount")
- Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId);
-
-}
-
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt
deleted file mode 100644
index 735e507e02..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/net/OrderServiceManager.kt
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.mogo.och.shuttle.net
-
-import android.content.Context
-import com.mogo.cloud.passport.MoGoAiCloudClientConfig
-import com.mogo.eagle.core.data.BaseData
-import com.mogo.eagle.core.network.MoGoRetrofitFactory
-import com.mogo.commons.storage.SharedPrefsMgr
-import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.network.OchCommonServiceCallback
-import com.mogo.och.common.module.network.OchCommonSubscribeImpl
-import com.mogo.och.common.module.network.interceptor.transformIoTry
-import com.mogo.och.common.module.network.interceptor.transformTry
-import com.mogo.och.shuttle.bean.BusCloseTaskRequest
-import com.mogo.och.shuttle.bean.BusQueryLineStationsRequest
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse
-import com.mogo.och.shuttle.bean.BusResetDrivingLineRequest
-import com.mogo.och.shuttle.bean.BusRoutesResponse
-import com.mogo.och.shuttle.bean.BusUpdateSiteStatusRequest
-import com.mogo.och.shuttle.bean.WriteOffCountResponse
-
-/**
- * @author: wangmingjun
- * @date: 2021/10/20
- */
-object OrderServiceManager {
-
- private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
- IBascApiService::class.java
- )
-
-
- /**
- * 查询小巴车当前任务
- * @param context
- * @param callback
- */
- @JvmStatic
- fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback?) {
- //获取当前高德坐标
- mService.queryBusRoutes(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusQueryLineStationsRequest()
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
- }
-
- /**
- * 重置线路站点
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun switchLine(
- context: Context,
- taskId: Int,
- callback: OchCommonServiceCallback?
- ) {
- mService.switchLine(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusResetDrivingLineRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
- }
-
- /**
- * 中断当前任务
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) {
- mService.abortTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
- }
-
- /**
- * 正常结束任务
- * @param context
- * @param taskId
- * @param callback
- */
- @JvmStatic
- fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback?) {
- mService.endTask(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusCloseTaskRequest(taskId)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
- }
-
- /**
- * 离站上报
- * @param context
- * @param seq
- * @param siteId
- * @param callback
- */
- @JvmStatic
- fun leaveStation(
- context: Context,
- seq: Int,
- siteId: Int,
- taskId: Int,
- writeVersion: Long,
- callback: OchCommonServiceCallback?
- ) {
- mService.leaveStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
- }
-
- /**
- * 到站更新站点状态
- * @param context
- * @param seq
- * @param siteId
- * @param callback
- */
- @JvmStatic
- fun arriveSiteStation(
- context: Context, seq: Int, siteId: Int, taskId: Int, writeVersion: Long,
- callback: OchCommonServiceCallback?
- ) {
- mService.arriveSiteStation(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion)
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
- }
-
- @JvmStatic
- fun queryBusLines(context: Context, callback: OchCommonServiceCallback?) {
- mService.queryBusLines(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- SharedPrefsMgr.getInstance().sn
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }
- @JvmStatic
- fun queryBusTaskByLineId(
- context: Context,
- lineId: String?,
- callback: OchCommonServiceCallback?
- ) {
- mService.queryBusTaskByLineId(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- lineId
- )
- .transformTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
- }
-
- @JvmStatic
- fun queryBusTaskByLineId(
- context: Context,
- taskId: String?,
- siteId: String?,
- callback: OchCommonServiceCallback?
- ) {
- mService.writeOffCount(
- MoGoAiCloudClientConfig.getInstance().serviceAppId,
- SharedPrefsMgr.getInstance().token,
- taskId,
- siteId
- )
- .transformIoTry()
- .subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java
deleted file mode 100644
index 571780f469..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusLinePresenter.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.mogo.och.shuttle.presenter;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LifecycleOwner;
-
-import com.mogo.commons.mvp.Presenter;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse;
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse;
-import com.mogo.och.shuttle.callback.IBusLinesCallback;
-import com.mogo.och.shuttle.model.BusLineModel;
-import com.mogo.och.shuttle.model.OrderModel;
-import com.mogo.och.shuttle.ui.BusSwitchLineView;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.disposables.Disposable;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/9
- */
-public class BusLinePresenter extends Presenter implements IBusLinesCallback {
-
- private Disposable subscribe;
-
- public BusLinePresenter(BusSwitchLineView view) {
- super(view);
- BusLineModel.getInstance().init();
- OrderModel.getInstance().init();
- }
-
- @Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
- initListener();
- }
-
- private void initListener() {
- BusLineModel.getInstance().setBusLinesCallback(this);
- }
-
- @Override
- public void onBusLinesChange(BusQueryLinesResponse lines) {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onBusLinesChange(lines);
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- @Override
- public void onChangeLineIdSuccess() {
- OrderModel.getInstance().clearBusStationDatas();
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onChangeLineIdSuccess();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- public void queryBusLines(){
- BusLineModel.getInstance().queryBusLines();
- }
-
- public void queryBusLineTasks(int lineId, int position,boolean close){
- if(subscribe!=null&&!subscribe.isDisposed()){
- subscribe.dispose();
- }
- if(close){
- return;
- }
- BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false);
- subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> {
- BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true);
- });
- }
-
- public void commitSwitchLineId(int taskId,int lineId){
- BusLineModel.getInstance().commitSwitchLineId(taskId,lineId);
- }
-
- public void removeListener(){
- BusLineModel.getInstance().setBusLinesCallback(null);
- }
-
- public void queryBusRoutes(){
- OrderModel.getInstance().queryBusRoutes();
- }
-
- @Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- if(subscribe!=null&&!subscribe.isDisposed()){
- subscribe.dispose();
- }
- }
-
-
- @Override
- public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) {
- if(mView!=null) {
- mView.onBusLineTasks(o,position,autoRefresh);
- }
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java
deleted file mode 100644
index 76a5128c8b..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java
+++ /dev/null
@@ -1,333 +0,0 @@
-package com.mogo.och.shuttle.presenter;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-import android.os.Looper;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LifecycleOwner;
-
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.commons.mvp.Presenter;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.map.MogoLocation;
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.common.module.biz.login.LoginStatusEnum;
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation;
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager;
-import com.mogo.och.data.bean.BusStationBean;
-import com.mogo.och.shuttle.callback.IBusADASStatusCallback;
-import com.mogo.och.shuttle.callback.IBusControllerStatusCallback;
-import com.mogo.och.shuttle.callback.IRefreshBusStationsCallback;
-import com.mogo.och.shuttle.callback.ISlidePannelHideCallback;
-import com.mogo.och.shuttle.fragment.ShuttleFragment;
-import com.mogo.och.shuttle.model.OrderModel;
-import com.mogo.och.shuttle.util.BusTrajectoryManager;
-import com.mogo.och.common.module.biz.login.ILoginCallback;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import mogo_msg.MogoReportMsg;
-
-/**
- * 网约车小巴
- *
- * @author tongchenfei
- */
-public class BusPresenter extends Presenter
- implements IRefreshBusStationsCallback, ISlidePannelHideCallback
- , IOchAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IBusADASStatusCallback {
-
- private static final String TAG = "BusPresenter";
-
- private final List mStationList = new ArrayList<>();
- private int mCurrentStation = 0;
-
- public BusPresenter(ShuttleFragment view) {
- super(view);
- //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
- OrderModel.getInstance().init();
- OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp());
-
- }
-
- @Override
- public void onCreate(@NonNull LifecycleOwner owner) {
- super.onCreate(owner);
- initModelListener();
-
- OrderModel.getInstance().queryBusCacheRoutes();
- }
-
- @Override
- public void onDestroy(@NonNull LifecycleOwner owner) {
- super.onDestroy(owner);
- OrderModel.getInstance().release();
- releaseListener();
- }
-
- public void initModelListener() {
- OrderModel.getInstance().setRefreshBusStationsCallback(this);
- OrderModel.getInstance().setSlidePanelHideCallback(this);
- OrderModel.getInstance().setControllerStatusCallback(this);
- OrderModel.getInstance().setAdasStatusCallback(this);
- OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this);
- LoginStatusManager.INSTANCE.addListener(TAG,this);
- }
-
- public void releaseListener() {
- OrderModel.getInstance().setRefreshBusStationsCallback(null);
- OrderModel.getInstance().setSlidePanelHideCallback(null);
- OrderModel.getInstance().setControllerStatusCallback(null);
- OrderModel.getInstance().setAdasStatusCallback(null);
- OCHAdasAbilityManager.getInstance().release();
- OchAutoPilotStatusListenerManager.INSTANCE.removeListener(TAG);
- LoginStatusManager.INSTANCE.removeListener(TAG);
- }
-
- public void abortTask() {
- OrderModel.getInstance().abortTask();
- }
-
- public void autoDriveToNextStation() {
- OrderModel.getInstance().autoDriveToNextStation();
- }
-
- public void restartAutopilot() {
- if (OrderModel.getInstance().isGoingToNextStation()){
- OrderModel.getInstance().restartAutopilot();
- }
- }
-
- // 登出
- public void logout() {
- OrderModel.getInstance().logout();
- }
-
- @Override
- public void updateBusTaskStatus(String lineName,String lineTime,
- List stationList,
- int arrivingOrArrivedIndex,
- boolean isArrived) {
- mStationList.clear();
- mStationList.addAll(stationList);
- if (arrivingOrArrivedIndex == 0 || isArrived){
- mCurrentStation = arrivingOrArrivedIndex;
- }else {
- mCurrentStation = arrivingOrArrivedIndex -1;
- }
- CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation);
-
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.updateBusTaskStatus(lineName,lineTime,
- stationList, arrivingOrArrivedIndex, isArrived);
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- @Override
- public void updateEmptyUi() {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.updateLineEmptyUI();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- @Override
- public void clearBusStationsMarkers() {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.clearBusStationsMarkers();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- @Override
- public void hideSlidePanel() {
- if (mView != null) {
- mView.hideSlidePanel();
- mView.setArrivedClikable(true);
- }
- }
-
- @Override
- public void onAutopilotArriveAtStation(ArrivedStation arrivedStation) {
- CallerLogger.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive");
- arriveStation(arrivedStation,"底盘触发进站");
- }
-
- public void arriveStation(ArrivedStation arrivedStation,String type){
- OrderModel.getInstance().onArriveAt(arrivedStation,type);
- }
-
- @Override
- public void onAutopilotStatusResponse(int state) {
- switch (state) {
- case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE:
- case IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING:
- case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE:
- if (FunctionBuildConfig.isDemoMode
- && (
- (mCurrentStation >= 0 && mCurrentStation <= mStationList.size() - 1)
- && OrderModel.getInstance().isGoingToNextStation()
- )
- ) {
- CallerLogger.d(M_BUS + "BusOrderModel=", "有美化功能");
- return;
- }
- // 改变UI自动驾驶状态
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- break;
- case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
- OrderModel.getInstance().triggerStartServiceEvent(
- OrderModel.getInstance().isRestartAutopilot(), true,0);
- // 改变UI自动驾驶状态
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- break;
- default:
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onAutopilotEnableChange(false);
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- break;
- }
- }
-
- @Override
- public void onAutopilotStatusResponseFromCan(int state) {
- if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- OrderModel.getInstance().triggerStartServiceEvent(
- OrderModel.getInstance().isRestartAutopilot(), true,1);
- }
- }
-
- @Override
- public void onCarLocationChanged(MogoLocation location) {
-// if (null != location) {
-// runOnUIThread(() -> mView.updateSpeedView(location.getGnssSpeed()));
-// }
- }
-
- @Override
- public void startOpenAutopilot() {
- //非美化模式下启动动画
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.startAutopilotAnimation();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
-
- //中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示
- if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
- == CallerAutoPilotStatusListenerManager.INSTANCE.getState()&&mView!=null){
- mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
- CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
- }
- }
-
- private void runOnUIThread(Runnable executor) {
- if (executor == null) {
- return;
- }
- if (Looper.myLooper() != Looper.getMainLooper()) {
- UiThreadHandler.post(executor);
- } else {
- executor.run();
- }
- }
-
- /**
- * 测试使用
- */
- public void debugAutoPilotStatus(int status) {
- onAutopilotStatusResponse(status);
- }
-
-
- @Override
- public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo, long lineId) {
- BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId);
- }
-
- @Override
- public void onStatusChange(LoginStatusEnum currentStatus) {
- CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin());
- if(LoginStatusManager.isLogin()){
-// OrderModel.getInstance().queryBusRoutes();
- OrderModel.getInstance().queryBusCacheRoutes();
- }else {
- BusTrajectoryManager.getInstance().stopTrajReqLoop();
- BusTrajectoryManager.getInstance().stopTrajReqLoop();
- clearBusStationsMarkers();
- if(mView!=null) {
- mView.hideSlidePanel();
- }
- OrderModel.getInstance().closeBeautificationMode();
- }
- }
-
- @Override
- public void onStartAdasFailure() {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.stopAnimAndUpdateBtnStatus();
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-
- @Override
- public void canStartAutopilot(boolean canStart) {
- UiThreadHandler.post(new Runnable() {
- @Override
- public void run() {
- if(mView!=null) {
- mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart);
- }
- }
- }, UiThreadHandler.MODE.QUEUE);
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt
deleted file mode 100644
index 9f6c121f07..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusStationCommonItem.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.mogo.och.shuttle.ui
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.widget.ImageView
-import android.widget.LinearLayout
-import androidx.core.content.ContextCompat
-import com.mogo.och.shuttle.R
-import com.mogo.och.common.module.utils.BlinkAnimationUtil
-import kotlinx.android.synthetic.main.shuttle_stations_common_item.view.*
-
-/**
- * @author: wangmingjun
- * @date: 2022/9/15
- */
-class BusStationCommonItem @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : LinearLayout(context, attrs, defStyleAttr){
-
- init {
- LayoutInflater.from(context).inflate(R.layout.shuttle_stations_common_item,this,true)
- }
-
- fun setStationName(name: String){
- busStationNameTv.text = name
- }
-
- fun setStationNameColor(color: Int){
- busStationNameTv.setTextColor(color)
- }
-
- fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站
- BlinkAnimationUtil.clearAnimation(busCircleIv)
- when (type) {
- 0 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_grey_bus
- )
- )
- }
- 1 -> {
- busCircleIvBg.visibility = VISIBLE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_green_bus
- )
- )
- BlinkAnimationUtil.setAnimation(busCircleIv)
- }
- 2 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_blue_bus
- )
- )
- }
-
- }
- }
-
- fun getCircleImageView() : ImageView{
- return busCircleIv
- }
-
- fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站
- when(type){
- 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus)
- 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus)
- 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus)
- }
-
- }
-
- fun setStationTag(tag: String){ // 0:起 1:终
- if (tag.isNullOrEmpty()){
- busTagTxt.visibility = GONE
- }else{
- busTagTxt.text = tag
- busTagTxt.visibility = VISIBLE
- }
- }
-
- fun showOrHideStationArrowBg(isShow:Boolean){
- if (isShow){
- busArrowBg.visibility = VISIBLE
- }else{
- busArrowBg.visibility = GONE
- }
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt
deleted file mode 100644
index a9fddd0ff4..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineActivity.kt
+++ /dev/null
@@ -1,222 +0,0 @@
-package com.mogo.och.shuttle.ui
-
-import android.graphics.Point
-import android.os.Bundle
-import android.view.Gravity
-import android.view.View
-import android.view.ViewGroup
-import android.view.WindowManager
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.commons.mvp.MvpActivity
-import com.mogo.commons.storage.SharedPrefsMgr
-import com.mogo.och.shuttle.presenter.BusLinePresenter
-import com.mogo.och.shuttle.ui.adapter.SwitchLineAdapter
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse
-import com.mogo.och.shuttle.ui.adapter.OpenItemAnimator
-import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
-import com.mogo.eagle.core.utilcode.util.ToastUtils
-import com.mogo.och.shuttle.R
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse
-import java.util.ArrayList
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/8
- */
-class BusSwitchLineActivity : MvpActivity(),
- View.OnClickListener, BusSwitchLineView {
-
- companion object{
- const val LASTCOMMITLINEID = "lastcommitlineid"
- }
-
- private lateinit var mClose: ImageView
- private lateinit var mNoDatasView: ConstraintLayout
- private lateinit var mLinesListView: RecyclerView
- private lateinit var mLineCommitBtn: TextView
- private lateinit var mAdapter: SwitchLineAdapter
- private lateinit var linearLayoutManager:LinearLayoutManager
- private val mData: MutableList = ArrayList()
- override fun getLayoutId(): Int {
- return R.layout.shuttle_switch_line
- }
-
- override fun createPresenter(): BusLinePresenter {
- return BusLinePresenter(this)
- }
-
- override fun initViews() {
- initWH()
- initView()
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- initDatas()
- }
-
- /**
- * 初始化view
- */
- private fun initView() {
- mClose = findViewById(R.id.switch_line_close)
- mClose.setOnClickListener(this)
- mNoDatasView = findViewById(R.id.no_order_data_view)
- mLineCommitBtn = findViewById(R.id.switch_line_btn_commit)
- mLineCommitBtn.setOnClickListener(this)
- mLinesListView = findViewById(R.id.switch_line_rv)
- linearLayoutManager = LinearLayoutManager(this)
- mLinesListView.setLayoutManager(linearLayoutManager)
- mLinesListView.setItemAnimator(OpenItemAnimator())
- mAdapter = SwitchLineAdapter(applicationContext, mData)
- mLinesListView.addItemDecoration(
- SpacesItemDecoration(
- 4
- )
- )
- mLinesListView.setAdapter(mAdapter)
- //设置item 点击事件
- mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{
- override fun onItemClick(position: Int, close: Boolean) {
- mPresenter?.queryBusLineTasks(mData[position].lineId, position, close)
- }
- })
- }
-
- /**
- * 设置布局宽高
- */
- private fun initWH() {
- val window = window
- val params = window.attributes
- val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager
- val point = Point()
- windowManager.defaultDisplay.getSize(point) //用于获取屏幕高度
- params.width = (point.x * 0.375).toInt()
- params.height = ViewGroup.LayoutParams.MATCH_PARENT
- window.attributes = params
- window.setGravity(Gravity.START or Gravity.BOTTOM)
- }
-
- /**
- * 初始化数据
- */
- private fun initDatas() {
- mPresenter?.queryBusLines()
- }
-
- /**
- * 查询返回绑定路线集合
- * @param data
- */
- override fun onBusLinesChange(data: BusQueryLinesResponse?) {
- if (null == data) {
- showNoData(true)
- return
- }
- val lastCommitLineid = SharedPrefsMgr.getInstance().getInt(LASTCOMMITLINEID, -1)
- if (data.data != null && data.data.size > 0) {
- showNoData(false)
- mData.clear()
- mData.addAll(data.data)
- mAdapter.notifyDataSetChanged()
- if(lastCommitLineid>0){
- mData.forEachIndexed { index, line ->
- if(line.lineId==lastCommitLineid){
- line.open = true
- mPresenter?.queryBusLineTasks(line.lineId,index,false)
- return
- }
- }
- }
- } else {
- showNoData(true)
- }
- }
-
- override fun onChangeLineIdSuccess() {
- ToastUtils.showLong(resources.getString(R.string.bus_change_line_commit_tip_s))
- mPresenter?.queryBusRoutes()
- mAdapter.setOnLineItemClickListener(null)
- mPresenter?.removeListener()
- finish()
- }
-
- override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) {
- val result = mData[position]
- if (result.taskList == null) {
- result.taskList = ArrayList()
- }
- if (lineTaskInfo == null) {
- result.haveTask = true
- // 打开操作
- mAdapter.notifyItemChanged(position)
- } else {
- if (lineTaskInfo.data == null || lineTaskInfo.data.isEmpty()) {
- result.haveTask = true
- lineTaskInfo.data = ArrayList()
- }
- if (lineTaskInfo.data.size != result.taskList.size) { // 不相等有变动 重新赋值
- result.taskList.clear()
- result.taskList.addAll(lineTaskInfo.data)
- if(autoRefresh) {
- mAdapter.checkTaskId = -1
- mAdapter.checkLineId = -1
- lineTaskInfo.data.forEach {
- if (it.id == mAdapter.checkTaskId) {
- mAdapter.checkTaskId = it.id
- mAdapter.checkLineId = result.lineId
- }
- }
- }
- // 打开操作
- mAdapter.notifyItemChanged(position)
- linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6
- mLinesListView.smoothScrollToPosition(position)
- }else if(lineTaskInfo.data.isEmpty()){
- mAdapter.notifyItemChanged(position)
- }
- }
- }
-
- /**
- * 有无数据UI显示
- * @param b
- */
- private fun showNoData(b: Boolean) {
- if (b) {
- mLinesListView.visibility = View.GONE
- mLineCommitBtn.visibility = View.GONE
- mNoDatasView.visibility = View.VISIBLE
- } else {
- mLinesListView.visibility = View.VISIBLE
- mLineCommitBtn.visibility = View.VISIBLE
- mNoDatasView.visibility = View.GONE
- }
- }
-
- override fun onClick(v: View) {
- //关闭dialog
- if (v.id == R.id.switch_line_close) {
- finish()
- return
- }
- //切换路线提交
- if (v.id == R.id.switch_line_btn_commit) {
- if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){
- mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId)
- }else{
- ToastUtils.showLong("请选择任务")
- }
- }
- }
-
- override fun onDestroy() {
- mPresenter!!.removeListener()
- super.onDestroy()
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java
deleted file mode 100644
index 5a4d85d312..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/BusSwitchLineView.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mogo.och.shuttle.ui;
-
-import com.mogo.commons.mvp.IView;
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse;
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse;
-
-/**
- * @author: wangmingjun
- * @date: 2022/2/10
- */
-public interface BusSwitchLineView extends IView {
-
- void onBusLinesChange(BusQueryLinesResponse data);
- void onChangeLineIdSuccess();
-
- void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh);
-}
-
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java
deleted file mode 100644
index bc8596d255..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/OpenItemAnimator.java
+++ /dev/null
@@ -1,643 +0,0 @@
-package com.mogo.och.shuttle.ui.adapter;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.TimeInterpolator;
-import android.animation.ValueAnimator;
-import android.view.View;
-import android.view.ViewPropertyAnimator;
-
-import androidx.annotation.NonNull;
-import androidx.core.view.ViewCompat;
-import androidx.recyclerview.widget.DefaultItemAnimator;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.recyclerview.widget.SimpleItemAnimator;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * This implementation of {@link RecyclerView.ItemAnimator} provides basic
- * animations on remove, add, and move events that happen to the items in
- * a RecyclerView. RecyclerView uses a DefaultItemAnimator by default.
- *
- * @see RecyclerView#setItemAnimator(RecyclerView.ItemAnimator)
- */
-public class OpenItemAnimator extends DefaultItemAnimator {
- private static final boolean DEBUG = false;
-
- private static TimeInterpolator sDefaultInterpolator;
-
- private final ArrayList mPendingRemovals = new ArrayList<>();
- private final ArrayList mPendingAdditions = new ArrayList<>();
- private final ArrayList mPendingMoves = new ArrayList<>();
- private final ArrayList mPendingChanges = new ArrayList<>();
-
- ArrayList> mAdditionsList = new ArrayList<>();
- ArrayList> mMovesList = new ArrayList<>();
- ArrayList> mChangesList = new ArrayList<>();
-
- ArrayList mAddAnimations = new ArrayList<>();
- ArrayList mMoveAnimations = new ArrayList<>();
- ArrayList mRemoveAnimations = new ArrayList<>();
- ArrayList mChangeAnimations = new ArrayList<>();
-
- private static class MoveInfo {
- public RecyclerView.ViewHolder holder;
- public int fromX, fromY, toX, toY;
-
- MoveInfo(RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) {
- this.holder = holder;
- this.fromX = fromX;
- this.fromY = fromY;
- this.toX = toX;
- this.toY = toY;
- }
- }
-
- private static class ChangeInfo {
- public RecyclerView.ViewHolder oldHolder, newHolder;
- public int fromX, fromY, toX, toY;
- private ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder) {
- this.oldHolder = oldHolder;
- this.newHolder = newHolder;
- }
-
- ChangeInfo(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder,
- int fromX, int fromY, int toX, int toY) {
- this(oldHolder, newHolder);
- this.fromX = fromX;
- this.fromY = fromY;
- this.toX = toX;
- this.toY = toY;
- }
-
- @Override
- public String toString() {
- return "ChangeInfo{"
- + "oldHolder=" + oldHolder
- + ", newHolder=" + newHolder
- + ", fromX=" + fromX
- + ", fromY=" + fromY
- + ", toX=" + toX
- + ", toY=" + toY
- + '}';
- }
- }
-
- @Override
- public void runPendingAnimations() {
- boolean removalsPending = !mPendingRemovals.isEmpty();
- boolean movesPending = !mPendingMoves.isEmpty();
- boolean changesPending = !mPendingChanges.isEmpty();
- boolean additionsPending = !mPendingAdditions.isEmpty();
- if (!removalsPending && !movesPending && !additionsPending && !changesPending) {
- // nothing to animate
- return;
- }
- // First, remove stuff
- for (RecyclerView.ViewHolder holder : mPendingRemovals) {
- animateRemoveImpl(holder);
- }
- mPendingRemovals.clear();
- // Next, move stuff
- if (movesPending) {
- final ArrayList moves = new ArrayList<>(mPendingMoves);
- mMovesList.add(moves);
- mPendingMoves.clear();
- Runnable mover = () -> {
- for (MoveInfo moveInfo : moves) {
- animateMoveImpl(moveInfo.holder, moveInfo.fromX, moveInfo.fromY,
- moveInfo.toX, moveInfo.toY);
- }
- moves.clear();
- mMovesList.remove(moves);
- };
- if (removalsPending) {
- View view = moves.get(0).holder.itemView;
- ViewCompat.postOnAnimationDelayed(view, mover, getRemoveDuration());
- } else {
- mover.run();
- }
- }
- // Next, change stuff, to run in parallel with move animations
- if (changesPending) {
- final ArrayList changes = new ArrayList<>(mPendingChanges);
- mChangesList.add(changes);
- mPendingChanges.clear();
- Runnable changer = () -> {
- for (ChangeInfo change : changes) {
- animateChangeImpl(change);
- }
- changes.clear();
- mChangesList.remove(changes);
- };
- if (removalsPending) {
- RecyclerView.ViewHolder holder = changes.get(0).oldHolder;
- ViewCompat.postOnAnimationDelayed(holder.itemView, changer, getRemoveDuration());
- } else {
- changer.run();
- }
- }
- // Next, add stuff
- if (additionsPending) {
- final ArrayList additions = new ArrayList<>(mPendingAdditions);
- mAdditionsList.add(additions);
- mPendingAdditions.clear();
- Runnable adder = () -> {
- for (RecyclerView.ViewHolder holder : additions) {
- animateAddImpl(holder);
- }
- additions.clear();
- mAdditionsList.remove(additions);
- };
- if (removalsPending || movesPending || changesPending) {
- long removeDuration = removalsPending ? getRemoveDuration() : 0;
- long moveDuration = movesPending ? getMoveDuration() : 0;
- long changeDuration = changesPending ? getChangeDuration() : 0;
- long totalDelay = removeDuration + Math.max(moveDuration, changeDuration);
- View view = additions.get(0).itemView;
- ViewCompat.postOnAnimationDelayed(view, adder, totalDelay);
- } else {
- adder.run();
- }
- }
- }
-
- @Override
- public boolean animateRemove(final RecyclerView.ViewHolder holder) {
- resetAnimation(holder);
- mPendingRemovals.add(holder);
- return true;
- }
-
- private void animateRemoveImpl(final RecyclerView.ViewHolder holder) {
- final View view = holder.itemView;
- final ViewPropertyAnimator animation = view.animate();
- mRemoveAnimations.add(holder);
- animation.setDuration(getRemoveDuration()).alpha(0).setListener(
- new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchRemoveStarting(holder);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- view.setAlpha(1);
- dispatchRemoveFinished(holder);
- mRemoveAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateAdd(final RecyclerView.ViewHolder holder) {
- resetAnimation(holder);
- holder.itemView.setAlpha(0);
- mPendingAdditions.add(holder);
- return true;
- }
-
- void animateAddImpl(final RecyclerView.ViewHolder holder) {
- final View view = holder.itemView;
- final ViewPropertyAnimator animation = view.animate();
- mAddAnimations.add(holder);
- animation.alpha(1).setDuration(getAddDuration())
- .setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchAddStarting(holder);
- }
-
- @Override
- public void onAnimationCancel(Animator animator) {
- view.setAlpha(1);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- dispatchAddFinished(holder);
- mAddAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateMove(final RecyclerView.ViewHolder holder, int fromX, int fromY,
- int toX, int toY) {
- final View view = holder.itemView;
- fromX += (int) holder.itemView.getTranslationX();
- fromY += (int) holder.itemView.getTranslationY();
- resetAnimation(holder);
- int deltaX = toX - fromX;
- int deltaY = toY - fromY;
- if (deltaX == 0 && deltaY == 0) {
- dispatchMoveFinished(holder);
- return false;
- }
- if (deltaX != 0) {
- view.setTranslationX(-deltaX);
- }
- if (deltaY != 0) {
- view.setTranslationY(-deltaY);
- }
- mPendingMoves.add(new MoveInfo(holder, fromX, fromY, toX, toY));
- return true;
- }
-
- void animateMoveImpl(final RecyclerView.ViewHolder holder, int fromX, int fromY, int toX, int toY) {
- final View view = holder.itemView;
- final int deltaX = toX - fromX;
- final int deltaY = toY - fromY;
- if (deltaX != 0) {
- view.animate().translationX(0);
- }
- if (deltaY != 0) {
- view.animate().translationY(0);
- }
- // TODO: make EndActions end listeners instead, since end actions aren't called when
- // vpas are canceled (and can't end them. why?)
- // need listener functionality in VPACompat for this. Ick.
- final ViewPropertyAnimator animation = view.animate();
- mMoveAnimations.add(holder);
- animation.setDuration(getMoveDuration()).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchMoveStarting(holder);
- }
-
- @Override
- public void onAnimationCancel(Animator animator) {
- if (deltaX != 0) {
- view.setTranslationX(0);
- }
- if (deltaY != 0) {
- view.setTranslationY(0);
- }
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- animation.setListener(null);
- dispatchMoveFinished(holder);
- mMoveAnimations.remove(holder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
-
- @Override
- public boolean animateChange(RecyclerView.ViewHolder oldHolder, RecyclerView.ViewHolder newHolder,
- int fromX, int fromY, int toX, int toY) {
- if (oldHolder == newHolder) {
- // Don't know how to run change animations when the same view holder is re-used.
- // run a move animation to handle position changes.
- return animateMove(oldHolder, fromX, fromY, toX, toY);
- }
- final float prevTranslationX = oldHolder.itemView.getTranslationX();
- final float prevTranslationY = oldHolder.itemView.getTranslationY();
- final float prevAlpha = oldHolder.itemView.getAlpha();
- resetAnimation(oldHolder);
- int deltaX = (int) (toX - fromX - prevTranslationX);
- int deltaY = (int) (toY - fromY - prevTranslationY);
- // recover prev translation state after ending animation
- oldHolder.itemView.setTranslationX(prevTranslationX);
- oldHolder.itemView.setTranslationY(prevTranslationY);
- oldHolder.itemView.setAlpha(prevAlpha);
- if (newHolder != null) {
- // carry over translation values
- resetAnimation(newHolder);
- newHolder.itemView.setTranslationX(-deltaX);
- newHolder.itemView.setTranslationY(-deltaY);
- newHolder.itemView.setAlpha(0);
- }
- mPendingChanges.add(new ChangeInfo(oldHolder, newHolder, fromX, fromY, toX, toY));
- return true;
- }
-
- void animateChangeImpl(final ChangeInfo changeInfo) {
- final RecyclerView.ViewHolder holder = changeInfo.oldHolder;
- final View view = holder == null ? null : holder.itemView;
- final RecyclerView.ViewHolder newHolder = changeInfo.newHolder;
- final View newView = newHolder != null ? newHolder.itemView : null;
- if (view != null) {
- final ViewPropertyAnimator oldViewAnim = view.animate().setDuration(
- getChangeDuration());
- mChangeAnimations.add(changeInfo.oldHolder);
- oldViewAnim.translationX((float)(changeInfo.toX - changeInfo.fromX));
- oldViewAnim.translationY((float)(changeInfo.toY - changeInfo.fromY));
- oldViewAnim.alpha(0).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchChangeStarting(changeInfo.oldHolder, true);
- }
-
- @Override
- public void onAnimationEnd(Animator animator) {
- oldViewAnim.setListener(null);
- view.setAlpha(1);
- view.setTranslationX(0);
- view.setTranslationY(0);
- dispatchChangeFinished(changeInfo.oldHolder, true);
- mChangeAnimations.remove(changeInfo.oldHolder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
- if (newView != null) {
- final ViewPropertyAnimator newViewAnimation = newView.animate();
- mChangeAnimations.add(changeInfo.newHolder);
- newViewAnimation.translationX(0).translationY(0).setDuration(getChangeDuration())
- .alpha(1).setListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationStart(Animator animator) {
- dispatchChangeStarting(changeInfo.newHolder, false);
- }
- @Override
- public void onAnimationEnd(Animator animator) {
- newViewAnimation.setListener(null);
- newView.setAlpha(1);
- newView.setTranslationX(0);
- newView.setTranslationY(0);
- dispatchChangeFinished(changeInfo.newHolder, false);
- mChangeAnimations.remove(changeInfo.newHolder);
- dispatchFinishedWhenDone();
- }
- }).start();
- }
- }
-
- private void endChangeAnimation(List infoList, RecyclerView.ViewHolder item) {
- for (int i = infoList.size() - 1; i >= 0; i--) {
- ChangeInfo changeInfo = infoList.get(i);
- if (endChangeAnimationIfNecessary(changeInfo, item)) {
- if (changeInfo.oldHolder == null && changeInfo.newHolder == null) {
- infoList.remove(changeInfo);
- }
- }
- }
- }
-
- private void endChangeAnimationIfNecessary(ChangeInfo changeInfo) {
- if (changeInfo.oldHolder != null) {
- endChangeAnimationIfNecessary(changeInfo, changeInfo.oldHolder);
- }
- if (changeInfo.newHolder != null) {
- endChangeAnimationIfNecessary(changeInfo, changeInfo.newHolder);
- }
- }
- private boolean endChangeAnimationIfNecessary(ChangeInfo changeInfo, RecyclerView.ViewHolder item) {
- boolean oldItem = false;
- if (changeInfo.newHolder == item) {
- changeInfo.newHolder = null;
- } else if (changeInfo.oldHolder == item) {
- changeInfo.oldHolder = null;
- oldItem = true;
- } else {
- return false;
- }
- item.itemView.setAlpha(1);
- item.itemView.setTranslationX(0);
- item.itemView.setTranslationY(0);
- dispatchChangeFinished(item, oldItem);
- return true;
- }
-
- @Override
- public void endAnimation(RecyclerView.ViewHolder item) {
- final View view = item.itemView;
- // this will trigger end callback which should set properties to their target values.
- view.animate().cancel();
- // TODO if some other animations are chained to end, how do we cancel them as well?
- for (int i = mPendingMoves.size() - 1; i >= 0; i--) {
- MoveInfo moveInfo = mPendingMoves.get(i);
- if (moveInfo.holder == item) {
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item);
- mPendingMoves.remove(i);
- }
- }
- endChangeAnimation(mPendingChanges, item);
- if (mPendingRemovals.remove(item)) {
- view.setAlpha(1);
- dispatchRemoveFinished(item);
- }
- if (mPendingAdditions.remove(item)) {
- view.setAlpha(1);
- dispatchAddFinished(item);
- }
-
- for (int i = mChangesList.size() - 1; i >= 0; i--) {
- ArrayList changes = mChangesList.get(i);
- endChangeAnimation(changes, item);
- if (changes.isEmpty()) {
- mChangesList.remove(i);
- }
- }
- for (int i = mMovesList.size() - 1; i >= 0; i--) {
- ArrayList moves = mMovesList.get(i);
- for (int j = moves.size() - 1; j >= 0; j--) {
- MoveInfo moveInfo = moves.get(j);
- if (moveInfo.holder == item) {
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item);
- moves.remove(j);
- if (moves.isEmpty()) {
- mMovesList.remove(i);
- }
- break;
- }
- }
- }
- for (int i = mAdditionsList.size() - 1; i >= 0; i--) {
- ArrayList additions = mAdditionsList.get(i);
- if (additions.remove(item)) {
- view.setAlpha(1);
- dispatchAddFinished(item);
- if (additions.isEmpty()) {
- mAdditionsList.remove(i);
- }
- }
- }
-
- // animations should be ended by the cancel above.
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (mRemoveAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mRemoveAnimations list");
- }
-
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (mAddAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mAddAnimations list");
- }
-
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (mChangeAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mChangeAnimations list");
- }
-
- //noinspection PointlessBooleanExpression,ConstantConditions
- if (mMoveAnimations.remove(item) && DEBUG) {
- throw new IllegalStateException("after animation is cancelled, item should not be in "
- + "mMoveAnimations list");
- }
- dispatchFinishedWhenDone();
- }
-
- private void resetAnimation(RecyclerView.ViewHolder holder) {
- if (sDefaultInterpolator == null) {
- sDefaultInterpolator = new ValueAnimator().getInterpolator();
- }
- holder.itemView.animate().setInterpolator(sDefaultInterpolator);
- endAnimation(holder);
- }
-
- @Override
- public boolean isRunning() {
- return (!mPendingAdditions.isEmpty()
- || !mPendingChanges.isEmpty()
- || !mPendingMoves.isEmpty()
- || !mPendingRemovals.isEmpty()
- || !mMoveAnimations.isEmpty()
- || !mRemoveAnimations.isEmpty()
- || !mAddAnimations.isEmpty()
- || !mChangeAnimations.isEmpty()
- || !mMovesList.isEmpty()
- || !mAdditionsList.isEmpty()
- || !mChangesList.isEmpty());
- }
-
- /**
- * Check the state of currently pending and running animations. If there are none
- * pending/running, call {@link #dispatchAnimationsFinished()} to notify any
- * listeners.
- */
- void dispatchFinishedWhenDone() {
- if (!isRunning()) {
- dispatchAnimationsFinished();
- }
- }
-
- @Override
- public void endAnimations() {
- int count = mPendingMoves.size();
- for (int i = count - 1; i >= 0; i--) {
- MoveInfo item = mPendingMoves.get(i);
- View view = item.holder.itemView;
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(item.holder);
- mPendingMoves.remove(i);
- }
- count = mPendingRemovals.size();
- for (int i = count - 1; i >= 0; i--) {
- RecyclerView.ViewHolder item = mPendingRemovals.get(i);
- dispatchRemoveFinished(item);
- mPendingRemovals.remove(i);
- }
- count = mPendingAdditions.size();
- for (int i = count - 1; i >= 0; i--) {
- RecyclerView.ViewHolder item = mPendingAdditions.get(i);
- item.itemView.setAlpha(1);
- dispatchAddFinished(item);
- mPendingAdditions.remove(i);
- }
- count = mPendingChanges.size();
- for (int i = count - 1; i >= 0; i--) {
- endChangeAnimationIfNecessary(mPendingChanges.get(i));
- }
- mPendingChanges.clear();
- if (!isRunning()) {
- return;
- }
-
- int listCount = mMovesList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList moves = mMovesList.get(i);
- count = moves.size();
- for (int j = count - 1; j >= 0; j--) {
- MoveInfo moveInfo = moves.get(j);
- RecyclerView.ViewHolder item = moveInfo.holder;
- View view = item.itemView;
- view.setTranslationY(0);
- view.setTranslationX(0);
- dispatchMoveFinished(moveInfo.holder);
- moves.remove(j);
- if (moves.isEmpty()) {
- mMovesList.remove(moves);
- }
- }
- }
- listCount = mAdditionsList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList additions = mAdditionsList.get(i);
- count = additions.size();
- for (int j = count - 1; j >= 0; j--) {
- RecyclerView.ViewHolder item = additions.get(j);
- View view = item.itemView;
- view.setAlpha(1);
- dispatchAddFinished(item);
- additions.remove(j);
- if (additions.isEmpty()) {
- mAdditionsList.remove(additions);
- }
- }
- }
- listCount = mChangesList.size();
- for (int i = listCount - 1; i >= 0; i--) {
- ArrayList changes = mChangesList.get(i);
- count = changes.size();
- for (int j = count - 1; j >= 0; j--) {
- endChangeAnimationIfNecessary(changes.get(j));
- if (changes.isEmpty()) {
- mChangesList.remove(changes);
- }
- }
- }
-
- cancelAll(mRemoveAnimations);
- cancelAll(mMoveAnimations);
- cancelAll(mAddAnimations);
- cancelAll(mChangeAnimations);
-
- dispatchAnimationsFinished();
- }
-
- void cancelAll(List viewHolders) {
- for (int i = viewHolders.size() - 1; i >= 0; i--) {
- viewHolders.get(i).itemView.animate().cancel();
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * If the payload list is not empty, DefaultItemAnimator returns true.
- * When this is the case:
- *
- * If you override {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, both
- * ViewHolder arguments will be the same instance.
- *
- *
- * If you are not overriding {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)},
- * then DefaultItemAnimator will call {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int)} and
- * run a move animation instead.
- *
- *
- */
- @Override
- public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder,
- @NonNull List payloads) {
- return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads);
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt
deleted file mode 100644
index 19738350eb..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineAdapter.kt
+++ /dev/null
@@ -1,181 +0,0 @@
-package com.mogo.och.shuttle.ui.adapter
-
-import android.content.Context
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import androidx.appcompat.widget.AppCompatTextView
-import androidx.core.content.ContextCompat
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.och.shuttle.R
-import com.mogo.och.shuttle.bean.BusQueryLinesResponse
-import com.mogo.och.shuttle.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder
-import kotlin.text.StringBuilder
-
-/**
- * 路线列表adapter
- */
-class SwitchLineAdapter(
- private val mContext: Context,
- private val mData: List
-) : RecyclerView.Adapter() {
- companion object{
- const val TAG = "SwitchLineAdapter"
- }
- // RecyclerView设置点击事件
- private var mItemClickListener: LineItemClickListener? = null
- var checkLineId:Int = -1
- var checkTaskId:Int = -1
- override fun onCreateViewHolder(
- parent: ViewGroup,
- viewType: Int
- ): SwitchLineViewHolder {
- val view = LayoutInflater.from(mContext).inflate(
- R.layout.shuttle_switch_line_list_item, parent, false
- )
- return SwitchLineViewHolder(view)
- }
-
- override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) {
- val currentPosition = holder.bindingAdapterPosition
- val line = mData[currentPosition]
- if(line.name!=null&&line.name.length>10){
- line.name = line.name.substring(0,10)+"…"
- }
- holder.lineName.text = line.name
- val sb = StringBuilder()
- if (line.endSiteName!=null&&line.endSiteName.length>10) {
- sb.append(line.endSiteName.substring(0,5))
- sb.append("…")
- sb.append(line.endSiteName.substring(line.endSiteName.length-5,line.endSiteName.length))
- }else{
- sb.append(line.endSiteName)
- }
- val string = mContext.getString(R.string.bus_line_goto_end, sb.toString())
- holder.lineEndName.text = string
- holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3)
- val switchLineTaskAdapter = SwitchLineTaskAdapter(
- mContext,
- checkTaskId,
- line.taskList,
- object : SwitchLineTaskAdapter.TaskItemClickListener {
- override fun onItemClick(position: Int,isCheck:Boolean) {
- try {
- if(isCheck) {
- checkLineId = line.lineId
- checkTaskId = line.taskList[position].id
- }else{
- checkLineId=-1
- checkTaskId=-1
- }
- }catch (e:Exception){
- e.printStackTrace()
- checkLineId=-1
- checkTaskId=-1
- }
- }
- })
- holder.rvLineTask.adapter = switchLineTaskAdapter
- holder.rvLineTask.isFocusableInTouchMode = false
- holder.actvShowMore.visibility = View.VISIBLE
-
- if(line.open){
- if(line.taskList==null||line.taskList.isEmpty()){
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.INVISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- }else {
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
- holder.vLineTask.visibility = View.VISIBLE
- holder.rvLineTask.visibility = View.VISIBLE
- holder.selectIv.visibility = View.VISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected)
- holder.selectIv.apply {
- pivotX = 9.5f
- pivotY = 17f
- rotation = 90f
- }
- }
- }else{
- if(line.haveTask){
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.INVISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- }else {
- holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
- holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white))
- holder.vLineTask.visibility = View.GONE
- holder.rvLineTask.visibility = View.GONE
- holder.selectIv.visibility = View.VISIBLE
- holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
- holder.selectIv.apply {
- pivotX = 9.5f
- pivotY = 17f
- rotation = 0f
- }
- }
- }
-
-
- //设置item点击事件
- holder.itemView.setOnClickListener {
- if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){
- return@setOnClickListener
- }
- mData.forEachIndexed { index, result ->
- if(result.open){
- result.open = false;
- notifyItemChanged(index)
- if(result.taskList!=null) {
- result.taskList.clear()
- }
- if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求
- mItemClickListener?.onItemClick(currentPosition,true)
- return@setOnClickListener
- }
- }
- }
- mItemClickListener?.onItemClick(currentPosition,false)
- line.open = holder.rvLineTask.visibility == View.GONE
- }
- }
-
- override fun getItemCount(): Int {
- return mData.size
- }
-
- fun setOnLineItemClickListener(itemClickListener: LineItemClickListener?) {
- mItemClickListener = itemClickListener
- }
-
- class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val selectIv: ImageView
- val lineName: AppCompatTextView//线路名称
- val lineEndName: AppCompatTextView //终点
- val actvShowMore: AppCompatTextView //选择时间
- val rvLineTask: RecyclerView// 排班时间
- val vLineTask: View// 白色分割线
-
- init {
- selectIv = itemView.findViewById(R.id.switch_line_item_select_iv)
- lineName = itemView.findViewById(R.id.switch_line_name)
- lineEndName = itemView.findViewById(R.id.switch_line_end_station)
- rvLineTask = itemView.findViewById(R.id.rv_line_task_list)
- vLineTask = itemView.findViewById(R.id.v_line_task)
- actvShowMore = itemView.findViewById(R.id.actv_show_more)
- }
- }
-
- interface LineItemClickListener {
- fun onItemClick(position: Int,close:Boolean)
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt
deleted file mode 100644
index 95d5badfb8..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/adapter/SwitchLineTaskAdapter.kt
+++ /dev/null
@@ -1,76 +0,0 @@
-package com.mogo.och.shuttle.ui.adapter
-
-import android.content.Context
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.recyclerview.widget.RecyclerView
-import com.mogo.eagle.core.utilcode.util.TimeUtils
-import com.mogo.och.shuttle.R
-import com.mogo.och.shuttle.bean.BusQueryLineTaskResponse
-import com.mogo.och.shuttle.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder
-
-/**
- * 路线列表adapter
- */
-class SwitchLineTaskAdapter(
- private val mContext: Context,
- private var checkTaskId:Int,
- private val mData: List?,
- private val mTaskItemClickListener: TaskItemClickListener?
-) : RecyclerView.Adapter() {
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder {
- val view = LayoutInflater.from(mContext).inflate(
- R.layout.shuttle_switch_line_list_task_item, parent, false
- )
- return SwitchLineTaskViewHolder(view)
- }
-
- override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) {
- val currentPosition = holder.bindingAdapterPosition
- val task = mData!![currentPosition]
- val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm")
- holder.lineTask.text = taskStartTime
- if(checkTaskId==task.id){
- holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected)
- }else{
- holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg)
- }
- holder.lineTask.setOnClickListener {
- if(checkTaskId==task.id){
- checkTaskId = -1
- mTaskItemClickListener?.onItemClick(currentPosition,false)
- }else {
- resetOther()
- checkTaskId = task.id
- mTaskItemClickListener?.onItemClick(currentPosition,true)
- }
- notifyItemChanged(currentPosition)
- }
- }
-
- private fun resetOther() {
- mData?.forEachIndexed { index, result ->
- if(result.id==checkTaskId){
- checkTaskId = -1
- notifyItemChanged(index)
- }
- }
- }
-
- override fun getItemCount(): Int {
- return mData?.size ?: 0
- }
-
- class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
- val lineTask: TextView // 时间
- init {
- lineTask = itemView.findViewById(R.id.actv_line_task)
- }
- }
-
- interface TaskItemClickListener {
- fun onItemClick(position: Int,isCheck:Boolean)
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt
deleted file mode 100644
index b0d7b3851a..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffView.kt
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.mogo.och.shuttle.ui.writeoff
-
-import android.content.Context
-import android.util.AttributeSet
-import android.util.Log
-import android.view.LayoutInflater
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.findViewTreeViewModelStoreOwner
-import com.mogo.och.shuttle.R
-import kotlinx.android.synthetic.main.shuttle_wirte_off_view.view.tv_write_off_count
-
-class WriteOffView : ConstraintLayout, WriteOffViewModel.IwriteOffViewCallback {
-
- private val TAG = "ItineraryView"
-
- constructor(context: Context) : super(context)
-
- constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
-
- constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
-
- constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
-
- private fun initView() {
- LayoutInflater.from(context).inflate(R.layout.shuttle_wirte_off_view, this, true)
- }
-
-
-
- override fun onAttachedToWindow() {
- super.onAttachedToWindow()
-
- val viewModel = findViewTreeViewModelStoreOwner()?.let {
- ViewModelProvider(it).get(WriteOffViewModel::class.java)
- }
-
- viewModel?.setWriteOffCallback(this)
- }
-
-
- init {
- try {
- initView()
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
-
- override fun setWriteOffCount(showText: String) {
- tv_write_off_count.text = showText
- }
-
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt
deleted file mode 100644
index 68da5137b1..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/ui/writeoff/WriteOffViewModel.kt
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.mogo.och.shuttle.ui.writeoff
-
-import androidx.lifecycle.ViewModel
-import com.mogo.commons.AbsMogoApplication
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.och.shuttle.R
-import com.mogo.och.common.module.utils.RxUtils
-import com.mogo.och.shuttle.model.TicketModel
-import io.reactivex.Observable
-import io.reactivex.Observer
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.disposables.Disposable
-
-class WriteOffViewModel : ViewModel() {
-
- private val TAG = WriteOffViewModel::class.java.simpleName
-
- private var viewCallback: IwriteOffViewCallback? = null
-
- init {
-
- }
-
- private var disposable: Disposable? = null
-
- private val observer = object : Observer {
- override fun onSubscribe(d: Disposable) {
- disposable = d
- }
-
- override fun onError(e: Throwable) {
-
- }
-
- override fun onComplete() {
-
- }
-
- override fun onNext(countInfo: String) {
- viewCallback?.setWriteOffCount(countInfo)
- }
-
- }
-
- fun setWriteOffCallback(viewCallback: IwriteOffViewCallback) {
- this.viewCallback = viewCallback
- TicketModel
- .getWriteOffCountObservable()
- .flatMap { t ->
- val showText =
- AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t)
- CallerLogger.d(SceneConstant.M_BUS + TAG, "显示文案:${showText}")
- Observable.just(showText)
- }
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(observer)
- }
-
- override fun onCleared() {
- super.onCleared()
- this.viewCallback = null
- RxUtils.disposeSubscribe(disposable)
- }
-
- interface IwriteOffViewCallback {
- fun setWriteOffCount(count:String)
- }
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java
deleted file mode 100644
index 0d3dca0c64..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/BusTrajectoryManager.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package com.mogo.och.shuttle.util;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-import androidx.annotation.Nullable;
-
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.GsonUtils;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-import com.mogo.och.data.bean.BusRoutesResult;
-import com.mogo.och.shuttle.constant.BusConst;
-import com.mogo.och.shuttle.model.OrderModel;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.schedulers.Schedulers;
-import mogo_msg.MogoReportMsg;
-
-/**
- * Bus轨迹管理:给MEC下发用于轨迹下载的信息
- * Created on 2022/6/23
- */
-public class BusTrajectoryManager {
- private static final String TAG = BusTrajectoryManager.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager();
- }
-
- public static BusTrajectoryManager getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null;
- private Disposable mSendReqDisposable = null;
-
- public BusTrajectoryManager() {
- mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "",
- "", "", "", "", 0, "",
- "", "", "", "", 0);
- }
-
- /**
- * 同步Bus路线信息
- */
- public void syncTrajectoryInfo() {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- if (LoginStatusManager.isLogin() && routesResult != null
- && OrderModel.getInstance().getCurrentStationIndex() == 0
- && !OrderModel.getInstance().isGoingToNextStation()) {
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
- startTrajReqLoop();
- } else {
- // 无路线信息or当前未在始发站
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop.");
- stopTrajReqLoop();
- }
- }
-
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) {
- onAutopilotGuardian(guardianInfo);
- }
-
- /**
- * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息)
- * @param guardianInfo
- */
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
- if (guardianInfo == null || !guardianInfo.hasCode()) return;
- if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) {
- // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹开始下载");
- stopTrajReqLoop();
- } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) {
- // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载成功");
- stopTrajReqLoop();
- } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) {
- // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " +
- "轨迹下载失败,本地无对应轨迹");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹");
- } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) {
- // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " +
- "轨迹下载失败,本地有对应轨迹,认为成功");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功");
- } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) {
- // 5. 轨迹管理_轨迹下载超时
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- // ToastUtils.showShort("轨迹下载超时");
- } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) {
- // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。
- CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() ssm ready,再次发起下载");
- OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 再次发起下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- syncTrajectoryInfo();
- }
- }
-
- private void setupAutoPilotLine() {
- BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult();
- if (routesResult == null) {
- CallerLogger.e(M_BUS + TAG,
- "setupAutoPilotLine(): routesResult is null.");
- return;
- } else {
- if (mAutoPilotLine == null) {
- mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(
- routesResult.getLineId(), routesResult.getName(),
- routesResult.csvFileUrl, routesResult.csvFileMd5,
- routesResult.txtFileUrl, routesResult.txtFileMd5,
- routesResult.contrailSaveTime, routesResult.carModel,
- routesResult.csvFileUrlDPQP, routesResult.csvFileMd5DPQP,
- routesResult.txtFileUrlDPQP, routesResult.txtFileMd5DPQP,
- routesResult.contrailSaveTimeDPQP);
- } else {
- mAutoPilotLine.setLineId(routesResult.getLineId());
- mAutoPilotLine.setLineName(routesResult.getName());
- mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl);
- mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5);
- mAutoPilotLine.setStopUrl(routesResult.txtFileUrl);
- mAutoPilotLine.setStopMd5(routesResult.txtFileMd5);
- mAutoPilotLine.setTimestamp(routesResult.contrailSaveTime);
- mAutoPilotLine.setVehicleModel(routesResult.carModel);
- mAutoPilotLine.setTrajUrl_dpqp(routesResult.csvFileUrlDPQP);
- mAutoPilotLine.setTrajMd5_dpqp(routesResult.csvFileMd5DPQP);
- mAutoPilotLine.setStopUrl_dpqp(routesResult.txtFileUrlDPQP);
- mAutoPilotLine.setStopMd5_dpqp(routesResult.txtFileMd5DPQP);
- mAutoPilotLine.setTimestamp_dpqp(routesResult.contrailSaveTimeDPQP);
- }
- }
- }
-
- private void clearAutoPilotLine() {
- if (mAutoPilotLine == null) return;
- mAutoPilotLine.setLineId(-1);
- mAutoPilotLine.setLineName("");
- mAutoPilotLine.setTrajUrl("");
- mAutoPilotLine.setTrajMd5("");
- mAutoPilotLine.setStopUrl("");
- mAutoPilotLine.setStopMd5("");
- mAutoPilotLine.setTimestamp(0);
- mAutoPilotLine.setVehicleModel("");
- mAutoPilotLine.setTrajUrl_dpqp("");
- mAutoPilotLine.setTrajMd5_dpqp("");
- mAutoPilotLine.setStopUrl_dpqp("");
- mAutoPilotLine.setStopMd5_dpqp("");
- mAutoPilotLine.setTimestamp_dpqp(0);
- }
-
- private void startTrajReqLoop() {
- if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) {
- return;
- }
- CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()");
- setupAutoPilotLine();
- mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY,
- BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> {
- if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) {
- stopTrajReqLoop();
- return;
- }
- CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong);
- sendTrajectoryReq();
- });
- }
-
- public void stopTrajReqLoop() {
- if (mSendReqDisposable != null) {
- CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()");
- mSendReqDisposable.dispose();
- mSendReqDisposable = null;
- clearAutoPilotLine();
- }
- }
-
- private void sendTrajectoryReq() {
- if (mAutoPilotLine == null) {
- CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!");
- return;
- }
- OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine);
- CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): "
- + GsonUtils.toJson(mAutoPilotLine));
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java
deleted file mode 100644
index 35d1bd52eb..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleAnalyticsEventKey.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.mogo.och.shuttle.util;
-
-
-import androidx.annotation.NonNull;
-
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey;
-
-/**
- * OCH Bus埋点工具
- *
- * Created on 2022/3/24
- */
-public class ShuttleAnalyticsEventKey implements IOchEventKey {
-
- // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾
- private static final String EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_bus_ap_unable_start_reason";
- // 埋点key:接管后点击'自动驾驶'按钮启动
- private static final String EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_bus_restart_autopilot";
- // 埋点key:开始服务开启自动驾驶(成功/失败)
- private static final String EVENT_KEY_START_SERVICE = "event_key_och_bus_start_service";
- // 埋点key:点击启动自驾
- private static final String EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_shuttle_click_start_autopilot";
-
- private static final class SingletonHolder {
- private static final ShuttleAnalyticsEventKey INSTANCE = new ShuttleAnalyticsEventKey();
- }
-
- public static ShuttleAnalyticsEventKey getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- @NonNull
- @Override
- public String getEventKeyStartService() {
- return EVENT_KEY_START_SERVICE;
- }
-
- @NonNull
- @Override
- public String getEventKeyRestartService() {
- return EVENT_KEY_RESTART_AUTOPILOT;
- }
-
- @NonNull
- @Override
- public String getEventKeyApUnableStartReason() {
- return EVENT_KEY_AP_UNABLE_START_REASON;
- }
-
- @NonNull
- @Override
- public String getEventKeyClickStartAutopilot() {
- return EVENT_KEY_CLICK_START_AUTOPILOT;
- }
-
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt
deleted file mode 100644
index 123b7ca541..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/util/ShuttleVoiceManager.kt
+++ /dev/null
@@ -1,156 +0,0 @@
-package com.mogo.och.shuttle.util
-
-import com.mogo.commons.AbsMogoApplication
-import com.mogo.commons.voice.AIAssist
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
-import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
-import com.mogo.och.common.module.utils.ResourcesUtils
-import com.mogo.och.common.module.voice.VoiceNotice
-import com.mogo.och.shuttle.R
-import com.mogo.tts.base.LangTtsEntity
-import com.mogo.tts.base.LanguageType
-
-object ShuttleVoiceManager {
-
- fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) {
- val context = AbsMogoApplication.getApp()
- val list: MutableList = ArrayList()
- siteNameCN?.let {
- val chineseTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_tip, it),
- LanguageType.CHINESE
- )
- val engTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_english_tip, it),
- LanguageType.ENGLISH
- )
- val koreanTTS = LangTtsEntity(
- context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it),
- LanguageType.KOREAN
- )
- list.add(chineseTTS)
- list.add(engTTS)
- list.add(koreanTTS)
-
- }
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- siteNameCN?.let {
- sendArrivedStationToClient(it)
- }
- }
- }
-
- private fun sendArrivedStationToClient(arriveStation: String) {
- val arrivedMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_arrived_station_tip,arriveStation),
- )
- LanSocketManager.sendMsgToClient(arrivedMsg)
- }
-
- fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) {
- val list: MutableList = ArrayList()
- val context = AbsMogoApplication.getApp()
- siteNameCN?.let {
- val chineseTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_tip, it),
- LanguageType.CHINESE
- )
- val engTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_english_tip, it),
- LanguageType.ENGLISH
- )
- list.add(chineseTTS)
- list.add(engTTS)
-
- val koreanTTS = LangTtsEntity(
- context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it),
- LanguageType.KOREAN
- )
-
- list.add(koreanTTS)
- }
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL1,null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- siteNameCN?.let {
- sendStartStationToClient(it)
- }
- }
- }
-
- private fun sendStartStationToClient(nextStation: String) {
- val startMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_leave_station_tip,nextStation),
- )
- LanSocketManager.sendMsgToClient(startMsg)
- }
-
- fun endOrderBus() {
- val context = AbsMogoApplication.getApp()
- val list: MutableList = ArrayList()
- val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE)
- val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH)
- val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN)
- list.add(chineseTTS)
- list.add(engTTS)
- list.add(koreanTTS)
-
- if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
- VoiceNotice.showNotice(list, AIAssist.LEVEL0,null)
- } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- sendEndTaskToClient()
- }
-
- }
-
- private fun sendEndTaskToClient() {
- val endMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = ResourcesUtils.getString(R.string.bus_end_task_tip),
- )
- LanSocketManager.sendMsgToClient(endMsg)
- }
-
-
- fun writeOffCount(successNum:Int){
- if(successNum<=1){
- VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3)
- //sendWriteOffNumToClient("核验通过")
- }else{
- VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3)
- //sendWriteOffNumToClient("$successNum 人核验通过")
- }
- }
-
- private fun sendWriteOffNumToClient(msg: String?) {
- val passengerMsg = AppConnectMsg(
- isViewShow = false,
- isPlay = true,
- msg = msg!!,
- )
- LanSocketManager.sendMsgToClient(passengerMsg)
- }
-
-
- // 距离发车还有1分钟
- fun showLeafTime(tips: String) {
- //语音提示
- VoiceNotice.showNotice(tips)
- }
-
- fun writeOffFaile(reaseon:String) {
- VoiceNotice.showNotice(reaseon, AIAssist.LEVEL3)
- }
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt
deleted file mode 100644
index d396c664ca..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/BizMapView.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.mogo.och.shuttle.view
-
-import android.content.Context
-import android.os.Bundle
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.widget.FrameLayout
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.function.view.MapBizView
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-import com.mogo.map.uicontroller.IMogoMapUIController
-import com.mogo.och.shuttle.R
-
-/**
- * 魔戒蓝牙控件
- * 放置于StatusBar右侧位置
- */
-class BizMapView @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : FrameLayout(context, attrs, defStyleAttr) {
-
- private lateinit var mapBizView: MapBizView
-
- init {
- if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
- LayoutInflater.from(context).inflate(R.layout.shuttle_m2_bizmap_map, this, true)
- }else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){
- LayoutInflater.from(context).inflate(R.layout.shuttle_jl_bizmap_map, this, true)
- }else{
- LayoutInflater.from(context).inflate(R.layout.shuttle_jl_bizmap_map, this, true)
- }
- mapBizView = findViewById(R.id.bizMapView)
- }
-
- fun getUI(): IMogoMapUIController? {
- return mapBizView.getUI()
- }
-
- fun onCreate(bundle: Bundle?) {
- mapBizView.onCreate(bundle)
- }
- fun onResume() {
- mapBizView.onResume()
- }
-
- fun onSaveInstanceState(outState: Bundle){
- mapBizView.onSaveInstanceState(outState)
- }
-
- fun onLowMemory() {
- mapBizView.onLowMemory()
- }
-
- fun onPause() {
- mapBizView.onPause()
- }
-
- fun onDestroy() {
- mapBizView.onDestroy()
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java
deleted file mode 100644
index 87c355ceb5..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/SlidePanelView.java
+++ /dev/null
@@ -1,300 +0,0 @@
-package com.mogo.och.shuttle.view;
-
-import android.animation.ObjectAnimator;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.LinearGradient;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.Shader;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.animation.DecelerateInterpolator;
-
-import androidx.annotation.Nullable;
-
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.eagle.core.utilcode.util.ConvertUtils;
-import com.mogo.eagle.core.utilcode.util.ThreadUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.shuttle.R;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-
-import me.jessyan.autosize.AutoSizeConfig;
-import me.jessyan.autosize.utils.AutoSizeUtils;
-
-/**
- * 滑块滑动面板
- *
- * @author tongchenfei
- */
-public class SlidePanelView extends View {
- private static final String TAG = "SlidePanelView";
-
- public SlidePanelView(Context context) {
- this(context, null);
- }
-
- public SlidePanelView(Context context, @Nullable AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public SlidePanelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- TypedArray mTypedArray = context.obtainStyledAttributes(attrs, R.styleable.SlidePanelView);
- textSize = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_textSize, textSize);
- BLOCK_START_X = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_X, BLOCK_START_X);
- BLOCK_START_Y = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_BLOCK_START_Y, BLOCK_START_Y);
- NORMAL_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_LEFT, NORMAL_TEXT_MARGIN_LEFT);
- NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT);
- SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT);
- SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT);
- init();
- }
-
- private final Paint bgPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
-
- private static int textSize = 40;
- private static int BLOCK_START_X = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15);
- private static int BLOCK_START_Y = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),15);
- private static int NORMAL_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),40);
- private static int NORMAL_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60);
- private static int SHORT_TEXT_MARGIN_LEFT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),60);;
- private static int SHORT_TEXT_MARGIN_RIGHT = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(),70);;
-
- private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT;
- private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT;
-
- private OnSlidePanelMoveToEndListener moveToEndListener;
-
- private int blockWidth = 0;
- private int blockOffset = 0;
-
- private float lastX;
- private boolean isToEnd = false;
-
- private static final String STRING_SLIDE_TO_RIGHT = "向右滑动";
- private RectF bgRectF;
- private Bitmap bmBlock;
-
- private final Matrix gradientMatrix = new Matrix();
- private float matrixTranslate;
- private final Rect textRect = new Rect();
- private LinearGradient textGradient;
-
- private ObjectAnimator matrixAnim;
-
- private String blockText = STRING_SLIDE_TO_RIGHT;
- private final Paint.FontMetrics blockTextMetrics = new Paint.FontMetrics();
-
- private static final int GRADIENT_OFFSET = 200;
-
- public void setOnSlidePanelMoveToEndListener(OnSlidePanelMoveToEndListener moveToEndListener) {
- this.moveToEndListener = moveToEndListener;
- }
-
- private void setBlockOffset(int blockOffset) {
- this.blockOffset = blockOffset;
- invalidate();
- }
-
- private void setMatrixTranslate(float matrixTranslate) {
- this.matrixTranslate = matrixTranslate;
- invalidate();
- }
-
- public void setText(String text) {
- this.blockText = text;
- requestLayout();
- invalidate();
- }
-
- private void init() {
- bgRectF = new RectF(0, 0, 0, 0);
- bgPaint.setColor(Color.parseColor("#CC0F1325"));
- bgPaint.setStyle(Paint.Style.FILL);
-
- textPaint.setStyle(Paint.Style.FILL);
- textPaint.setTextSize(textSize);
- textPaint.setTextAlign(Paint.Align.LEFT);
- textGradient = new LinearGradient(-GRADIENT_OFFSET, 0, 0, 0, new int[]{0x33ffffff, 0xffffffff, 0x33ffffff}, null, Shader.TileMode.CLAMP);
- textGradient.setLocalMatrix(gradientMatrix);
- textPaint.setShader(textGradient);
- textPaint.getFontMetrics(blockTextMetrics);
- decodeImage();
- }
-
- private void decodeImage(){
- ThreadUtils.getCpuPool().execute(() -> {
- int size = AutoSizeUtils.dp2px(getContext(), 120);
- BitmapFactory.Options opts = new BitmapFactory.Options();
- opts.inDensity = (int) AutoSizeConfig.getInstance().getInitDensity();
- bmBlock = BitmapFactory.decodeResource(getResources(), R.drawable.bus_base_slide_block,opts);
- bmBlock = Bitmap.createScaledBitmap(bmBlock, size, size, true);
- blockWidth = bmBlock.getWidth();
- UiThreadHandler.post(this::requestLayout,UiThreadHandler.MODE.QUEUE);
- });
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- int widthMode = MeasureSpec.getMode(widthMeasureSpec);
- int heightMode = MeasureSpec.getMode(heightMeasureSpec);
- int widthSize;
- int heightSize;
-
- if (blockText.length() < 5) {
- textMarginLeft = SHORT_TEXT_MARGIN_LEFT;
- textMarginRight = SHORT_TEXT_MARGIN_RIGHT;
- } else {
- textMarginLeft = NORMAL_TEXT_MARGIN_LEFT;
- textMarginRight = NORMAL_TEXT_MARGIN_RIGHT;
- }
- if(bmBlock!=null) {
- if (widthMode == MeasureSpec.AT_MOST) {
- // 宽度根据图片大小,字符串长度,各种间隔确定
- // 高度根据图片大小和上下间隔确定
- textPaint.getTextBounds(blockText, 0, blockText.length(), textRect);
- widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width();
- heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight();
- widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode);
- heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode);
- }
- }
-
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- }
-
- private float textOffset = 0;
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
- if (bgRectF != null){
- bgRectF.left = 0;
- bgRectF.top = 0;
- bgRectF.right = w;
- bgRectF.bottom = h;
- }
-
- if (matrixAnim != null) {
- matrixAnim.cancel();
- }
- textOffset = (getHeight() - blockTextMetrics.ascent - blockTextMetrics.descent) / 2;
- matrixAnim = ObjectAnimator.ofFloat(this, "matrixTranslate", 0, w + GRADIENT_OFFSET).setDuration(2000);
- matrixAnim.setRepeatCount(ValueAnimator.INFINITE);
- matrixAnim.start();
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- if (matrixAnim != null) {
- matrixAnim.start();
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- super.onDetachedFromWindow();
- if (matrixAnim != null) {
- matrixAnim.cancel();
- }
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- float x = event.getX();
- float y = event.getY();
-
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- if (x > BLOCK_START_X + blockOffset && x < blockWidth + BLOCK_START_X + blockOffset && y > BLOCK_START_Y && y < getHeight() - BLOCK_START_Y) {
- isToEnd = false;
- lastX = x;
- }
- break;
- case MotionEvent.ACTION_MOVE:
- if (lastX != 0) {
- blockOffset = (int) (x - lastX);
- if (blockOffset < 0) {
- blockOffset = 0;
- }
- if (blockOffset + BLOCK_START_X + blockWidth > getWidth()) {
- // 超出右边界
- blockOffset = getWidth() - BLOCK_START_X - blockWidth;
- if (!isToEnd) {
- isToEnd = true;
- if (moveToEndListener != null) {
- moveToEndListener.moveToEnd();
- }
- startBlockBackAnim();
- }
- }
- invalidate();
- }
- break;
- case MotionEvent.ACTION_UP:
- // 执行滑块回归动画
- if (!isToEnd) {
- startBlockBackAnim();
- }
- break;
- default:
- break;
- }
-
- return true;
- }
-
- private void startBlockBackAnim() {
- ObjectAnimator blockBackanimator = ObjectAnimator.ofInt(this, "blockOffset", blockOffset, 0);
- blockBackanimator.setInterpolator(new DecelerateInterpolator());
- blockBackanimator.setDuration(1000 * blockOffset / getWidth());
- blockBackanimator.start();
- lastX = 0;
- }
-
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- // 画背景
- canvas.drawRoundRect(bgRectF, (float) getHeight() / 2.0f, (float) getHeight() / 2.0f, bgPaint);
- // 画文字
- gradientMatrix.setTranslate(matrixTranslate, 0);
- textGradient.setLocalMatrix(gradientMatrix);
- canvas.save();
- canvas.drawText(blockText, (float) (blockWidth + BLOCK_START_X + textMarginLeft), (float) textOffset, textPaint);
- canvas.restore();
- if (bmBlock != null) {
- if(bmBlock.getByteCount()>=5*1024*1024){
- OchChainLogManager.writeChainLog("崩溃兜底策略",
- "图片大小监听"+ ConvertUtils.byte2FitMemorySize(bmBlock.getByteCount()),true,OchChainLogManager.EVENT_KEY_INFE_ERROR);
- bmBlock.recycle();
- bmBlock = null;
- blockWidth = 0;
- decodeImage();
- }else {
- // 画滑块
- canvas.drawBitmap(bmBlock, (float) (BLOCK_START_X + blockOffset), (float) BLOCK_START_Y, blockPaint);
- }
- }
-
- }
-
- public interface OnSlidePanelMoveToEndListener {
- /**
- * 滑块滑到了末尾
- */
- void moveToEnd();
- }
-}
diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java
deleted file mode 100644
index 2b0fdfcf6d..0000000000
--- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/view/VerticalDashLineView.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.mogo.och.shuttle.view;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.DashPathEffect;
-import android.graphics.LinearGradient;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Shader;
-import android.util.AttributeSet;
-import android.view.View;
-
-import androidx.annotation.Nullable;
-
-/**
- * 垂直虚线
- *
- * @author tongchenfei
- */
-public class VerticalDashLineView extends View {
- public VerticalDashLineView(Context context) {
- this(context,null);
- }
-
- public VerticalDashLineView(Context context, @Nullable AttributeSet attrs) {
- this(context, attrs,0);
- }
-
- public VerticalDashLineView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init();
- }
-
- private final Paint linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- private final Path dashPath = new Path();
-
- private void init(){
- linePaint.setColor(Color.GREEN);
- linePaint.setStyle(Paint.Style.STROKE);
- linePaint.setStrokeWidth(2);
- linePaint.setPathEffect(new DashPathEffect(new float[]{5, 5}, 0));
- }
-
- public void setGradient(int startColor, int endColor) {
- LinearGradient linearGradient = new LinearGradient(0, 0, getWidth(), getHeight(), startColor, endColor, Shader.TileMode.CLAMP);
- linePaint.setShader(linearGradient);
- invalidate();
- }
-
- public void setColor(int color) {
- linePaint.setShader(null);
- linePaint.setColor(color);
- invalidate();
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- dashPath.reset();
- dashPath.moveTo((float) getWidth()/2, 0);
- dashPath.lineTo((float) getWidth()/2,getHeight());
- canvas.drawPath(dashPath,linePaint);
- }
-}
diff --git a/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml
deleted file mode 100644
index 15f6897792..0000000000
--- a/OCH/shuttle/driver/src/main/res/color/bus_autopilot_text_color_selector.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png
deleted file mode 100644
index 75c26c3d71..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_in_autopilot.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png
deleted file mode 100644
index 927296d690..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_icon_not_in_autopilot.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png
deleted file mode 100644
index ed7b293b90..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_base_slide_block.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png
deleted file mode 100644
index 170f254cd1..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_disable_autopilot_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png
deleted file mode 100644
index 186001352c..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_dot_line.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png
deleted file mode 100644
index be978145dc..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_ic_autopilot.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png
deleted file mode 100644
index 8a065b66dd..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arrived_station.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png
deleted file mode 100644
index 4ed57a0e30..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_arriving_station.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png
deleted file mode 100644
index e0bb24c526..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_icon_not_arrive_station.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png
deleted file mode 100644
index bc9fed952d..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_green_nor.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png
deleted file mode 100644
index 8732508ded..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_light_red_nor.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png
deleted file mode 100644
index bae01408fd..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_lightyellow_nor.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png
deleted file mode 100755
index 3166d20e37..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png
deleted file mode 100755
index 09a9c252da..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_panel_bg_1.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png
deleted file mode 100644
index b32f0693a6..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_line_task_arrow.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png
deleted file mode 100644
index f21a1081f1..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_loading_autopilot_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png
deleted file mode 100755
index fc20dca73c..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_no_line_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png
deleted file mode 100644
index a720a532ea..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_och_dot_line.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png
deleted file mode 100644
index 3c339efde4..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_bg.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png
deleted file mode 100644
index c6717d2518..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_operation_status_select_bg.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png
deleted file mode 100644
index cc2b18083d..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_right_autopilot_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png
deleted file mode 100644
index 3f05565483..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_selected_btn.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png
deleted file mode 100644
index ba41bf3a53..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_setting_btn_bg.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png
deleted file mode 100644
index 370b61de38..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_line_close.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png
deleted file mode 100755
index cf3e5a3778..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_long.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png
deleted file mode 100755
index bdc2725468..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_switch_map_medium.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png
deleted file mode 100644
index 0114bb4f2b..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_unselect_btn.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png
deleted file mode 100644
index 0c8988acb3..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/bus_wrong_autopilot_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png
deleted file mode 100755
index 8acf113151..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/end_maker_icon.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png
deleted file mode 100755
index 6da7b81fe4..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_collect.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png
deleted file mode 100755
index e98738b192..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_normal.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png
deleted file mode 100755
index d3e0107c02..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_ai_select.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png
deleted file mode 100755
index 026c36086f..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_blue_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png
deleted file mode 100755
index 06bebc7013..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_green_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png
deleted file mode 100755
index f4f9b2bca2..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_arrow_grey_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png
deleted file mode 100755
index 22f88301f9..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png
deleted file mode 100755
index c0a978fc2b..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_normal.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png
deleted file mode 100755
index ebacf3a11a..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_bad_case_select.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png
deleted file mode 100755
index fc20dca73c..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_no_bus_line.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png
deleted file mode 100755
index dc4c4f6f0d..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_blue_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png
deleted file mode 100755
index ed3b871338..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_green_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png
deleted file mode 100755
index d43e34bb26..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_point_grey_bus.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png
deleted file mode 100644
index 04580a8f0d..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/icon_station_start_end.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png
deleted file mode 100644
index 0e61996d3f..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/no_order_data.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png
deleted file mode 100644
index 78bfa2687f..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/pingxingjiashi.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png
deleted file mode 100755
index af32c20cb5..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/press_start_status.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png b/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png
deleted file mode 100755
index de9b6c49b7..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/drawable-nodpi/shuttle_write_off_bg.png and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml
deleted file mode 100755
index a1211f3c47..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/ai_collect_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml
deleted file mode 100755
index bc47ce95d7..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bad_case_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml
deleted file mode 100644
index e0b90b9c55..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml
deleted file mode 100644
index 47ca8c7d4b..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
- -
-
-
-
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml
deleted file mode 100644
index 94555d78cc..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml
deleted file mode 100644
index d95e931160..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_checkbox_selector.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml
deleted file mode 100644
index b00fbd8bd6..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml
deleted file mode 100644
index ee555aae15..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml
deleted file mode 100755
index 3a3dc6a292..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml
deleted file mode 100644
index 21b39b7e37..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml
deleted file mode 100644
index 69539ed40f..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_panel_bkg.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml
deleted file mode 100644
index 203971340e..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
deleted file mode 100644
index 272e718cce..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
deleted file mode 100644
index e5faafb27b..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
deleted file mode 100644
index ee8088637c..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
deleted file mode 100644
index e2b482ee5f..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml
deleted file mode 100644
index fe46ef2228..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_station_green_dash_line.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml
deleted file mode 100644
index 376e0a472c..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_station_v_green_dash.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- -
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml
deleted file mode 100644
index 8b066b0ce8..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- -
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml
deleted file mode 100644
index e94992d507..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml
deleted file mode 100644
index b34021d977..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_switch_map_bg.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml
deleted file mode 100644
index 917f3932fe..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_task_time_bg.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml
deleted file mode 100644
index 2ef90e60f7..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml b/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml
deleted file mode 100644
index dea7a88bb6..0000000000
--- a/OCH/shuttle/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml
deleted file mode 100644
index 11bbbc066a..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml
+++ /dev/null
@@ -1,330 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml
deleted file mode 100644
index e5b1c21ffb..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_fragment_och.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_jl_bizmap_map.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_jl_bizmap_map.xml
deleted file mode 100644
index ffb955a311..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_jl_bizmap_map.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_m2_bizmap_map.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_m2_bizmap_map.xml
deleted file mode 100644
index 625b786557..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_m2_bizmap_map.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_no_data_common_view.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_no_data_common_view.xml
deleted file mode 100644
index e27a976e9b..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_no_data_common_view.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_no_line_view.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_no_line_view.xml
deleted file mode 100644
index 6d81e77fc7..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_no_line_view.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_stations_common_item.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_stations_common_item.xml
deleted file mode 100644
index 28078230ca..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_stations_common_item.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line.xml
deleted file mode 100644
index fcd32f3b8f..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_item.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_item.xml
deleted file mode 100644
index ec0a05030b..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_item.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_task_item.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_task_item.xml
deleted file mode 100644
index 07cb6d0eec..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_switch_line_list_task_item.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_test_bar_view.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_test_bar_view.xml
deleted file mode 100644
index a64bdaa4d9..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_test_bar_view.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_wirte_off_view.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_wirte_off_view.xml
deleted file mode 100644
index 60f94aace3..0000000000
--- a/OCH/shuttle/driver/src/main/res/layout/shuttle_wirte_off_view.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/raw/bus_away_passengers.json b/OCH/shuttle/driver/src/main/res/raw/bus_away_passengers.json
deleted file mode 100644
index e76436f2dc..0000000000
--- a/OCH/shuttle/driver/src/main/res/raw/bus_away_passengers.json
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "info": [
- {
- "_id": "cee57b3ae07c4486b0357319368487d7",
- "orderNo": "XB20210422000002",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-22 16:31:58",
- "orderEndTime": "2021-04-26 10:38:13",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-22 16:31:58",
- "updateTime": "2021-04-26 10:38:13",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "ce69b1bcfb9840c6a4563bc6ef947caf",
- "orderNo": "XB20210426000000",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:38:48",
- "orderEndTime": "2021-04-26 10:46:16",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:38:48",
- "updateTime": "2021-04-26 10:46:16",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "cae07b56f41c4e0fa60ab3543ffc258e",
- "orderNo": "XB20210426000001",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:47:05",
- "orderEndTime": "2021-04-26 10:48:07",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:47:05",
- "updateTime": "2021-04-26 10:48:07",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "62bc84afbc434d01b644c74ee406e772",
- "orderNo": "XB20210426000002",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 10:48:22",
- "orderEndTime": "2021-04-26 10:50:32",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 10:48:22",
- "updateTime": "2021-04-26 10:50:32",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- },
- {
- "_id": "fa3214c7a6ec411bb3d6edbc98907423",
- "orderNo": "XB20210426000009",
- "orderType": 10,
- "userName": "董QAD",
- "userPhone": "15631204018",
- "startStationId": 1,
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "endStationId": 2,
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "orderDispatchType": 7,
- "carNum": "京NB010",
- "sn": "F803EB2046PZD00149",
- "orderStartTime": "2021-04-26 19:26:05",
- "orderEndTime": "2021-04-27 14:35:50",
- "arrivedStartStationTime": null,
- "arrivedEndStationTime": null,
- "cityCode": "010",
- "areaCode": "1001",
- "createTime": "2021-04-26 19:26:05",
- "updateTime": "2021-04-27 14:35:50",
- "personNum": 1,
- "travelDistance": 1.2,
- "vehicleColour": null,
- "lastBrandName": null,
- "headImgUrl": null
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/raw/bus_di.mp3 b/OCH/shuttle/driver/src/main/res/raw/bus_di.mp3
deleted file mode 100644
index 15b31ed247..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/raw/bus_di.mp3 and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/raw/bus_order_1.json b/OCH/shuttle/driver/src/main/res/raw/bus_order_1.json
deleted file mode 100644
index 050b67447d..0000000000
--- a/OCH/shuttle/driver/src/main/res/raw/bus_order_1.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "_id": "62bc84afbc434d01b644c74ee406e772",
- "areaCode": "1001",
- "carNum": "京NB010",
- "cityCode": "010",
- "createTime": "Apr 26, 2021 10:48:22 AM",
- "endStation": "顺密路口站",
- "endStationCoordinate": [
- 116.721520973,
- 40.1940181096
- ],
- "endStationId": 2,
- "orderDispatchType": 1,
- "orderNo": "XB20210426000002",
- "orderStartTime": "Apr 26, 2021 10:48:22 AM",
- "orderType": 10,
- "sn": "F803EB2046PZD00149",
- "startStation": "万集东门站",
- "startStationCoordinate": [
- 116.7354579447,
- 40.1974932972
- ],
- "startStationId": 1,
- "travelDistance": 1.2,
- "updateTime": "Apr 26, 2021 10:48:23 AM",
- "userName": "董QAD",
- "userPhone": "15631204018"
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/raw/bus_station_list1.json b/OCH/shuttle/driver/src/main/res/raw/bus_station_list1.json
deleted file mode 100644
index c74daa1174..0000000000
--- a/OCH/shuttle/driver/src/main/res/raw/bus_station_list1.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "site": [
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7354579447,
- 40.1974932972
- ],
- "lon": 116.7354579447,
- "lat": 40.1974932972,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "市政府前街18号",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.729134342,
- 40.1953113732
- ],
- "lon": 116.729134342,
- "lat": 40.1953113732,
- "siteDesc": "市政府前街18号",
- "siteState": 1.0,
- "isCurrentSite": 3.0,
- "siteColor": 2.0,
- "peoples": "0",
- "ifStop": 0.0
- },
- {
- "lineId": 1.0,
- "siteId": 3.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.721520973,
- 40.1940181096
- ],
- "lon": 116.721520973,
- "lat": 40.1940181096,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/raw/bus_station_list2.json b/OCH/shuttle/driver/src/main/res/raw/bus_station_list2.json
deleted file mode 100644
index 48d6782cc3..0000000000
--- a/OCH/shuttle/driver/src/main/res/raw/bus_station_list2.json
+++ /dev/null
@@ -1,109 +0,0 @@
-{
- "code": 0,
- "msg": "",
- "detailMsg": "",
- "result": {
- "site": [
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7354579447,
- 40.1974932972
- ],
- "lon": 116.7354579447,
- "lat": 40.1974932972,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 1.0,
- "siteName": "万集东门站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.7374429112,
- 40.2023987087
- ],
- "lon": 116.7374429112,
- "lat": 40.2023987087,
- "siteDesc": "万集东门站",
- "siteState": 1.0,
- "isCurrentSite": 0.0,
- "siteColor": 0.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.721520973,
- 40.1940181096
- ],
- "lon": 116.721520973,
- "lat": 40.1940181096,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 1.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.723146,
- 40.179637
- ],
- "lon": 116.723146,
- "lat": 40.179637,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- },
- {
- "lineId": 2.0,
- "siteId": 2.0,
- "siteName": "顺密路口站",
- "cityCode": "010",
- "areaCode": "1001",
- "areaName": "顺义区",
- "currentLocation": [
- 116.738835502,
- 40.2023958306
- ],
- "lon": 116.738835502,
- "lat": 40.2023958306,
- "siteDesc": "顺密路口站",
- "siteState": 1.0,
- "isCurrentSite": 1.0,
- "siteColor": 1.0,
- "peoples": "0",
- "ifStop": 1.0
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/raw/end_marker.nt3d b/OCH/shuttle/driver/src/main/res/raw/end_marker.nt3d
deleted file mode 100644
index be6057c547..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/raw/end_marker.nt3d and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/raw/star_marker.nt3d b/OCH/shuttle/driver/src/main/res/raw/star_marker.nt3d
deleted file mode 100644
index c6e546fc31..0000000000
Binary files a/OCH/shuttle/driver/src/main/res/raw/star_marker.nt3d and /dev/null differ
diff --git a/OCH/shuttle/driver/src/main/res/values/attrs.xml b/OCH/shuttle/driver/src/main/res/values/attrs.xml
deleted file mode 100644
index 396db92f74..0000000000
--- a/OCH/shuttle/driver/src/main/res/values/attrs.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/values/colors.xml b/OCH/shuttle/driver/src/main/res/values/colors.xml
deleted file mode 100644
index 90c817402c..0000000000
--- a/OCH/shuttle/driver/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
- #FF1FA7FF
- #FFFFFFFF
- #FFFFFFFF
- #FF51649D
- #7F8299EB
-
- #51649D
- #427d8e
- #1FA7FF
- #3FC281
- #427d8e
- #3FC281
-
- #FFFFFF
- #99FFFFFF
- #FF52BBFF
-
- #BF30334C
- #fff
- #f1f1f1
-
- #7DE261
- #FF2B2B
- #E3BC59
- #FFF
- #256BFF
- #FFFFFF
-
- #DB3137
- #3E77F6
- #323C6F
-
- #2966EC
- #F7151D41
-
- #19FFFFFF
- #FFFFFF
-
- #FFFFA28B
- #FFDA1100
- #FF60FFD3
- #FF006D43
- #FFFFE198
- #FFFF9B00
- #59FFFFFF
-
- #CCB9C3E9
- #4Dffffff
-
- #8E9DD4
- #2B6EFF
- #00FFF8
-
- #FFFFFF
- #4DFFFFFF
- #FFFFFF
- #323C6F
- #CAD6FF
- #BF0E3DBC
- #BF1E2E89
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/values/dimens.xml b/OCH/shuttle/driver/src/main/res/values/dimens.xml
deleted file mode 100644
index fd1ec0cd92..0000000000
--- a/OCH/shuttle/driver/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
- 460dp
- 30dp
-
- 110dp
- 40dp
- 320dp
- 20dp
- 40dp
- 320dp
- 460dp
- 70dp
- 460dp
- 130dp
- 30dp
-
- #FFFFFF
- #4DFFFFFF
- #FFFFFF
- #323C6F
- 10dp
- 20dp
- 200dp
- 52dp
- 65dp
- 20dp
- 50dp
- 20dp
- 38dp
- 33dp
- 368dp
- 76dp
- 60dp
- 276dp
- 112dp
- 22dp
- 36dp
- 50dp
- 822dp
-
- 46dp
- 700dp
- 120dp
- 560dp
- 116dp
- 50dp
-
- 225dp
- 154dp
- 60dp
- 40dp
- 23dp
- 210dp
- 120dp
- 15dp
- 17dp
- 154dp
- 130dp
- 60dp
-
- 27dp
-
-
- 40dp
- 32dp
- 13dp
- 12dp
- 350dp
-
- 30dp
- 618dp
- 754dp
-
- 92dp
-
- 112dp
- 112dp
-
-
-
-
-
- 300dp
- 348dp
- 211dp
- 276dp
-
-
- 220dp
- 98dp
- 159dp
-
- 32dp
- 20dp
- 40dp
- 42dp
-
- 15dp
-
- 20dp
- 36dp
- 28dp
- 36dp
-
- 3dp
- 3dp
- 17dp
- 17dp
-
-
- 300dp
- 270dp
- 30dp
- 24dp
- 24dp
- 1dp
- 30dp
- 23dp
- 30dp
- 146dp
- 20dp
- 23dp
- 30dp
- 23dp
- 26dp
- 34dp
- 20dp
- 80dp
- 3dp
- 34dp
- 20dp
- 28dp
- 27dp
-
-
- 25.6dp
- 20dp
- 20dp
- 64dp
- 16dp
-
- 40dp
- 40dp
- 46dp
- 24dp
-
- 530dp
- 492dp
-
- 20dp
- 20dp
- 70dp
- 130dp
- 93dp
- 150dp
- 70dp
-
- 24dp
- 616dp
- 180dp
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/driver/src/main/res/values/strings.xml b/OCH/shuttle/driver/src/main/res/values/strings.xml
deleted file mode 100644
index 7558acbeec..0000000000
--- a/OCH/shuttle/driver/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-
- 近距视角
- 远距视角
- 启动中…
- 启动成功
- 启动失败
- 自动驾驶
- 任务列表
- 暂无任务
- 选择时间
- 路线:
- 起点:
- 终点:
- 确认
- 选择任务
- 结束任务
- 自动驾驶状态中,不可切换或结束路线
- 当前行程未完成,不可切换路线
- 当前车辆无路线\n请联系运营人员绑定
- 起点:
- 终点:
- 往%1$s方向
- 更换任务成功
- 更换任务失败
-
- 起点:
- 终点:
- 当前站点:
- 下一站:
- 自动驾驶状态为0不可用
- 进站
- 起
- 终
- 班次:
-
- 提示
- 您确认要结束任务吗?
- 确认
- 取消
-
- 暂无任务
- 本站核销成功:%1$d人
- 本站核销成功:0人
-
-
-
- 距离发车时间还有%1$s分钟
-
- 平行驾驶
-
-
-
- 已到达%1$s,带好随身物品,下车请注意安全。
- We are arriving at %1$s ,get off with your belongings
- %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요
-
- 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。
- The next station is %1$s ,please get ready for your arrival
- 전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요
-
- 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。
- Thank you for experiencing the self-driving minibus. See you next time
- 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다
-
-
-
diff --git a/OCH/shuttle/driver/src/main/res/values/style.xml b/OCH/shuttle/driver/src/main/res/values/style.xml
deleted file mode 100644
index 36d7ef0d93..0000000000
--- a/OCH/shuttle/driver/src/main/res/values/style.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
diff --git a/OCH/shuttle/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml b/OCH/shuttle/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml
deleted file mode 100644
index 587a6eccbe..0000000000
--- a/OCH/shuttle/driver/src/main/res/xml/bus_switch_line_list_item_scene.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file