diff --git a/OCH/mogo-och-bus-passenger/.gitignore b/OCH/bus/driver/.gitignore similarity index 100% rename from OCH/mogo-och-bus-passenger/.gitignore rename to OCH/bus/driver/.gitignore diff --git a/OCH/mogo-och-bus/build.gradle b/OCH/bus/driver/build.gradle similarity index 97% rename from OCH/mogo-och-bus/build.gradle rename to OCH/bus/driver/build.gradle index 5c75234649..d861cf0864 100644 --- a/OCH/mogo-och-bus/build.gradle +++ b/OCH/bus/driver/build.gradle @@ -56,7 +56,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter annotationProcessor rootProject.ext.dependencies.aroutercompiler diff --git a/OCH/mogo-och-bus-passenger/consumer-rules.pro b/OCH/bus/driver/consumer-rules.pro similarity index 100% rename from OCH/mogo-och-bus-passenger/consumer-rules.pro rename to OCH/bus/driver/consumer-rules.pro diff --git a/OCH/mogo-och-bus/gradle.properties b/OCH/bus/driver/gradle.properties similarity index 100% rename from OCH/mogo-och-bus/gradle.properties rename to OCH/bus/driver/gradle.properties diff --git a/OCH/mogo-och-bus-passenger/proguard-rules.pro b/OCH/bus/driver/proguard-rules.pro similarity index 100% rename from OCH/mogo-och-bus-passenger/proguard-rules.pro rename to OCH/bus/driver/proguard-rules.pro diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusOrdersResponse.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusOrdersResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusOrdersResponse.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusOrdersResponse.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusRoutesResponse.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusRoutesResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusRoutesResponse.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusRoutesResponse.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java similarity index 90% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java index 5153efce75..4e98870e57 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java @@ -36,6 +36,7 @@ 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.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; @@ -62,7 +63,7 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.biz.provider.LoginService; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener; import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; @@ -185,31 +186,31 @@ public class OrderModel { public void accept(Throwable e) { if (e instanceof UndeliverableException) { e = e.getCause(); - CallerLogger.INSTANCE.d(M_BUS + TAG, "UndeliverableException"); + CallerLogger.d(M_BUS + TAG, "UndeliverableException"); } if ((e instanceof IOException)) {// // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.INSTANCE.d(M_BUS + TAG, "IOException"); + CallerLogger.d(M_BUS + TAG, "IOException"); return; } if (e instanceof InterruptedException) { // fine, some blocking code was interrupted by a dispose call - CallerLogger.INSTANCE.d(M_BUS + TAG, "InterruptedException"); + CallerLogger.d(M_BUS + TAG, "InterruptedException"); return; } if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { // that's likely a bug in the application - CallerLogger.INSTANCE.d(M_BUS + TAG, "NullPointerException or IllegalArgumentException"); + 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.INSTANCE.d(M_BUS + TAG, "IllegalStateException"); + CallerLogger.d(M_BUS + TAG, "IllegalStateException"); Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "Undeliverable exception"); + CallerLogger.d(M_BUS + TAG, "Undeliverable exception"); } }); } @@ -224,10 +225,10 @@ public class OrderModel { @Override public void onMsgReceived(OCHOperationalMessage obj) { if (obj == null){ - CallerLogger.INSTANCE.d(M_BUS + TAG, "onMsgReceived = null"); + CallerLogger.d(M_BUS + TAG, "onMsgReceived = null"); return; } - CallerLogger.INSTANCE.i(M_BUS + TAG,"onMsgReceived = "+obj.getMessage()); + CallerLogger.i(M_BUS + TAG,"onMsgReceived = "+obj.getMessage()); OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox(DateTimeUtil.getCurrentTimeStamp(), obj.getMessage(),OCHSocketMessageManager.OPERATION_SYSTEM); } @@ -243,7 +244,7 @@ public class OrderModel { @Override public void onMsgReceived(WriteOffPassenger passenger) { //进行播报 - CallerLogger.INSTANCE.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger)); + CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger)); if (passenger != null && passenger.passengerSize == 0) return; if (mPassengerCallback != null){ mPassengerCallback.playPassenger(passenger); @@ -380,9 +381,9 @@ public class OrderModel { private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { @Override public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { - BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage); + BusAnalyticsManager.INSTANCE.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage); if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){ - CallerLogger.INSTANCE.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); + CallerLogger.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); mADASStatusCallback.onStartAdasFailure(); } } @@ -408,7 +409,7 @@ public class OrderModel { private void judgeArrivedStation(MogoLocation location) { if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "到站数组越界"); + CallerLogger.e(M_BUS + TAG, "到站数组越界"); return; } BusStationBean upcomingStation = stationList.get(backgroundCurrentStationIndex + 1); @@ -420,7 +421,7 @@ public class OrderModel { location.getLongitude(), location.getLatitude()); if (distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE) {//1、当前位置和站点围栏15m内 - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance + CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance + " to " + upcomingStation.getName()); //2、开始计算当前位置和站点的向量角度 < 90度 未经过 >90度 经过 @@ -431,11 +432,11 @@ public class OrderModel { startLat, (int) location.getHeading()); - CallerLogger.INSTANCE.d(M_BUS + TAG, "judgeArrivedStation() stationAngle = " + stationAngle); + CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() stationAngle = " + stationAngle); //3、刚过站且过站距离在15m内, 提交到站 if (stationAngle > 90 && distance <= BusConst.ARRIVE_AT_END_STATION_DISTANCE){ - CallerLogger.INSTANCE.d(M_BUS + TAG, "judgeArrivedStation() = 刚过站且在15m内"); + CallerLogger.d(M_BUS + TAG, "judgeArrivedStation() = 刚过站且在15m内"); onArriveAt(null); //无自动驾驶到站信息传null } @@ -447,7 +448,7 @@ public class OrderModel { * 查询小巴路线 */ public void queryBusRoutes() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "查询小巴路线"); + CallerLogger.d(M_BUS + TAG, "查询小巴路线"); OrderServiceManager.queryBusRoutes(mContext, new OchCommonServiceCallback() { @Override public void onSuccess(BusRoutesResponse data) { @@ -456,7 +457,7 @@ public class OrderModel { || data.getResult().getSites() == null || data.getResult().getSites().isEmpty()) { //当为空时,显示无绑定路线图 - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); + CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据:空 "); if (refreshBusStationsCallback != null) { refreshBusStationsCallback.updateEmptyUi(); } @@ -466,7 +467,7 @@ public class OrderModel { removeTipRunnables(); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data); + CallerLogger.d(M_BUS + TAG, "获取到小巴路线数据: " + data); updateBusStatus(data.getResult()); } @@ -549,12 +550,12 @@ public class OrderModel { * 重置路线站点状态--结束路线,当前路线恢复到始发站 */ public void abortTask() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "结束当前路线abortTask"); + CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask"); OrderServiceManager.abortTask(mContext, currentTaskId , new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "abortTask success: " + o); + CallerLogger.d(M_BUS + TAG, "abortTask success: " + o); if (o.code == 0) { // 重置成功 endOrAbortTaskSuccess(); clearBusStationDatas(); @@ -647,20 +648,25 @@ public class OrderModel { */ private void startAutopilot(boolean isRestart, int leaveIndex) { + + // 非自驾状态---->预写日志----> 启动自驾 ---> 自驾启动成功 ----> 上报日志 + //  自驾状态---->启动自驾 ---> 自驾启动成功 + //根据开关和后台是否发布轨迹启动自驾 if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(busRoutesResult.csvFileUrl) && TextUtils.isEmpty(busRoutesResult.csvFileUrlDPQP)){ ToastUtils.showLong("无发布轨迹, 请发布后重试"); - CallerLogger.INSTANCE.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + + CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand + "busRoutesResult.csvFileUrl = "+ busRoutesResult.csvFileUrl + "busRoutesResult.csvFileUrlDPQP = "+busRoutesResult.csvFileUrlDPQP); return; } - CallerLogger.INSTANCE.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + + CallerLogger.e(M_BUS + TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand); + if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + ", 请稍候重试"); @@ -668,19 +674,28 @@ public class OrderModel { return; } + String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long)busRoutesResult.getLineId()); + if(!StringUtils.isEmpty(resion)){ + ToastUtils.showShort(resion); + return; + } + firstStartAutopilot++; - triggerStartServiceEvent(isRestart, false); + if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + // 预写日志 + triggerStartServiceEvent(isRestart, false); + } AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex); if (null == parameters) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty."); + CallerLogger.e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty."); return; } CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + CallerLogger.d(M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + "isRestart = " + isRestart); @@ -694,14 +709,14 @@ public class OrderModel { */ private void arriveSiteStation() { if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次 - CallerLogger.INSTANCE.e( M_BUS + TAG, "数组越界" ); + 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.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); + CallerLogger.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); OrderServiceManager.arriveSiteStation(mContext, stationList.get(arrivedStationIndex).getSeq(), @@ -710,7 +725,7 @@ public class OrderModel { new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); + CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); if (o != null && o.code == 0){ queryBusRoutes(); isArrivedStation = true; @@ -766,7 +781,7 @@ public class OrderModel { * 离站上报 */ public void leaveStation() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex); + CallerLogger.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex); String nextStationName = ""; String nextStationNameKr = ""; MogoLocation nextStationPoint = new MogoLocation(); @@ -792,7 +807,7 @@ public class OrderModel { @Override public void onSuccess(BaseData o) { isArrivedStation = false; - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); + CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); //需要更改当前站和下一站的状态 然后渲染 //startOrStopQueryPassengerWriteOff(false); queryBusRoutes(); @@ -841,7 +856,7 @@ public class OrderModel { FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; //是否强制绘制引导线 CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);// 同步给乘客屏 CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);//是否自动启动自驾 - CallerLogger.INSTANCE.d(M_BUS + TAG, "美化模式-ignore:置为false"); + CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为false"); } } @@ -876,7 +891,7 @@ public class OrderModel { for (int i = 0; i < stationList.size(); i++) { BusStationBean s = stationList.get(i); - CallerLogger.INSTANCE.d(M_BUS + "updateBusStationsStatus--", + CallerLogger.d(M_BUS + "updateBusStationsStatus--", "Index=" + i + " ,name = " + s.getName() + " ," + s.isLeaving() + "," + s.getDrivingStatus()); // 是否正在开往下一站 @@ -909,7 +924,7 @@ public class OrderModel { BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); - CallerLogger.INSTANCE.d(M_BUS + TAG, + CallerLogger.d(M_BUS + TAG, "行程日志-STATION_STATUS_STOPPED-backgroundCurrentStationIndex=" + backgroundCurrentStationIndex + " isLeaving()=" + currentStation.isLeaving()); @@ -919,11 +934,11 @@ public class OrderModel { && backgroundCurrentStationIndex <= stationList.size() - 1)) {//行驶过程中设置美化 if (stationList.get(backgroundCurrentStationIndex).isLeaving()) { startBeautificationMode(); - CallerLogger.INSTANCE.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)"); + CallerLogger.d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)"); } else if (backgroundCurrentStationIndex > 0 && backgroundCurrentStationIndex < stationList.size() - 1) { //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - CallerLogger.INSTANCE.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)"); + CallerLogger.d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)"); clearStartAutopilotTag(); } else { closeBeautificationMode(); @@ -1034,7 +1049,7 @@ public class OrderModel { * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 */ public void restartAutopilot() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation); + CallerLogger.d(M_BUS + TAG, "行程日志-重启自动驾驶===" + isGoingToNextStation); //只去启动自动驾驶,不再去上报离站 startAutopilot(firstStartAutopilot >= 1, -1); } @@ -1049,10 +1064,10 @@ public class OrderModel { private void travelOver() { if (backgroundCurrentStationIndex >= stationList.size()) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "travel over index out of station list"); + CallerLogger.e(M_BUS + TAG, "travel over index out of station list"); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "单程结束===="); + CallerLogger.d(M_BUS + TAG, "单程结束===="); CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); setTrajectoryStation(null,null,-1L); endTask(); @@ -1062,12 +1077,12 @@ public class OrderModel { * task正常结束 */ private void endTask() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "任务正常走完endTask()"); + CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()"); OrderServiceManager.endTask(mContext, currentTaskId , new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "endTask success: " + o); + CallerLogger.d(M_BUS + TAG, "endTask success: " + o); if (o.code == 0) { endOrAbortTaskSuccess(); clearBusStationDatas(); @@ -1109,7 +1124,7 @@ public class OrderModel { */ public void onArriveAt(MessagePad.ArrivalNotification data) { if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束"); + CallerLogger.e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束"); return; } @@ -1125,19 +1140,19 @@ public class OrderModel { String arriveLat = NumberFormatUtil.cutOutNumber(arriveStation.getLat(), 5); String arriveLon = NumberFormatUtil.cutOutNumber(arriveStation.getLon(), 5); - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-dataLatitude = "+ latitude+ + CallerLogger.d(M_BUS + TAG, "行程日志-dataLatitude = "+ latitude+ ", dataLongitude = " + longitude + "; arriveLat = " + arriveLat + ", arriveLon = " +arriveLon); if (!latitude.equals(arriveLat) || !longitude.equals(arriveLon)) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致"); + CallerLogger.e(M_BUS + TAG, "行程日志-到站拦截,到站坐标不一致"); return; } } if (isArrivedStation) return; - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex=" + CallerLogger.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex=" + backgroundCurrentStationIndex); arriveSiteStation(); @@ -1169,7 +1184,7 @@ public class OrderModel { } public void startOrStopOrderLoop(boolean start) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "startOrStopOrderLoop() " + start); + CallerLogger.d(M_BUS + TAG, "startOrStopOrderLoop() " + start); if (start) { BusModelLoopManager.getInstance().startHeartbeatLoop(); } else { @@ -1190,7 +1205,7 @@ public class OrderModel { } BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - BusAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestart, send, + BusAnalyticsManager.INSTANCE.triggerStartAutopilotEvent(isRestart, send, currentStation.getName(), nextStation.getName(), currentLineId); } @@ -1200,7 +1215,7 @@ public class OrderModel { } BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - BusAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( + BusAnalyticsManager.INSTANCE.triggerUnableStartAPReasonEvent( currentStation.getName(), nextStation.getName(), currentLineId, OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); } @@ -1220,15 +1235,15 @@ public class OrderModel { AutopilotControlParameters parameters = initAutopilotControlParameters(-1); if (null == parameters) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "AutopilotControlParameters is empty."); + CallerLogger.e(M_BUS + TAG, "AutopilotControlParameters is empty."); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "AutopilotControlParameters is update."); + CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is update."); CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); } private void clearAutopilotControlParameters() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "AutopilotControlParameters is clear."); + CallerLogger.d(M_BUS + TAG, "AutopilotControlParameters is clear."); CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); } @@ -1238,14 +1253,14 @@ public class OrderModel { if (leaveIndex < 0) { if (backgroundCurrentStationIndex + 1 > stationList.size() - 1 || !isGoingToNextStation) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "行程日志-mismatch condition1."); + 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.INSTANCE.e(M_BUS + TAG, "行程日志-mismatch condition2."); + CallerLogger.e(M_BUS + TAG, "行程日志-mismatch condition2."); return null; } currentStation = stationList.get(leaveIndex); @@ -1264,7 +1279,7 @@ public class OrderModel { parameters.vehicleType = VEHICLE_TYPE; if (parameters.autoPilotLine == null) { parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine( - busRoutesResult.getLineId(), + busRoutesResult.getLineId(), busRoutesResult.getName(), busRoutesResult.csvFileUrl, busRoutesResult.csvFileMd5, busRoutesResult.txtFileUrl, busRoutesResult.txtFileMd5, busRoutesResult.contrailSaveTime, busRoutesResult.carModel, diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/IBascApiService.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/IBascApiService.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/IBascApiService.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/IBascApiService.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/ISAASApiService.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/ISAASApiService.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/ISAASApiService.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/ISAASApiService.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchLoginServiceApi.java diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java b/OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java similarity index 100% rename from OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java rename to OCH/bus/driver/src/jinlvvan/java/com/mogo/och/bus/net/login/OchSAASLoginServiceApi.java diff --git a/OCH/mogo-och-bus/src/main/AndroidManifest.xml b/OCH/bus/driver/src/main/AndroidManifest.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/AndroidManifest.xml rename to OCH/bus/driver/src/main/AndroidManifest.xml diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java similarity index 91% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java index e8f3e0f280..3aa7c64360 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/BusProvider.java @@ -37,7 +37,7 @@ public class BusProvider implements IMogoOCH { * 进入鹰眼模式,设置手势缩放地图失效 */ private void stepIntoVrMode() { - CallerLogger.INSTANCE.d(M_BUS + TAG, "进入vr模式"); + CallerLogger.d(M_BUS + TAG, "进入vr模式"); CallerMoGoUiSettingManager.INSTANCE.stepInNightMode();//夜间模式 状态栏字体颜色变黑 } @@ -48,7 +48,7 @@ public class BusProvider implements IMogoOCH { private void showFragment() { FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); if (busFragment == null) { - CallerLogger.INSTANCE.d(TAG, "准备add fragment======"); + CallerLogger.d(TAG, "准备add fragment======"); Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(BusFragment.TAG); if (fragmentByTag instanceof BusFragment) { busFragment = (BusFragment) fragmentByTag; @@ -60,13 +60,13 @@ public class BusProvider implements IMogoOCH { } return; } - CallerLogger.INSTANCE.d(TAG, "准备show fragment"); + CallerLogger.d(TAG, "准备show fragment"); supportFragmentManager.beginTransaction().show(busFragment).commitAllowingStateLoss(); } private void hideFragment() { if (busFragment != null) { - CallerLogger.INSTANCE.d(TAG, "准备hide fragment"); + CallerLogger.d(TAG, "准备hide fragment"); activity.getSupportFragmentManager().beginTransaction().hide(busFragment).commitAllowingStateLoss(); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/IMogoOCH.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/IMogoOCH.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/IMogoOCH.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/IMogoOCH.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusOperationStatusRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusOrderBean.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineStationsRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLineTaskResponse.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryLinesResponse.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusQueryWriteOffPassengersResponse.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusResetLineStatusRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusRoutePlanningUpdateReqBean.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/BusWriteOffPassengersQueryRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/CarHeartbeatReqBean.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersRequest.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/QueryLeaveAwayPassengersResponse.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/bean/WriteOffPassenger.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusADASStatusCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/callback/ISlidePannelHideCallback.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/constant/BusConst.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java similarity index 97% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index e0775f569f..665402c4df 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -142,11 +142,11 @@ public abstract class BaseBusTabFragment if (controller != null) { //切换地图的远近视图 if (controller.getCurrentMapVisualAngle().isLongSight()) { - Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(true); + //Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(true); controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium); } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { - Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(false); + //Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(false); controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long); } else { @@ -586,6 +586,7 @@ public abstract class BaseBusTabFragment */ private View busTestBar; private TextView lineIdTV; + private TextView lineNameTV; private TextView trajMd5TV; private TextView stopMd5TV; private TextView trajMd5DPQPTV; @@ -595,6 +596,7 @@ public abstract class BaseBusTabFragment 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); @@ -606,6 +608,7 @@ public abstract class BaseBusTabFragment } 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)); @@ -618,6 +621,7 @@ public abstract class BaseBusTabFragment 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)); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java similarity index 96% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index cd80f7b6e0..48ba4e86b4 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -107,7 +107,7 @@ public class BusFragment extends BaseBusTabFragment groupStationsPanel = findViewById(R.id.group_stations_panel); noDataView = findViewById(R.id.no_line_data_view); - CallerLogger.INSTANCE.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState()); + CallerLogger.d(M_BUS + TAG, "initView: " + CallerAutoPilotStatusListenerManager.INSTANCE.getState()); // 初始化的时候设置 UI 按钮状态 showAutopilotBiz(); @@ -125,10 +125,10 @@ public class BusFragment extends BaseBusTabFragment @Subscribe(threadMode = ThreadMode.MAIN) public void changeOverview(EventLogout eventLogout){ if (eventLogout.getMessgae() == EventLogout.LOGOUT_TYPE){ - CallerLogger.INSTANCE.d(M_BUS + TAG,"changeOverview Event消息去登出"); + CallerLogger.d(M_BUS + TAG,"changeOverview Event消息去登出"); mPresenter.logout(); }else if (eventLogout.getMessgae() == EventLogout.SHOW_QR_TYPE){ //显示二维码 - CallerLogger.INSTANCE.d(M_BUS + TAG,"changeOverview Event qrcode"); + CallerLogger.d(M_BUS + TAG,"changeOverview Event qrcode"); String qrUrl = String.format(FunctionBuildConfig.urlJson.getBindDriverQRUrl(), MoGoAiCloudClientConfig.getInstance().getSn()); Bitmap bmQr = QRUtilsKt.createQRCodeWithPicture( @@ -141,7 +141,7 @@ public class BusFragment extends BaseBusTabFragment .cancelStr(getString(R.string.qr_cancel)) .qrBm(bmQr).build(getContext()).show(); }else { - CallerLogger.INSTANCE.d(M_BUS + TAG,"bmQr = null "); + CallerLogger.d(M_BUS + TAG,"bmQr = null "); } } } @@ -443,7 +443,7 @@ public class BusFragment extends BaseBusTabFragment } public void clearBusStationsMarkers(){ - CallerLogger.INSTANCE.d(M_BUS + TAG,"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); @@ -454,7 +454,7 @@ public class BusFragment extends BaseBusTabFragment } //清除鹰眼右下角小地图轨迹 - CallerLogger.INSTANCE.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->"); + CallerLogger.d(SceneConstant.M_BUS, "clearBusStationsMarkers --------->"); smallMapView.clearPolyline(); } @@ -478,7 +478,7 @@ public class BusFragment extends BaseBusTabFragment private void setOrRemoveMapMaker(boolean isAdd, String uuid, double lat, double longi,int resourceId) { if (isAdd) { Runnable setMapMarkerRunnable = () -> { - CallerLogger.INSTANCE.d(M_BUS + "setMapMaker= "+Thread.currentThread().getName(), + 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) @@ -511,7 +511,7 @@ public class BusFragment extends BaseBusTabFragment }else { Runnable removeMapMarkerRunnable = () -> { - CallerLogger.INSTANCE.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), + CallerLogger.d(M_BUS + "RemoveMapMaker="+Thread.currentThread().getName(), uuid+"=latitude="+lat+",longitude="+longi); IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); if (overlayManager != null) { diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/model/BusLineModel.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/net/login/LoginBusImpl.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java similarity index 89% rename from OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java index 3c8415d86c..d85b685282 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java @@ -37,7 +37,7 @@ public class BusModelLoopManager { // if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) { // return; // } -// CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()"); +// CallerLogger.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()"); // mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500, // LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS) // .map((aLong -> aLong + 1)) @@ -48,7 +48,7 @@ public class BusModelLoopManager { // public void stopQueryPassengerWriteOffLoop() { // if (mQueryPassengerDisposable != null) { -// CallerLogger.INSTANCE.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()"); +// CallerLogger.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()"); // mQueryPassengerDisposable.dispose(); // mQueryPassengerDisposable = null; // } @@ -58,7 +58,7 @@ public class BusModelLoopManager { if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { return; } - CallerLogger.INSTANCE.i(M_BUS + TAG, "startHeartbeatLoop()"); + CallerLogger.i(M_BUS + TAG, "startHeartbeatLoop()"); mHeartbeatDisposable = Observable.interval(BusConst.LOOP_DELAY, BusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) @@ -69,7 +69,7 @@ public class BusModelLoopManager { public void stopHeartbeatLoop() { if (mHeartbeatDisposable != null) { - CallerLogger.INSTANCE.i(M_BUS + TAG, "stopHeartbeatLoop()"); + CallerLogger.i(M_BUS + TAG, "stopHeartbeatLoop()"); mHeartbeatDisposable.dispose(); mHeartbeatDisposable = null; } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java similarity index 94% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 34209e95b3..912d062d9d 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -31,7 +31,7 @@ import com.mogo.och.bus.util.BusTrajectoryManager; import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.mogo.och.common.module.manager.OCHAdasAbilityManager; +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; import com.mogo.och.common.module.voice.VoiceNotice; import java.util.ArrayList; @@ -39,6 +39,7 @@ import java.util.List; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; +import system_master.SsmInfo; import system_master.SystemStatusInfo; /** @@ -122,7 +123,7 @@ public class BusPresenter extends Presenter }else { mCurrentStation = arrivingOrArrivedIndex -1; } - CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation); + CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation); if (mView != null) { runOnUIThread(() -> mView.updateBusTaskStatus(lineName,lineTime, stationList, arrivingOrArrivedIndex, isArrived)); @@ -149,7 +150,7 @@ public class BusPresenter extends Presenter @Override public void onAutopilotArriveAtStation(MessagePad.ArrivalNotification arrivalNotification) { - CallerLogger.INSTANCE.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive"); + CallerLogger.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive"); OrderModel.getInstance().onArriveAt(arrivalNotification); } @@ -170,7 +171,7 @@ public class BusPresenter extends Presenter && OrderModel.getInstance().isGoingToNextStation() ) ) { - CallerLogger.INSTANCE.d(M_BUS + "BusOrderModel=", "有美化功能"); + CallerLogger.d(M_BUS + "BusOrderModel=", "有美化功能"); return; } // 改变UI自动驾驶状态 @@ -248,9 +249,14 @@ public class BusPresenter extends Presenter public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { } + + @Override + public void onSystemStatus(@NonNull SsmInfo.SsmStatusInf statusInf) { + } + @Override public void loginSuccess(DriverStatusQueryRespBean data) { - CallerLogger.INSTANCE.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); + CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ OrderModel.getInstance().startOrStopOrderLoop(true); OrderModel.getInstance().queryBusRoutes(); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java similarity index 93% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java index b9ffc6d492..3884897d04 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/receiver/TestBusBroadcastReceiver.java @@ -25,7 +25,7 @@ public class TestBusBroadcastReceiver extends BroadcastReceiver { try { this.mContext = context; int sceneType = intent.getIntExtra(BusConst.BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY, 0); - CallerLogger.INSTANCE.d(M_BUS + TAG, "sceneType:" + sceneType); + CallerLogger.d(M_BUS + TAG, "sceneType:" + sceneType); // 分发场景 dispatchSceneTest(sceneType); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusStationCommonItem.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/OpenItemAnimator.java diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BDRouteDataTestUtils.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BDRouteDataTestUtils.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BDRouteDataTestUtils.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BDRouteDataTestUtils.java 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 new file mode 100644 index 0000000000..d43c83be61 --- /dev/null +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.kt @@ -0,0 +1,108 @@ +package com.mogo.och.bus.util + +import android.text.TextUtils +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.debug.DebugConfig +import com.mogo.commons.utils.MogoAnalyticUtils +import com.mogo.eagle.core.data.app.AppConfigInfo +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +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.DateTimeUtils +import com.mogo.och.bus.constant.BusConst +import com.mogo.och.common.module.utils.RxUtils +import io.reactivex.disposables.Disposable + +/** + * OCH Bus埋点工具 + * + * Created on 2022/3/24 + */ +object BusAnalyticsManager { + + private var mStartAutopilotKey: String? = null + private val mStartAutopilotParams = HashMap() + + var startAutopiloTimeOut: Disposable? = null + + fun triggerStartAutopilotFailureEventByAdas(failCode: String, failMsg: String) { + RxUtils.disposeSubscribe(startAutopiloTimeOut) + triggerStartAutopilotFailureEvent(failCode, failMsg) + } + + private fun clearStartAutopilotParams() { + mStartAutopilotParams.clear() + } + + private fun triggerStartAutopilotFailureEvent(failCode: String, failMsg: String) { + if (mStartAutopilotParams.isEmpty()) return + CallerLogger.e(SceneConstant.M_BUS + "triggerStartAutopilotFailureEvent", failMsg) + if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { + mStartAutopilotParams[BusConst.EVENT_PARAM_START_FAILURE_CODE] = failCode + mStartAutopilotParams[BusConst.EVENT_PARAM_START_FAILURE_MSG] = failMsg + } + mStartAutopilotParams[BusConst.EVENT_PARAM_START_RESULT] = + CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING + MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) + clearStartAutopilotParams() //清空参数数据,防止误传 + } + + /** + * 触发'开启自动驾驶'埋点流程 + * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 + * @param restart false(点击'滑动出发'启动)/true(接管后点击'自动驾驶'按钮启动) + * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) + */ + fun triggerStartAutopilotEvent( + restart: Boolean, send: Boolean, startName: String, endName: String, lineId: Int + ) { + mStartAutopilotKey = if (restart) BusConst.EVENT_KEY_RESTART_AUTOPILOT else BusConst.EVENT_KEY_START_SERVICE + if (send) { + if (mStartAutopilotParams.isEmpty()) return + // 开启成功,上报埋点 + mStartAutopilotParams[BusConst.EVENT_PARAM_START_FAILURE_CODE] = "" + mStartAutopilotParams[BusConst.EVENT_PARAM_START_FAILURE_MSG] = "" + RxUtils.disposeSubscribe(startAutopiloTimeOut) + mStartAutopilotParams[BusConst.EVENT_PARAM_START_RESULT] = true + MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams) + clearStartAutopilotParams() //清空参数数据,防止误传 + } else { + val plateNum = AppConfigInfo.plateNumber + mStartAutopilotParams[BusConst.EVENT_PARAM_SN] = MoGoAiCloudClientConfig.getInstance().sn + mStartAutopilotParams[BusConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + mStartAutopilotParams[BusConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE + mStartAutopilotParams[BusConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + mStartAutopilotParams[BusConst.EVENT_PARAM_START_NAME] = startName + mStartAutopilotParams[BusConst.EVENT_PARAM_END_NAME] = endName + mStartAutopilotParams[BusConst.EVENT_PARAM_LINE_ID] = lineId + startAutopiloTimeOut = RxUtils.createSubscribeOnOwnThread(BusConst.LOOP_PERIOD_15S) { + // 15s内未开启,上报失败埋点 + triggerStartAutopilotFailureEvent("", "15s后app等待超时") + } + } + } + + /** + * 触发"无法开启自驾已知异常"埋点 + * @param startName + * @param endName + * @param lineId + */ + fun triggerUnableStartAPReasonEvent( + startName: String, endName: String, lineId: Int, + reason: String + ) { + val plateNum = AppConfigInfo.plateNumber + val params = HashMap() + params[BusConst.EVENT_PARAM_SN] = MoGoAiCloudClientConfig.getInstance().sn + params[BusConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + params[BusConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE + params[BusConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + params[BusConst.EVENT_PARAM_START_NAME] = startName + params[BusConst.EVENT_PARAM_END_NAME] = endName + params[BusConst.EVENT_PARAM_LINE_ID] = lineId + params[BusConst.EVENT_PARAM_UNABLE_START_REASON] = reason + MogoAnalyticUtils.track(BusConst.EVENT_KEY_AP_UNABLE_START_REASON, params) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusSendTripInfoManager.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java similarity index 74% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java index 6cf6eb90c4..6c9165e94e 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java @@ -41,7 +41,7 @@ public class BusTrajectoryManager { private Disposable mSendReqDisposable = null; public BusTrajectoryManager() { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, + mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "", "", "", "", "", 0, "", "", "", "", "", 0); } @@ -54,11 +54,11 @@ public class BusTrajectoryManager { if (LoginStatusManager.isLogin() && routesResult != null && OrderModel.getInstance().getCurrentStationIndex() == 0 && !OrderModel.getInstance().isGoingToNextStation()) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "syncTrajectoryInfo() start."); + CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start."); startTrajReqLoop(); } else { // 无路线信息or当前未在始发站 - CallerLogger.INSTANCE.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); + CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); stopTrajReqLoop(); } } @@ -71,40 +71,45 @@ public class BusTrajectoryManager { if (guardianInfo == null || !guardianInfo.hasCode()) return; if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) { // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - CallerLogger.INSTANCE.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载"); + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹开始下载"); // ToastUtils.showShort("轨迹开始下载"); stopTrajReqLoop(); } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) { // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - CallerLogger.INSTANCE.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功"); + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载成功"); // ToastUtils.showShort("轨迹下载成功"); stopTrajReqLoop(); } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) { // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - CallerLogger.INSTANCE.d(M_BUS + TAG, "onAutopilotGuardian() " + + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地无对应轨迹"); // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹"); } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) { // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - CallerLogger.INSTANCE.d(M_BUS + TAG, "onAutopilotGuardian() " + + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地有对应轨迹,认为成功"); // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功"); } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) { // 5. 轨迹管理_轨迹下载超时 - CallerLogger.INSTANCE.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时"); + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() 轨迹下载超时"); // ToastUtils.showShort("轨迹下载超时"); + } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) { + // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 + CallerLogger.d(M_BUS + TAG, "onAutopilotGuardian() ssm ready,再次发起下载"); + syncTrajectoryInfo(); } } private void setupAutoPilotLine() { BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); if (routesResult == null) { - CallerLogger.INSTANCE.e(M_BUS + TAG, + CallerLogger.e(M_BUS + TAG, "setupAutoPilotLine(): routesResult is null."); return; } else { if (mAutoPilotLine == null) { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(routesResult.getLineId(), + mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine( + routesResult.getLineId(), routesResult.getName(), routesResult.csvFileUrl, routesResult.csvFileMd5, routesResult.txtFileUrl, routesResult.txtFileMd5, routesResult.contrailSaveTime, routesResult.carModel, @@ -113,6 +118,7 @@ public class BusTrajectoryManager { routesResult.contrailSaveTimeDPQP); } else { mAutoPilotLine.setLineId(routesResult.getLineId()); + mAutoPilotLine.setLineName(routesResult.getName()); mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl); mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5); mAutoPilotLine.setStopUrl(routesResult.txtFileUrl); @@ -131,6 +137,7 @@ public class BusTrajectoryManager { private void clearAutoPilotLine() { if (mAutoPilotLine == null) return; mAutoPilotLine.setLineId(-1); + mAutoPilotLine.setLineName(""); mAutoPilotLine.setTrajUrl(""); mAutoPilotLine.setTrajMd5(""); mAutoPilotLine.setStopUrl(""); @@ -148,7 +155,7 @@ public class BusTrajectoryManager { if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "startTrajReqLoop()"); + CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()"); setupAutoPilotLine(); mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY, BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) @@ -160,14 +167,14 @@ public class BusTrajectoryManager { stopTrajReqLoop(); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); + CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); sendTrajectoryReq(); }); } public void stopTrajReqLoop() { if (mSendReqDisposable != null) { - CallerLogger.INSTANCE.d(M_BUS + TAG, "stopTrajReqLoop()"); + CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()"); mSendReqDisposable.dispose(); mSendReqDisposable = null; clearAutoPilotLine(); @@ -176,31 +183,12 @@ public class BusTrajectoryManager { private void sendTrajectoryReq() { if (mAutoPilotLine == null) { - CallerLogger.INSTANCE.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); + CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); return; } - // TODO: 2022/6/24 - // test1 -// mAutoPilotLine.setLineId(148); -// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/e27c20c2da32481021d934c3ef084536/traj_148.csv"); -// mAutoPilotLine.setTrajMd5("e27c20c2da32481021d934c3ef084536"); -// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/6224c9dd2c0e2bd990c6482c0464de45/stop_148.txt"); -// mAutoPilotLine.setStopMd5("6224c9dd2c0e2bd990c6482c0464de45"); -// mAutoPilotLine.setTimestamp(1654596000000L); //20220607 18:00 -// mAutoPilotLine.setVehicleModel("红旗H9"); - - // test2 -// mAutoPilotLine.setLineId(148); -// mAutoPilotLine.setTrajUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/8654497cf918be461a59c7ad8e22920d/traj_148.csv"); -// mAutoPilotLine.setTrajMd5("8654497cf918be461a59c7ad8e22920d"); -// mAutoPilotLine.setStopUrl("http://file-qa.zhidaozhixing.com/fileServer/upload/downloadFileStream?key=fileServer/online_car_hailing/1bb098b244922649bf3e7bada0d3950f/stop_148.txt"); -// mAutoPilotLine.setStopMd5("1bb098b244922649bf3e7bada0d3950f"); -// mAutoPilotLine.setTimestamp(1654761600000L); //20220609 16:00 -// mAutoPilotLine.setVehicleModel("红旗H9"); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine); - CallerLogger.INSTANCE.d(M_BUS + TAG, "sendTrajectoryReq(): " + CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): " + GsonUtils.toJson(mAutoPilotLine)); } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/BusArcView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BusArcView.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/BusArcView.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BusArcView.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/view/NoTouchConstraintLayout.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/SlidePanelView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/SlidePanelView.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/view/SlidePanelView.java diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java similarity index 100% rename from OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java rename to OCH/bus/driver/src/main/java/com/mogo/och/bus/view/VerticalDashLineView.java diff --git a/OCH/mogo-och-bus/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/color/bus_autopilot_text_color_selector.xml rename to OCH/bus/driver/src/main/res/color/bus_autopilot_text_color_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_slide_block.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_slide_block.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_base_slide_block.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_base_slide_block.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_dot_line.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_dot_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_dot_line.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_dot_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_ic_autopilot.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_ic_autopilot.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_light_green_nor.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_light_green_nor.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_light_red_nor.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_light_red_nor.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_panel_bg.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_panel_bg.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_task_arrow.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_task_arrow.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_no_line_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_no_line_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_och_dot_line.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_och_dot_line.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_operation_status_bg.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_operation_status_bg.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_selected_btn.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_selected_btn.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_line_close.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_line_close.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_map_long.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_map_long.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_map_medium.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_switch_map_medium.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_unselect_btn.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_unselect_btn.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/end_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/end_maker_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/end_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/end_maker_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_collect.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_collect.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_normal.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_normal.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_select.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_select.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_ai_select.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_ai_select.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case_normal.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case_normal.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_normal.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case_select.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_bad_case_select.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_bad_case_select.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_no_bus_line.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_no_bus_line.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_blue_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_green_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_green_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_grey_bus.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_point_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_station_start_end.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/icon_station_start_end.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/no_order_data.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/no_order_data.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/no_order_data.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/no_order_data.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/pingxingjiashi.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/pingxingjiashi.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/press_start_status.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/press_start_status.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/press_start_status.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/press_start_status.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_failure.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/start_failure.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_failure.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/start_failure.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_maker_icon.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/start_maker_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/start_maker_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_success.png b/OCH/bus/driver/src/main/res/drawable-xhdpi/start_success.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable-xhdpi/start_success.png rename to OCH/bus/driver/src/main/res/drawable-xhdpi/start_success.png diff --git a/OCH/mogo-och-shuttle/src/main/res/drawable/ai_collect_selector.xml b/OCH/bus/driver/src/main/res/drawable/ai_collect_selector.xml similarity index 100% rename from OCH/mogo-och-shuttle/src/main/res/drawable/ai_collect_selector.xml rename to OCH/bus/driver/src/main/res/drawable/ai_collect_selector.xml diff --git a/OCH/mogo-och-shuttle/src/main/res/drawable/bad_case_selector.xml b/OCH/bus/driver/src/main/res/drawable/bad_case_selector.xml similarity index 100% rename from OCH/mogo-och-shuttle/src/main/res/drawable/bad_case_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bad_case_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bg_bus_traffic_light_background.xml rename to OCH/bus/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_2_status_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_2_status_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_status_bg_check.png b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_status_bg_check.png rename to OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_status_bg_nor.png b/OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_autopilot_status_bg_nor.png rename to OCH/bus/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_base_icon_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_base_icon_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_base_icon_not_in_autopilot.png b/OCH/bus/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_base_icon_not_in_autopilot.png rename to OCH/bus/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_base_notice_box_bg.9.png b/OCH/bus/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_base_notice_box_bg.9.png rename to OCH/bus/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_base_slide_block.png b/OCH/bus/driver/src/main/res/drawable/bus_base_slide_block.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_base_slide_block.png rename to OCH/bus/driver/src/main/res/drawable/bus_base_slide_block.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_checkbox_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bus_checkbox_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_disable_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_disable_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable/bus_disable_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_dot_line.png b/OCH/bus/driver/src/main/res/drawable/bus_dot_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_dot_line.png rename to OCH/bus/driver/src/main/res/drawable/bus_dot_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_ic_autopilot.png b/OCH/bus/driver/src/main/res/drawable/bus_ic_autopilot.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_ic_autopilot.png rename to OCH/bus/driver/src/main/res/drawable/bus_ic_autopilot.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_icon_arrived_station.png b/OCH/bus/driver/src/main/res/drawable/bus_icon_arrived_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_icon_arrived_station.png rename to OCH/bus/driver/src/main/res/drawable/bus_icon_arrived_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_icon_arriving_station.png b/OCH/bus/driver/src/main/res/drawable/bus_icon_arriving_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_icon_arriving_station.png rename to OCH/bus/driver/src/main/res/drawable/bus_icon_arriving_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_icon_not_arrive_station.png b/OCH/bus/driver/src/main/res/drawable/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_icon_not_arrive_station.png rename to OCH/bus/driver/src/main/res/drawable/bus_icon_not_arrive_station.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_light_green_nor.png b/OCH/bus/driver/src/main/res/drawable/bus_light_green_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_light_green_nor.png rename to OCH/bus/driver/src/main/res/drawable/bus_light_green_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_light_red_nor.png b/OCH/bus/driver/src/main/res/drawable/bus_light_red_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_light_red_nor.png rename to OCH/bus/driver/src/main/res/drawable/bus_light_red_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_lightyellow_nor.png b/OCH/bus/driver/src/main/res/drawable/bus_lightyellow_nor.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_lightyellow_nor.png rename to OCH/bus/driver/src/main/res/drawable/bus_lightyellow_nor.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_line_dividing_line1_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_line_dividing_line2_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_line_panel_bg.png b/OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_line_panel_bg.png rename to OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_line_panel_bg_1.png b/OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg_1.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_line_panel_bg_1.png rename to OCH/bus/driver/src/main/res/drawable/bus_line_panel_bg_1.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_loading_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_loading_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable/bus_loading_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_och_dot_line.png b/OCH/bus/driver/src/main/res/drawable/bus_och_dot_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_och_dot_line.png rename to OCH/bus/driver/src/main/res/drawable/bus_och_dot_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_operation_status_bg_selector.xml rename to OCH/bus/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_panel_anchor_bkg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_panel_bkg.xml b/OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_panel_bkg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_panel_bkg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_right_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable/bus_right_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_right_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable/bus_right_autopilot_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_selected_btn.png b/OCH/bus/driver/src/main/res/drawable/bus_selected_btn.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_selected_btn.png rename to OCH/bus/driver/src/main/res/drawable/bus_selected_btn.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_setting_btn_bg.png b/OCH/bus/driver/src/main/res/drawable/bus_setting_btn_bg.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_setting_btn_bg.png rename to OCH/bus/driver/src/main/res/drawable/bus_setting_btn_bg.png diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml rename to OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml rename to OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml rename to OCH/bus/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_station_green_dash_line.xml rename to OCH/bus/driver/src/main/res/drawable/bus_station_green_dash_line.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_station_v_green_dash.xml rename to OCH/bus/driver/src/main/res/drawable/bus_station_v_green_dash.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn.xml rename to OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml rename to OCH/bus/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_close.png b/OCH/bus/driver/src/main/res/drawable/bus_switch_line_close.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_close.png rename to OCH/bus/driver/src/main/res/drawable/bus_switch_line_close.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_switch_map_bg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_long.png b/OCH/bus/driver/src/main/res/drawable/bus_switch_map_long.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_long.png rename to OCH/bus/driver/src/main/res/drawable/bus_switch_map_long.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_medium.png b/OCH/bus/driver/src/main/res/drawable/bus_switch_map_medium.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_switch_map_medium.png rename to OCH/bus/driver/src/main/res/drawable/bus_switch_map_medium.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_task_time_bg.xml b/OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_task_time_bg.xml rename to OCH/bus/driver/src/main/res/drawable/bus_task_time_bg.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_unselect_btn.png b/OCH/bus/driver/src/main/res/drawable/bus_unselect_btn.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_unselect_btn.png rename to OCH/bus/driver/src/main/res/drawable/bus_unselect_btn.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_wrong_autopilot_icon.png b/OCH/bus/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_wrong_autopilot_icon.png rename to OCH/bus/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml rename to OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml diff --git a/OCH/mogo-och-bus/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 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml rename to OCH/bus/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml diff --git a/OCH/mogo-och-bus/src/main/res/drawable/end_maker_icon.png b/OCH/bus/driver/src/main/res/drawable/end_maker_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/end_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable/end_maker_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_ai_normal.png b/OCH/bus/driver/src/main/res/drawable/icon_ai_normal.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_ai_normal.png rename to OCH/bus/driver/src/main/res/drawable/icon_ai_normal.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_ai_select.png b/OCH/bus/driver/src/main/res/drawable/icon_ai_select.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_ai_select.png rename to OCH/bus/driver/src/main/res/drawable/icon_ai_select.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_blue_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_arrow_blue_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_arrow_blue_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_green_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_arrow_green_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_green_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_arrow_green_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_grey_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_arrow_grey_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_arrow_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_arrow_grey_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_bad_case_normal.png b/OCH/bus/driver/src/main/res/drawable/icon_bad_case_normal.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_bad_case_normal.png rename to OCH/bus/driver/src/main/res/drawable/icon_bad_case_normal.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_bad_case_select.png b/OCH/bus/driver/src/main/res/drawable/icon_bad_case_select.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_bad_case_select.png rename to OCH/bus/driver/src/main/res/drawable/icon_bad_case_select.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_no_bus_line.png b/OCH/bus/driver/src/main/res/drawable/icon_no_bus_line.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_no_bus_line.png rename to OCH/bus/driver/src/main/res/drawable/icon_no_bus_line.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_point_blue_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_point_blue_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_point_blue_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_point_blue_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_point_green_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_point_green_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_point_green_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_point_green_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_point_grey_bus.png b/OCH/bus/driver/src/main/res/drawable/icon_point_grey_bus.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_point_grey_bus.png rename to OCH/bus/driver/src/main/res/drawable/icon_point_grey_bus.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/icon_station_start_end.png b/OCH/bus/driver/src/main/res/drawable/icon_station_start_end.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/icon_station_start_end.png rename to OCH/bus/driver/src/main/res/drawable/icon_station_start_end.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/no_order_data.png b/OCH/bus/driver/src/main/res/drawable/no_order_data.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/no_order_data.png rename to OCH/bus/driver/src/main/res/drawable/no_order_data.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/press_start_status.png b/OCH/bus/driver/src/main/res/drawable/press_start_status.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/press_start_status.png rename to OCH/bus/driver/src/main/res/drawable/press_start_status.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/start_failure.png b/OCH/bus/driver/src/main/res/drawable/start_failure.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/start_failure.png rename to OCH/bus/driver/src/main/res/drawable/start_failure.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/start_maker_icon.png b/OCH/bus/driver/src/main/res/drawable/start_maker_icon.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/start_maker_icon.png rename to OCH/bus/driver/src/main/res/drawable/start_maker_icon.png diff --git a/OCH/mogo-och-bus/src/main/res/drawable/start_success.png b/OCH/bus/driver/src/main/res/drawable/start_success.png similarity index 100% rename from OCH/mogo-och-bus/src/main/res/drawable/start_success.png rename to OCH/bus/driver/src/main/res/drawable/start_success.png diff --git a/OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml b/OCH/bus/driver/src/main/res/layout/activity_bus_switch_line.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml rename to OCH/bus/driver/src/main/res/layout/activity_bus_switch_line.xml diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml similarity index 97% rename from OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml rename to OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index 4d066ea65d..38c6964ead 100644 --- a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -151,16 +151,6 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - - + app:roma_open_bg="@drawable/bus_operation_status_select_bg" /> + + + + aLong + 1)) @@ -53,7 +53,7 @@ public class BusPassengerModelLoopManager { public void stopQueryDriverLineLoop() { if (mQueryLineDisposable != null) { - CallerLogger.INSTANCE.i(M_BUS_P + TAG, "stopQueryDriverLineLoop()"); + CallerLogger.i(M_BUS_P + TAG, "stopQueryDriverLineLoop()"); mQueryLineDisposable.dispose(); mQueryLineDisposable = null; } diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt b/OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt rename to OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerSAASServiceApi.java b/OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerSAASServiceApi.java similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerSAASServiceApi.java rename to OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerSAASServiceApi.java diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerServiceApi.java b/OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerServiceApi.java similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerServiceApi.java rename to OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/PassengerServiceApi.java diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java similarity index 98% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java rename to OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index a448c2cd36..491c55a46f 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/bus/passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -42,7 +42,7 @@ public class BaseBusPassengerPresenter extends Presenter + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/drawable/video_btn_selector.xml b/OCH/bus/passenger/src/jinlvvan/res/drawable/video_btn_selector.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/drawable/video_btn_selector.xml rename to OCH/bus/passenger/src/jinlvvan/res/drawable/video_btn_selector.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml similarity index 79% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml index 13974b5df3..3196c03903 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml +++ b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_base_fragment.xml @@ -8,15 +8,15 @@ android:id="@+id/mapBizView" android:layout_width="1810dp" android:layout_height="match_parent" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent"/> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:roma_open="@drawable/bus_p_roma_checked" /> + + + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_marginBottom="@dimen/dp_20" + android:scaleType="fitCenter" + android:src="@drawable/video_btn_selector" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" /> \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_driver_monitor_view.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_driver_monitor_view.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_driver_monitor_view.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_driver_monitor_view.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_map_view.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_map_view.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_map_view.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_map_view.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_no_data_common_view.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_no_data_common_view.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_no_data_common_view.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_no_data_common_view.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_route_fragment.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_route_fragment.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_route_fragment.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_route_fragment.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_stations_common_item.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_stations_common_item.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_stations_common_item.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_stations_common_item.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_traffic_light_view.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_traffic_light_view.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/bus_p_traffic_light_view.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/bus_p_traffic_light_view.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/p_bus_view_blue_tooth.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/p_bus_view_blue_tooth.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/p_bus_view_blue_tooth.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/p_bus_view_blue_tooth.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/p_bus_view_status_bar.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/p_bus_view_status_bar.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/p_bus_view_status_bar.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/p_bus_view_status_bar.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/view_turn_light_status_daytime.xml b/OCH/bus/passenger/src/jinlvvan/res/layout/view_turn_light_status_daytime.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/layout/view_turn_light_status_daytime.xml rename to OCH/bus/passenger/src/jinlvvan/res/layout/view_turn_light_status_daytime.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/colors.xml b/OCH/bus/passenger/src/jinlvvan/res/values/colors.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/colors.xml rename to OCH/bus/passenger/src/jinlvvan/res/values/colors.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/dimens.xml b/OCH/bus/passenger/src/jinlvvan/res/values/dimens.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/dimens.xml rename to OCH/bus/passenger/src/jinlvvan/res/values/dimens.xml diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/strings.xml b/OCH/bus/passenger/src/jinlvvan/res/values/strings.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/jinlvvan/res/values/strings.xml rename to OCH/bus/passenger/src/jinlvvan/res/values/strings.xml diff --git a/OCH/mogo-och-bus-passenger/src/main/AndroidManifest.xml b/OCH/bus/passenger/src/main/AndroidManifest.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/AndroidManifest.xml rename to OCH/bus/passenger/src/main/AndroidManifest.xml diff --git a/OCH/mogo-och-bus-passenger/src/main/assets/map_style.data b/OCH/bus/passenger/src/main/assets/map_style.data similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/assets/map_style.data rename to OCH/bus/passenger/src/main/assets/map_style.data diff --git a/OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data b/OCH/bus/passenger/src/main/assets/map_style_extra.data similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data rename to OCH/bus/passenger/src/main/assets/map_style_extra.data diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java rename to OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/IMogoOCH.java diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt rename to OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/utils/BusPassengerMapAssetStyleUtil.java b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/utils/BusPassengerMapAssetStyleUtil.java similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/utils/BusPassengerMapAssetStyleUtil.java rename to OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/utils/BusPassengerMapAssetStyleUtil.java diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/utils/DimenUtil.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/utils/DimenUtil.kt similarity index 100% rename from OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/utils/DimenUtil.kt rename to OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/utils/DimenUtil.kt diff --git a/OCH/mogo-och-bus/src/main/res/raw/bus_di.mp3 b/OCH/bus/passenger/src/main/res/raw/bus_di.mp3 similarity index 100% rename from OCH/mogo-och-bus/src/main/res/raw/bus_di.mp3 rename to OCH/bus/passenger/src/main/res/raw/bus_di.mp3 diff --git a/OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java b/OCH/bus/passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java similarity index 100% rename from OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java rename to OCH/bus/passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java diff --git a/OCH/mogo-och-charter-passenger/.gitignore b/OCH/charter/driver/.gitignore similarity index 100% rename from OCH/mogo-och-charter-passenger/.gitignore rename to OCH/charter/driver/.gitignore diff --git a/OCH/mogo-och-charter/build.gradle b/OCH/charter/driver/build.gradle similarity index 97% rename from OCH/mogo-och-charter/build.gradle rename to OCH/charter/driver/build.gradle index 550170a67d..3f3e62f1ef 100644 --- a/OCH/mogo-och-charter/build.gradle +++ b/OCH/charter/driver/build.gradle @@ -55,7 +55,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler diff --git a/OCH/mogo-och-charter-passenger/consumer-rules.pro b/OCH/charter/driver/consumer-rules.pro similarity index 100% rename from OCH/mogo-och-charter-passenger/consumer-rules.pro rename to OCH/charter/driver/consumer-rules.pro diff --git a/OCH/mogo-och-charter/gradle.properties b/OCH/charter/driver/gradle.properties similarity index 100% rename from OCH/mogo-och-charter/gradle.properties rename to OCH/charter/driver/gradle.properties diff --git a/OCH/mogo-och-charter-passenger/proguard-rules.pro b/OCH/charter/driver/proguard-rules.pro similarity index 100% rename from OCH/mogo-och-charter-passenger/proguard-rules.pro rename to OCH/charter/driver/proguard-rules.pro diff --git a/OCH/mogo-och-charter/src/driverm1/AndroidManifest.xml b/OCH/charter/driver/src/driverm1/AndroidManifest.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/AndroidManifest.xml rename to OCH/charter/driver/src/driverm1/AndroidManifest.xml diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/CharterProvider.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/CharterProvider.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/CharterProvider.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/CharterProvider.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/CheckOrderCountDownResponse.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/CheckOrderCountDownResponse.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/CheckOrderCountDownResponse.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/CheckOrderCountDownResponse.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryBusinessStatusResponse.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryBusinessStatusResponse.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryBusinessStatusResponse.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryBusinessStatusResponse.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryCurrentOrderResponse.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryRoutesResponse.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryRoutesResponse.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryRoutesResponse.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/QueryRoutesResponse.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/RequestChangeDest.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/Station.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/Station.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/Station.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/Station.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/WriteOffPassenger.java b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/WriteOffPassenger.java similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/bean/WriteOffPassenger.java rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/bean/WriteOffPassenger.java diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/ChangeDestCallback.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/ChangeDestCallback.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/ChangeDestCallback.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/ChangeDestCallback.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/DriverM1OrderCallback.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/DriverM1OrderCallback.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/DriverM1OrderCallback.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/DriverM1OrderCallback.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/callback/IDriverM1ControllerStatusCallback.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/fragment/DriverM1Fragment.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java similarity index 98% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java index 0338c6f393..d8f40dd0c7 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java @@ -47,7 +47,7 @@ public class CharterAnalyticsManager { private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ if (mStartAutopilotParams.isEmpty()) return; - CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg ); + CallerLogger.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg ); if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt similarity index 89% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt index df96f0bc00..0d13cced28 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt @@ -1,14 +1,21 @@ package com.magic.mogo.och.charter.manager +import com.magic.mogo.och.charter.R import com.magic.mogo.och.charter.constant.CharterConst import com.magic.mogo.och.charter.model.DriverM1Model.Companion.get import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.OperationMsg import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendTrajectoryDownloadReq +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e 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.GsonUtils import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.common.module.utils.SoundPoolHelper import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -26,13 +33,15 @@ object CharterTrajectoryManager { private const val TAG = "CharterTrajectoryManager" private var mAutoPilotLine: AutoPilotLine? = null private var mLineId = 0 + private var mLineName = "" private var mSendReqDisposable: Disposable? = null /** * 同步Bus路线信息 */ - fun syncTrajectoryInfo(lineId: Int) { + fun syncTrajectoryInfo(lineId: Int, lineName: String) { mLineId = lineId + mLineName = lineName val routesResult = get().getBusRoutesResult() if (LoginStatusManager.isLogin() && routesResult != null) { d(SceneConstant.M_CHARTER_D + TAG, "syncTrajectoryInfo() start.") @@ -78,6 +87,11 @@ object CharterTrajectoryManager { // 5. 轨迹管理_轨迹下载超时 d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载超时") // ToastUtils.showShort("轨迹下载超时"); + } else if ("ISSM_FUNC_AUTO_PILOT_READY" == guardianInfo.getCode()) { + // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 + d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() ssm ready,再次发起下载") + syncTrajectoryInfo(get().getBusOrderResult()?.lineId!!, + get().getBusOrderResult()?.lineName!!) } } @@ -92,7 +106,7 @@ object CharterTrajectoryManager { } else { if (mAutoPilotLine == null) { mAutoPilotLine = AutoPilotLine( - mLineId.toLong(), + mLineId.toLong(), mLineName, routesResult.csvFileUrl, routesResult.csvFileMd5, routesResult.txtFileUrl, routesResult.txtFileMd5, routesResult.contrailSaveTime, routesResult.carModel, @@ -102,6 +116,7 @@ object CharterTrajectoryManager { ) } else { mAutoPilotLine!!.lineId = mLineId.toLong() + mAutoPilotLine!!.lineName = mLineName mAutoPilotLine!!.trajUrl = routesResult.csvFileUrl mAutoPilotLine!!.trajMd5 = routesResult.csvFileMd5 mAutoPilotLine!!.stopUrl = routesResult.txtFileUrl @@ -120,6 +135,7 @@ object CharterTrajectoryManager { private fun clearAutoPilotLine() { if (mAutoPilotLine == null) return mAutoPilotLine!!.lineId = -1 + mAutoPilotLine!!.lineName = "" mAutoPilotLine!!.trajUrl = "" mAutoPilotLine!!.trajMd5 = "" mAutoPilotLine!!.stopUrl = "" @@ -202,7 +218,7 @@ object CharterTrajectoryManager { init { mAutoPilotLine = AutoPilotLine( - -1, + -1, "", "", "", "", "", 0, "", "", "", "", "", 0 ) diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1LooperManager.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1LooperManager.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1LooperManager.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1LooperManager.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt similarity index 91% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index e77143325d..b3c2d0d73a 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -16,19 +16,22 @@ import com.magic.mogo.och.charter.manager.CharterAnalyticsManager import com.magic.mogo.och.charter.manager.CharterTrajectoryManager import com.magic.mogo.och.charter.net.DriverM1ServiceManager import com.mogo.aicloud.services.socket.IMogoOnMessageListener -import com.mogo.commons.AbsMogoApplication import com.mogo.commons.module.intent.IMogoIntentListener import com.mogo.commons.module.intent.IntentManager import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.OperationMsg 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.CallerAutoPilotControlManager.startAutoPilot import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToAllClients import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -52,14 +55,10 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager import com.mogo.och.common.module.manager.CharterSendTripInfoManager.ARRIVE_STATION import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP -import com.mogo.och.common.module.manager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.utils.* import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.data.bean.* -import io.reactivex.exceptions.UndeliverableException -import io.reactivex.functions.Consumer -import io.reactivex.plugins.RxJavaPlugins -import java.io.IOException /** * @author: wangmingjun @@ -76,8 +75,8 @@ class DriverM1Model { // 运营类型 private val VEHICLE_TYPE : Int = 10 - private var mControllerStatusCallback //Model->Presenter:VR mode等 - : IDriverM1ControllerStatusCallback? = null + //Model->Presenter:VR mode等 + private var mControllerStatusCallback: IDriverM1ControllerStatusCallback? = null private var mOrderCallback: DriverM1OrderCallback? = null @@ -110,7 +109,7 @@ class DriverM1Model { fun init(context: Context) { mContext = context // 定位监听 - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10,mMapLocationListener) + CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10, mMapLocationListener) //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener) @@ -118,18 +117,20 @@ class DriverM1Model { // 监听运营信息 registerSocketMessageListener( OCHSocketMessageManager.msgMonitorType, - mOnSystemMessageListener) + mOnSystemMessageListener + ) //监听开门 registerSocketMessageListener( OCHSocketMessageManager.msgOperateDoorType, - mOnDoorMessageListener) + mOnDoorMessageListener + ) //监听订单结束 registerSocketMessageListener( OCHSocketMessageManager.msgOrderClosedType, - mOnOrderClosedMessageListener) - + mOnOrderClosedMessageListener + ) //监听核销乘客 - registerSocketMessageListener( //监听核销乘客 + registerSocketMessageListener( OCHSocketMessageManager.msgWriteOffPassengerType, mWriteOffPassengerOnMessageListener ) @@ -149,45 +150,7 @@ class DriverM1Model { // 调用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(object : Consumer { - override fun accept(e: Throwable?) { - var e = e - if (e is UndeliverableException) { - e = e.cause!! - d(SceneConstant.M_CHARTER_D + TAG, "UndeliverableException") - } - if (e is IOException) { // - // fine, irrelevant network problem or API that throws on cancellation - d(SceneConstant.M_CHARTER_D + TAG, "IOException") - return - } - if (e is InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - d(SceneConstant.M_CHARTER_D + TAG, "InterruptedException") - return - } - if (e is NullPointerException || e is IllegalArgumentException) { - // that's likely a bug in the application - d(SceneConstant.M_CHARTER_D + TAG, "NullPointerException or IllegalArgumentException") - Thread.currentThread().uncaughtExceptionHandler.uncaughtException( - Thread.currentThread(), - e - ) - return - } - if (e is IllegalStateException) { - // that's a bug in RxJava or in a custom operator - d(SceneConstant.M_CHARTER_D + TAG, "IllegalStateException") - Thread.currentThread().uncaughtExceptionHandler.uncaughtException( - Thread.currentThread(), - e - ) - return - } - d(SceneConstant.M_CHARTER_D + TAG, "Undeliverable exception") - } - - }) + RxUtils.errCatch() } fun setChangeDestCallback(callback: ChangeDestCallback?){ @@ -267,18 +230,18 @@ class DriverM1Model { private fun showChangerDestCommitDialog(changeDestMsg: ChangeDestMsg) { if (!TextUtils.isEmpty(changeDestMsg.destSiteName) && !TextUtils.isEmpty(changeDestMsg.lineName)){ - if (changeDestMsg.lineId == currentChangeDestMsg?.lineId){//同一条路线切换站点不需要再确认 + //if (changeDestMsg.lineId == currentChangeDestMsg?.lineId){//同一条路线切换站点不需要再确认 currentChangeDestMsg = changeDestMsg changeDest() return - } + //} 不用司机端确认直接保存 - currentChangeDestMsg = changeDestMsg +// currentChangeDestMsg = changeDestMsg - UiThreadHandler.post{ - mChangeDestCallback?.showCommitDialog("确认路线站点", - "请确认是否前往 "+ changeDestMsg.lineName+ changeDestMsg.destSiteName + " 站点") - } +// UiThreadHandler.post{ +// mChangeDestCallback?.showCommitDialog("确认路线站点", +// "请确认是否前往 "+ changeDestMsg.lineName+ changeDestMsg.destSiteName + " 站点") +// } } } @@ -607,7 +570,7 @@ class DriverM1Model { parameters.vehicleType = VEHICLE_TYPE if (parameters.autoPilotLine == null) { parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine( - mCurrentOrder!!.lineId.toLong(), + mCurrentOrder!!.lineId.toLong(), mCurrentOrder!!.lineName, mCurrentRoute!!.csvFileUrl, mCurrentRoute!!.csvFileMd5, mCurrentRoute!!.txtFileUrl, mCurrentRoute!!.txtFileMd5, mCurrentRoute!!.contrailSaveTime, mCurrentRoute!!.carModel, @@ -753,8 +716,6 @@ class DriverM1Model { //给工控机发轨迹 checkoutContrail() - //鹰眼存参数 - updateAutopilotControlParameters() //给前后屏发数据 sendCharterStartTripInfo() } @@ -819,6 +780,17 @@ class DriverM1Model { CallerAutoPilotControlManager.cancelAutoPilot() queryCurrentServiceStatus() sendCommitMsgToClient(true,writeVersion) + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.OPERATION, + OperationMsg( + System.currentTimeMillis(), + "即将前往路线${currentChangeDestMsg!!.lineName}、站点${currentChangeDestMsg!!.destSiteName};如需掉头请尽快操作车辆至适当位置!", + -1 + ) + ) + ) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot) } } @@ -841,7 +813,10 @@ class DriverM1Model { d(SceneConstant.M_CHARTER_D + TAG, "checkoutContrail-==" + GsonUtils.toJson(data.data)) mCurrentRoute = data.data - CharterTrajectoryManager.syncTrajectoryInfo(mCurrentOrder?.lineId!!) + //鹰眼存参数 + updateAutopilotControlParameters() + CharterTrajectoryManager.syncTrajectoryInfo(mCurrentOrder?.lineId!!, + mCurrentOrder?.lineName!!) } override fun onFail(code: Int, msg: String?) { @@ -860,4 +835,8 @@ class DriverM1Model { return mCurrentRoute } + + fun getBusOrderResult(): QueryCurrentOrderResponse.Result?{ + return mCurrentOrder + } } \ No newline at end of file diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt similarity index 99% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt index dc2c462b1d..7ea6311112 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/DriverM1ServiceManager.kt @@ -16,6 +16,10 @@ import com.mogo.och.common.module.utils.DateTimeUtil */ object DriverM1ServiceManager { + init { + + } + private val mDriverM1ServiceApi: IDriverM1Service = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( IDriverM1Service::class.java diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/IDriverM1Service.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/IDriverM1Service.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/IDriverM1Service.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/IDriverM1Service.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/LoginDriverM1Impl.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchCommonServiceManager.kt diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/net/login/OchLoginServiceApi.java diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt similarity index 97% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt index 085738af28..9b1a7c84b2 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt @@ -9,6 +9,7 @@ import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback import com.magic.mogo.och.charter.fragment.DriverM1Fragment import com.magic.mogo.och.charter.manager.CharterTrajectoryManager import com.magic.mogo.och.charter.model.DriverM1Model +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener @@ -21,6 +22,7 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean import com.mogo.och.common.module.biz.callback.ILoginCallback import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.manager.StopSideStatusManager import com.mogo.och.common.module.utils.DateTimeUtil import mogo.telematics.pad.MessagePad @@ -41,6 +43,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) : init { DriverM1Model.get().init(context) + OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) registerListener() } diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/view/SlidePanelView.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/view/SlidePanelView.kt similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/view/SlidePanelView.kt rename to OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/view/SlidePanelView.kt diff --git a/OCH/mogo-och-charter/src/driverm1/res/layout/bus_no_line_view.xml b/OCH/charter/driver/src/driverm1/res/layout/bus_no_line_view.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/layout/bus_no_line_view.xml rename to OCH/charter/driver/src/driverm1/res/layout/bus_no_line_view.xml diff --git a/OCH/mogo-och-charter/src/driverm1/res/layout/fragment_driver_m1.xml b/OCH/charter/driver/src/driverm1/res/layout/fragment_driver_m1.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/layout/fragment_driver_m1.xml rename to OCH/charter/driver/src/driverm1/res/layout/fragment_driver_m1.xml diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_away_passengers.json b/OCH/charter/driver/src/driverm1/res/raw/bus_away_passengers.json similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/bus_away_passengers.json rename to OCH/charter/driver/src/driverm1/res/raw/bus_away_passengers.json diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_order_1.json b/OCH/charter/driver/src/driverm1/res/raw/bus_order_1.json similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/bus_order_1.json rename to OCH/charter/driver/src/driverm1/res/raw/bus_order_1.json diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_station_list1.json b/OCH/charter/driver/src/driverm1/res/raw/bus_station_list1.json similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/bus_station_list1.json rename to OCH/charter/driver/src/driverm1/res/raw/bus_station_list1.json diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/bus_station_list2.json b/OCH/charter/driver/src/driverm1/res/raw/bus_station_list2.json similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/bus_station_list2.json rename to OCH/charter/driver/src/driverm1/res/raw/bus_station_list2.json diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/end_marker.nt3d b/OCH/charter/driver/src/driverm1/res/raw/end_marker.nt3d similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/end_marker.nt3d rename to OCH/charter/driver/src/driverm1/res/raw/end_marker.nt3d diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/m1_voice_di.mp3 b/OCH/charter/driver/src/driverm1/res/raw/m1_voice_di.mp3 similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/m1_voice_di.mp3 rename to OCH/charter/driver/src/driverm1/res/raw/m1_voice_di.mp3 diff --git a/OCH/mogo-och-charter/src/driverm1/res/raw/star_marker.nt3d b/OCH/charter/driver/src/driverm1/res/raw/star_marker.nt3d similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/raw/star_marker.nt3d rename to OCH/charter/driver/src/driverm1/res/raw/star_marker.nt3d diff --git a/OCH/mogo-och-charter/src/driverm1/res/values/attrs.xml b/OCH/charter/driver/src/driverm1/res/values/attrs.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/values/attrs.xml rename to OCH/charter/driver/src/driverm1/res/values/attrs.xml diff --git a/OCH/mogo-och-charter/src/driverm1/res/values/colors.xml b/OCH/charter/driver/src/driverm1/res/values/colors.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/values/colors.xml rename to OCH/charter/driver/src/driverm1/res/values/colors.xml diff --git a/OCH/mogo-och-charter/src/driverm1/res/values/strings.xml b/OCH/charter/driver/src/driverm1/res/values/strings.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/values/strings.xml rename to OCH/charter/driver/src/driverm1/res/values/strings.xml diff --git a/OCH/mogo-och-charter/src/driverm1/res/xml/bus_switch_line_list_item_scene.xml b/OCH/charter/driver/src/driverm1/res/xml/bus_switch_line_list_item_scene.xml similarity index 100% rename from OCH/mogo-och-charter/src/driverm1/res/xml/bus_switch_line_list_item_scene.xml rename to OCH/charter/driver/src/driverm1/res/xml/bus_switch_line_list_item_scene.xml diff --git a/OCH/mogo-och-charter/src/main/AndroidManifest.xml b/OCH/charter/driver/src/main/AndroidManifest.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/AndroidManifest.xml rename to OCH/charter/driver/src/main/AndroidManifest.xml diff --git a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/ICharterOCH.java b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/ICharterOCH.java similarity index 100% rename from OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/ICharterOCH.java rename to OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/ICharterOCH.java diff --git a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt similarity index 98% rename from OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt rename to OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt index 96bc9a4150..67a69707df 100644 --- a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/base/CharterBaseFragment.kt @@ -109,13 +109,13 @@ abstract class CharterBaseFragment?>() : if (controller != null) { //切换地图的远近视图 if (controller.currentMapVisualAngle.isLongSight) { - Objects.requireNonNull(getMapUIController()) - ?.setLockMode(true) + //Objects.requireNonNull(getMapUIController()) + // ?.setLockMode(true) controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null) mSwitchMapModeImage!!.setImageResource(R.drawable.bus_switch_map_medium) } else if (controller.currentMapVisualAngle.isMediumSight) { - Objects.requireNonNull(getMapUIController()) - ?.setLockMode(false) + //Objects.requireNonNull(getMapUIController()) + // ?.setLockMode(false) controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null) mSwitchMapModeImage!!.setImageResource(R.drawable.bus_switch_map_long) } else { diff --git a/OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/constant/CharterConst.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/constant/CharterConst.kt similarity index 100% rename from OCH/mogo-och-charter/src/main/java/com/magic/mogo/och/charter/constant/CharterConst.kt rename to OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/constant/CharterConst.kt diff --git a/OCH/mogo-och-charter/src/main/res/color/bus_autopilot_text_color_selector.xml b/OCH/charter/driver/src/main/res/color/bus_autopilot_text_color_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/color/bus_autopilot_text_color_selector.xml rename to OCH/charter/driver/src/main/res/color/bus_autopilot_text_color_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_icon_in_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_icon_not_in_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_notice_box_bg.9.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_slide_block.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_slide_block.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_base_slide_block.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_base_slide_block.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_disable_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_dot_line.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_dot_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_dot_line.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_dot_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_ic_autopilot.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_ic_autopilot.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_ic_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_arrived_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_arriving_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_icon_not_arrive_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_light_green_nor.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_light_green_nor.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_light_green_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_light_red_nor.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_light_red_nor.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_light_red_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_lightyellow_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_panel_bg.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_panel_bg.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_panel_bg_1.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_task_arrow.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_line_task_arrow.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_line_task_arrow.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_loading_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_no_line_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_no_line_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_no_line_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_och_dot_line.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_och_dot_line.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_och_dot_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_operation_status_bg.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_operation_status_bg.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_operation_status_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_operation_status_select_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_right_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_selected_btn.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_selected_btn.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_selected_btn.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_setting_btn_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_line_close.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_line_close.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_line_close.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_map_long.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_map_long.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_map_long.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_map_medium.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_switch_map_medium.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_switch_map_medium.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_unselect_btn.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_unselect_btn.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_unselect_btn.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/bus_wrong_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/end_maker_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/end_maker_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/end_maker_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/end_maker_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_collect.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_collect.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_collect.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_normal.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_normal.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_normal.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_select.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_select.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_ai_select.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_ai_select.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_blue_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_green_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_arrow_grey_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_bad_case.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_bad_case.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_bad_case.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_bad_case.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_no_bus_line.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_no_bus_line.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_no_bus_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_blue_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_blue_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_blue_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_green_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_green_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_green_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_grey_bus.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_point_grey_bus.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_point_grey_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_station_start_end.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/icon_station_start_end.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/icon_station_start_end.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/no_order_data.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/no_order_data.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/no_order_data.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/no_order_data.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/pingxingjiashi.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/pingxingjiashi.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/pingxingjiashi.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/press_start_status.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/press_start_status.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/press_start_status.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/press_start_status.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_failure.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/start_failure.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_failure.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/start_failure.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_maker_icon.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/start_maker_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_maker_icon.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/start_maker_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_success.png b/OCH/charter/driver/src/main/res/drawable-xhdpi/start_success.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable-xhdpi/start_success.png rename to OCH/charter/driver/src/main/res/drawable-xhdpi/start_success.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bg_bus_traffic_light_background.xml b/OCH/charter/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bg_bus_traffic_light_background.xml rename to OCH/charter/driver/src/main/res/drawable/bg_bus_traffic_light_background.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_autopilot_0_1_status_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_2_status_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_2_status_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_autopilot_2_status_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_status_bg_check.png b/OCH/charter/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_status_bg_check.png rename to OCH/charter/driver/src/main/res/drawable/bus_autopilot_status_bg_check.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_status_bg_nor.png b/OCH/charter/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_autopilot_status_bg_nor.png rename to OCH/charter/driver/src/main/res/drawable/bus_autopilot_status_bg_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml b/OCH/charter/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml rename to OCH/charter/driver/src/main/res/drawable/bus_base_autopilot_status_icon_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_base_icon_in_autopilot.png b/OCH/charter/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_base_icon_in_autopilot.png rename to OCH/charter/driver/src/main/res/drawable/bus_base_icon_in_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_base_icon_not_in_autopilot.png b/OCH/charter/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_base_icon_not_in_autopilot.png rename to OCH/charter/driver/src/main/res/drawable/bus_base_icon_not_in_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_base_notice_box_bg.9.png b/OCH/charter/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_base_notice_box_bg.9.png rename to OCH/charter/driver/src/main/res/drawable/bus_base_notice_box_bg.9.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_base_slide_block.png b/OCH/charter/driver/src/main/res/drawable/bus_base_slide_block.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_base_slide_block.png rename to OCH/charter/driver/src/main/res/drawable/bus_base_slide_block.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_checkbox_selector.xml b/OCH/charter/driver/src/main/res/drawable/bus_checkbox_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_checkbox_selector.xml rename to OCH/charter/driver/src/main/res/drawable/bus_checkbox_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_disable_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable/bus_disable_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_disable_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable/bus_disable_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_dot_line.png b/OCH/charter/driver/src/main/res/drawable/bus_dot_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_dot_line.png rename to OCH/charter/driver/src/main/res/drawable/bus_dot_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_ic_autopilot.png b/OCH/charter/driver/src/main/res/drawable/bus_ic_autopilot.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_ic_autopilot.png rename to OCH/charter/driver/src/main/res/drawable/bus_ic_autopilot.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_icon_arrived_station.png b/OCH/charter/driver/src/main/res/drawable/bus_icon_arrived_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_icon_arrived_station.png rename to OCH/charter/driver/src/main/res/drawable/bus_icon_arrived_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_icon_arriving_station.png b/OCH/charter/driver/src/main/res/drawable/bus_icon_arriving_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_icon_arriving_station.png rename to OCH/charter/driver/src/main/res/drawable/bus_icon_arriving_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_icon_not_arrive_station.png b/OCH/charter/driver/src/main/res/drawable/bus_icon_not_arrive_station.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_icon_not_arrive_station.png rename to OCH/charter/driver/src/main/res/drawable/bus_icon_not_arrive_station.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_light_green_nor.png b/OCH/charter/driver/src/main/res/drawable/bus_light_green_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_light_green_nor.png rename to OCH/charter/driver/src/main/res/drawable/bus_light_green_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_light_red_nor.png b/OCH/charter/driver/src/main/res/drawable/bus_light_red_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_light_red_nor.png rename to OCH/charter/driver/src/main/res/drawable/bus_light_red_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_lightyellow_nor.png b/OCH/charter/driver/src/main/res/drawable/bus_lightyellow_nor.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_lightyellow_nor.png rename to OCH/charter/driver/src/main/res/drawable/bus_lightyellow_nor.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_line_dividing_line1_selector.xml b/OCH/charter/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_line_dividing_line1_selector.xml rename to OCH/charter/driver/src/main/res/drawable/bus_line_dividing_line1_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_line_dividing_line2_selector.xml b/OCH/charter/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_line_dividing_line2_selector.xml rename to OCH/charter/driver/src/main/res/drawable/bus_line_dividing_line2_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_line_panel_bg.png b/OCH/charter/driver/src/main/res/drawable/bus_line_panel_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_line_panel_bg.png rename to OCH/charter/driver/src/main/res/drawable/bus_line_panel_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_line_panel_bg_1.png b/OCH/charter/driver/src/main/res/drawable/bus_line_panel_bg_1.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_line_panel_bg_1.png rename to OCH/charter/driver/src/main/res/drawable/bus_line_panel_bg_1.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_loading_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable/bus_loading_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_loading_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable/bus_loading_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_och_dot_line.png b/OCH/charter/driver/src/main/res/drawable/bus_och_dot_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_och_dot_line.png rename to OCH/charter/driver/src/main/res/drawable/bus_och_dot_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_operation_status_bg_selector.xml b/OCH/charter/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_operation_status_bg_selector.xml rename to OCH/charter/driver/src/main/res/drawable/bus_operation_status_bg_selector.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_panel_anchor_bkg.xml b/OCH/charter/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_panel_anchor_bkg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_panel_anchor_bkg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_panel_bkg.xml b/OCH/charter/driver/src/main/res/drawable/bus_panel_bkg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_panel_bkg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_panel_bkg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_right_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable/bus_right_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_right_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable/bus_right_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_selected_btn.png b/OCH/charter/driver/src/main/res/drawable/bus_selected_btn.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_selected_btn.png rename to OCH/charter/driver/src/main/res/drawable/bus_selected_btn.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_setting_btn_bg.png b/OCH/charter/driver/src/main/res/drawable/bus_setting_btn_bg.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_setting_btn_bg.png rename to OCH/charter/driver/src/main/res/drawable/bus_setting_btn_bg.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_setting_tip_red_cir_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml rename to OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml rename to OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml rename to OCH/charter/driver/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_station_green_dash_line.xml b/OCH/charter/driver/src/main/res/drawable/bus_station_green_dash_line.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_station_green_dash_line.xml rename to OCH/charter/driver/src/main/res/drawable/bus_station_green_dash_line.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_station_v_green_dash.xml b/OCH/charter/driver/src/main/res/drawable/bus_station_v_green_dash.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_station_v_green_dash.xml rename to OCH/charter/driver/src/main/res/drawable/bus_station_v_green_dash.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_btn.xml b/OCH/charter/driver/src/main/res/drawable/bus_switch_line_btn.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_btn.xml rename to OCH/charter/driver/src/main/res/drawable/bus_switch_line_btn.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/charter/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_btn_commit.xml rename to OCH/charter/driver/src/main/res/drawable/bus_switch_line_btn_commit.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_close.png b/OCH/charter/driver/src/main/res/drawable/bus_switch_line_close.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_line_close.png rename to OCH/charter/driver/src/main/res/drawable/bus_switch_line_close.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_switch_map_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_switch_map_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_long.png b/OCH/charter/driver/src/main/res/drawable/bus_switch_map_long.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_long.png rename to OCH/charter/driver/src/main/res/drawable/bus_switch_map_long.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_medium.png b/OCH/charter/driver/src/main/res/drawable/bus_switch_map_medium.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_switch_map_medium.png rename to OCH/charter/driver/src/main/res/drawable/bus_switch_map_medium.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_task_time_bg.xml b/OCH/charter/driver/src/main/res/drawable/bus_task_time_bg.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_task_time_bg.xml rename to OCH/charter/driver/src/main/res/drawable/bus_task_time_bg.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_unselect_btn.png b/OCH/charter/driver/src/main/res/drawable/bus_unselect_btn.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_unselect_btn.png rename to OCH/charter/driver/src/main/res/drawable/bus_unselect_btn.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_wrong_autopilot_icon.png b/OCH/charter/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_wrong_autopilot_icon.png rename to OCH/charter/driver/src/main/res/drawable/bus_wrong_autopilot_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml b/OCH/charter/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml rename to OCH/charter/driver/src/main/res/drawable/bus_yi_biao_pan_bg_nor.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml b/OCH/charter/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml rename to OCH/charter/driver/src/main/res/drawable/bus_yi_biao_pan_bg_speeding.xml diff --git a/OCH/mogo-och-charter/src/main/res/drawable/end_maker_icon.png b/OCH/charter/driver/src/main/res/drawable/end_maker_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/end_maker_icon.png rename to OCH/charter/driver/src/main/res/drawable/end_maker_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_blue_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_arrow_blue_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_blue_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_arrow_blue_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_green_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_arrow_green_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_green_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_arrow_green_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_grey_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_arrow_grey_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_arrow_grey_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_arrow_grey_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_bad_case_normal.png b/OCH/charter/driver/src/main/res/drawable/icon_bad_case_normal.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_bad_case_normal.png rename to OCH/charter/driver/src/main/res/drawable/icon_bad_case_normal.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_no_bus_line.png b/OCH/charter/driver/src/main/res/drawable/icon_no_bus_line.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_no_bus_line.png rename to OCH/charter/driver/src/main/res/drawable/icon_no_bus_line.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_point_blue_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_point_blue_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_point_blue_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_point_blue_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_point_green_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_point_green_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_point_green_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_point_green_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_point_grey_bus.png b/OCH/charter/driver/src/main/res/drawable/icon_point_grey_bus.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_point_grey_bus.png rename to OCH/charter/driver/src/main/res/drawable/icon_point_grey_bus.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/icon_station_start_end.png b/OCH/charter/driver/src/main/res/drawable/icon_station_start_end.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/icon_station_start_end.png rename to OCH/charter/driver/src/main/res/drawable/icon_station_start_end.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/no_order_data.png b/OCH/charter/driver/src/main/res/drawable/no_order_data.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/no_order_data.png rename to OCH/charter/driver/src/main/res/drawable/no_order_data.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/press_start_status.png b/OCH/charter/driver/src/main/res/drawable/press_start_status.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/press_start_status.png rename to OCH/charter/driver/src/main/res/drawable/press_start_status.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/start_failure.png b/OCH/charter/driver/src/main/res/drawable/start_failure.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/start_failure.png rename to OCH/charter/driver/src/main/res/drawable/start_failure.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/start_maker_icon.png b/OCH/charter/driver/src/main/res/drawable/start_maker_icon.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/start_maker_icon.png rename to OCH/charter/driver/src/main/res/drawable/start_maker_icon.png diff --git a/OCH/mogo-och-charter/src/main/res/drawable/start_success.png b/OCH/charter/driver/src/main/res/drawable/start_success.png similarity index 100% rename from OCH/mogo-och-charter/src/main/res/drawable/start_success.png rename to OCH/charter/driver/src/main/res/drawable/start_success.png diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_test_bar_view.xml b/OCH/charter/driver/src/main/res/layout/bus_test_bar_view.xml similarity index 100% rename from OCH/mogo-och-bus/src/main/res/layout/bus_test_bar_view.xml rename to OCH/charter/driver/src/main/res/layout/bus_test_bar_view.xml diff --git a/OCH/mogo-och-charter/src/main/res/layout/bus_traffic_light_view.xml b/OCH/charter/driver/src/main/res/layout/bus_traffic_light_view.xml similarity index 100% rename from OCH/mogo-och-charter/src/main/res/layout/bus_traffic_light_view.xml rename to OCH/charter/driver/src/main/res/layout/bus_traffic_light_view.xml diff --git a/OCH/mogo-och-charter/src/main/res/layout/charter_base_fragment.xml b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml similarity index 97% rename from OCH/mogo-och-charter/src/main/res/layout/charter_base_fragment.xml rename to OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml index 08318efc67..6a13691666 100644 --- a/OCH/mogo-och-charter/src/main/res/layout/charter_base_fragment.xml +++ b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml @@ -159,16 +159,6 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - - - + package="com.mogo.och.charter.passenger"> \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/assets/m1_style.data b/OCH/charter/passenger/src/main/assets/m1_style.data similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/assets/m1_style.data rename to OCH/charter/passenger/src/main/assets/m1_style.data diff --git a/OCH/mogo-och-charter-passenger/src/main/assets/m1_style_extra.data b/OCH/charter/passenger/src/main/assets/m1_style_extra.data similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/assets/m1_style_extra.data rename to OCH/charter/passenger/src/main/assets/m1_style_extra.data diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt similarity index 75% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt index e7733e8b20..c42743199f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/MogoOCHBusPassenger.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/MogoOCHBusPassenger.kt @@ -1,16 +1,17 @@ -package com.mogo.och.bus.passenger +package com.mogo.och.charter.passenger import android.content.Context import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentManager import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInDayMode import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.bus.passenger.constant.CharterPassengerConst -import com.mogo.och.bus.passenger.ui.MainFragment +import com.mogo.och.charter.passenger.constant.CharterPassengerConst +import com.mogo.och.charter.passenger.ui.MainFragment /** * 网约车-Bus-乘客端 @@ -18,11 +19,10 @@ import com.mogo.och.bus.passenger.ui.MainFragment * Created on 2022/3/29 */ @Route(path = CharterPassengerConst.PATH) -class MogoOCHBusPassenger : IMogoOCH { +class MogoOCHBusPassenger : IMoGoFunctionProvider { private var mActivity: FragmentActivity? = null private var mContainerId = 0 private var mPassengerFragment: MainFragment? = null - override fun createCoverage(activity: FragmentActivity, containerId: Int) {} override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? { mActivity = activity mContainerId = containerId!! @@ -42,20 +42,11 @@ class MogoOCHBusPassenger : IMogoOCH { } - /** - * 进入鹰眼模式,设置手势缩放地图失效 - */ - private fun stepIntoVrMode() { - d(SceneConstant.M_TAXI_P + TAG, "进入vr模式") - getMapUIController()?.stepInVrMode(true) // 白天模式 - stepInDayMode() //白天模式 状态栏字体颜色变黑 - } - private fun showFragment() { val supportFragmentManager: FragmentManager? = mActivity?.supportFragmentManager if (mPassengerFragment == null) { - d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======") + d(SceneConstant.M_TAXI_P + com.mogo.och.charter.passenger.MogoOCHBusPassenger.Companion.TAG, "准备add fragment======") var fragmentByTag: Fragment? = supportFragmentManager?.findFragmentByTag(MainFragment.TAG) mPassengerFragment = if (fragmentByTag is MainFragment){ fragmentByTag @@ -69,7 +60,7 @@ class MogoOCHBusPassenger : IMogoOCH { } return } - d(SceneConstant.M_TAXI_P + TAG, "准备show fragment") + d(SceneConstant.M_TAXI_P + com.mogo.och.charter.passenger.MogoOCHBusPassenger.Companion.TAG, "准备show fragment") supportFragmentManager?.beginTransaction()?.show(mPassengerFragment!!) ?.commitAllowingStateLoss() } @@ -82,6 +73,6 @@ class MogoOCHBusPassenger : IMogoOCH { } companion object { - private val TAG = MogoOCHBusPassenger::class.java.simpleName + private val TAG = com.mogo.och.charter.passenger.MogoOCHBusPassenger::class.java.simpleName } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/TaxiPassengerVideoPlay.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/TaxiPassengerVideoPlay.java similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/TaxiPassengerVideoPlay.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/TaxiPassengerVideoPlay.java index 72bbd8e3de..dafc61f873 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/TaxiPassengerVideoPlay.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/TaxiPassengerVideoPlay.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean; +package com.mogo.och.charter.passenger.bean; public class TaxiPassengerVideoPlay { diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/Temperature.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/Temperature.kt similarity index 62% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/Temperature.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/Temperature.kt index 84ea0e4ab8..2b866ac90b 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/Temperature.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/Temperature.kt @@ -1,3 +1,3 @@ -package com.mogo.och.bus.passenger.bean +package com.mogo.och.charter.passenger.bean data class Temperature(val index:Int,val value:Int,val showTitle:String) \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/event/EventLineSites.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/event/EventLineSites.kt new file mode 100644 index 0000000000..7a09daf04e --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/event/EventLineSites.kt @@ -0,0 +1,6 @@ +package com.mogo.och.charter.passenger.bean.event + +import com.mogo.och.charter.passenger.bean.response.LineInfoResponse +import com.mogo.och.charter.passenger.bean.response.SiteInfoResponse + +data class EventLineSites(val lineInfo: LineInfoResponse.LineInfo?, val sites: List?, val clear:Boolean=false) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/ArriveDestRequest.kt similarity index 61% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/ArriveDestRequest.kt index 60f5e971ad..d6721b2eac 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/ArriveDestRequest.kt @@ -1,3 +1,3 @@ -package com.mogo.och.bus.passenger.bean.request +package com.mogo.och.charter.passenger.bean.request data class ArriveDestRequest(val sn:String, val lineId:Long,val writeVersion:Long) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/BusPassengerQueryLineRequest.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/BusPassengerQueryLineRequest.java similarity index 79% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/BusPassengerQueryLineRequest.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/BusPassengerQueryLineRequest.java index bfa44d6d49..3f725073ce 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/BusPassengerQueryLineRequest.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/BusPassengerQueryLineRequest.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.request; +package com.mogo.och.charter.passenger.bean.request; public /** diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/EndOrderRequest.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/EndOrderRequest.kt similarity index 53% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/EndOrderRequest.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/EndOrderRequest.kt index 6df6ccc92f..ac0fc54838 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/EndOrderRequest.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/request/EndOrderRequest.kt @@ -1,3 +1,3 @@ -package com.mogo.och.bus.passenger.bean.request +package com.mogo.och.charter.passenger.bean.request data class EndOrderRequest(val sn:String,val orderNo:String) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessStatusResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessStatusResponse.kt similarity index 83% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessStatusResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessStatusResponse.kt index ea11db3386..2cc798b3cb 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessStatusResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessStatusResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData import java.util.* diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessTimeResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessTimeResponse.kt similarity index 84% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessTimeResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessTimeResponse.kt index 9e9af83926..6d28ff1427 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/BusinessTimeResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/BusinessTimeResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoListResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoListResponse.kt similarity index 73% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoListResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoListResponse.kt index 4bbdccf061..91a577b10a 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoListResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoListResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoResponse.kt similarity index 83% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoResponse.kt index 366bc70641..e015e420ab 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LineInfoResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LineInfoResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LocusResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LocusResponse.kt similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LocusResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LocusResponse.kt index 3068118b1b..0addc40d3f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/LocusResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/LocusResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/M1DriverLoginStatusResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/M1DriverLoginStatusResponse.kt similarity index 90% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/M1DriverLoginStatusResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/M1DriverLoginStatusResponse.kt index 326d180289..69b4916311 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/M1DriverLoginStatusResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/M1DriverLoginStatusResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/OrderInfoResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/OrderInfoResponse.kt new file mode 100644 index 0000000000..6e88928e9b --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/OrderInfoResponse.kt @@ -0,0 +1,89 @@ +package com.mogo.och.charter.passenger.bean.response + +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.BaseData +import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil + +/** + * + */ +data class OrderInfoResponse(val data: OrderInfo?) : BaseData() { + data class OrderInfo( + val orderNo: String?,//订单id + val sn: String?,//司机sn + val productType: Int?,//车辆类型 + val lineId: Long?,//线路id + val lineName: String?,//线路名称 + var startSiteId: Int?, + var startSiteName: String?, + var startSiteNameKr: String?, + var siteId: Long?,//站点id + var siteName: String?,//站点名称 + val siteNameKr: String?,//站点名称 + var wgs84Lat: Double?, + var wgs84Lon: Double?, + val startTime: Long?,//开始时间 + val endTime: Long?,//结束时间 + val passengerPhone: String?,//乘客手机号 + var arriveStatus:Int?,//1:未到达 2:到达 + ){ + var gcj02Lat: Double?=null + get() { + if(field!=null){ + return field + } + if(wgs84Lat!=null&&wgs84Lon!=null){ + val coordinateConverterWgsToGcj = + CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj( + AbsMogoApplication.getApp(), + wgs84Lon!!, + wgs84Lat!! + ) + field = coordinateConverterWgsToGcj.latitude + gcj02Lon = coordinateConverterWgsToGcj.longitude + return field + }else{ + return null + } + } + var gcj02Lon: Double?=null + get() { + if(field!=null){ + return field + } + if(wgs84Lat!=null&&wgs84Lon!=null){ + val coordinateConverterWgsToGcj = + CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj( + AbsMogoApplication.getApp(), + wgs84Lon!!, + wgs84Lat!! + ) + field = coordinateConverterWgsToGcj.longitude + gcj02Lat = coordinateConverterWgsToGcj.latitude + return field + }else{ + return null + } + } + } + companion object{ + val ARRIVING = 1 + val ARRIVED = 2 + + /** + * 爱情号 + */ + val M1_LOVE = 1 + + /** + * 友情号 + */ + val M1_FRIENDLY = 2 + + /** + * 家庭号 + */ + val M1_FAMILY = 3 + } +} + diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt index 3ba52d8156..51e39a0a2d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/SiteInfoResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/SiteInfoResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.mogo.eagle.core.data.BaseData import com.mogo.och.common.module.bean.dpmsg.LineSite diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/TrajectoriesResponse.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/TrajectoriesResponse.kt similarity index 90% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/TrajectoriesResponse.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/TrajectoriesResponse.kt index 499ec9d66e..488b0e456c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/TrajectoriesResponse.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/bean/response/TrajectoriesResponse.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.bean.response +package com.mogo.och.charter.passenger.bean.response import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.BaseData diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IBusPassengerControllerStatusCallback.java similarity index 87% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IBusPassengerControllerStatusCallback.java index 879b502e20..da29bd8560 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IBusPassengerControllerStatusCallback.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IBusPassengerControllerStatusCallback.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.callback; +package com.mogo.och.charter.passenger.callback; import com.mogo.eagle.core.data.map.MogoLocation; diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt similarity index 84% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt index 6adf63cc21..7ee83cd636 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ICharterPassengerAutoStatusChangeCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.callback +package com.mogo.och.charter.passenger.callback /** * Created on 2022/3/31 diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IClearViewCallback.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IClearViewCallback.kt new file mode 100644 index 0000000000..e7a6c46def --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IClearViewCallback.kt @@ -0,0 +1,5 @@ +package com.mogo.och.charter.passenger.callback + +interface IClearViewCallback { + fun goneAllView() +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IDistanceCallback.kt similarity index 66% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IDistanceCallback.kt index c0d1a574fb..6f68eab6a8 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IDistanceCallback.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IDistanceCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.callback +package com.mogo.och.charter.passenger.callback interface IDistanceCallback { fun setDistancecAndTime(meters:Long , timeInSecond:Long ) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IOrderChangeCallback.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IOrderChangeCallback.kt similarity index 84% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IOrderChangeCallback.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IOrderChangeCallback.kt index 188a87ed79..80057e1293 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/IOrderChangeCallback.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/IOrderChangeCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.callback +package com.mogo.och.charter.passenger.callback interface IOrderChangeCallback { /** diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ITimeCallback.kt similarity index 61% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ITimeCallback.kt index a7283742a2..24c96a72df 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/callback/ITimeCallback.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/callback/ITimeCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.callback +package com.mogo.och.charter.passenger.callback interface ITimeCallback { fun setOrderTimeCallBack(timeInSecond: Long) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/constant/CharterPassengerConst.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/constant/CharterPassengerConst.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt index 09d15e054f..749964b9f5 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/constant/CharterPassengerConst.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.constant +package com.mogo.och.charter.passenger.constant /** * Created on 2021/12/6 diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt similarity index 82% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index dd5ffce344..692b642f2b 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.model +package com.mogo.och.charter.passenger.model import android.annotation.SuppressLint import android.content.Context @@ -12,28 +12,26 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLi import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLonLat 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.autopilot.IMoGoPlanningRottingListener import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.network.utils.GsonUtil -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.bus.passenger.bean.response.* -import com.mogo.och.bus.passenger.callback.* -import com.mogo.och.bus.passenger.constant.CharterPassengerConst -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager -import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.utils.VoiceFocusManager +import com.mogo.och.charter.passenger.bean.response.* +import com.mogo.och.charter.passenger.callback.* +import com.mogo.och.charter.passenger.constant.CharterPassengerConst +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.charter.passenger.net.BusPassengerServiceManager +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.charter.passenger.utils.VoiceFocusManager import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager @@ -43,7 +41,7 @@ import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.CharterSendTripInfoManager import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION -import com.mogo.och.common.module.manager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.PinYinUtil @@ -57,6 +55,7 @@ import mogo.telematics.pad.MessagePad import java.util.* import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeUnit +import kotlin.math.max /** * Created on 2022/3/31 @@ -79,13 +78,6 @@ object CharterPassengerModel { var mAutoStatusChnageListener = ConcurrentHashMap() - // 定位监听 - private val mControllerStatusCallbackMap = - ConcurrentHashMap() - - // 当前位置坐标 - private var mLocationGCJ02: MogoLocation? = null - // 订单信息 有订单有线路结束订单 @Volatile private var orderInfo: OrderInfoResponse.OrderInfo? = null @@ -121,7 +113,6 @@ object CharterPassengerModel { private var carTypeChageListener: IOrderChangeCallback? = null private var subscribeCountDown: Disposable? = null - var switchLine5minWait: Disposable? = null @Volatile var newCheckedSite: SiteInfoResponse.SiteInfo? = null @@ -137,7 +128,6 @@ object CharterPassengerModel { private fun releaseListeners() { CallerAutoPilotStatusListenerManager.removeListener(mGoAutopilotStatusListener) - CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) CallerPlanningRottingListenerManager.removeListener(moGoAutopilotPlanningListener) } @@ -147,8 +137,6 @@ object CharterPassengerModel { .registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener) // 自动驾驶状态变化监听 CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) - // 定位监听 - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 4, mMapLocationListener) // 自动驾驶路线规划接口 返回自动驾驶轨迹 CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener) // 登录状态监听 @@ -156,14 +144,6 @@ object CharterPassengerModel { } // region 设置业务回调 - fun setControllerStatusCallback(tag: String, callback: IBusPassengerControllerStatusCallback?) { - if (tag.isBlank()) return - if (callback == null) { - mControllerStatusCallbackMap.remove(tag) - return - } - mControllerStatusCallbackMap[tag] = callback - } fun setAutoStatusCallback(tag: String, callback: ICharterPassengerAutoStatusChangeCallback?) { if (tag.isBlank()) return @@ -186,16 +166,16 @@ object CharterPassengerModel { // 2 、打开空调暖风机灯设置页面 // 3、车控页面、 // 4、打开选择线路页面 - BusPassengerModelLoopManager.removeLoopFunction(TAGLOGIN) - CallerLogger.d(M_BUS_P + TAG, "结束登录状态轮询") + BizLoopManager.removeLoopFunction(TAGLOGIN) + d(M_BUS_P + TAG, "结束登录状态轮询") // 启动订单轮 startOrderLoop() } else { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGLOGIN, LoopInfo(3, ::queryLoginStatus) ) - CallerLogger.d(M_BUS_P + TAG, "启动登录状态轮询") + d(M_BUS_P + TAG, "启动登录状态轮询") } } }) @@ -203,18 +183,6 @@ object CharterPassengerModel { // endregion // region 设置外部回调 - // 定位监听 - private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = - object : IMoGoChassisLocationGCJ02Listener { - override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { - if (null == mogoLocation) return - mLocationGCJ02 = mogoLocation - for (callback in mControllerStatusCallbackMap.values) { - callback.onCarLocationChanged(mogoLocation) - } - } - } - // 自动驾驶状态监听 private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener = object : IMoGoAutopilotStatusListener { @@ -225,7 +193,7 @@ object CharterPassengerModel { } override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) { - CallerLogger.d(M_BUS_P + TAG, "底盘给到站信息") + d(M_BUS_P + TAG, "底盘给到站信息") arriveDest() } } @@ -317,13 +285,24 @@ object CharterPassengerModel { LoginStatusManager.setLoginStatus(data.data.driverStatus) } - override fun onFail(code: Int, msg: String) {} + override fun onFail(code: Int, msg: String) { + RxUtils.createSubscribe { + queryLoginStatus() + } + } + + override fun onError() { + super.onError() + RxUtils.createSubscribe { + queryLoginStatus() + } + } }) } //监听网络变化,避免启动机器时无网导致无法更新订单信息 private val mNetWorkIntentListener = IMogoIntentListener { intentStr, intent -> - CallerLogger.d(M_BUS_P + TAG, "onIntentReceived = %s", intentStr) + d(M_BUS_P + TAG, "onIntentReceived = %s", intentStr) if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) { if (NetworkUtils.isConnected(mContext)) { queryLoginStatus() @@ -337,19 +316,19 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun startOrderLoop() { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGORDER, LoopInfo(3, ::queryOrder) ) - CallerLogger.d(M_BUS_P + TAG, "启动订单轮询") + d(M_BUS_P + TAG, "启动订单轮询") } /** * 启动订单轮训 */ private fun endOrderLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGORDER) - CallerLogger.d(M_BUS_P + TAG, "结束订单轮询") + BizLoopManager.removeLoopFunction(TAGORDER) + d(M_BUS_P + TAG, "结束订单轮询") } /** @@ -359,7 +338,7 @@ object CharterPassengerModel { BusPassengerServiceManager.queryOrderInfo( mContext, object : OchCommonServiceCallback { override fun onSuccess(data: OrderInfoResponse?) { - CallerLogger.d(M_BUS_P + TAG, "订单信息:$data") + d(M_BUS_P + TAG, "订单信息:$data") if (data?.data == null) { if (orderInfo != null) { // 启动车辆服务状态 @@ -372,7 +351,7 @@ object CharterPassengerModel { } override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") + ToastCharterUtils.showToastShort("$code:$msg") } }) } @@ -386,20 +365,14 @@ object CharterPassengerModel { //设置车模 if (this.orderInfo?.productType != orderData.productType) { this.carTypeChageListener?.setCarChangeListener(orderData.productType) - CallerLogger.d(M_BUS_P + TAG, "设置车模") + d(M_BUS_P + TAG, "设置车模") } if (this.orderInfo?.siteId != orderData.siteId) { - val coordinateConverterWgsToGcj = - CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj( - mContext, - order.wgs84Lon!!, - order.wgs84Lat!! - ) this.carTypeChageListener?.setEndStationCallBack( order.siteId, order.siteName, - coordinateConverterWgsToGcj.longitude, - coordinateConverterWgsToGcj.latitude + order.gcj02Lon!!, + order.gcj02Lat!! ) } this.orderInfo?.orderNo?.let { @@ -424,27 +397,21 @@ object CharterPassengerModel { this.orderInfo = orderData } //计算终点距离 - mLocationGCJ02?.let { currentInfo -> + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { currentInfo -> // 两点之间的距离 - val coordinateConverterWgsToGcj = - CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj( - mContext, - order.wgs84Lon!!, - order.wgs84Lat!! - ) val calculateLineDistance = CoordinateUtils.calculateLineDistance( currentInfo.longitude, currentInfo.latitude, - coordinateConverterWgsToGcj.longitude, - coordinateConverterWgsToGcj.latitude + order.gcj02Lon!!, + order.gcj02Lat!! ) // 小于15m到站 if (calculateLineDistance < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE && calculateLineDistance > 0) { - CallerLogger.d(M_BUS_P + TAG, "小于15米到站1") + d(M_BUS_P + TAG, "小于15米到站1") arriveDest() } if (calculateLineDistance < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && calculateLineDistance > 0) { - CallerLogger.d(M_BUS_P + TAG, "小于100米到站") + d(M_BUS_P + TAG, "小于100米到站") arriveDestSoon() } } @@ -489,16 +456,16 @@ object CharterPassengerModel { * 启动订单轮训 */ private fun startCarStatusLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGCARSTATUS, LoopInfo(3, ::queryCarStatus)) - CallerLogger.d(M_BUS_P + TAG, "启动车态轮询") + BizLoopManager.setLoopFunction(TAGCARSTATUS, LoopInfo(3, ::queryCarStatus)) + d(M_BUS_P + TAG, "启动车态轮询") } /** * 启动订单轮训 */ private fun endCarStatusLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGCARSTATUS) - CallerLogger.d(M_BUS_P + TAG, "结束车态轮询") + BizLoopManager.removeLoopFunction(TAGCARSTATUS) + d(M_BUS_P + TAG, "结束车态轮询") } /** @@ -513,7 +480,7 @@ object CharterPassengerModel { } override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") + ToastCharterUtils.showToastShort("$code:$msg") } }) } @@ -522,7 +489,7 @@ object CharterPassengerModel { if (data.orderNo != null && data.orderNo.isNotEmpty()) {// 订单进行中 return } - // 结束路距计算 + // 结束路距计算 订单结束了 endCalculateDistanceLoop() // 停止时间校准 endCalibrationLoop() @@ -530,7 +497,6 @@ object CharterPassengerModel { orderInfo = null locusInfo = null if (data.businessStatus == 2) {// 订单结束 没有还车 - RxUtils.disposeSubscribe(switchLine5minWait) clearAutopilotControlParameters() setOrderStatus(OrderStatusEnum.NoOrderUse) } else { @@ -548,19 +514,19 @@ object CharterPassengerModel { * 启动时间校准轮训 */ private fun startCalibrationLoop() { - BusPassengerModelLoopManager.setLoopFunction( + BizLoopManager.setLoopFunction( TAGCALIBRATION, LoopInfo(120, ::queryBusinessTime, immediately = true) ) - CallerLogger.d(M_BUS_P + TAG, "启动时间校准轮询") + d(M_BUS_P + TAG, "启动时间校准轮询") } /** * 停止时间校准轮训 */ private fun endCalibrationLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGCALIBRATION) - CallerLogger.d(M_BUS_P + TAG, "结束时间校准轮询") + BizLoopManager.removeLoopFunction(TAGCALIBRATION) + d(M_BUS_P + TAG, "结束时间校准轮询") } /** @@ -597,7 +563,7 @@ object CharterPassengerModel { .getString(R.string.m1_end_order_5min), 2 ) VoiceManager.surplus5min(VoiceFocusManager.getVoiceCmdCallBack()) - CallerLogger.d(M_BUS_P + TAG, "倒计时5分钟${it.orderNo}") + d(M_BUS_P + TAG, "倒计时5分钟${it.orderNo}") SharedPrefs.getInstance(mContext) .putBoolean("${it.orderNo}$min5Speak", true) } @@ -615,13 +581,13 @@ object CharterPassengerModel { } else { invokeOrderLeftTimeListeners(millisUntilFinished) } - CallerLogger.d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}") + d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}") } } } override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") + ToastCharterUtils.showToastShort("$code:$msg") } }) } @@ -636,8 +602,8 @@ object CharterPassengerModel { //设置全局轨迹信息 locusInfo = data.data - CallerLogger.d(M_BUS_P + TAG, "查询自动驾驶轨迹信息") - CallerLogger.d( + d(M_BUS_P + TAG, "查询自动驾驶轨迹信息") + d( M_BUS_P + TAG, GsonUtil.jsonFromObject( locusInfo ) @@ -645,7 +611,7 @@ object CharterPassengerModel { } override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") + ToastCharterUtils.showToastShort("$code:$msg") } }) } @@ -656,8 +622,8 @@ object CharterPassengerModel { * 启动路距计算 */ private fun startCalculateDistanceLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) - CallerLogger.d(M_BUS_P + TAG, "开始路距计算") + BizLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) + d(M_BUS_P + TAG, "开始路距计算") } /** @@ -667,8 +633,8 @@ object CharterPassengerModel { * ③ 到站成功后 */ private fun endCalculateDistanceLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE) - CallerLogger.d(M_BUS_P + TAG, "结束路距计算") + BizLoopManager.removeLoopFunction(TAGDISTANCE) + d(M_BUS_P + TAG, "结束路距计算") } /** @@ -676,33 +642,27 @@ object CharterPassengerModel { */ private fun calculateDistance() { //mLocation gcj坐标 - mLocationGCJ02?.let { + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { orderInfo?.let { order -> - CallerLogger.d(M_BUS_P + "calculateDistance", "订单信息:$order") + d(M_BUS_P + "calculateDistance", "订单信息:$order") if (order.siteId == null || order.siteId == 0L || order.wgs84Lat == null || order.wgs84Lat == 0.0 || order.wgs84Lon == null || order.wgs84Lon == 0.0 ) { - CallerLogger.d(M_BUS_P + "calculateDistance", "站点信息未获得") + d(M_BUS_P + "calculateDistance", "站点信息未获得") return } newCheckedSite?.let { if (it.siteId != order.siteId) { - CallerLogger.d(M_BUS_P + "calculateDistance", "站点和已选不吻合") + d(M_BUS_P + "calculateDistance", "站点和已选不吻合") return } } // 启动轨迹计算 var lastSumLength = 0f - val orderLonLat = - CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj( - mContext, - order.wgs84Lon!!, - order.wgs84Lat!! - ) val mogoLocation = MogoLocation() - mogoLocation.longitude = orderLonLat.longitude - mogoLocation.latitude = orderLonLat.latitude + mogoLocation.longitude = order.gcj02Lon!! + mogoLocation.latitude = order.gcj02Lat!! lastSumLength = CoordinateUtils.calculateLineDistance( it.longitude, @@ -710,11 +670,11 @@ object CharterPassengerModel { mogoLocation.longitude, mogoLocation.latitude ) - CallerLogger.d(M_BUS_P + "calculateDistance", "两点距离和站点的直线距离:${lastSumLength}") + d(M_BUS_P + "calculateDistance", "两点距离和站点的直线距离:${lastSumLength}") if (lastSumLength > 100) { if (mRoutePoints == null || mRoutePoints?.size == 0) { //ToastCharterUtils.showLong("缺少轨迹数据暂停计算") - CallerLogger.d( + d( M_BUS_P + "calculateDistance两点距离", "缺少轨迹数据" ) @@ -727,11 +687,11 @@ object CharterPassengerModel { it, mogoLocation ) - CallerLogger.d( + d( M_BUS_P + TAG, "使用轨迹轨迹:${mRoutePoints?.size}--第一个点${mRoutePoints!![0]}--最后一个点:${mRoutePoints!!.last()}" ) - CallerLogger.d(M_BUS_P + "calculateDistance", "轨迹计算的距离$templastSumLength") + d(M_BUS_P + "calculateDistance", "轨迹计算的距离$templastSumLength") if (templastSumLength > 100) { lastSumLength = templastSumLength } @@ -740,16 +700,16 @@ object CharterPassengerModel { val lastTime: Double = lastSumLength / CharterPassengerConst.Charter_AVERAGE_SPEED * 3.6 //秒 - CallerLogger.d( + d( M_BUS_P + "calculateDistance", "最终信息:lastSumLength: ${lastSumLength}lastTime : $lastTime thread = ${Thread.currentThread().name}" ) if (lastSumLength < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE && lastSumLength > 0) { - CallerLogger.d(M_BUS_P + TAG, "小于100米到站2") + d(M_BUS_P + TAG, "小于100米到站2") arriveDestSoon() } if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE && lastSumLength > 0) { - CallerLogger.d(M_BUS_P + TAG, "小于15米到站2") + d(M_BUS_P + TAG, "小于15米到站2") arriveDest() return } @@ -766,7 +726,7 @@ object CharterPassengerModel { private fun setOrderStatus(orderStatus: OrderStatusEnum) { if (this.orderStatus != orderStatus) { - CallerLogger.d(M_BUS_P + TAG, "${this.orderInfo?.orderNo}新的状态:$orderStatus") + d(M_BUS_P + TAG, "${this.orderInfo?.orderNo}新的状态:$orderStatus") this.orderStatus = orderStatus for (callback in orderStatusChangeListeners.values) { callback.onStatusChange(this.orderStatus) @@ -788,7 +748,7 @@ object CharterPassengerModel { var distanceMap: MutableMap = TreeMap() // 计算所有点的距离 data.forEachIndexed { index, siteInfo -> - mLocationGCJ02?.let { currentInfo -> + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { currentInfo -> // 两点之间的距离 val calculateLineDistance = CoordinateUtils.calculateLineDistance( currentInfo.longitude, @@ -825,7 +785,7 @@ object CharterPassengerModel { } } for (mutableEntry in distanceMap) { - CallerLogger.d(M_BUS_P + TAG, "距离:${mutableEntry.key}-----第几个站点${mutableEntry.value}") + d(M_BUS_P + TAG, "距离:${mutableEntry.key}-----第几个站点${mutableEntry.value}") } var middle = -1 if (distanceMap.size >= 2) { @@ -836,51 +796,66 @@ object CharterPassengerModel { if (middle == 0) { return Pair(1, false) } - mLocationGCJ02?.let { + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().let { // 仅计算 距离最近的站点middle 附近5个坐标的夹角 + // middle middle-1 + var middleDegree1 = 0 + // middle middle+1 + var middleDegree2 = 0 + // middle-1 middle-2 + var middleDegree3 = 0 + // middle+1 middle+2 + var middleDegree4 = 0 + if (middle - 1 >= 0) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree1 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle).GcjLon!!, data.get(middle).GcjLat!!, data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!, ) - if (degree > 90) { - return Pair(middle, false) - } } if (middle + 1 < data.size) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree2 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!, data.get(middle).GcjLon!!, data.get(middle).GcjLat!!, ) - if (degree > 90) { - return Pair(middle + 1, false) - } } if (middle - 2 >= 0) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree3 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle - 1).GcjLon!!, data.get(middle - 1).GcjLat!!, data.get(middle - 2).GcjLon!!, data.get(middle - 2).GcjLat!!, ) - if (degree > 90) { - return Pair(middle - 1, false) - } } if (middle + 2 < data.size) { - val degree = CoordinateCalculateRouteUtil.getDegree( + middleDegree4 = CoordinateCalculateRouteUtil.getDegree( it.longitude, it.latitude, data.get(middle + 2).GcjLon!!, data.get(middle + 2).GcjLat!!, data.get(middle + 1).GcjLon!!, data.get(middle + 1).GcjLat!!, ) - if (degree > 90) { + } + val max1 = max(middleDegree1, middleDegree2) + val max2 = max(middleDegree3, middleDegree4) + d(M_BUS_P + TAG, "角度1:$middleDegree1---角度2:$middleDegree2--角度3:$middleDegree3----角度4:$middleDegree4") + when (max(max1, max2)) { + middleDegree1 -> { + return Pair(middle, false) + } + middleDegree2 -> { + return Pair(middle + 1, false) + } + middleDegree3 -> { + return Pair(middle - 1, false) + } + middleDegree4 -> { return Pair(middle + 2, false) } + else -> {} } } @@ -905,7 +880,7 @@ object CharterPassengerModel { if (order != null && lineId != null && siteId != null) { val requestSuccessSign = "${siteId}$endKey" val requestIngSign = "${siteId}$endKeyRequestIng"//正在请求中 - CallerLogger.d( + d( M_BUS_P + BaseDPMsg.TAG, "requestSuccessSign${isSuccess(requestSuccessSign)}---requestIngSign${ isSuccess( @@ -932,7 +907,7 @@ object CharterPassengerModel { } override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") + ToastCharterUtils.showToastShort("$code:$msg") broadcastList[requestIngSign] = false } @@ -983,15 +958,14 @@ object CharterPassengerModel { OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).toByteArray() ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") + d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") } - RxUtils.disposeSubscribe(switchLine5minWait) // 清理轨迹 cleanRoutePoints() // 到站结束自驾 - CallerAutoPilotControlManager.cancelAutoPilot() - // 结束路距计算 + CallerAutoPilotControlManager.cancelAutoPilot4Passenger() + // 结束路距计算 到达目的站点 endCalculateDistanceLoop() // 到站置距离位0 invokeStationDistanceListener(-1, -1) @@ -1029,10 +1003,6 @@ object CharterPassengerModel { broadcastList[requestSuccessSign] == null || broadcastList[requestSuccessSign] == false fun cleanbroadcastListInfo(checkSite: SiteInfoResponse.SiteInfo?) { - RxUtils.disposeSubscribe(switchLine5minWait) - switchLine5minWait = RxUtils.createSubscribe(5 * 60 * 1000) { - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "5分钟倒计时可以选择线路了") - } newCheckedSite = checkSite cleanRoutePoints() broadcastList.clear() @@ -1045,7 +1015,7 @@ object CharterPassengerModel { } // 到站结束自驾 CallerAutoPilotControlManager.cancelAutoPilot() - // 停止路距计算 + // 停止路距计算 选择新的站点后 endCalculateDistanceLoop() // 到站置距离位0 invokeStationDistanceListener(-1, -1) @@ -1074,7 +1044,7 @@ object CharterPassengerModel { */ fun startAutopilot() { if (!OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) { - ToastCharterUtils.showLong( + ToastCharterUtils.showToastLong( OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + ", 请稍候重试" ) @@ -1082,22 +1052,22 @@ object CharterPassengerModel { } orderInfo?.let { if (it.arriveStatus == OrderInfoResponse.ARRIVED) { - ToastCharterUtils.showLong("已到达目的地请重新选择线路") + ToastCharterUtils.showToastLong("已到达目的地请重新选择线路") return } val parameters = initAutopilotControlParameters() if (null == parameters) { - ToastCharterUtils.showShort("请选择站点") - CallerLogger.e( + ToastCharterUtils.showToastShort("请选择站点") + e( SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty." ) return } - ToastCharterUtils.showShort("启动自动驾驶中") + ToastCharterUtils.showToastShort("启动自动驾驶中") cleanRoutePoints() startAutoPilot(parameters) - CallerLogger.d( + d( SceneConstant.M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + @@ -1110,11 +1080,8 @@ object CharterPassengerModel { private fun initAutopilotControlParameters(): AutopilotControlParameters? { if (!checkCurrentOCHOrder()) { - CallerLogger.e(M_BUS_P + TAG, "no order or order is empty.") + e(M_BUS_P + TAG, "no order or order is empty.") return null - } - mLocationGCJ02?.let { - } val parameters = AutopilotControlParameters() orderInfo?.let { orderInfo -> @@ -1133,9 +1100,8 @@ object CharterPassengerModel { locusInfo?.let { locus -> if (parameters.autoPilotLine == null) { parameters.autoPilotLine = AutoPilotLine( - orderInfo.lineId!!, - locus.csvFileUrl!!, - locus.csvFileMd5!!, + orderInfo.lineId!!, orderInfo.lineName!!, + locus.csvFileUrl!!, locus.csvFileMd5!!, locus.txtFileUrl!!, locus.txtFileMd5!!, locus.contrailSaveTime!!, locus.carModel!!, locus.csvFileUrlDPQP!!, locus.csvFileMd5DPQP!!, diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/OrderStatusEnum.kt similarity index 93% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/OrderStatusEnum.kt index cda47e3c88..7eaf77f7a5 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/OrderStatusEnum.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/OrderStatusEnum.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.model +package com.mogo.och.charter.passenger.model /** * Created on 2022/08/19 diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt similarity index 92% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt index ace0ad5d86..0b0a223687 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/BusPassengerServiceManager.kt @@ -1,18 +1,17 @@ -package com.mogo.och.bus.passenger.net +package com.mogo.och.charter.passenger.net import android.content.Context import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.och.bus.passenger.bean.request.ArriveDestRequest -import com.mogo.och.bus.passenger.bean.request.EndOrderRequest -import com.mogo.och.bus.passenger.bean.response.* -import com.mogo.och.bus.passenger.utils.ToastCharterUtils +import com.mogo.och.charter.passenger.bean.request.ArriveDestRequest +import com.mogo.och.charter.passenger.bean.request.EndOrderRequest +import com.mogo.och.charter.passenger.bean.response.* +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry -import retrofit2.http.Body /** * Created on 2022/3/31 @@ -40,7 +39,7 @@ object BusPassengerServiceManager { private fun beforeNet():Boolean{ if (draiverSn.isBlank()) { - ToastCharterUtils.showShort("已断开司机屏连接、请联系安全员") + ToastCharterUtils.showToastShort("已断开司机屏连接、请联系安全员") return true } return false diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/PassengerServiceApi.kt similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/PassengerServiceApi.kt index aafd120e7c..e0d4dd686d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/net/PassengerServiceApi.kt @@ -1,11 +1,11 @@ -package com.mogo.och.bus.passenger.net +package com.mogo.och.charter.passenger.net import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -import com.mogo.och.bus.passenger.bean.request.ArriveDestRequest -import com.mogo.och.bus.passenger.bean.request.EndOrderRequest -import com.mogo.och.bus.passenger.bean.response.* +import com.mogo.och.charter.passenger.bean.request.ArriveDestRequest +import com.mogo.och.charter.passenger.bean.request.EndOrderRequest +import com.mogo.och.charter.passenger.bean.response.* import io.reactivex.Observable import retrofit2.http.* diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt similarity index 86% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt index 1596ef34b0..0447f1a61b 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt @@ -1,9 +1,9 @@ -package com.mogo.och.bus.passenger.presenter +package com.mogo.och.charter.passenger.presenter import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.Presenter -import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt similarity index 66% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt index 66e05e80b9..26dad18d17 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt @@ -1,6 +1,6 @@ -package com.mogo.och.bus.passenger.presenter +package com.mogo.och.charter.passenger.presenter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment +import com.mogo.och.charter.passenger.ui.dialogfragment.M1CarUserNoOrderFragment class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) : BusBasePassengerFunctionDevicePresenter(view){ diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt similarity index 57% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt index a06052e277..50f6138ea2 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.presenter +package com.mogo.och.charter.passenger.presenter import android.graphics.Bitmap import android.graphics.BitmapFactory @@ -6,8 +6,8 @@ import android.graphics.Canvas import android.view.View import androidx.lifecycle.LifecycleOwner import com.amap.api.maps.model.LatLng +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist -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 @@ -18,37 +18,33 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.SharedPrefs import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.bean.response.TrajectoriesResponse -import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback -import com.mogo.och.bus.passenger.callback.IDistanceCallback -import com.mogo.och.bus.passenger.callback.IOrderChangeCallback -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener -import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.bus.passenger.receive.DriverMessage -import com.mogo.och.bus.passenger.ui.MainFragment -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.view.MakerWithSiteName -import com.mogo.och.bus.passenger.view.MakerWithSiteNamewithCheck +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.response.LineInfoResponse +import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse +import com.mogo.och.charter.passenger.bean.response.SiteInfoResponse +import com.mogo.och.charter.passenger.bean.response.TrajectoriesResponse +import com.mogo.och.charter.passenger.callback.IOrderChangeCallback +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener +import com.mogo.och.charter.passenger.model.OrderStatusEnum +import com.mogo.och.charter.passenger.receive.DriverMessage +import com.mogo.och.charter.passenger.ui.MainFragment +import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName +import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.manager.StopSideStatusManager import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil -import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import me.jessyan.autosize.utils.AutoSizeUtils import java.util.concurrent.ConcurrentHashMap -import kotlin.math.ceil class BusPassengerPresenter(view: MainFragment?) : BusBasePassengerFunctionDevicePresenter(view), - IDistanceCallback, IOrderChangeCallback, IOrderStatusChangeListener, - StopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback, IBusPassengerControllerStatusCallback { + IOrderChangeCallback, IOrderStatusChangeListener, + StopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback { private val lindIdAndView = ConcurrentHashMap() @@ -57,87 +53,43 @@ class BusPassengerPresenter(view: MainFragment?) : const val KEY4SHOWNOVICEGUIDANCE = "showNoviceGuidanceOrderNor" } + + init { + OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) + } + override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) CharterPassengerModel.init() // 定位监听 - CharterPassengerModel.setStationDistanceListener(TAG, this) - CharterPassengerModel.setControllerStatusCallback(TAG,this) CharterPassengerModel.setCarTypeChangeListener(this) CharterPassengerModel.setStatusChangeListener(TAG, this) CallerTelematicListenerManager.addListener(TAG, DriverMessage) StopSideStatusManager.addListener(TAG, this) setCarChangeListener(R.raw.m1) - } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - CharterPassengerModel.setStationDistanceListener(TAG, null) CharterPassengerModel.setCarTypeChangeListener(null) CallerTelematicListenerManager.removeListener(TAG) StopSideStatusManager.removeListener(TAG) } - override fun onCarLocationChanged(location: MogoLocation?) { - location?.let { - setSpeed(it.gnssSpeed) - } - } - - private fun setSpeed(speed: Float) { - UiThreadHandler.post { - val speedKM = (Math.abs(speed) * 3.6f).toInt() - mView?.setSpeed(speedKM.toString()) - } - } - - private fun setDistanceAndTime( - distance: String, - distanceUnit: String, - leftTime: String, - arriveTime: String - ) { - UiThreadHandler.post { - mView?.setDistanceAndTime(distance, distanceUnit, leftTime, arriveTime) - } - } - - /** - * 计算剩余距离和剩余时间 - */ - override fun setDistancecAndTime(meters: Long, timeInSecond: Long) { - if (meters < 0 && timeInSecond < 0) { - setDistanceAndTime("--", context.getString(R.string.m1_distance_unit_km), "--", "--") - return - } - var dis: String? = "0" - var disUnit = "KM" - if (meters > 0) { - if (meters / 1000 < 1) { - disUnit = context.getString(R.string.m1_distance_unit_m) - dis = Math.round(meters.toFloat()).toString() - } else { - disUnit = context.getString(R.string.m1_distance_unit_km) - dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) - } - } - val time = ceil(timeInSecond / 60f).toInt() - val arriveTime = DateTimeUtil.getAfterSecondTime(timeInSecond.toInt()) - setDistanceAndTime(dis.toString(), disUnit, time.toString(), arriveTime) - } - override fun setCarChangeListener(productType: Int?) { when (productType) { OrderInfoResponse.M1_LOVE -> { mView?.setCarModle(R.raw.aiqinghao) } + OrderInfoResponse.M1_FAMILY -> { mView?.setCarModle(R.raw.jiatinghao) } + OrderInfoResponse.M1_FRIENDLY -> { mView?.setCarModle(R.raw.pengyouhao) } + else -> { mView?.setCarModle(R.raw.m1) } @@ -157,33 +109,36 @@ class BusPassengerPresenter(view: MainFragment?) : clearShowNoviceGuidanceSharedPrefs() } } + OrderStatusEnum.OrderNoLine -> { CallerOrderListenerManager.invokeOrderRemoval(); showNoviceGuidance() } + OrderStatusEnum.OrdersWithLine -> {} OrderStatusEnum.NoOrderUse -> { when (CallerAutoPilotStatusListenerManager.getState()) { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 - ToastCharterUtils.showShort("设备未就绪请稍等,请安全员主动停止车辆") + ToastCharterUtils.showToastShort("设备未就绪请稍等,请安全员主动停止车辆") } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// - ToastCharterUtils.showShort("因车辆正在人工驾驶中无法靠边停车,请安全员主动停止车辆") + ToastCharterUtils.showToastShort("因车辆正在人工驾驶中无法靠边停车,请安全员主动停止车辆") } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { // 靠边停车 订单结束 靠边停车 CallerAutoPilotControlManager.sendPlanningCmd(1) } + IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - ToastCharterUtils.showShort("因车辆正在平行驾驶中无法靠边停车,请安全员主动停止车辆") + ToastCharterUtils.showToastShort("因车辆正在平行驾驶中无法靠边停车,请安全员主动停止车辆") } + else -> {} } UiThreadHandler.post { - UiThreadHandler.post { - mView?.showOpenAndCloseDoor() - setDistancecAndTime(-1, -1) - } + mView?.showOpenAndCloseDoor() } } } @@ -196,21 +151,21 @@ class BusPassengerPresenter(view: MainFragment?) : private fun showNoviceGuidance() { CallerLogger.d(M_BUS_P + TAG, "showNoviceGuidance") val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() - currentOrderInfo?.orderNo?.let {order-> + currentOrderInfo?.orderNo?.let { order -> val stringSet = SharedPrefs.getInstance(context).getStringSet(KEY4SHOWNOVICEGUIDANCE) - if(stringSet==null){ + if (stringSet == null) { - }else{ + } else { if (stringSet.contains(order)) { return - }else{ + } else { } } UiThreadHandler.post({ mView?.showNoviceGuidanceFragment() - },UiThreadHandler.MODE.QUEUE) + }, UiThreadHandler.MODE.QUEUE) } } @@ -234,26 +189,30 @@ class BusPassengerPresenter(view: MainFragment?) : UiThreadHandler.post { when (actionStatus) { StopSideStatusManager.Status.NOSTART -> { - ToastCharterUtils.showShort(errorInfo) + ToastCharterUtils.showToastShort(errorInfo?:"") } + StopSideStatusManager.Status.START -> { VoiceNotice.showNotice( context.getString(R.string.m1_stop_site_zh), AIAssist.LEVEL0 ) } + StopSideStatusManager.Status.DOING -> { // 正在靠边停车 } + StopSideStatusManager.Status.EndingSuccess -> { - ToastCharterUtils.showShort("靠边停车成功") + ToastCharterUtils.showToastShort("靠边停车成功") VoiceNotice.showNotice( context.getString(R.string.m1_stop_site_success), AIAssist.LEVEL0 ) } + StopSideStatusManager.Status.EndingFaile -> { - ToastCharterUtils.showShort("车辆系统繁忙,请稍后再试") + ToastCharterUtils.showToastShort("车辆系统繁忙,请稍后再试") } } } @@ -262,9 +221,9 @@ class BusPassengerPresenter(view: MainFragment?) : override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) { if (!isFirst) { if (isOpen) { - ToastCharterUtils.showShort("已开启车门") + ToastCharterUtils.showToastShort("已开启车门") } else { - ToastCharterUtils.showShort("已关门车门") + ToastCharterUtils.showToastShort("已关门车门") } } } @@ -273,65 +232,90 @@ class BusPassengerPresenter(view: MainFragment?) : lineInfo: LineInfoResponse.LineInfo, sites: List ) { - CharterPassengerModel.getLineTrajectory(lineInfo.lineId!!,object : OchCommonServiceCallback { - override fun onSuccess(data: TrajectoriesResponse?) { - if (null != data && 0 == data.code) { - data.data?.let { - CallerLogger.d(M_BUS_P + TAG, "getLineTrajectory轨迹点:${data.data.size}") - val trajectoryList = mutableListOf() - it.forEach {latLngMain -> - trajectoryList.add(latLngMain.exchangeData()) + CharterPassengerModel.getLineTrajectory(lineInfo.lineId!!, + object : OchCommonServiceCallback { + override fun onSuccess(data: TrajectoriesResponse?) { + if (null != data && 0 == data.code) { + data.data?.let { + CallerLogger.d( + M_BUS_P + TAG, + "getLineTrajectory轨迹点:${data.data.size}" + ) + val trajectoryList = mutableListOf() + it.forEach { latLngMain -> + trajectoryList.add(latLngMain.exchangeData()) + } + drawStationInfo(sites) + mView?.drawOverMapViewTrajectory(trajectoryList) } - drawStationInfo(sites) - mView?.drawOverMapViewTrajectory(trajectoryList) } } - } - override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") - } - }) + override fun onFail(code: Int, msg: String) { + ToastCharterUtils.showToastShort("$code:$msg") + } + }) } - fun drawStationInfo(sites: List){ + fun drawStationInfo(sites: List) { val stationsList: MutableList = mutableListOf() val stationsNameList: MutableList = mutableListOf() - val stationIcon = BitmapFactory.decodeResource(context.resources, R.drawable.map_staton_icon) + val stationIcon = + BitmapFactory.decodeResource(context.resources, R.drawable.map_staton_icon) sites.forEach { - stationsList.add(SiteMarkerBean(LatLng(it.GcjLat!!,it.GcjLon!!),stationIcon,0.5f,1f)) - val bitmap = getBitmap(it.siteId!!,it.siteName ?: "", it.isCheck) - stationsNameList.add(SiteMarkerBean(LatLng(it.GcjLat,it.GcjLon),bitmap,0.0f,0.2f)) + stationsList.add( + SiteMarkerBean( + LatLng(it.GcjLat!!, it.GcjLon!!), + stationIcon, + 0.5f, + 1f + ) + ) + val bitmap = getBitmap(it.siteId!!, it.siteName ?: "", it.isCheck) + stationsNameList.add(SiteMarkerBean(LatLng(it.GcjLat, it.GcjLon), bitmap, 0.0f, 0.2f)) } - mView?.drawOverMapViewStation(stationsList,stationsNameList) + mView?.drawOverMapViewStation(stationsList, stationsNameList) } - private fun getBitmap(siteId:Long,siteName: String,isCheck:Boolean): Bitmap { + private fun getBitmap(siteId: Long, siteName: String, isCheck: Boolean): Bitmap { var siteView = lindIdAndView[siteId] - if(siteView==null){ + if (siteView == null) { val marker = MakerWithSiteName(context) - marker.setTextAndCheck(siteName,isCheck) + marker.setTextAndCheck(siteName, isCheck) marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) ) marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) val bitmap = Bitmap.createBitmap(marker.width, marker.height, Bitmap.Config.ARGB_8888) marker.draw(Canvas(bitmap)) - siteView = MakerWithSiteNamewithCheck(isCheck,marker,bitmap) + siteView = MakerWithSiteNamewithCheck(isCheck, marker, bitmap) lindIdAndView[siteId] = siteView - }else{ + } else { CallerLogger.d(M_BUS_P + TAG, "缓存View:$siteName---${siteView.isCheck}-----$isCheck") if (siteView.isCheck != isCheck) { val marker = siteView.makerWithSiteName - marker.setTextAndCheck(siteName,isCheck) + marker.setTextAndCheck(siteName, isCheck) marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.UNSPECIFIED) + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.UNSPECIFIED + ) ) marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) - val bitmap = Bitmap.createBitmap(marker.width, marker.height, Bitmap.Config.ARGB_8888) + val bitmap = + Bitmap.createBitmap(marker.width, marker.height, Bitmap.Config.ARGB_8888) marker.draw(Canvas(bitmap)) siteView.isCheck = isCheck siteView.bitmapView = bitmap @@ -351,10 +335,18 @@ class BusPassengerPresenter(view: MainFragment?) : it.wgs84Lat!! ) - val latLng = LatLng(coordinateConverterWgsToGcj.latitude, coordinateConverterWgsToGcj.longitude) + val latLng = LatLng( + coordinateConverterWgsToGcj.latitude, + coordinateConverterWgsToGcj.longitude + ) mView?.drawEndStation(latLng) } } } + + fun querLogin() { + CharterPassengerModel.queryLoginStatus() + } + } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt similarity index 85% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt index c29775333b..92d0e7807f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt @@ -1,11 +1,9 @@ -package com.mogo.och.bus.passenger.presenter +package com.mogo.och.charter.passenger.presenter import androidx.lifecycle.LifecycleOwner -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.NoviceGuidanceFragment +import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.ui.dialogfragment.NoviceGuidanceFragment import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java new file mode 100644 index 0000000000..aae72e7b38 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/provider/StatusViewManager.java @@ -0,0 +1,36 @@ +package com.mogo.och.charter.passenger.provider; + +import android.content.Context; +import android.view.View; + +import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView; + +import androidx.annotation.NonNull; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.constants.MogoServicePaths; +import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; +import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView; + +/** + * @author congtaowang + * @since 2020-01-06 + *

+ * 根据优先级控制显示 window view. + */ +@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) +public class StatusViewManager implements IStatusViewLayout { + + private StatusBarView statusBarView; + + @NonNull + @Override + public View getStatusView(Context context) { + return statusBarView; + } + + @Override + public void init(Context context) { + statusBarView = new StatusBarView(context); + } +} diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt index 3ef66cc329..d2cce6cfe2 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/receive/DriverMessage.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.receive +package com.mogo.och.charter.passenger.receive import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist @@ -8,9 +8,9 @@ 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.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse +import com.mogo.och.charter.passenger.model.CharterPassengerModel import com.mogo.och.common.module.bean.dpmsg.* import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.OchCommonConst diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt similarity index 51% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt index ae0b1ccadc..4fd5699571 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/MainFragment.kt @@ -1,35 +1,36 @@ -package com.mogo.och.bus.passenger.ui +package com.mogo.och.charter.passenger.ui import android.graphics.BitmapFactory import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import com.alibaba.android.arouter.launcher.ARouter import com.amap.api.maps.model.LatLng import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.data.config.HdMapBuildConfig -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController import com.mogo.eagle.core.function.hmi.ui.msgbox.MMsgBoxButtonView -import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.function.view.SiteMarkerBean import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.och.bus.passenger.utils.ToastCharterUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.map.listener.IMogoMapListener +import com.mogo.map.listener.MogoMapListenerHandler import com.mogo.map.uicontroller.VisualAngleMode -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.event.DebugView -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter -import com.mogo.och.bus.passenger.ui.dialogfragment.DebugViewWatchDogFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.NoviceGuidanceFragment -import com.mogo.och.bus.passenger.view.statusbar.StatusBarView +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.event.EventLineSites +import com.mogo.och.charter.passenger.callback.IClearViewCallback +import com.mogo.och.charter.passenger.presenter.BusPassengerPresenter +import com.mogo.och.charter.passenger.ui.bottom.BottomBar +import com.mogo.och.charter.passenger.ui.bottom.BottomClickView +import com.mogo.och.charter.passenger.ui.dialogfragment.M1CarUserNoOrderFragment +import com.mogo.och.charter.passenger.ui.dialogfragment.NoviceGuidanceFragment +import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.common.module.biz.constant.LoginStatusManager import kotlinx.android.synthetic.main.m1_main_fragment.* import org.greenrobot.eventbus.EventBus @@ -41,22 +42,38 @@ import java.lang.ref.WeakReference * @author: wangmingjun * @date: 2022/4/12 */ -class MainFragment : - MvpFragment() { +class MainFragment : MvpFragment(), IMogoMapListener { - private var bpFunctionGroupDialogFragment: WeakReference? = null - private var debugViewWatchDogFragment: WeakReference? = null private var m1CarUserNoOrderFragment: WeakReference? = null private var noviceGuidanceFragment: WeakReference? = null private val endStation = - BitmapFactory.decodeResource(AbsMogoApplication.getApp().resources, - R.drawable.m1_small_map_view_dir_end) + BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.m1_small_map_view_dir_end + ) private val lineTrajectory = - BitmapFactory.decodeResource(AbsMogoApplication.getApp().resources, - R.drawable.charter_p_trajectory_line) + BitmapFactory.decodeResource( + AbsMogoApplication.getApp().resources, + R.drawable.charter_p_trajectory_line + ) + + private val goneView = object : IClearViewCallback { + override fun goneAllView() { + bb_boorombar.setCheckIndex(BottomBar.SelectView.NONE) + } + } + + private var statusBarView: StatusBarView? = null override fun getLayoutId(): Int { + (ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_VIEW_MANAGER) + .navigation() as? IStatusViewLayout)?.apply { + val statusView = getStatusView(requireContext()) + if (statusView is StatusBarView) { + statusBarView = statusView + } + } return R.layout.m1_main_fragment } @@ -90,25 +107,47 @@ class MainFragment : }) - bb_boorombar.setSettingClickListener{ - openSettingPage(M1ContainFragment.SETTINGSOFTTAB) - } - bb_boorombar.setOrderInfoClickListener{ - if (LoginStatusManager.isLogin()) { - if(mPresenter?.haveOrder()==true){ - openSettingPage(M1ContainFragment.ORDERINFO) - }else{ - ToastCharterUtils.showShort("请确认订单") + bb_boorombar.setCheckChangeListener(object : BottomBar.ApplyClickLintener { + override fun onApplyClick(selectItem: BottomBar.SelectView): Boolean { + when (selectItem) { + BottomBar.SelectView.ORDERINFO -> { + if (LoginStatusManager.isLogin()) { + if (mPresenter?.haveOrder() == true) { + + } else { + ToastCharterUtils.showToastShort("请确认订单") + return true + } + } else { + mPresenter?.querLogin() + ToastCharterUtils.showToastShort(requireContext().getString(R.string.m1_please_login_driver)) + return true + } + showBizView(orderinfo = true) + } + BottomBar.SelectView.SETTING -> showBizView(softControl = true) + BottomBar.SelectView.LINE -> showBizView(selectLine = true) + BottomBar.SelectView.VIDEO -> showBizView(showVideo = true) + else -> { + showBizView() + statusBarView?.setBackgroudColor(R.color.bus_p_m1_80ffffff) + } } - }else{ - ToastCharterUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) + return false } - } - bb_boorombar.setLineClickListener{ - openSettingPage(M1ContainFragment.SELECTLINE) - } - aciv_enter_video.setOnClickListener{ - openSettingPage(M1ContainFragment.VIDEOTAB) + }) + bb_boorombar.setApplyClickListener(object : BottomClickView.ApplyClickLintener { + override fun onApplyClick() { + bb_boorombar.setCheckIndex(BottomBar.SelectView.NONE) + } + }) + biz_orderinfo.goneViewListener = goneView + biz_softcontrol.goneViewListener = goneView + biz_selectline.goneViewListener = goneView + biz_video.goneViewListener = goneView + + aciv_enter_video.setOnClickListener { + bb_boorombar.setCheckIndex(BottomBar.SelectView.VIDEO) } aciv_map_2_default.setOnClickListener { omvOverMap.displayCustomOverView() @@ -120,71 +159,46 @@ class MainFragment : controller.changeZoom2(0.8f) } } - - debug_arrive_dest.setOnClickListener { - CharterPassengerModel.arriveDest() - } - debug_show_noviceGuidance.setOnClickListener { - showNoviceGuidanceFragment() - } - debug_change_modle.setOnClickListener { - ToastCharterUtils.showShort("因车辆正在人工驾驶中无法靠边停车,请安全员主动停止车辆") - when (HdMapBuildConfig.currentCarVrIconRes) { - R.raw.aiqinghao -> { - mPresenter?.setCarChangeListener(OrderInfoResponse.M1_FAMILY) - } - R.raw.jiatinghao -> { - mPresenter?.setCarChangeListener(OrderInfoResponse.M1_FRIENDLY) - } - R.raw.pengyouhao -> { - mPresenter?.setCarChangeListener(0) - } - else -> { - mPresenter?.setCarChangeListener(OrderInfoResponse.M1_LOVE) - } - } - - } - - debug_show_endview.setOnClickListener { - showOpenAndCloseDoor() - } + MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener(TAG, this) } - private fun openSettingPage(tab: String) { - if (bpFunctionGroupDialogFragment?.get() == null) { - bpFunctionGroupDialogFragment = WeakReference(M1ContainFragment.newInstance()) - } - val bpFunctionGroup = bpFunctionGroupDialogFragment?.get() - M1ContainFragment.openSettingPage(childFragmentManager,parentFragmentManager,bpFunctionGroup,tab) + fun setCarMode(type: Int) { + mPresenter?.setCarChangeListener(type) } - private fun showDebugView() { - if (debugViewWatchDogFragment?.get() == null) { - debugViewWatchDogFragment = WeakReference(DebugViewWatchDogFragment.newInstance()) - } - val debugViewFragment = debugViewWatchDogFragment?.get() - DebugViewWatchDogFragment.showDebugView(childFragmentManager,parentFragmentManager,debugViewFragment) - } - - - fun setSpeed(speed: String) { - tv_speed.text = speed - } - - fun setDistanceAndTime( - distance: String, - distanceUnit: String, - leftTime:String, - arriveTime:String + private fun showBizView( + orderinfo: Boolean = false, + softControl: Boolean = false, + selectLine: Boolean = false, + showVideo: Boolean = false ) { - tv_distance.text = distance - tv_distance_unit.text = distanceUnit - tv_distance_surplus_time.text = leftTime - tv_distance_arrive_time.text = arriveTime + if (orderinfo) { + biz_orderinfo.visibility = View.VISIBLE + statusBarView?.setBackgroudColor(R.color.bus_p_m1_80ffffff) + } else { + biz_orderinfo.visibility = View.GONE + } + if (softControl) { + biz_softcontrol.visibility = View.VISIBLE + statusBarView?.setBackgroudColor(R.color.bus_p_m1_40ffffff) + } else { + biz_softcontrol.visibility = View.GONE + } + if (selectLine) { + biz_selectline.visibility = View.VISIBLE + statusBarView?.setBackgroudColor(R.color.bus_p_m1_80ffffff) + } else { + biz_selectline.visibility = View.GONE + } + if (showVideo) { + biz_video.visibility = View.VISIBLE + statusBarView?.setBackgroudColor(R.color.bus_p_m1_40ffffff) + } else { + biz_video.visibility = View.GONE + } } - fun setCarModle(rawInfo: Int){ + fun setCarModle(rawInfo: Int) { getMapUIController()?.changeCurrentIcon(rawInfo) HdMapBuildConfig.currentCarVrIconRes = rawInfo } @@ -201,9 +215,10 @@ class MainFragment : fun drawEndStation(latLng: LatLng) { val listOf = listOf(latLng) - omvOverMap.drawSiteMarkers(listOf,endStation,0.5f,1f) + omvOverMap.drawSiteMarkers(listOf, endStation, 0.5f, 1f) } - fun cleanEndStation(){ + + fun cleanEndStation() { omvOverMap.clearSiteMarkers() omvOverMap.clearCustomPolyline() } @@ -237,9 +252,12 @@ class MainFragment : EventBus.getDefault().unregister(this) } + override fun onMapLoaded() { + super.onMapLoaded() + getMapUIController()?.setAllGesturesEnabled(false) + } + fun showOpenAndCloseDoor() { - val bpFunctionGroup = bpFunctionGroupDialogFragment?.get() - bpFunctionGroup?.dismissAllowingStateLoss() val noviceGuidanceFragment = noviceGuidanceFragment?.get() noviceGuidanceFragment?.dismissAllowingStateLoss() @@ -247,23 +265,33 @@ class MainFragment : m1CarUserNoOrderFragment = WeakReference(M1CarUserNoOrderFragment.newInstance()) } val m1CarUserNoOrderFragment = m1CarUserNoOrderFragment?.get() - M1CarUserNoOrderFragment.showOpenAndCloseDoor(childFragmentManager,parentFragmentManager,m1CarUserNoOrderFragment) + M1CarUserNoOrderFragment.showOpenAndCloseDoor( + childFragmentManager, + parentFragmentManager, + m1CarUserNoOrderFragment + ) } + fun showNoviceGuidanceFragment() { if (noviceGuidanceFragment?.get() == null) { noviceGuidanceFragment = WeakReference(NoviceGuidanceFragment.newInstance()) } val noviceGuidanceFragmentWeak = noviceGuidanceFragment?.get() - NoviceGuidanceFragment.showNoviceGuidance(childFragmentManager,parentFragmentManager,noviceGuidanceFragmentWeak) + NoviceGuidanceFragment.showNoviceGuidance( + childFragmentManager, + parentFragmentManager, + noviceGuidanceFragmentWeak + ) } - fun closeOpenAndCloseDoor(){ + + fun closeOpenAndCloseDoor() { val bpFunctionGroup = m1CarUserNoOrderFragment?.get() bpFunctionGroup?.let { bpFunctionGroup.dismissAllowingStateLoss() } UiThreadHandler.postDelayed({ cleanEndStation() - },2_000) + }, 2_000) } @Subscribe(threadMode = ThreadMode.MAIN) @@ -276,37 +304,18 @@ class MainFragment : omvOverMap?.clearSiteNameViews() mPresenter?.drawEndStation() } else { - if(eventLineSites.lineInfo==null){//更新站点 + if (eventLineSites.lineInfo == null) {//更新站点 mPresenter?.drawStationInfo(eventLineSites.sites!!) - }else{// 更新轨迹和站点 - mPresenter?.getLineTrajectory(eventLineSites.lineInfo,eventLineSites.sites!!) + } else {// 更新轨迹和站点 + mPresenter?.getLineTrajectory(eventLineSites.lineInfo, eventLineSites.sites!!) } } } - @Subscribe(threadMode = ThreadMode.MAIN) - fun changeDebugView(debugView: DebugView) { - when (debugView.type) { - StatusBarView.bizz -> { - if(group_debug.visibility==View.GONE|| - group_debug.visibility==View.INVISIBLE){ - group_debug.visibility = View.VISIBLE - }else{ - group_debug.visibility = View.GONE - } - } - else -> { - if (ToggleDebugView.toggleDebugView.isShowIng()) { - ToggleDebugView.toggleDebugView.dismiss() - }else { - showDebugView() - } - } - } - - } - - fun drawOverMapViewStation(stationsList: MutableList,siteMarkers: List?){ + fun drawOverMapViewStation( + stationsList: MutableList, + siteMarkers: List? + ) { omvOverMap?.clearSiteMarkers() omvOverMap?.clearSiteNameViews() omvOverMap?.drawSiteMarkers(stationsList) @@ -319,6 +328,7 @@ class MainFragment : } companion object { - public const val TAG = "BusPassengerRouteFragment" + const val TAG = "BusPassengerRouteFragment" } + } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomBar.kt similarity index 56% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomBar.kt index 95937be4ea..55fab27613 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomBar.kt @@ -1,10 +1,11 @@ -package com.mogo.och.bus.passenger.ui.view.bottom +package com.mogo.och.charter.passenger.ui.bottom import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.och.bus.passenger.R +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.charter.passenger.R import kotlinx.android.synthetic.main.m1_bottom_bar.view.* class BottomBar @JvmOverloads constructor( @@ -18,33 +19,45 @@ class BottomBar @JvmOverloads constructor( setBackgroundResource(R.drawable.charter_p_bottom_bar_bg) } - private var checkIndex = SelectView.VIDEO + private var checkIndex = SelectView.NONE + + private var overMapViewApply:ApplyClickLintener?=null override fun onAttachedToWindow() { super.onAttachedToWindow() + cl_order_time.onClick { + setCheckIndex(SelectView.ORDERINFO) + } + actv_setting.onClick { + setCheckIndex(SelectView.SETTING) + } + actv_line.onClick { + setCheckIndex(SelectView.LINE) + } } - fun setOrderInfoClickListener(click:OnClickListener){ - cl_order_time.setOnClickListener(click) - } - fun setSettingClickListener(click:OnClickListener){ - actv_setting.setOnClickListener(click) - } - fun setLineClickListener(click:OnClickListener){ - actv_line.setOnClickListener(click) + fun setCheckChangeListener(overMapViewApply:ApplyClickLintener){ + this.overMapViewApply = overMapViewApply } - fun setApplyClickListener(click:BottomClickView.ApplyClickLintener){ + fun setApplyClickListener(click: BottomClickView.ApplyClickLintener){ aciv_center_image.applyClickListener=click actv_stop_site.applyClickListener=click actv_close_door.applyClickListener=click actv_open_door.applyClickListener=click } - fun setCheckIndex(index:SelectView){ - if(checkIndex==index){ + fun setCheckIndex(index: SelectView){ + val tempPreStatus = checkIndex + checkIndex = if(checkIndex==index){ + SelectView.NONE + }else{ + index + } + if (overMapViewApply?.onApplyClick(checkIndex)==true) { + // 外层业务拦截 + checkIndex = tempPreStatus return } - checkIndex = index if(checkIndex == SelectView.ORDERINFO){ cl_order_time_press.visibility = VISIBLE cl_order_time.setCheck(true) @@ -66,7 +79,11 @@ class BottomBar @JvmOverloads constructor( } enum class SelectView{ - ORDERINFO,SETTING,LINE,VIDEO + NONE,ORDERINFO,SETTING,LINE,VIDEO + } + + interface ApplyClickLintener{ + fun onApplyClick(selectItem:SelectView):Boolean } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomCheckView.kt similarity index 96% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomCheckView.kt index a211f57c7e..b8bfe7cb68 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomCheckView.kt @@ -1,11 +1,11 @@ -package com.mogo.och.bus.passenger.ui.view.bottom +package com.mogo.och.charter.passenger.ui.bottom import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R import kotlinx.android.synthetic.main.m1_bottom_stop_site.view.* open class BottomCheckView @JvmOverloads constructor( diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomClickView.kt similarity index 96% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomClickView.kt index 46d541ca12..aa092889cb 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomClickView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.view.bottom +package com.mogo.och.charter.passenger.ui.bottom import android.annotation.SuppressLint import android.content.Context @@ -9,7 +9,7 @@ import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R import kotlinx.android.synthetic.main.m1_bottom_stop_site.view.* open class BottomClickView @JvmOverloads constructor( @@ -28,7 +28,7 @@ open class BottomClickView @JvmOverloads constructor( private var normalDrawable: Int = -1 private var backageView: View? = null - var applyClickListener:ApplyClickLintener?=null + var applyClickListener: ApplyClickLintener?=null init { LayoutInflater.from(context).inflate(R.layout.m1_bottom_stop_site, this, true) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomOrderInfoView.kt similarity index 86% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomOrderInfoView.kt index d444f3c354..c48dedc79a 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomOrderInfoView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/BottomOrderInfoView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.view.bottom +package com.mogo.och.charter.passenger.ui.bottom import android.content.Context import android.util.AttributeSet @@ -8,16 +8,18 @@ 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.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.callback.ITimeCallback -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener -import com.mogo.och.bus.passenger.model.OrderStatusEnum +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.callback.ITimeCallback +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener +import com.mogo.och.charter.passenger.model.OrderStatusEnum import com.mogo.och.common.module.utils.DateTimeUtil import kotlinx.android.synthetic.main.m1_bottom_orderinfo.view.* import java.util.UUID -import kotlin.random.Random +/** + * 展示订单剩余时间 + */ open class BottomOrderInfoView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -41,9 +43,11 @@ open class BottomOrderInfoView @JvmOverloads constructor( fun setCheck(isCheck:Boolean){ if(isCheck){ actv_order_end_time.setTextColor(context.getColor(android.R.color.white)) + actv_order_null.setTextColor(context.getColor(android.R.color.white)) actv_order_end_time_title.setTextColor(context.getColor(android.R.color.white)) }else{ actv_order_end_time.setTextColor(context.getColor(R.color.bus_p_m1_0050E1)) + actv_order_null.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) actv_order_end_time_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt similarity index 83% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt index 437beb5442..cd53c836b8 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/CloseDoorView.kt @@ -1,10 +1,10 @@ -package com.mogo.och.bus.passenger.ui.view.bottom.impl +package com.mogo.och.charter.passenger.ui.bottom.impl import android.content.Context import android.util.AttributeSet import com.mogo.eagle.core.utilcode.util.ActivityUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.ui.bottom.BottomClickView import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt similarity index 87% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt index bd02492dd7..2fc39f56df 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/GoViewWithArrive.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.view.bottom.impl +package com.mogo.och.charter.passenger.ui.bottom.impl import android.annotation.SuppressLint import android.content.Context @@ -6,7 +6,6 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.MotionEvent import android.view.View -import androidx.appcompat.widget.AppCompatTextView import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener @@ -16,11 +15,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.callback.ICharterPassengerAutoStatusChangeCallback -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.callback.ICharterPassengerAutoStatusChangeCallback +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.ui.bottom.BottomClickView import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.utils.SoundPoolHelper @@ -67,7 +66,7 @@ class GoViewWithArrive @JvmOverloads constructor( }) setOnClickListener { if (ClickUtils.isClickTooFrequent(this,3000)) { - ToastCharterUtils.showShort("请稍后点击") + ToastCharterUtils.showToastShort("请稍后点击") return@setOnClickListener } startGo() @@ -79,12 +78,12 @@ class GoViewWithArrive @JvmOverloads constructor( if (LightAirconditionDoorStatusManager.doorStatus.isOpen) { val string = AbsMogoApplication.getApp().getString(R.string.m1_close_door_and_startauto) - ToastCharterUtils.showShort(string) + ToastCharterUtils.showToastShort(string) return } when (CallerAutoPilotStatusListenerManager.getState()) { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 - ToastCharterUtils.showShort("设备未就绪请稍等") + ToastCharterUtils.showToastShort("设备未就绪请稍等") } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// onceRegisterAutoStatus() @@ -95,7 +94,7 @@ class GoViewWithArrive @JvmOverloads constructor( CharterPassengerModel.leaveStation() } IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - ToastCharterUtils.showShort("因车辆正在平行驾驶中无法靠边停车,请稍后再试") + ToastCharterUtils.showToastShort("安全守护中,无需操作~") } else -> {} } @@ -124,7 +123,7 @@ class GoViewWithArrive @JvmOverloads constructor( startAutoTimeOut = RxUtils.createSubscribe(20_000) { if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { val string = AbsMogoApplication.getApp().getString(R.string.m1_start_auto_fail) - ToastCharterUtils.showLong(string) + ToastCharterUtils.showToastLong(string) } CharterPassengerModel.setAutoStatusCallback(TAG, null) } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt similarity index 79% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt index f7e374ac61..a3c5e86f9a 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/OpenDoorView.kt @@ -1,11 +1,10 @@ -package com.mogo.och.bus.passenger.ui.view.bottom.impl +package com.mogo.och.charter.passenger.ui.bottom.impl import android.content.Context import android.util.AttributeSet -import androidx.appcompat.widget.AppCompatTextView import com.mogo.eagle.core.utilcode.util.ActivityUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.ui.bottom.BottomClickView import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt similarity index 73% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt index 8266b48292..2233376fff 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/bottom/impl/StopSiteView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.view.bottom.impl +package com.mogo.och.charter.passenger.ui.bottom.impl import android.content.Context import android.util.AttributeSet @@ -6,9 +6,9 @@ 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.util.ActivityUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.ui.bottom.BottomClickView import com.mogo.och.common.module.utils.SoundPoolHelper class StopSiteView @JvmOverloads constructor( @@ -31,17 +31,17 @@ class StopSiteView @JvmOverloads constructor( private fun stopSite(){ when (CallerAutoPilotStatusListenerManager.getState()) { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 - ToastCharterUtils.showShort("设备未就绪请稍等,请稍后再试") + ToastCharterUtils.showToastShort("设备未就绪请稍等,请稍后再试") } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// - ToastCharterUtils.showShort("因车辆正在人工驾驶中无法靠边停车,请稍后再试") + ToastCharterUtils.showToastShort("因车辆正在人工驾驶中无法靠边停车,请稍后再试") } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { // 靠边停车 CallerAutoPilotControlManager.sendPlanningCmd(1) } IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - ToastCharterUtils.showShort("因车辆正在平行驾驶中无法靠边停车,请稍后再试") + ToastCharterUtils.showToastShort("因车辆正在平行驾驶中无法靠边停车,请稍后再试") } else -> {} } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugEvent.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugEvent.kt new file mode 100644 index 0000000000..9b36e29774 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugEvent.kt @@ -0,0 +1,3 @@ +package com.mogo.och.charter.passenger.ui.debugview + +data class DebugEvent(val type: String) \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt new file mode 100644 index 0000000000..067a3804bb --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/debugview/DebugView.kt @@ -0,0 +1,130 @@ +package com.mogo.och.charter.passenger.ui.debugview + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.fragment.app.FragmentActivity +import com.mogo.eagle.core.data.config.HdMapBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.ui.MainFragment +import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.common.module.manager.debug.DebugViewWatchDogFragment +import kotlinx.android.synthetic.main.m1_p_debug.view.debug_arrive_dest +import kotlinx.android.synthetic.main.m1_p_debug.view.debug_change_modle +import kotlinx.android.synthetic.main.m1_p_debug.view.debug_show_endview +import kotlinx.android.synthetic.main.m1_p_debug.view.debug_show_noviceGuidance +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode +import java.lang.ref.WeakReference + +class DebugView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener { + + companion object { + const val TAG = "DebugView" + } + + init { + LayoutInflater.from(context).inflate(R.layout.m1_p_debug, this, true) + visibility = GONE + } + + private var fragment: MainFragment?=null + + private var debugViewWatchDogFragment: WeakReference? = null + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + EventBus.getDefault().register(this) + + val activityByContext = ActivityUtils.getActivityByContext(context) + if(activityByContext is FragmentActivity){ + val fragment = activityByContext.supportFragmentManager.findFragmentByTag(MainFragment.TAG) + if(fragment is MainFragment){ + this.fragment = fragment + } + } + + debug_arrive_dest.setOnClickListener { + CharterPassengerModel.arriveDest() + } + debug_show_noviceGuidance.setOnClickListener { + fragment?.showNoviceGuidanceFragment() + } + debug_change_modle.setOnClickListener { + ToastCharterUtils.showToastShort("因车辆正在人工驾驶中无法靠边停车,请安全员主动停止车辆") + when (HdMapBuildConfig.currentCarVrIconRes) { + R.raw.aiqinghao -> { + fragment?.setCarMode(OrderInfoResponse.M1_FAMILY) + } + R.raw.jiatinghao -> { + fragment?.setCarMode(OrderInfoResponse.M1_FRIENDLY) + } + R.raw.pengyouhao -> { + fragment?.setCarMode(0) + } + else -> { + fragment?.setCarMode(OrderInfoResponse.M1_LOVE) + } + } + + } + + debug_show_endview.setOnClickListener { + fragment?.showOpenAndCloseDoor() + } + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun changeOverview(debugEvent: DebugEvent) { + when (debugEvent.type) { + StatusBarView.bizz -> { + if(visibility== View.GONE|| + visibility== View.INVISIBLE){ + visibility = View.VISIBLE + }else{ + visibility = View.GONE + } + } + else -> { + if (ToggleDebugView.toggleDebugView.isShowIng()) { + ToggleDebugView.toggleDebugView.dismiss() + }else { + showDebugView() + } + } + } + } + + private fun showDebugView() { + if (debugViewWatchDogFragment?.get() == null) { + debugViewWatchDogFragment = WeakReference(DebugViewWatchDogFragment.newInstance()) + } + val debugViewFragment = debugViewWatchDogFragment?.get() + fragment?.let { + DebugViewWatchDogFragment.showDebugView(it.childFragmentManager,it.parentFragmentManager,debugViewFragment) + } + } + + + + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + EventBus.getDefault().unregister(this) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt similarity index 97% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt index 16da2dddcd..5cafa0b340 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment +package com.mogo.och.charter.passenger.ui.dialogfragment import android.os.Bundle import android.util.Log @@ -15,8 +15,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.AppStateManager import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import com.mogo.och.common.module.voice.VoiceManager import kotlinx.android.synthetic.main.m1_order_end.* diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt similarity index 97% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt index face4be037..a7dfbfed3f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/NoviceGuidanceFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment +package com.mogo.och.charter.passenger.ui.dialogfragment import android.content.DialogInterface import android.os.Bundle @@ -15,11 +15,11 @@ import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter -import com.mogo.och.bus.passenger.presenter.CharterPassengerNoviceGuidancePresenter -import com.mogo.och.bus.passenger.ui.MainFragment +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.presenter.BusPassengerPresenter +import com.mogo.och.charter.passenger.presenter.CharterPassengerNoviceGuidancePresenter +import com.mogo.och.charter.passenger.ui.MainFragment import com.mogo.och.common.module.voice.VoiceNotice import kotlinx.android.synthetic.main.m1_novice_guidance_fragment.* import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_1_fragment.* diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt new file mode 100644 index 0000000000..26238e72e9 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt @@ -0,0 +1,69 @@ +package com.mogo.och.charter.passenger.ui.itinerary + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.och.charter.passenger.R +import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance +import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance_arrive_time +import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance_surplus_time +import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance_unit +import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_speed + +class ItineraryView : ConstraintLayout, ItineraryViewModel.ItineraryViewCallback { + + 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.m1_itinerary_info, this, true) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + val viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(ItineraryViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + } + + override fun setSpeed(speed: String) { + tv_speed.text = speed + } + + override fun setDistanceAndTime( + distance: String, + distanceUnit: String, + leftTime:String, + arriveTime:String + ) { + tv_distance.text = distance + tv_distance_unit.text = distanceUnit + tv_distance_surplus_time.text = leftTime + tv_distance_arrive_time.text = arriveTime + } + + + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryViewModel.kt new file mode 100644 index 0000000000..d55e708e3b --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryViewModel.kt @@ -0,0 +1,107 @@ +package com.mogo.och.charter.passenger.ui.itinerary + +import androidx.lifecycle.ViewModel +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.callback.IDistanceCallback +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener +import com.mogo.och.charter.passenger.model.OrderStatusEnum +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.common.module.utils.NumberFormatUtil +import kotlin.math.abs +import kotlin.math.ceil + +class ItineraryViewModel : ViewModel(), IMoGoChassisLocationGCJ02Listener, IDistanceCallback, + IOrderStatusChangeListener { + + private val TAG = ItineraryViewModel::class.java.simpleName + + private var viewCallback: ItineraryViewCallback? = null + + init { + CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 4, this) + CharterPassengerModel.setStationDistanceListener(TAG, this) + CharterPassengerModel.setStatusChangeListener(TAG, this) + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) + CharterPassengerModel.setStationDistanceListener(TAG, null) + CharterPassengerModel.setStatusChangeListener(TAG, null) + } + + + fun setDistanceCallback(viewCallback: ItineraryViewCallback) { + this.viewCallback = viewCallback + } + + override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { + mogoLocation?.let { + UiThreadHandler.post { + val speedKM = (abs(it.gnssSpeed) * 3.6f).toInt() + viewCallback?.setSpeed(speedKM.toString()) + } + } + } + + override fun setDistancecAndTime(meters: Long, timeInSecond: Long) { + val unitKm = AbsMogoApplication.getApp().getString(R.string.m1_distance_unit_km) + if (meters < 0 && timeInSecond < 0) { + setDistanceAndTime("--", unitKm, "--", "--") + return + } + var dis: String? = "0" + var disUnit = "KM" + if (meters > 0) { + if (meters / 1000 < 1) { + disUnit = AbsMogoApplication.getApp().getString(R.string.m1_distance_unit_m) + dis = Math.round(meters.toFloat()).toString() + } else { + disUnit = unitKm + dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) + } + } + val time = ceil(timeInSecond / 60f).toInt() + val arriveTime = DateTimeUtil.getAfterSecondTime(timeInSecond.toInt()) + setDistanceAndTime(dis.toString(), disUnit, time.toString(), arriveTime) + } + + private fun setDistanceAndTime( + distance: String, + distanceUnit: String, + leftTime: String, + arriveTime: String + ) { + UiThreadHandler.post { + viewCallback?.setDistanceAndTime(distance, distanceUnit, leftTime, arriveTime) + } + } + + override fun onStatusChange(currentStatus: OrderStatusEnum) { + when (currentStatus) { + OrderStatusEnum.NoOrderUse -> { + UiThreadHandler.post { + setDistancecAndTime(-1, -1) + } + } + else ->{} + } + } + + interface ItineraryViewCallback { + fun setSpeed(speed: String) + fun setDistanceAndTime( + distance: String, + distanceUnit: String, + leftTime: String, + arriveTime: String + ) + } +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt new file mode 100644 index 0000000000..7a429a9365 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockAndUnlockView.kt @@ -0,0 +1,179 @@ +package com.mogo.och.charter.passenger.ui.lockview + +import android.content.Context +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.MotionEvent +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.charter.passenger.R +import com.mogo.och.common.module.utils.FrameAnimatorContainer +import kotlinx.android.synthetic.main.m1_devices_lock_unlock.view.aciv_screen_lock +import kotlinx.android.synthetic.main.m1_devices_lock_unlock.view.aciv_screen_lock_bg +import kotlinx.android.synthetic.main.m1_devices_lock_unlock.view.aciv_screen_unlock_ani + +class LockAndUnlockView : ConstraintLayout, LockManager.LockStatusCallback { + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + val TAG = "UnLockView" + + private var animations: FrameAnimatorContainer? = null + private var downType: DownType = DownType.NONE + + private var handler: Handler?=null + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.m1_devices_lock_unlock, this, true) + handler = object : Handler(Looper.myLooper()!!) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + when (msg.what) { + 2 -> {// 解锁 + LockManager.setLock(LockManager.LockStatus.UNLOCK) + animations?.stop() + } + else -> {} + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + LockManager.setAutoStatusCallback(TAG, this) + aciv_screen_unlock_ani?.let { + animations = FrameAnimatorContainer(R.array.openlock, 24, it,initFirstFrame = false) + animations!!.setOnAnimStopListener(object : + FrameAnimatorContainer.OnAnimationStoppedListener { + override fun AnimationStopped() { + it.setImageDrawable(null) + } + }) + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + LockManager.setAutoStatusCallback(TAG, null) + } + + override fun onTouchEvent(event: MotionEvent?): Boolean { + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + if (LockManager.getLockStatus()==LockManager.LockStatus.LOCKED) { + downType = DownType.LOCK + LockManager.setLock(LockManager.LockStatus.UNLOCKING) + handler?.sendEmptyMessageDelayed(2,1_000) + } else { + downType = DownType.UNLOCK + } + CallerLogger.d(TAG, "ACTION_DOWN") + } + + MotionEvent.ACTION_MOVE -> {} + MotionEvent.ACTION_UP -> { + if (downType == DownType.LOCK) { + handler?.let { + if (it.hasMessages(2)) { + it.removeMessages(2) + LockManager.setLock(LockManager.LockStatus.LOCKED) + } + } + } else { + if (LockManager.getLockStatus()==LockManager.LockStatus.UNLOCK) { + CallerLogger.d(TAG, "onClick") + LockManager.setLock(LockManager.LockStatus.LOCKED) + } + } + CallerLogger.d(TAG, "ACTION_UP") + } + + MotionEvent.ACTION_CANCEL -> { + handler?.let { + if (it.hasMessages(2)) { + it.removeMessages(2) + LockManager.setLock(LockManager.LockStatus.LOCKED) + } + } + CallerLogger.d(TAG, "ACTION_CANCEL") + } + + else -> {} + } + return true + } + + enum class DownType { + NONE, LOCK, UNLOCK + } + + override fun lockStatusChange(isLock: LockManager.LockStatus) { + setImageStatus(LockManager.getStatusViewVisable(),isLock) + } + + override fun statusViewvisableChange(statusView: Int) { + setImageStatus(statusView,LockManager.getLockStatus()) + } + + /** + * @param statusView UnlockView的显示和隐藏 + * @param lockStatus 锁屏状态 + */ + private fun setImageStatus(statusView: Int,lockStatus: LockManager.LockStatus){ + when (statusView) { + View.GONE -> { + when (lockStatus) { + LockManager.LockStatus.LOCKED -> { + aciv_screen_lock.setImageResource(R.drawable.charter_p_lock_normal) + } + LockManager.LockStatus.UNLOCK -> { + aciv_screen_lock.setImageResource(R.drawable.charter_p_unlock) + } + } + aciv_screen_lock_bg?.setImageResource(R.drawable.charger_p_normal) + } + View.VISIBLE -> { + when (lockStatus) { + LockManager.LockStatus.LOCKED -> { + aciv_screen_lock.setImageResource(R.drawable.charter_p_lock) + aciv_screen_lock_bg?.setImageResource(R.drawable.charter_p_lock_bg) + animations?.stop() + } + LockManager.LockStatus.UNLOCKING -> { + aciv_screen_lock.setImageResource(R.drawable.charter_p_lock) + aciv_screen_lock_bg?.setImageDrawable(null) + animations?.reStart() + } + LockManager.LockStatus.UNLOCK -> { + aciv_screen_lock.setImageResource(R.drawable.charter_p_unlock) + aciv_screen_lock_bg?.setImageResource(R.drawable.charger_p_normal) + animations?.stop() + } + } + } + else -> {} + } + } + + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockManager.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockManager.kt new file mode 100644 index 0000000000..8bdc7da105 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockManager.kt @@ -0,0 +1,97 @@ +package com.mogo.och.charter.passenger.ui.lockview + +import android.os.Handler +import android.os.HandlerThread +import android.os.Message +import android.view.View +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import java.util.concurrent.ConcurrentHashMap + +object LockManager { + + @Volatile + private var lockStatus:LockStatus = LockStatus.UNLOCK + + private var statusView:Int = View.GONE + + private var handler:Handler?=null + + private const val TAG = "LockManager" + + private var mLockChnageListener = ConcurrentHashMap() + + fun startLoop4Lock(){ + val frequentThread = HandlerThread("frequent_drawer") + frequentThread.start() + handler = object : Handler(frequentThread.looper) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "2分钟没有触摸屏幕导致锁屏") + setLock(LockStatus.LOCKED) + } + } + reStartCountDown() + } + + fun stopLoop4Lock(){ + handler?.looper?.quitSafely() + handler = null + } + + fun setAutoStatusCallback(tag: String, callback: LockStatusCallback?) { + if (tag.isBlank()) return + if (callback == null) { + mLockChnageListener.remove(tag) + return + } + mLockChnageListener[tag] = callback + } + + + fun reStartCountDown(){ + CallerLogger.d(TAG,"重置时间") + handler?.removeMessages(1) + handler?.sendEmptyMessageDelayed(1,120_000) + } + + @Synchronized + fun getLockStatus():LockStatus{ + CallerLogger.d(TAG,"锁定状态:${lockStatus}") + return lockStatus + } + @Synchronized + fun setLock(isLock: LockStatus){ + if(this.lockStatus!=isLock){ + this.lockStatus = isLock + mLockChnageListener.forEach { + it.value.lockStatusChange(this.lockStatus) + } + } + } + + fun getStatusViewVisable():Int{ + return statusView + } + + fun setStatusView(visable:Int){ + if(this.statusView!=visable){ + this.statusView = visable + mLockChnageListener.forEach { + it.value.statusViewvisableChange(this.statusView) + } + } + } + + interface LockStatusCallback { + fun lockStatusChange(isLock: LockStatus) + + fun statusViewvisableChange(statusView:Int){} + } + + enum class LockStatus{ + LOCKED, + UNLOCKING, + UNLOCK + } +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt new file mode 100644 index 0000000000..e32003b66b --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/LockViewConstrainLayout.kt @@ -0,0 +1,105 @@ +package com.mogo.och.charter.passenger.ui.lockview + +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import android.view.View +import androidx.appcompat.widget.AppCompatImageView +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.charter.passenger.R + +class LockViewConstrainLayout : ConstraintLayout { + + private val TAG = "LockView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + private var acivScreenLock: AppCompatImageView?=null + private var uvOnlyUnlock:AppCompatImageView?=null + private var uv_only_unlock:UnlockView?=null + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + LockManager.startLoop4Lock() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + LockManager.stopLoop4Lock() + } + + override fun onInterceptTouchEvent(event: MotionEvent?): Boolean { + if (acivScreenLock == null) { + acivScreenLock = findViewById(R.id.aciv_screen_lock) + } + if (uvOnlyUnlock == null) { + uvOnlyUnlock = findViewById(R.id.aciv_only_unlock) + } + if (uv_only_unlock == null) { + uv_only_unlock = findViewById(R.id.uv_only_unlock) + } + + LockManager.reStartCountDown() + + var needInterceptTouch = true + event?.let { + var need1 = true + uv_only_unlock?.let { parentImage-> + if(parentImage.visibility!=View.GONE){ + need1 = needIntercept(it,uvOnlyUnlock) + } + } + val need2 = needIntercept(it,acivScreenLock) + if(!need1||!need2){ + needInterceptTouch = false + } + } + + + CallerLogger.d("LockViewConstrainLayout", "是否拦截 ${needInterceptTouch}") + return if(needInterceptTouch) { + if(LockManager.getLockStatus()==LockManager.LockStatus.LOCKED){ + LockManager.setStatusView(View.VISIBLE) + uv_only_unlock?.visibility = View.VISIBLE + true + }else{ + super.onInterceptTouchEvent(event) + } + }else{ + false + } + } + + private fun needIntercept(event: MotionEvent,view: View?):Boolean { + view?.apply { + val location = IntArray(2) + getLocationInWindow(location) + CallerLogger.d( + "LockViewConstrainLayout", + "${location[0]}---${location[1]}--${location[0] + width}---${location[1] + height}---${event.rawX}----${event.rawY}" + ) + val mleft = location[0] + val mtop = location[1] + val mright = location[0] + width + val mbottom = location[1] + height + if (event.rawX > mleft && event.rawX < mright && event.rawY > mtop && event.rawY < mbottom) { + CallerLogger.d("LockViewConstrainLayout", "不拦截") + // 不拦截 + return false + } + } + return true + } + + + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt new file mode 100644 index 0000000000..e52a0896ac --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/lockview/UnlockView.kt @@ -0,0 +1,149 @@ +package com.mogo.och.charter.passenger.ui.lockview + +import android.content.Context +import android.os.Handler +import android.os.Looper +import android.os.Message +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.MotionEvent +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.charter.passenger.R +import kotlinx.android.synthetic.main.m1_devices_unlock.view.aciv_only_unlock +import kotlinx.android.synthetic.main.m1_devices_unlock.view.actv_lock_status + +class UnlockView : ConstraintLayout, LockManager.LockStatusCallback { + + private val TAG = "UnlockView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + private var handler: Handler?=null + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.m1_devices_unlock, this, true) + handler = object : Handler(Looper.myLooper()!!) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + when (msg.what) { + 1 -> {// 时间到隐藏view + visibility = View.GONE + } + 2 -> {// 解锁 + LockManager.setLock(LockManager.LockStatus.UNLOCK) + sendEmptyMessageDelayed(1, 2_000) + } + else -> {} + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + LockManager.setAutoStatusCallback(TAG,this) + } + + override fun setVisibility(visibility: Int) { + super.setVisibility(visibility) + LockManager.setStatusView(visibility) + when (visibility) { + View.VISIBLE -> { + CallerLogger.d(TAG,"VISIBLE") + handler?.removeMessages(1) + handler?.sendEmptyMessageDelayed(1,2_000) + } + View.GONE -> { + handler?.removeMessages(1) + CallerLogger.d(TAG,"GONE") + } + View.INVISIBLE -> { + CallerLogger.d(TAG,"INVISIBLE") + } + else -> {} + } + } + + override fun onTouchEvent(event: MotionEvent?): Boolean { + if(LockManager.getLockStatus()!=LockManager.LockStatus.UNLOCK) { + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + handler?.removeMessages(1) + handler?.sendEmptyMessageDelayed(2, 1_000) + LockManager.setLock(LockManager.LockStatus.UNLOCKING) + CallerLogger.d(TAG, "ACTION_DOWN") + } + + MotionEvent.ACTION_MOVE -> {} + MotionEvent.ACTION_UP -> { + handler?.let { + if (it.hasMessages(2)) { + it.removeMessages(2) + LockManager.setLock(LockManager.LockStatus.LOCKED) + handler?.sendEmptyMessageDelayed(1, 2_000) + } + } + CallerLogger.d(TAG, "ACTION_UP") + } + + MotionEvent.ACTION_CANCEL -> { + handler?.let { + if (it.hasMessages(2)) { + it.removeMessages(2) + LockManager.setLock(LockManager.LockStatus.LOCKED) + handler?.sendEmptyMessageDelayed(1, 2_000) + } + } + CallerLogger.d(TAG, "ACTION_CANCEL") + } + + else -> {} + } + } + return true + } + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun lockStatusChange(isLock: LockManager.LockStatus) { + UiThreadHandler.post { + visibility = View.VISIBLE + when (isLock) { + LockManager.LockStatus.LOCKED -> { + // 锁定 + actv_lock_status.text = "长按开锁键2秒,快速解锁" + aciv_only_unlock.setImageResource(R.drawable.charter_p_only_lock) + } + LockManager.LockStatus.UNLOCKING -> { + // 开锁中 + actv_lock_status.text = "开锁中.." + aciv_only_unlock.setImageResource(R.drawable.charter_p_only_unlocking) + } + LockManager.LockStatus.UNLOCK -> { + // 解锁成功 + actv_lock_status.text = "已解锁" + aciv_only_unlock.setImageResource(R.drawable.charter_p_only_unlock) + } + } + } + } + + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt new file mode 100644 index 0000000000..78b4af73ff --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt @@ -0,0 +1,115 @@ +package com.mogo.och.charter.passenger.ui.orderinfo + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.callback.IClearViewCallback +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_contain_order +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_end_order +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_end_order_submit +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_left_time +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_order_phone +import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_order_times +import kotlinx.android.synthetic.main.m1_devices_fragment.view.cl_order_info +import kotlinx.android.synthetic.main.m1_devices_fragment.view.cl_order_info_endorder_comfit + +class OrderInfoView : ConstraintLayout, OrderInfoViewModel.ItineraryViewCallback { + + private val TAG = "OrderInfoView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + var goneViewListener: IClearViewCallback?=null + + var viewModel:OrderInfoViewModel?=null + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.m1_devices_fragment, this, true) + onClick { + setViewGone() + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(OrderInfoViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + + actv_end_order_submit.setOnClickListener { + viewModel?.endOrder() + } + + actv_contain_order.setOnClickListener { + setViewGone() + } + + actv_end_order.setOnClickListener { + cl_order_info.visibility = View.GONE + cl_order_info_endorder_comfit.visibility = View.VISIBLE + } + } + + override fun onVisibilityChanged(changedView: View, visibility: Int) { + if(changedView!=this){ + return + } + if(visibility==View.VISIBLE) { + viewModel?.getDataInfo() + } + } + + override fun setViewGone(){ + goneViewListener?.goneAllView() + cl_order_info.visibility = View.VISIBLE + cl_order_info_endorder_comfit.visibility = View.GONE + } + + override fun setLeftTime(leftTime:String){ + actv_left_time.text = "剩余时间 $leftTime" + } + + override fun setStartTimeAndEndTime(startTime:String,endTime:String){ + actv_order_times.text = "$startTime-$endTime" + } + + override fun setPhone(phone:String){ + if(phone.length>8) { + //截取电话号码前三位 + val phoneNumPre = phone.substring(0, 3); + //截取电话号码后四位 + val phoneNumFix = phone.substring(7); + actv_order_phone.text = "$phoneNumPre****$phoneNumFix" + }else{ + actv_order_phone.text = phone + } + } + + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt new file mode 100644 index 0000000000..224351d5a6 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -0,0 +1,98 @@ +package com.mogo.och.charter.passenger.ui.orderinfo + +import androidx.lifecycle.ViewModel +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +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.GsonUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.charter.passenger.callback.ITimeCallback +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg +import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg +import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.DateTimeUtil + +class OrderInfoViewModel: ViewModel(), ITimeCallback { + + private val TAG = OrderInfoViewModel::class.java.simpleName + + private var viewCallback:ItineraryViewCallback?=null + + + init { + CharterPassengerModel.setOrderLeftTimeListeners(TAG,this) + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + CharterPassengerModel.setOrderLeftTimeListeners(TAG,null) + } + + fun setDistanceCallback(viewCallback:ItineraryViewCallback){ + this.viewCallback = viewCallback + getDataInfo() + } + + fun getDataInfo() { + val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() + if(currentOrderInfo!=null){ + viewCallback?.setPhone(currentOrderInfo.passengerPhone?:"") + try { + viewCallback?.setStartTimeAndEndTime( + DateTimeUtil.formatLongToString(currentOrderInfo.startTime!!, DateTimeUtil.HH_mm), + DateTimeUtil.formatLongToString(currentOrderInfo.endTime!!, DateTimeUtil.HH_mm)) + }catch (e:Exception){ + e.printStackTrace() + } + }else{ + viewCallback?.setPhone("----") + viewCallback?.setStartTimeAndEndTime("--:---", "--:--") + viewCallback?.setLeftTime("剩余时间 --:--") + } + } + + override fun setOrderTimeCallBack(timeInSecond: Long) { + val leftTime = DateTimeUtil.second2Time(timeInSecond) + UiThreadHandler.post { + viewCallback?.setLeftTime(leftTime) + } + } + + + fun endOrder() { + CharterPassengerModel.endOrder(object : OchCommonServiceCallback { + override fun onSuccess(data: BaseData?) { + if (null != data && 0 == data.code) { + ToastCharterUtils.showToastShort("结束成功") + CharterPassengerModel.setEndOrderStatus() + viewCallback?.setViewGone() + val msg = EndOrderMsg( + CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"", + ) + CallerTelematicManager.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) + CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:结束订单${msg}") + } + } + + override fun onFail(code: Int, msg: String) { + ToastCharterUtils.showToastShort("$code:$msg") + } + }) + } + + interface ItineraryViewCallback{ + fun setPhone(phone:String) + fun setViewGone() + fun setLeftTime(leftTime:String) + fun setStartTimeAndEndTime(startTime:String,endTime:String) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/MakerWithSiteName.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/overmapview/MakerWithSiteName.kt similarity index 73% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/MakerWithSiteName.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/overmapview/MakerWithSiteName.kt index 3e978b0448..a2afbfe06f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/MakerWithSiteName.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/overmapview/MakerWithSiteName.kt @@ -1,13 +1,16 @@ -package com.mogo.och.bus.passenger.view +package com.mogo.och.charter.passenger.ui.overmapview import android.content.Context import android.graphics.Bitmap import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R import kotlinx.android.synthetic.main.view_maker_sitename.view.* +/** + * 全览地图中使用的view + */ class MakerWithSiteName @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -28,4 +31,4 @@ class MakerWithSiteName @JvmOverloads constructor( } } -data class MakerWithSiteNamewithCheck(var isCheck: Boolean,val makerWithSiteName:MakerWithSiteName,var bitmapView: Bitmap) \ No newline at end of file +data class MakerWithSiteNamewithCheck(var isCheck: Boolean, val makerWithSiteName: MakerWithSiteName, var bitmapView: Bitmap) \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt new file mode 100644 index 0000000000..d9fa7178c1 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt @@ -0,0 +1,307 @@ +package com.mogo.och.charter.passenger.ui.selectline + +import android.animation.ObjectAnimator +import android.content.Context +import android.graphics.drawable.AnimationDrawable +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.view.animation.LinearInterpolator +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import androidx.recyclerview.widget.LinearLayoutManager +import com.elegant.utils.UiThreadHandler +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.event.EventLineSites +import com.mogo.och.charter.passenger.bean.response.LineInfoResponse +import com.mogo.och.charter.passenger.bean.response.SiteInfoResponse +import com.mogo.och.charter.passenger.callback.IClearViewCallback +import com.mogo.och.charter.passenger.ui.selectline.adapter.OrderLineItemAdapter +import com.mogo.och.charter.passenger.ui.selectline.adapter.OrderSiteItemAdapter +import com.mogo.och.charter.passenger.ui.selectline.layoutmanage.BottomDecoration +import com.mogo.och.common.module.utils.RxUtils +import io.reactivex.disposables.Disposable +import kotlinx.android.synthetic.main.m1_order_fragment.view.aciv_driver_refuse_group +import kotlinx.android.synthetic.main.m1_order_fragment.view.g_lines_sites_data +import kotlinx.android.synthetic.main.m1_order_fragment.view.g_loading_group +import kotlinx.android.synthetic.main.m1_order_fragment.view.g_side_cancle_submit_group +import kotlinx.android.synthetic.main.m1_order_fragment.view.group_driver_agrenn_line +import kotlinx.android.synthetic.main.m1_order_fragment.view.iv_loading_wait_driver +import kotlinx.android.synthetic.main.m1_order_fragment.view.lsv_line_site +import kotlinx.android.synthetic.main.m1_order_fragment.view.m1_order_loading +import kotlinx.android.synthetic.main.m1_order_fragment.view.m1_order_neterror +import kotlinx.android.synthetic.main.m1_order_fragment.view.m1_order_noorder +import kotlinx.android.synthetic.main.m1_order_fragment.view.rlv_line_list +import kotlinx.android.synthetic.main.m1_order_fragment.view.rv_site_list +import kotlinx.android.synthetic.main.m1_order_fragment.view.tv_site_cancle +import kotlinx.android.synthetic.main.m1_order_fragment.view.tv_site_submit +import kotlinx.android.synthetic.main.m1_order_loading.view.iv_loading_wait_ent +import me.jessyan.autosize.utils.AutoSizeUtils +import org.greenrobot.eventbus.EventBus + +class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallback { + + private val TAG = "OrderInfoView" + + 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) + + + var goneViewListener: IClearViewCallback? = null + + private lateinit var lineAdapter: OrderLineItemAdapter + private lateinit var siteAdapter: OrderSiteItemAdapter + + private val lineList = mutableListOf() + private val siteList = mutableListOf() + + private var subscribeDirverAgree: Disposable? = null + private var subscribeDirverRefuse: Disposable? = null + + private var viewModel: SelectLineViewModel? = null + + private val loadingAni = + ObjectAnimator.ofFloat(iv_loading_wait_ent, "rotation", 0f, 90f, 180f, 270f, 360f) + .apply { + repeatCount = -1 + interpolator = LinearInterpolator() + duration = 1000 + } + + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.m1_order_fragment, this, true) + + onClick { + setViewGone() + } + + lineAdapter = OrderLineItemAdapter(context, lineList) + siteAdapter = OrderSiteItemAdapter(context, siteList) + loadingAni.target = iv_loading_wait_ent + rlv_line_list.layoutManager = + LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) + rlv_line_list.addItemDecoration( + com.mogo.och.charter.passenger.ui.selectline.layoutmanage.BottomDecoration( + AutoSizeUtils.dp2px(context, 60f) + ) + ) + rlv_line_list.adapter = lineAdapter + + rv_site_list.layoutManager = + LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) + rv_site_list.addItemDecoration( + com.mogo.och.charter.passenger.ui.selectline.layoutmanage.BottomDecoration( + AutoSizeUtils.dp2px(context, 90f) + ) + ) + rv_site_list.adapter = siteAdapter + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(SelectLineViewModel::class.java) + } + + viewModel?.setVIewCallback(this) + + lineAdapter.checkChangeListener = object : OrderLineItemAdapter.CheckListener { + override fun canSwitchLine(): Boolean { + return true + } + + override fun onCheckListener(lineInfo: LineInfoResponse.LineInfo) { + viewModel?.checkLineClick(lineInfo) + siteAdapter.clearCheck() + } + } + siteAdapter.checkChangeListener = object : OrderSiteItemAdapter.CheckListener { + override fun canSwitchLine(): Boolean { + return viewModel?.canSwitchLine() ?: true + } + + override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?) { + // 设置临时选中的 + viewModel?.checkSiteClick(siteInfo) + } + + } + tv_site_cancle.onClick { + viewModel?.resetData() + } + tv_site_submit.onClick { + viewModel?.changeSites(siteList) + } + + } + + override fun onVisibilityChanged(changedView: View, visibility: Int) { + if (changedView != this) { + return + } + if (visibility == View.GONE || visibility == View.INVISIBLE) { + EventBus.getDefault().post(EventLineSites(null, null, true)) + viewModel?.removeMsgListener() + } else { + viewModel?.addMsgListener() + viewModel?.initData() + } + } + + private fun showSelectData() { + UiThreadHandler.post { + g_lines_sites_data?.visibility = View.VISIBLE + g_loading_group?.visibility = View.GONE + group_driver_agrenn_line?.visibility = View.GONE + aciv_driver_refuse_group?.visibility = View.GONE + } + } + + override fun hideDataWaitDriverMsg() { + g_lines_sites_data?.visibility = View.GONE + g_loading_group?.visibility = View.VISIBLE + iv_loading_wait_driver?.let { + val animationDrawable = it.drawable as AnimationDrawable + animationDrawable.start() + } + } + + /** + * @param showBiz 展示线路和站点 + * @param showNetError 网络错误页面 + * @param showNorOrder 没有网络请求 + * @param showLoading 登录司机端回复 + */ + override fun setVisableByTrun( + showBiz: Boolean, + showNetError: Boolean, + showNorOrder: Boolean, + showLoading: Boolean + ) { + if (showBiz) { + // 选择线路页面 + m1_order_noorder?.visibility = View.GONE + m1_order_neterror?.visibility = View.GONE + lsv_line_site?.visibility = View.VISIBLE + m1_order_loading?.visibility = View.GONE + return + } + if (showNetError) { + m1_order_noorder?.visibility = View.GONE + m1_order_neterror?.visibility = View.VISIBLE + lsv_line_site?.visibility = View.GONE + m1_order_loading?.visibility = View.GONE + return + } + if (showNorOrder) { + m1_order_noorder?.visibility = View.VISIBLE + m1_order_neterror?.visibility = View.GONE + lsv_line_site?.visibility = View.GONE + m1_order_loading?.visibility = View.GONE + return + } + if (showLoading) { + m1_order_noorder?.visibility = View.GONE + m1_order_neterror?.visibility = View.GONE + lsv_line_site?.visibility = View.GONE + m1_order_loading?.visibility = View.VISIBLE + if (!loadingAni.isRunning) { + loadingAni.start() + } + } + } + + /** + * 司机同意所选线路 + */ + override fun hideDataDriverAgree() { + group_driver_agrenn_line?.visibility = View.VISIBLE + aciv_driver_refuse_group?.visibility = View.GONE + g_loading_group?.visibility = View.GONE + g_lines_sites_data?.let { + it.visibility = View.GONE + subscribeDirverAgree = RxUtils.createSubscribe(3_000) { + setViewGone() + } + } + } + + /** + * 显示确认和取消按钮 + */ + override fun setEnableSiteStatus(cancleAndSubmit: Boolean) { + if (cancleAndSubmit) { + g_side_cancle_submit_group?.visibility = View.VISIBLE + } else { + g_side_cancle_submit_group?.visibility = View.GONE + } + } + + override fun lineAdapterSubmit(lineInfo: LineInfoResponse.LineInfo) { + lineAdapter.submitLine(lineInfo) + } + + /** + * 司机拒绝请求展示的页面 + * ① 司机拒绝 + * ② 2分钟超时 + * ③ 请求中和司机端断开链接 + */ + override fun hideDataDriverRefuse() { + group_driver_agrenn_line?.visibility = View.GONE + aciv_driver_refuse_group?.visibility = View.VISIBLE + g_loading_group?.visibility = View.GONE + g_lines_sites_data?.let { + it.visibility = View.GONE + subscribeDirverRefuse = RxUtils.createSubscribe(3_000) { + showSelectData() + } + } + } + + override fun lineAdapterSetData( + lineInfo: List, + checkLine: LineInfoResponse.LineInfo? + ) { + lineAdapter.setDataList(lineInfo, checkLine) + } + + override fun siteAdapterEnableIndex(index: Int) { + siteAdapter.setEnableIndex(index) + } + + override fun siteAdapterSetData(siteInfo: List) { + siteAdapter.setDataList(siteInfo) + } + + private fun setViewGone() { + goneViewListener?.goneAllView() + showSelectData() + } + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt similarity index 58% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt index d7bd2cb1ac..9ac5fbc5ce 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineViewModel.kt @@ -1,7 +1,9 @@ -package com.mogo.och.bus.passenger.presenter +package com.mogo.och.charter.passenger.ui.selectline -import androidx.lifecycle.LifecycleOwner +import android.view.View +import androidx.lifecycle.ViewModel import com.elegant.utils.UiThreadHandler +import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager @@ -9,20 +11,17 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.bean.response.LineInfoListResponse -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener -import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager -import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment +import com.mogo.och.charter.passenger.bean.event.EventLineSites +import com.mogo.och.charter.passenger.bean.response.LineInfoListResponse +import com.mogo.och.charter.passenger.bean.response.LineInfoResponse +import com.mogo.och.charter.passenger.bean.response.SiteInfoResponse +import com.mogo.och.charter.passenger.model.CharterPassengerModel +import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener +import com.mogo.och.charter.passenger.model.OrderStatusEnum +import com.mogo.och.charter.passenger.net.BusPassengerServiceManager +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType @@ -30,17 +29,20 @@ import com.mogo.och.common.module.bean.dpmsg.LineSite import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.StopSideStatusManager +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.common.module.manager.loopmanager.LoopInfo import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus -class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : - BusBasePassengerFunctionDevicePresenter(view), IOrderStatusChangeListener { +class SelectLineViewModel : ViewModel(), IOrderStatusChangeListener { + + private val TAG = SelectLineViewModel::class.java.simpleName + + private val TAGLINELOOP = "LineSiteViewLineLoop" + + private var viewCallback: SelectLineViewCallback? = null - companion object{ - const val TAGLINELOOP = "LineSiteViewLineLoop" - const val TAG = "BusPassengerFunctionOrderPresenter" - } // 成功提交给后台得线路 private var checkLine: LineInfoResponse.LineInfo? = null @@ -58,140 +60,8 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : private var tempCheckSite: SiteInfoResponse.SiteInfo? = null - private var subscribeSelectLine: Disposable? = null private var subscribeSelectSite: Disposable? = null - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - CharterPassengerModel.setStatusChangeListener(TAG,this) - CallerTelematicListenerManager.addListener(TAG, msgReceived) - val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() - needRunUI(currentOrderStatus) - extracted() - } - - private fun extracted() { - val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() - if (currentOrderStatus == OrderStatusEnum.OrderNoLine || currentOrderStatus == OrderStatusEnum.OrdersWithLine) { - val hasSetLineAndSite = CharterPassengerModel.hasSetLineAndSite() - if (hasSetLineAndSite != null) {// 已经设置了线路和站点 - checkLine = hasSetLineAndSite.first - checkSite = hasSetLineAndSite.second - } - mView?.setEnableSiteStatus(false) - queryLineList() - } - } - - /** - * 重置数据 - */ - fun resetData() { - tempCheckLine = null - tempCheckSite = null - if(checkLine==null){// 没有提交线路 - queryLineList() - mView?.setEnableSiteStatus(true) - }else{ - checkLine?.let { - mView?.setEnableSiteStatus(false) - mView?.lineAdapterSubmit(it) - querySitesByLineId(it) - } - } - } - - private fun querySitesByLineId(checkLine: LineInfoResponse.LineInfo) { - BusPassengerServiceManager.queryLineSiteList( - context, - checkLine.lineId.toString(), - object : OchCommonServiceCallback { - override fun onSuccess(data: SiteInfoResponse?) { - if (data?.data == null) return - val siteInfos = data.data - EventBus.getDefault().post(EventLineSites(checkLine,siteInfos,false)) - if (siteInfos.isNotEmpty()) { - // 计算当前站点是那个 - val calculateCurrentSite = - CharterPassengerModel.calculateCurrentSite(siteInfos) - val first = calculateCurrentSite.first// 可用站点 - if(first<0){ - // 所有站点不可用 - currentSite = siteInfos[siteInfos.size-1] - currentSite!!.isNear = calculateCurrentSite.second - mView?.siteAdapterEnableIndex(siteInfos.size-1) - }else{ - // - val index = if(first==0) { - 0 - }else if (first <= siteInfos.size-1) { - first-1 - } else { - siteInfos.size - 1 - } - currentSite = siteInfos[index] - currentSite!!.isNear = calculateCurrentSite.second - mView?.siteAdapterEnableIndex(index) - } - siteInfos.forEach { - if (it.siteId == checkSite?.siteId) { - it.isCheck = true - return@forEach - } - } - } - mView?.siteAdapterSetData(siteInfos) - } - - override fun onFail(code: Int, msg: String?) { - ToastCharterUtils.showShort("查询站点失败") - mView?.setVisableByTrun(showNetError = true) - } - - override fun onError() { - super.onError() - ToastCharterUtils.showShort("查询站点失败") - mView?.setVisableByTrun(showNetError = true) - } - }) - } - - private fun queryLineList() { - mView?.setVisableByTrun(showLoading = true) - BusPassengerServiceManager.queryLineList(context, object : - OchCommonServiceCallback { - override fun onSuccess(data: LineInfoListResponse?) { - if (data?.data == null) return - mView?.setVisableByTrun(showBiz = true) - mView?.lineAdapterSetData(data.data,checkLine) - } - - override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("查询线路失败") - mView?.setVisableByTrun(showNetError = true) - } - - override fun onError() { - super.onError() - mView?.setVisableByTrun(showNetError = true) - } - }) - } - - override fun onResume(owner: LifecycleOwner) { - super.onResume(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - CallerLogger.d(M_BUS_P + TAG, "onDestroy") - RxUtils.disposeSubscribe(subscribeSelectLine) - RxUtils.disposeSubscribe(subscribeSelectSite) - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) - CharterPassengerModel.setStatusChangeListener(TAG,null) - CallerTelematicListenerManager.removeListener(TAG) - } - /** * 接收司机屏反馈信息 */ @@ -208,38 +78,145 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : String(byteArray), ChangeDestMsg::class.java ) as ChangeDestMsg - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}") + CallerLogger.d( + SceneConstant.M_BUS_P + BaseDPMsg.TAG, + "接受数据:切换站点${msg}" + ) if (msg.isConfirmed) { - if(msg.arriveStatus==2){ + if (msg.arriveStatus == 2) { return@post } - ToastCharterUtils.showShort("站点确定") - mView?.setEnableSiteStatus(true) + ToastCharterUtils.showToastShort("站点确定") + viewCallback?.setEnableSiteStatus(true) checkLine = tempCheckLine checkSite = tempCheckSite tempCheckLine = null tempCheckSite = null checkLine?.let { - mView?.lineAdapterSubmit(it) + viewCallback?.lineAdapterSubmit(it) } - mView?.hideDataDriverAgree() + viewCallback?.hideDataDriverAgree() CharterPassengerModel.cleanbroadcastListInfo(checkSite) CharterPassengerModel.queryOrder() } else { - ToastCharterUtils.showShort("司机端拒绝请重新选择") - mView?.hideDataDriverRefuse() + ToastCharterUtils.showToastShort("司机端拒绝请重新选择") + viewCallback?.hideDataDriverRefuse() } RxUtils.disposeSubscribe(subscribeSelectSite) - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) + BizLoopManager.removeLoopFunction(TAGLINELOOP) } } } } } - fun changeSites(siteList: MutableList){ + init { + + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + RxUtils.disposeSubscribe(subscribeSelectSite) + BizLoopManager.removeLoopFunction(TAGLINELOOP) + } + + fun addMsgListener() { + CallerTelematicListenerManager.addListener(TAG, msgReceived) + CharterPassengerModel.setStatusChangeListener(TAG, this) + } + + fun removeMsgListener() { + RxUtils.disposeSubscribe(subscribeSelectSite) + BizLoopManager.removeLoopFunction(TAGLINELOOP) + CallerTelematicListenerManager.removeListener(TAG) + CharterPassengerModel.setStatusChangeListener(TAG, null) + } + + override fun onStatusChange(currentStatus: OrderStatusEnum) { + UiThreadHandler.post { + needRunUI(currentStatus) + } + } + + + fun setVIewCallback(viewCallback: SelectLineViewCallback) { + this.viewCallback = viewCallback + initData() + } + + fun initData(){ + val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() + needRunUI(currentOrderStatus) + extracted() + } + + fun checkLineClick(lineInfo: LineInfoResponse.LineInfo) { + checkLine4View() + tempCheckLine = lineInfo + querySitesByLineId(lineInfo) + } + + private fun checkLine4View() { + tempCheckSite = null + viewCallback?.setEnableSiteStatus(false) + } + + private fun extracted() { + val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() + if (currentOrderStatus == OrderStatusEnum.OrderNoLine || currentOrderStatus == OrderStatusEnum.OrdersWithLine) { + val hasSetLineAndSite = CharterPassengerModel.hasSetLineAndSite() + if (hasSetLineAndSite != null) {// 已经设置了线路和站点 + checkLine = hasSetLineAndSite.first + checkSite = hasSetLineAndSite.second + } + viewCallback?.setEnableSiteStatus(false) + queryLineList() + } + } + + private fun needRunUI(currentStatus: OrderStatusEnum) { + when (currentStatus) { + OrderStatusEnum.OrderNoLine -> { + viewCallback?.setVisableByTrun(showBiz = true) + extracted() + } + + OrderStatusEnum.OrdersWithLine -> { + viewCallback?.setVisableByTrun(showBiz = true) + } + + else -> { + viewCallback?.setVisableByTrun(showNorOrder = true) + } + } + } + + private fun queryLineList() { + viewCallback?.setVisableByTrun(showLoading = true) + BusPassengerServiceManager.queryLineList(AbsMogoApplication.getApp(), object : + OchCommonServiceCallback { + override fun onSuccess(data: LineInfoListResponse?) { + if (data?.data == null) return + viewCallback?.setVisableByTrun(showBiz = true) + viewCallback?.lineAdapterSetData(data.data, checkLine) + } + + override fun onFail(code: Int, msg: String) { + ToastCharterUtils.showToastShort("查询线路失败") + viewCallback?.setVisableByTrun(showNetError = true) + } + + override fun onError() { + super.onError() + viewCallback?.setVisableByTrun(showNetError = true) + } + }) + } + + fun changeSites(siteList: MutableList) { if (!CallerTelematicManager.getClientConnStatus()) { - ToastCharterUtils.showLong("乘客屏无法连接司机屏请联系安全员") + ToastCharterUtils.showToastLong("乘客屏无法连接司机屏请联系安全员") return } val sentDataSite: MutableList = mutableListOf() @@ -266,52 +243,128 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).toByteArray() ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "发送数据:切换站点${msg}") + CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "发送数据:切换站点${msg}") } - mView?.hideDataWaitDriverMsg() + viewCallback?.hideDataWaitDriverMsg() // 启动查看和司机端链接 - BusPassengerModelLoopManager.setLoopFunction( - TAGLINELOOP, - LoopInfo(3, ::checkServerStatus) - ) + BizLoopManager.setLoopFunction(TAGLINELOOP, LoopInfo(3, ::checkServerStatus)) RxUtils.disposeSubscribe(subscribeSelectSite) - subscribeSelectSite = RxUtils.createSubscribe(120_000){ - ToastCharterUtils.showShort("请联系安全员确认") - mView?.hideDataDriverRefuse() + subscribeSelectSite = RxUtils.createSubscribe(120_000) { + ToastCharterUtils.showToastShort("请联系安全员确认") + viewCallback?.hideDataDriverRefuse() } } + + private fun querySitesByLineId(checkLine: LineInfoResponse.LineInfo) { + BusPassengerServiceManager.queryLineSiteList( + AbsMogoApplication.getApp(), + checkLine.lineId.toString(), + object : OchCommonServiceCallback { + override fun onSuccess(data: SiteInfoResponse?) { + if (data?.data == null) return + val siteInfos = data.data + EventBus.getDefault().post(EventLineSites(checkLine, siteInfos, false)) + if (siteInfos.isNotEmpty()) { + // 计算当前站点是那个 + val calculateCurrentSite = + CharterPassengerModel.calculateCurrentSite(siteInfos) + val first = calculateCurrentSite.first// 可用站点 + if (first < 0) { + // 所有站点不可用 + currentSite = siteInfos[siteInfos.size - 1] + currentSite!!.isNear = calculateCurrentSite.second + viewCallback?.siteAdapterEnableIndex(siteInfos.size - 1) + } else { + // + val index = if (first == 0) { + 0 + } else if (first <= siteInfos.size - 1) { + first - 1 + } else { + siteInfos.size - 1 + } + currentSite = siteInfos[index] + currentSite!!.isNear = calculateCurrentSite.second + viewCallback?.siteAdapterEnableIndex(index) + } + siteInfos.forEach { + if (it.siteId == checkSite?.siteId) { + it.isCheck = true + return@forEach + } + } + } + viewCallback?.siteAdapterSetData(siteInfos) + } + + override fun onFail(code: Int, msg: String?) { + ToastCharterUtils.showToastShort("查询站点失败") + viewCallback?.setVisableByTrun(showNetError = true) + } + + override fun onError() { + super.onError() + ToastCharterUtils.showToastShort("查询站点失败") + viewCallback?.setVisableByTrun(showNetError = true) + } + }) + } + private fun checkServerStatus() { if (!CallerTelematicManager.getClientConnStatus()) { - ToastCharterUtils.showShort("断开和司机端连接、请联系安全员") - BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP) - mView?.hideDataDriverRefuse() - CallerLogger.d(M_BUS_P + TAG, "endAni666") + ToastCharterUtils.showToastShort("断开和司机端连接、请联系安全员") + BizLoopManager.removeLoopFunction(TAGLINELOOP) + viewCallback?.hideDataDriverRefuse() + CallerLogger.d( + SceneConstant.M_BUS_P + TAG, + "endAni666" + ) } } - override fun onStatusChange(currentStatus: OrderStatusEnum) { - UiThreadHandler.post { - needRunUI(currentStatus) - } - } - - private fun needRunUI(currentStatus: OrderStatusEnum){ - when (currentStatus) { - OrderStatusEnum.OrderNoLine -> { - mView?.setVisableByTrun(showBiz = true) - extracted() - } - OrderStatusEnum.OrdersWithLine ->{ - mView?.setVisableByTrun(showBiz = true) - } - else ->{ - mView?.setVisableByTrun(showNorOrder = true) + /** + * 重置数据 + */ + fun resetData() { + tempCheckLine = null + tempCheckSite = null + if (checkLine == null) {// 没有提交线路 + queryLineList() + viewCallback?.setEnableSiteStatus(true) + } else { + checkLine?.let { + viewCallback?.setEnableSiteStatus(false) + viewCallback?.lineAdapterSubmit(it) + querySitesByLineId(it) } } } - fun canSwitchLine():Boolean { + fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo?) { + tempCheckSite = siteInfo + if (checkSite != null) { + checkSite?.let { + if (it.siteId == siteInfo?.siteId) {// 站点相同 隐藏所有提交按钮 + viewCallback?.setEnableSiteStatus(false) + } else { + if (it.lineId == siteInfo?.lineId) {// 线路相同显示单独提交 + viewCallback?.setEnableSiteStatus(true) + } else { + if (siteInfo == null) {//没有选站点隐藏所有提交 + viewCallback?.setEnableSiteStatus(false) + } else { + viewCallback?.setEnableSiteStatus(true) + } + } + } + } + } else { + viewCallback?.setEnableSiteStatus(true) + } + } + + fun canSwitchLine(): Boolean { val gnssSpeed = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed if (gnssSpeed < 0.5) { @@ -319,66 +372,59 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 return true } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// return true } + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { // 自动驾驶中 return when (StopSideStatusManager.stopSiteStatus) { StopSideStatusManager.Status.EndingSuccess -> { true } - else ->{ - ToastCharterUtils.showShort("自动驾驶中无法切换线路") + + else -> { + ToastCharterUtils.showToastShort("自动驾驶中无法切换线路") false } } } + IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - ToastCharterUtils.showShort("因车辆正在平行驾驶中无法切换线路") + ToastCharterUtils.showToastShort("因车辆正在平行驾驶中无法切换线路") return false } + else -> {} } } else { - ToastCharterUtils.showShort("请停车后再修改目的地~") + ToastCharterUtils.showToastShort("请停车后再修改目的地~") return false } return true } - fun checkLineClick(lineInfo: LineInfoResponse.LineInfo) { - checkLine4View() - tempCheckLine = lineInfo - querySitesByLineId(lineInfo) - } + interface SelectLineViewCallback { + fun hideDataWaitDriverMsg() + fun setVisableByTrun( + showBiz: Boolean = false, + showNetError: Boolean = false, + showNorOrder: Boolean = false, + showLoading: Boolean = false + ) - private fun checkLine4View(){ - tempCheckSite = null - mView?.setEnableSiteStatus(false) - } + fun hideDataDriverAgree() + fun setEnableSiteStatus(cancleAndSubmit: Boolean) + fun lineAdapterSubmit(lineInfo: LineInfoResponse.LineInfo) + fun hideDataDriverRefuse() + fun lineAdapterSetData( + lineInfo: List, + checkLine: LineInfoResponse.LineInfo? + ) - fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo?) { - tempCheckSite = siteInfo - if(checkSite!=null){ - checkSite?.let { - if (it.siteId == siteInfo?.siteId) {// 站点相同 隐藏所有提交按钮 - mView?.setEnableSiteStatus(false) - } else { - if(it.lineId == siteInfo?.lineId){// 线路相同显示单独提交 - mView?.setEnableSiteStatus(true) - }else{ - if(siteInfo==null){//没有选站点隐藏所有提交 - mView?.setEnableSiteStatus(false) - }else { - mView?.setEnableSiteStatus(true) - } - } - } - } - }else{ - mView?.setEnableSiteStatus(true) - } + fun siteAdapterEnableIndex(index: Int) + fun siteAdapterSetData(siteInfo: List) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderLineItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderLineItemAdapter.kt similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderLineItemAdapter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderLineItemAdapter.kt index 405168a0b7..b5304ca398 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderLineItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderLineItemAdapter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.adapter +package com.mogo.och.charter.passenger.ui.selectline.adapter import android.content.Context import android.view.LayoutInflater @@ -6,8 +6,8 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.response.LineInfoResponse /** * Created by adityagohad on 06/06/17. diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderSiteItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderSiteItemAdapter.kt similarity index 89% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderSiteItemAdapter.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderSiteItemAdapter.kt index 76413221d5..23d37f4c80 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/OrderSiteItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/adapter/OrderSiteItemAdapter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.adapter +package com.mogo.och.charter.passenger.ui.selectline.adapter import android.content.Context import android.view.LayoutInflater @@ -8,11 +8,10 @@ import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.event.EventLineSites +import com.mogo.och.charter.passenger.bean.response.SiteInfoResponse import org.greenrobot.eventbus.EventBus /** @@ -96,9 +95,9 @@ class OrderSiteItemAdapter( checkChangeListener?.onCheckListener(tempInfo) } else { if (siteInfo.isNear) { - ToastCharterUtils.showShort("您已在此站点附近") + ToastCharterUtils.showToastShort("您已在此站点附近") } else { - ToastCharterUtils.showShort("站点已过,请选择返程路线") + ToastCharterUtils.showToastShort("站点已过,请选择返程路线") } } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/BottomDecoration.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/BottomDecoration.java similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/BottomDecoration.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/BottomDecoration.java index 55c4d28cd1..edd8137789 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/BottomDecoration.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/BottomDecoration.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view; +package com.mogo.och.charter.passenger.ui.selectline.layoutmanage; import android.graphics.Rect; import android.view.View; diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/PickerLayoutManager.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/PickerLayoutManager.java similarity index 97% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/PickerLayoutManager.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/PickerLayoutManager.java index a22305d837..86b446bce6 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/PickerLayoutManager.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/layoutmanage/PickerLayoutManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view; +package com.mogo.och.charter.passenger.ui.selectline.layoutmanage; import android.content.Context; import android.util.DisplayMetrics; @@ -10,7 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearSmoothScroller; import androidx.recyclerview.widget.RecyclerView; -import com.mogo.och.bus.passenger.R; +import com.mogo.och.charter.passenger.R; public class PickerLayoutManager extends LinearLayoutManager { diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt similarity index 60% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt index c6477b0ee9..c071ba0680 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt @@ -1,55 +1,98 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment.fragment +package com.mogo.och.charter.passenger.ui.softcontrol import android.animation.ObjectAnimator import android.animation.ValueAnimator +import android.annotation.SuppressLint import android.content.Context import android.graphics.BitmapFactory import android.graphics.drawable.ClipDrawable import android.graphics.drawable.LayerDrawable import android.media.AudioManager -import android.os.Bundle +import android.util.AttributeSet import android.view.Gravity +import android.view.LayoutInflater import android.view.View import android.view.animation.LinearInterpolator import android.widget.RadioButton import android.widget.SeekBar -import android.widget.SeekBar.OnSeekBarChangeListener import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import com.mogo.commons.mvp.MvpFragment +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.utilcode.kotlin.onClick 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.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.Temperature -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionSoftPresenter -import com.mogo.och.bus.passenger.ui.adapter.TemperatureAdapter -import com.mogo.och.bus.passenger.ui.layoutmanage.PagerCenterSnapHelper -import com.mogo.och.bus.passenger.view.HorizontalDecoration -import com.mogo.och.bus.passenger.view.PickerLayoutManager +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.Temperature +import com.mogo.och.charter.passenger.callback.IClearViewCallback +import com.mogo.och.charter.passenger.ui.selectline.layoutmanage.PickerLayoutManager +import com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter +import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration +import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.PagerCenterSnapHelper +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.utils.SoundPoolHelper -import com.yangyakun.main.ui.loading.drawable.MineGradientDrawable +import com.mogo.och.common.module.wigets.MineGradientDrawable import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable -import kotlinx.android.synthetic.main.m1_soft_fragment.* +import kotlinx.android.synthetic.main.m1_soft_fragment.view.dbv_wind +import kotlinx.android.synthetic.main.m1_soft_fragment.view.g_aircondition_setting +import kotlinx.android.synthetic.main.m1_soft_fragment.view.g_light_setting +import kotlinx.android.synthetic.main.m1_soft_fragment.view.g_voice_setting +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_bottom_light_setting +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_end_voice +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_loading +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_temperature_select +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_top_light_setting +import kotlinx.android.synthetic.main.m1_soft_fragment.view.iv_voice +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_pattern_automatic +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_pattern_heating +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_pattern_refrigeration +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_pattern_ventilate +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_wind_speed_high +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_wind_speed_low +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rb_wind_speed_middle +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rg_select_function +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rg_setting_pattern +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rg_setting_windspeed +import kotlinx.android.synthetic.main.m1_soft_fragment.view.rv_aircondition_temperature +import kotlinx.android.synthetic.main.m1_soft_fragment.view.sb_voice_bar +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_aircondition_switch +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_current_voice_value +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_light_atmosphere +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_light_top_01 +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_light_top_02 +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_setting_aircondition +import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_temperature_title import me.jessyan.autosize.utils.AutoSizeUtils import java.util.concurrent.TimeUnit +class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallback { -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1SoftFragment : - MvpFragment() { + private val TAG = "OrderInfoView" - override fun getLayoutId(): Int = R.layout.m1_soft_fragment + private val touchTag = 2 - override fun getTagName(): String = TAG + private var viewModel: SoftControlViewModel? = null + + 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) + + var goneViewListener: IClearViewCallback? = null private var currentTemperature: Temperature? = null @@ -60,258 +103,153 @@ class M1SoftFragment : private var subscribeAnimator: Disposable? = null private var animator1: ObjectAnimator? = null - private val loadingAni = ObjectAnimator.ofFloat(iv_loading, "rotation", 0f, 90f ,180f, 270f, 360f).apply { - repeatCount = -1 - interpolator = LinearInterpolator() - duration = 1000 + + private val loadingAni = + ObjectAnimator.ofFloat(iv_loading, "rotation", 0f, 90f, 180f, 270f, 360f).apply { + repeatCount = -1 + interpolator = LinearInterpolator() + duration = 1000 + } + + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.m1_soft_fragment, this, true) + onClick { + setViewGone() + } } + private fun setViewGone() { + goneViewListener?.goneAllView() + } - override fun initViews() { - rg_select_function.setOnCheckedChangeListener { group, checkedId -> + override fun onAttachedToWindow() { + super.onAttachedToWindow() + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(SoftControlViewModel::class.java) + } + + rg_select_function.setOnCheckedChangeListener { _, checkedId -> when (checkedId) { R.id.tv_setting_aircondition -> { g_light_setting.visibility = View.GONE g_voice_setting.visibility = View.GONE - if(loadingAni.isRunning){ + if (loadingAni.isRunning) { iv_loading.visibility = View.VISIBLE g_aircondition_setting.visibility = View.GONE - }else{ + } else { g_aircondition_setting.visibility = View.VISIBLE } } + R.id.tv_setting_lighting -> { g_light_setting.visibility = View.VISIBLE g_voice_setting.visibility = View.GONE g_aircondition_setting.visibility = View.GONE iv_loading.visibility = View.GONE } + R.id.tv_setting_voice -> { g_voice_setting.visibility = View.VISIBLE g_aircondition_setting.visibility = View.GONE g_light_setting.visibility = View.GONE iv_loading.visibility = View.GONE } + else -> {} } - if(rb_pattern_heating.isChecked){ + if (rb_pattern_heating.isChecked) { iv_temperature_select.visibility = View.GONE } } rg_select_function.check(R.id.tv_setting_aircondition) - setAirconditionListener() + setAirconditionListener(viewModel) setAirConditionAni() - setLightListener() + setLightListener(viewModel) setVoiceInfo() } - private fun setAirConditionAni() { - dbv_wind.post { - dbv_wind?.let { - val measuredHeight = it.measuredHeight - animator1 = ObjectAnimator.ofInt(it, "showHeight", 0, measuredHeight).apply { - duration = 1000 - repeatCount = ValueAnimator.INFINITE - if(rg_setting_windspeed.checkedRadioButtonId!=0&&tv_aircondition_switch.isChecked){ - start() - } - } - } - } + + fun setWind(check: RadioButton, resource: Int) { + check.isChecked = true + dbv_wind.setDrawableImage(BitmapFactory.decodeResource(resources, resource)) } - fun showAni(){ - iv_loading.visibility = View.VISIBLE - loadingAni.target = iv_loading - loadingAni.start() - g_aircondition_setting.visibility = View.GONE - subscribeAnimator = Observable.timer(10000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - loadingAni.cancel() - iv_loading.visibility = View.GONE - if(tv_setting_aircondition.isChecked){ - g_aircondition_setting.visibility = View.VISIBLE - if(rb_pattern_heating.isChecked){ - iv_temperature_select.visibility = View.GONE - } - } - } + /** + * 关闭暖风机 + */ + private fun closeHeater() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风") + heaterAirEnable(true) + viewModel?.closeHeader() } - private fun setAirconditionListener() { - // 开关空调或暖风机 - tv_aircondition_switch.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - if(isChecked){//打开 - tv_aircondition_switch.setText("关闭空调") - if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) { - openHeater()// 打开暖风机 - } else { - openAircondition()// 打开空调 - } - showAni() - }else{// 关闭 - tv_aircondition_switch.setText("打开空调") - closeHeater()// 关闭暖风机 - closeAircondition()//关闭空调 - } - } - // 模式调节 - rg_setting_pattern.setOnCheckedChangeListener { group, checkedId -> - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "调节模式") - when (checkedId) { - R.id.rb_pattern_heating -> { - if(!rb_pattern_heating.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openHeater() - } - R.id.rb_pattern_automatic->{ - if(!rb_pattern_automatic.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - R.id.rb_pattern_refrigeration->{ - if(!rb_pattern_refrigeration.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - R.id.rb_pattern_ventilate->{ - if(!rb_pattern_ventilate.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - else -> { - openAircondition() - } - } - if(tv_aircondition_switch.isChecked) { - showAni() - } - } - // 风速调节 - rg_setting_windspeed.setOnCheckedChangeListener { group, checkedId -> - when (checkedId) { - R.id.rb_wind_speed_low-> { - if(!rb_wind_speed_low.isPressed){ - return@setOnCheckedChangeListener - } - } - R.id.rb_wind_speed_middle-> { - if(!rb_wind_speed_middle.isPressed){ - return@setOnCheckedChangeListener - } - } - R.id.rb_wind_speed_high-> { - if(!rb_wind_speed_high.isPressed){ - return@setOnCheckedChangeListener - } - } - else -> {} - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {//暖风机 - openHeater() - } else { - openAircondition() - } + private fun heaterAirEnable(enable: Boolean) { + tv_temperature_title.isEnabled = enable + rv_aircondition_temperature.isEnabled = enable + val layoutManager = rv_aircondition_temperature.layoutManager + if (layoutManager is com.mogo.och.charter.passenger.ui.selectline.layoutmanage.PickerLayoutManager) { + layoutManager.setHorizontallyScroll(enable) } - val pickerLayoutManager = - PickerLayoutManager( - requireContext(), - PickerLayoutManager.HORIZONTAL, - false + val adapter = rv_aircondition_temperature.adapter as com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter + if (enable) { + adapter.setEnable(true) + if (tv_setting_aircondition.isChecked) { + if (iv_loading.visibility == View.GONE) { + iv_temperature_select.visibility = View.VISIBLE + } + } + rb_wind_speed_low.setTextColor( + ContextCompat.getColorStateList( + context, + R.color.bus_p_function_airconditon_pattern_text_color_selector + ) ) - pickerLayoutManager.isChangeAlpha = true - pickerLayoutManager.scaleDownBy = 0.29f - pickerLayoutManager.scaleDownDistance = 0.8f - - val data = getData() - val adapter = TemperatureAdapter( - requireContext(), - data, - rv_aircondition_temperature - ) - val snapHelper = PagerCenterSnapHelper() - snapHelper.attachToRecyclerView(rv_aircondition_temperature) - rv_aircondition_temperature.layoutManager = pickerLayoutManager - rv_aircondition_temperature.adapter = adapter - HorizontalDecoration.distance = SharedPrefsMgr.getInstance(requireContext()).getInt( - HorizontalDecoration.distancekey,0) - val space = AutoSizeUtils.dp2px(context, 15f) - rv_aircondition_temperature.addItemDecoration( - HorizontalDecoration( - space, - data.size - 1 - ) - ) - - pickerLayoutManager.setOnScrollStopListener { view -> - if (view is TextView) { - // 未拖到中点、自动滚动到中点会短时间触发两次 - val tag = view.tag - if (tag is Temperature) { - mPresenter?.disposeSubscribe(subscribeAir) - if(tag.index==0||tag.index==adapter.data.size-1){ - subscribeAir = Observable.timer(200, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - setCheckAir(adapter,tag) - } - }else { - if (ClickUtils.isClickTooFrequent(rv_aircondition_temperature)) { - return@setOnScrollStopListener - } - setCheckAir(adapter,tag) - } - } - - } - } - if(HorizontalDecoration.distance!=0){ - rv_aircondition_temperature.scrollToPosition(data.size-1) - adapter.setCheckIndex(data.size-1) - } - } - - private fun setCheckAir(adapter: TemperatureAdapter, tag:Temperature){ - adapter.setCheckIndex(tag.index) - currentTemperature = tag - if (rv_aircondition_temperature.tag == touchTag) { - rv_aircondition_temperature.tag = null - return } else { - SoundPoolHelper.getSoundPoolHelper() - .playSoundWithRedId(context, R.raw.bus_di) + adapter.setEnable(false) + iv_temperature_select.visibility = View.GONE + rb_wind_speed_low.setTextColor( + ContextCompat.getColor( + context, + R.color.bus_p_m1_6647576e + ) + ) } - openAircondition() } - private fun getData(): MutableList { - val mutableListOf = mutableListOf() - mutableListOf.add(Temperature(0, 16, "16°")) - mutableListOf.add(Temperature(1, 17, "17°")) - mutableListOf.add(Temperature(2, 18, "18°")) - mutableListOf.add(Temperature(3, 19, "19°")) - mutableListOf.add(Temperature(4, 20, "20°")) - mutableListOf.add(Temperature(5, 21, "21°")) - mutableListOf.add(Temperature(6, 22, "22°")) - mutableListOf.add(Temperature(7, 23, "23°")) - mutableListOf.add(Temperature(8, 24, "24°")) - mutableListOf.add(Temperature(9, 25, "25°")) - mutableListOf.add(Temperature(10, 26, "26°")) - return mutableListOf + /** + * 开启暖风机 + */ + private fun openHeater() { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风") + heaterAirEnable(false) + closeAircondition()//关闭空调 + val switch: Int + when (rg_setting_windspeed.checkedRadioButtonId) { + R.id.rb_wind_speed_low -> { + rb_wind_speed_middle.tag = touchTag + rb_wind_speed_middle.toggle() + switch = 1 + } + + R.id.rb_wind_speed_middle -> { + switch = 1 + } + + R.id.rb_wind_speed_high -> { + switch = 2 + } + + else -> { + rb_wind_speed_middle.tag = touchTag + rb_wind_speed_middle.toggle() + switch = 1 + } + } + if (!tv_aircondition_switch.isChecked) { + return + } + viewModel?.openAndSetHeader(switch) } /** @@ -335,7 +273,26 @@ class M1SoftFragment : R.id.rb_wind_speed_high -> windSpeedCmd = 3 // 3档 else -> {} } - mPresenter?.closeAircondition(modeCmd, windSpeedCmd, temperatureCmd) + viewModel?.closeAircondition(modeCmd, windSpeedCmd, temperatureCmd) + } + + fun showAni() { + iv_loading.visibility = View.VISIBLE + loadingAni.target = iv_loading + loadingAni.start() + g_aircondition_setting.visibility = View.GONE + subscribeAnimator = Observable.timer(10000, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + loadingAni.cancel() + iv_loading.visibility = View.GONE + if (tv_setting_aircondition.isChecked) { + g_aircondition_setting.visibility = View.VISIBLE + if (rb_pattern_heating.isChecked) { + iv_temperature_select.visibility = View.GONE + } + } + } } /** @@ -362,232 +319,107 @@ class M1SoftFragment : if (!tv_aircondition_switch.isChecked) { return } - mPresenter?.openAndSetAircondition(modeCmd, windSpeedCmd, temperatureCmd) + viewModel?.openAndSetAircondition(modeCmd, windSpeedCmd, temperatureCmd) } - /** - * 根据车的状态会写页面状态 - */ - fun setAirconditionHeaterView( - airIsOpen: Boolean, - heaterIsOpen: Boolean, - temperatureCmd: Int, - pattern: Int, - windSpeed: Int - ) { - tv_aircondition_switch?.let { - if (!airIsOpen && !heaterIsOpen) { - tv_aircondition_switch.text = "打开空调" - tv_aircondition_switch.isChecked = false - dbv_wind.visibility = View.GONE - } else { - tv_aircondition_switch.text = "关闭空调" - tv_aircondition_switch.isChecked = true - dbv_wind.visibility = View.VISIBLE - } - if (airIsOpen) { - val adapter = rv_aircondition_temperature.adapter - if (adapter is TemperatureAdapter) { - adapter.data.forEach { - if (it.value == temperatureCmd) { - rv_aircondition_temperature.tag = touchTag - UiThreadHandler.postDelayed({ - rv_aircondition_temperature?.smoothScrollToPosition(it.index) - },500) - } - } - } - when (pattern) {//1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度) - 1 -> {rb_pattern_automatic.isChecked = true} - 2 -> {rb_pattern_refrigeration.isChecked = true} - 3 -> {rb_pattern_ventilate.isChecked = true} - else -> {} - } - heaterAirEnable(true) - when (windSpeed) {//1: 1档,2: 2档,3:3档 - 1 -> { - setWind(rb_wind_speed_low,R.drawable.bus_pm1_aircondition_wind_low) - } - 2 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_aircondition_wind_middle) - } - 3 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_aircondition_wind_high) - } - else -> {} - } - } - if (heaterIsOpen) { - rb_pattern_heating.isChecked = true - heaterAirEnable(false) - when (windSpeed) {//1: 1档,2: 2档 - 1 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_warm_wind_middle) - } - 2 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_warm_wind_high) - } - else -> {} - } - } - } - } - fun setWind(check: RadioButton,resource:Int){ - check.isChecked = true - dbv_wind.setDrawableImage(BitmapFactory.decodeResource(resources,resource)) - } - - /** - * 关闭暖风机 - */ - private fun closeHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风") - heaterAirEnable(true) - mPresenter?.closeHeader() - } - - private fun heaterAirEnable(enable: Boolean) { - tv_temperature_title.isEnabled = enable - rv_aircondition_temperature.isEnabled = enable - val layoutManager = rv_aircondition_temperature.layoutManager - if (layoutManager is PickerLayoutManager) { - layoutManager.setHorizontallyScroll(enable) - } - val adapter = rv_aircondition_temperature.adapter as TemperatureAdapter - if(enable){ - adapter.setEnable(true) - if(tv_setting_aircondition.isChecked) { - if(iv_loading.visibility==View.GONE){ - iv_temperature_select.visibility = View.VISIBLE - } - } - rb_wind_speed_low.setTextColor(ContextCompat.getColorStateList(requireContext(),R.color.bus_p_function_airconditon_pattern_text_color_selector)) - }else{ - adapter.setEnable(false) - iv_temperature_select.visibility = View.GONE - rb_wind_speed_low.setTextColor(ContextCompat.getColor(requireContext(),R.color.bus_p_m1_6647576e)) - } - } - - /** - * 开启暖风机 - */ - private fun openHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风") - heaterAirEnable(false) - closeAircondition()//关闭空调 - var switch = 1; - when (rg_setting_windspeed.checkedRadioButtonId) { - R.id.rb_wind_speed_low -> { - rb_wind_speed_middle.tag = touchTag - rb_wind_speed_middle.toggle() - switch = 1 - } - R.id.rb_wind_speed_middle -> { - switch = 1 - } - R.id.rb_wind_speed_high -> { - switch = 2 - } - else -> { - rb_wind_speed_middle.tag = touchTag - rb_wind_speed_middle.toggle() - switch = 1 - } - } - if (!tv_aircondition_switch.isChecked) { + private fun setCheckAir(adapter: com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter, tag: Temperature) { + adapter.setCheckIndex(tag.index) + currentTemperature = tag + if (rv_aircondition_temperature.tag == touchTag) { + rv_aircondition_temperature.tag = null return + } else { + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) } - mPresenter?.openAndSetHeader(switch) + openAircondition() } // region 灯 - private fun setLightListener() { + private fun setLightListener(viewModel: SoftControlViewModel?) { tv_light_top_01.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ + if (!buttonView.isPressed) { return@setOnCheckedChangeListener } tv_light_top_01.isEnabled = false subscribeLightTop1 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_top_01.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setLightData1(isChecked) - setLightTop1View(isChecked,true) - setLightView(isChecked,tv_light_top_02.isChecked) + viewModel?.setLightData1(isChecked) + setLightTop1View(isChecked, true) + setLightView(isChecked, tv_light_top_02.isChecked) } tv_light_top_02.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ + if (!buttonView.isPressed) { return@setOnCheckedChangeListener } tv_light_top_02.isEnabled = false - subscribeLightTop2 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + subscribeLightTop2 = Observable.timer(2000, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_top_02.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setLightData2(isChecked) - setLightTop2View(isChecked,true) - setLightView(tv_light_top_01.isChecked,isChecked) + viewModel?.setLightData2(isChecked) + setLightTop2View(isChecked, true) + setLightView(tv_light_top_01.isChecked, isChecked) } tv_light_atmosphere.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ + if (!buttonView.isPressed) { return@setOnCheckedChangeListener } tv_light_atmosphere.isEnabled = false subscribeAtmosphere = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { + .observeOn(AndroidSchedulers.mainThread()).subscribe { tv_light_atmosphere.isEnabled = true } SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setAtmosphereLightData2(isChecked) - setLightAtmosphereView(isChecked,true) + viewModel?.setAtmosphereLightData2(isChecked) + setLightAtmosphereView(isChecked, true) } } - fun setLightTop1View(leftLight: Boolean, isFirst: Boolean){ + override fun setLightTop1View(leftLight: Boolean, isFirst: Boolean) { tv_light_top_01?.let { if (leftLight) { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_close_light1) + tv_light_top_01.text = context.getString(R.string.bus_p_m1_close_light1) tv_light_top_01.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯1") + if (!isFirst) ToastCharterUtils.showToastShort("打开顶灯1") } else { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_open_light1) + tv_light_top_01.text = context.getString(R.string.bus_p_m1_open_light1) tv_light_top_01.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯1") + if (!isFirst) ToastCharterUtils.showToastShort("关闭顶灯1") } } } - fun setLightTop2View(rightLight: Boolean, isFirst: Boolean){ + + override fun setLightTop2View(rightLight: Boolean, isFirst: Boolean) { tv_light_top_02?.let { if (rightLight) { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_close_light2) + tv_light_top_02.text = context.getString(R.string.bus_p_m1_close_light2) tv_light_top_02.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯2") + if (!isFirst) ToastCharterUtils.showToastShort("打开顶灯2") } else { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_open_light2) + tv_light_top_02.text = context.getString(R.string.bus_p_m1_open_light2) tv_light_top_02.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯2") + if (!isFirst) ToastCharterUtils.showToastShort("关闭顶灯2") } } } - fun setLightAtmosphereView(atmosphereLight: Boolean, isFirst: Boolean){ + + override fun setLightAtmosphereView(atmosphereLight: Boolean, isFirst: Boolean) { tv_light_atmosphere?.let { if (atmosphereLight) { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_close_atmosphere) + tv_light_atmosphere.text = context.getString(R.string.bus_p_m1_close_atmosphere) tv_light_atmosphere.isChecked = true iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_select) - if(!isFirst) ToastCharterUtils.showShort("打开氛围灯") + if (!isFirst) ToastCharterUtils.showToastShort("打开氛围灯") } else { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_open_atmosphere) + tv_light_atmosphere.text = context.getString(R.string.bus_p_m1_open_atmosphere) tv_light_atmosphere.isChecked = false iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_nor) - if(!isFirst) ToastCharterUtils.showShort("关闭氛围灯") + if (!isFirst) ToastCharterUtils.showToastShort("关闭氛围灯") } } } @@ -595,7 +427,7 @@ class M1SoftFragment : /** * 灯的UI发生变化 */ - fun setLightView(leftLight: Boolean, rightLight: Boolean) { + override fun setLightView(leftLight: Boolean, rightLight: Boolean) { iv_top_light_setting?.let { if (leftLight && rightLight) { iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_middle_selected)// 都打开 @@ -615,15 +447,15 @@ class M1SoftFragment : // region 声音 private var mAudioManager: AudioManager? = null - private var mMaxVolume: Int? = 100; + private var mMaxVolume: Int? = 100 + @SuppressLint("NewApi") private fun setVoiceInfo() { val dp2px = AutoSizeUtils.dp2px(context, 26f)//进度条高度 - R.color.bus_p_m1_47576e - val color2CBFFC = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_2cbffc) - val color1060FF = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_1060ff) - val color96A5C2 = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_96a5c2) + val color2CBFFC = ContextCompat.getColor(context, R.color.bus_p_m1_2cbffc) + val color1060FF = ContextCompat.getColor(context, R.color.bus_p_m1_1060ff) + val color96A5C2 = ContextCompat.getColor(context, R.color.bus_p_m1_96a5c2) val temp03 = MineGradientDrawable(color2CBFFC, color1060FF, dp2px) val scaleDrawable3 = ClipDrawable(temp03, Gravity.START, ClipDrawable.HORIZONTAL) val temp01 = MineGradientDrawable(color96A5C2, color96A5C2, dp2px) @@ -634,14 +466,14 @@ class M1SoftFragment : sb_voice_bar.setProgressDrawableTiled(ld) sb_voice_bar.max = 100 sb_voice_bar.min = 5 - sb_voice_bar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { + sb_voice_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { tv_current_voice_value.text = "$progress%" if (fromUser) { mMaxVolume?.let { var currnetValue = ((progress.toFloat() / 100) * it).toInt() if (currnetValue <= 0) { - currnetValue = 1; + currnetValue = 1 } mAudioManager?.setStreamVolume( AudioManager.STREAM_MUSIC, @@ -685,54 +517,277 @@ class M1SoftFragment : } // endregion - override fun createPresenter(): BusPassengerFunctionSoftPresenter = - BusPassengerFunctionSoftPresenter(this) - override fun onDestroy() { - mPresenter?.disposeSubscribe(subscribeLightTop1) - mPresenter?.disposeSubscribe(subscribeLightTop2) - mPresenter?.disposeSubscribe(subscribeAtmosphere) - mPresenter?.disposeSubscribe(subscribeAnimator) - - super.onDestroy() - } - - override fun onResume() { - super.onResume() - if(rg_setting_windspeed.checkedRadioButtonId!=0&&tv_aircondition_switch.isChecked){ - animator1?.start() - } - } - - override fun onPause() { - super.onPause() - animator1?.let { - if(it.isRunning){ - it.pause() + private fun setAirConditionAni() { + dbv_wind.post { + dbv_wind?.let { + val measuredHeight = it.measuredHeight + animator1 = ObjectAnimator.ofInt(it, "showHeight", 0, measuredHeight).apply { + duration = 1000 + repeatCount = ValueAnimator.INFINITE + if (rg_setting_windspeed.checkedRadioButtonId != 0 && tv_aircondition_switch.isChecked) { + start() + } + } } } } - override fun onDetach() { - super.onDetach() - animator1?.let { - if(it.isRunning){ - it.end() + private fun setAirconditionListener(viewModel: SoftControlViewModel?) { + // 开关空调或暖风机 + tv_aircondition_switch.setOnCheckedChangeListener { buttonView, isChecked -> + if (!buttonView.isPressed) { + return@setOnCheckedChangeListener + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + if (isChecked) {//打开 + tv_aircondition_switch.setText("关闭空调") + if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) { + openHeater()// 打开暖风机 + } else { + openAircondition()// 打开空调 + } + showAni() + } else {// 关闭 + tv_aircondition_switch.setText("打开空调") + closeHeater()// 关闭暖风机 + closeAircondition()//关闭空调 + } + } + // 模式调节 + rg_setting_pattern.setOnCheckedChangeListener { group, checkedId -> + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "调节模式") + when (checkedId) { + R.id.rb_pattern_heating -> { + if (!rb_pattern_heating.isPressed) { + return@setOnCheckedChangeListener + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + openHeater() + } + + R.id.rb_pattern_automatic -> { + if (!rb_pattern_automatic.isPressed) { + return@setOnCheckedChangeListener + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + openAircondition() + } + + R.id.rb_pattern_refrigeration -> { + if (!rb_pattern_refrigeration.isPressed) { + return@setOnCheckedChangeListener + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + openAircondition() + } + + R.id.rb_pattern_ventilate -> { + if (!rb_pattern_ventilate.isPressed) { + return@setOnCheckedChangeListener + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + openAircondition() + } + + else -> { + openAircondition() + } + } + if (tv_aircondition_switch.isChecked) { + showAni() + } + } + + // 风速调节 + rg_setting_windspeed.setOnCheckedChangeListener { group, checkedId -> + when (checkedId) { + R.id.rb_wind_speed_low -> { + if (!rb_wind_speed_low.isPressed) { + return@setOnCheckedChangeListener + } + } + + R.id.rb_wind_speed_middle -> { + if (!rb_wind_speed_middle.isPressed) { + return@setOnCheckedChangeListener + } + } + + R.id.rb_wind_speed_high -> { + if (!rb_wind_speed_high.isPressed) { + return@setOnCheckedChangeListener + } + } + + else -> {} + } + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {//暖风机 + openHeater() + } else { + openAircondition() + } + } + val pickerLayoutManager = + com.mogo.och.charter.passenger.ui.selectline.layoutmanage.PickerLayoutManager( + context, + com.mogo.och.charter.passenger.ui.selectline.layoutmanage.PickerLayoutManager.HORIZONTAL, + false + ) + pickerLayoutManager.isChangeAlpha = true + pickerLayoutManager.scaleDownBy = 0.29f + pickerLayoutManager.scaleDownDistance = 0.8f + + val data = getData() + val adapter = com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter( + context, + data, + rv_aircondition_temperature + ) + val snapHelper = PagerCenterSnapHelper() + snapHelper.attachToRecyclerView(rv_aircondition_temperature) + rv_aircondition_temperature.layoutManager = pickerLayoutManager + rv_aircondition_temperature.adapter = adapter + com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration.distance = SharedPrefsMgr.getInstance(context).getInt( + com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration.distancekey, 0 + ) + val space = AutoSizeUtils.dp2px(context, 15f) + rv_aircondition_temperature.addItemDecoration( + com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration( + space, data.size - 1 + ) + ) + + pickerLayoutManager.setOnScrollStopListener { view -> + if (view is TextView) { + // 未拖到中点、自动滚动到中点会短时间触发两次 + val tag = view.tag + if (tag is Temperature) { + RxUtils.disposeSubscribe(subscribeAir) + if (tag.index == 0 || tag.index == adapter.data.size - 1) { + subscribeAir = Observable.timer(200, TimeUnit.MILLISECONDS) + .observeOn(AndroidSchedulers.mainThread()).subscribe { + setCheckAir(adapter, tag) + } + } else { + if (ClickUtils.isClickTooFrequent(rv_aircondition_temperature)) { + return@setOnScrollStopListener + } + setCheckAir(adapter, tag) + } + } + + } + } + if (com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration.distance != 0) { + rv_aircondition_temperature.scrollToPosition(data.size - 1) + adapter.setCheckIndex(data.size - 1) + } + } + + fun getData(): MutableList { + val mutableListOf = mutableListOf() + mutableListOf.add(Temperature(0, 16, "16°")) + mutableListOf.add(Temperature(1, 17, "17°")) + mutableListOf.add(Temperature(2, 18, "18°")) + mutableListOf.add(Temperature(3, 19, "19°")) + mutableListOf.add(Temperature(4, 20, "20°")) + mutableListOf.add(Temperature(5, 21, "21°")) + mutableListOf.add(Temperature(6, 22, "22°")) + mutableListOf.add(Temperature(7, 23, "23°")) + mutableListOf.add(Temperature(8, 24, "24°")) + mutableListOf.add(Temperature(9, 25, "25°")) + mutableListOf.add(Temperature(10, 26, "26°")) + return mutableListOf + } + + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + /** + * 根据车的状态会写页面状态 + */ + override fun setAirconditionHeaterView( + airIsOpen: Boolean, heaterIsOpen: Boolean, temperatureCmd: Int, pattern: Int, windSpeed: Int + ) { + tv_aircondition_switch?.let { + if (!airIsOpen && !heaterIsOpen) { + tv_aircondition_switch.text = "打开空调" + tv_aircondition_switch.isChecked = false + dbv_wind.visibility = View.GONE + } else { + tv_aircondition_switch.text = "关闭空调" + tv_aircondition_switch.isChecked = true + dbv_wind.visibility = View.VISIBLE + } + if (airIsOpen) { + val adapter = rv_aircondition_temperature.adapter + if (adapter is com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter) { + adapter.data.forEach { + if (it.value == temperatureCmd) { + rv_aircondition_temperature.tag = touchTag + UiThreadHandler.postDelayed({ + rv_aircondition_temperature?.smoothScrollToPosition(it.index) + }, 500) + } + } + } + when (pattern) {//1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度) + 1 -> { + rb_pattern_automatic.isChecked = true + } + + 2 -> { + rb_pattern_refrigeration.isChecked = true + } + + 3 -> { + rb_pattern_ventilate.isChecked = true + } + + else -> {} + } + heaterAirEnable(true) + when (windSpeed) {//1: 1档,2: 2档,3:3档 + 1 -> { + setWind(rb_wind_speed_low, R.drawable.bus_pm1_aircondition_wind_low) + } + + 2 -> { + setWind(rb_wind_speed_middle, R.drawable.bus_pm1_aircondition_wind_middle) + } + + 3 -> { + setWind(rb_wind_speed_high, R.drawable.bus_pm1_aircondition_wind_high) + } + + else -> {} + } + } + if (heaterIsOpen) { + rb_pattern_heating.isChecked = true + heaterAirEnable(false) + when (windSpeed) {//1: 1档,2: 2档 + 1 -> { + setWind(rb_wind_speed_middle, R.drawable.bus_pm1_warm_wind_middle) + } + + 2 -> { + setWind(rb_wind_speed_high, R.drawable.bus_pm1_warm_wind_high) + } + + else -> {} + } } } } - companion object { - const val TAG = "M1SoftFragment" - const val touchTagKey = 2 - const val touchTag = 2 - @JvmStatic - fun newInstance(): M1SoftFragment { - val args = Bundle() - val fragment = M1SoftFragment() - fragment.arguments = args - return fragment - } - } } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt new file mode 100644 index 0000000000..af30004679 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlViewModel.kt @@ -0,0 +1,271 @@ +package com.mogo.och.charter.passenger.ui.softcontrol + +import androidx.lifecycle.ViewModel +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus +import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue +import com.mogo.och.common.module.manager.devicemanage.data.LightStatus +import com.mogo.och.common.module.utils.RxUtils +import io.reactivex.disposables.Disposable + +class SoftControlViewModel : ViewModel(), LightAirconditionDoorCallback { + + private val TAG = SoftControlViewModel::class.java.simpleName + + private var viewCallback: SoftControlCallback? = null + + private var subscribeLightTop1: Disposable? = null + private var subscribeLightTop2: Disposable? = null + private var subscribeLightAtmosphere: Disposable? = null + + private var airconditionDisposable: Disposable? = null + private var heaterDisposable: Disposable? = null + + + init { + + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + LightAirconditionDoorStatusManager.removeListener(TAG) + } + + fun setViewCallback(viewCallback: SoftControlCallback) { + this.viewCallback = viewCallback + LightAirconditionDoorStatusManager.addListener(TAG, this) + } + + /** + * 空调状态变化 + */ + override fun onAirconditionStatusCallback( + heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean + ) { + CallerLogger.d( + M_BUS_P + TAG, + "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}" + ) + UiThreadHandler.post { + if (airconditionStatus.isOpen) { + viewCallback?.setAirconditionHeaterView( + airconditionStatus.isOpen, + heaterIsOpen, + airconditionStatus.temperature, + airconditionStatus.pattert, + airconditionStatus.windSpeed + ) + } else { + viewCallback?.setAirconditionHeaterView( + airconditionStatus.isOpen, heaterIsOpen, airconditionStatus.temperature, 0, 0 + ) + } + } + } + + /** + * 暖风机状态变化 + */ + override fun onHeaterStatusCallback( + airconditionIsOpen: Boolean, heaterStatue: HeaterStatue, isFirst: Boolean + ) { + CallerLogger.d( + M_BUS_P + TAG, + "回写--暖风机开关:${heaterStatue.isOpen}、" + "风速:${heaterStatue.windSpeed}" + ) + UiThreadHandler.post { + if (heaterStatue.isOpen) { + viewCallback?.setAirconditionHeaterView( + airconditionIsOpen, heaterStatue.isOpen, 0, 0, heaterStatue.windSpeed + ) + } else { + viewCallback?.setAirconditionHeaterView( + airconditionIsOpen, heaterStatue.isOpen, 0, 0, 0 + ) + } + } + } + + /** + * 灯状态变化 + */ + override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) { + CallerLogger.d( + M_BUS_P + TAG, + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" + ) + UiThreadHandler.post { + viewCallback?.setLightTop1View(lightStatus.isOpenLight1, isFirst) + } + } + + /** + * 灯状态变化 + */ + override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) { + CallerLogger.d( + M_BUS_P + TAG, + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" + ) + UiThreadHandler.post { + viewCallback?.setLightTop2View(lightStatus.isOpenLight2, isFirst) + viewCallback?.setLightView(lightStatus.isOpenLight1, lightStatus.isOpenLight2) + } + } + + /** + * 灯状态变化 + */ + override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) { + CallerLogger.d( + M_BUS_P + TAG, + "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + "氛围灯开关:${lightStatus.isOpenatmosphere}、" + ) + UiThreadHandler.post { + viewCallback?.setLightAtmosphereView(lightStatus.isOpenatmosphere, isFirst) + } + } + + /** + * 设置空调 + */ + fun openAndSetAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { + CallerLogger.d( + M_BUS_P + TAG, "" + "打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd" + ) + CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd( + 1, modeCmd, windSpeedCmd, temperatureCmd + ) + RxUtils.disposeSubscribe(airconditionDisposable) + airconditionDisposable = RxUtils.createSubscribe(10000) { + if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen && LightAirconditionDoorStatusManager.airconditionStatus.windSpeed != windSpeedCmd && LightAirconditionDoorStatusManager.airconditionStatus.temperature != temperatureCmd && LightAirconditionDoorStatusManager.airconditionStatus.pattert != modeCmd) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } + + fun closeAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { + CallerLogger.d(M_BUS_P + TAG, "关闭空调") + CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd( + 2, modeCmd, windSpeedCmd, temperatureCmd + ) + RxUtils.disposeSubscribe(airconditionDisposable) + airconditionDisposable = RxUtils.createSubscribe(10000) { + if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } + + /** + * 设置暖风 + */ + fun openAndSetHeader(windSpeedCmd: Int) { + CallerLogger.d(M_BUS_P + TAG, "打开暖风机、档位${windSpeedCmd}") + CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1, windSpeedCmd) + RxUtils.disposeSubscribe(heaterDisposable) + heaterDisposable = RxUtils.createSubscribe(10000) { + if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen && LightAirconditionDoorStatusManager.heaterStatue.windSpeed != windSpeedCmd) { + ToastCharterUtils.showToastShort("暖风机操作未生效,请稍后重试吧~") + } + } + } + + fun closeHeader() { + CallerLogger.d(M_BUS_P + TAG, "关闭暖风机") + CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2, 0) + RxUtils.disposeSubscribe(heaterDisposable) + heaterDisposable = RxUtils.createSubscribe(10000) { + if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) { + ToastCharterUtils.showToastShort("暖风机操作未生效,请稍后重试吧~")//还是开着的 + } + } + } + + fun setLightData1(leftLight: Boolean) { + CallerLogger.d(M_BUS_P + TAG, "顶灯2:$leftLight") + RxUtils.disposeSubscribe(subscribeLightTop1) + subscribeLightTop1 = if (leftLight) { + CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1) + RxUtils.createSubscribe { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } else { + CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2) + RxUtils.createSubscribe { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } + } + + fun setLightData2(rightLight: Boolean) { + CallerLogger.d(M_BUS_P + TAG, "顶灯1:$rightLight") + RxUtils.disposeSubscribe(subscribeLightTop2) + subscribeLightTop2 = if (rightLight) { + CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1) + RxUtils.createSubscribe { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } else { + CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2) + RxUtils.createSubscribe { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } + } + + fun setAtmosphereLightData2(atmosphereLight: Boolean) { + CallerLogger.d(M_BUS_P + TAG, "氛围灯:$atmosphereLight") + RxUtils.disposeSubscribe(subscribeLightAtmosphere) + subscribeLightAtmosphere = if (atmosphereLight) { + CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1) + RxUtils.createSubscribe { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } else { + CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2) + RxUtils.createSubscribe { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { + ToastCharterUtils.showToastShort("控制系统繁忙,请稍后再试") + } + } + } + } + + + interface SoftControlCallback { + /** + * 根据车的状态会写页面状态 + */ + fun setAirconditionHeaterView( + airIsOpen: Boolean, + heaterIsOpen: Boolean, + temperatureCmd: Int, + pattern: Int, + windSpeed: Int + ) + + fun setLightTop1View(leftLight: Boolean, isFirst: Boolean) + fun setLightTop2View(rightLight: Boolean, isFirst: Boolean) + fun setLightView(leftLight: Boolean, rightLight: Boolean) + fun setLightAtmosphereView(atmosphereLight: Boolean, isFirst: Boolean) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/TemperatureAdapter.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/adapter/TemperatureAdapter.java similarity index 92% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/TemperatureAdapter.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/adapter/TemperatureAdapter.java index 51ea20f509..05bfb80f09 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/TemperatureAdapter.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/adapter/TemperatureAdapter.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.adapter; +package com.mogo.och.charter.passenger.ui.softcontrol.adapter; import android.content.Context; import android.graphics.Color; @@ -10,8 +10,9 @@ import android.widget.TextView; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; -import com.mogo.och.bus.passenger.R; -import com.mogo.och.bus.passenger.bean.Temperature; +import com.mogo.och.charter.passenger.R; +import com.mogo.och.charter.passenger.bean.Temperature; +import com.mogo.och.charter.passenger.bean.Temperature; import java.util.List; diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselLayoutManager.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselLayoutManager.java new file mode 100644 index 0000000000..0fcf2d61f5 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselLayoutManager.java @@ -0,0 +1,971 @@ +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage; + +import android.graphics.PointF; +import android.os.Build; +import android.os.Handler; +import android.os.Looper; +import android.os.Parcel; +import android.os.Parcelable; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.CallSuper; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.view.ViewCompat; +import androidx.recyclerview.widget.LinearSmoothScroller; +import androidx.recyclerview.widget.OrientationHelper; +import androidx.recyclerview.widget.RecyclerView; + +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * An implementation of {@link RecyclerView.LayoutManager} that layout items like carousel. + * Generally there is one center item and bellow this item there are maximum {@link CarouselLayoutManager#getMaxVisibleItems()} items on each side of the center + * item. By default {@link CarouselLayoutManager#getMaxVisibleItems()} is {@link CarouselLayoutManager#MAX_VISIBLE_ITEMS}.
+ *
+ * This LayoutManager supports only fixedSized adapter items.
+ *
+ * This LayoutManager supports {@link CarouselLayoutManager#HORIZONTAL} and {@link CarouselLayoutManager#VERTICAL} orientations.
+ *
+ * This LayoutManager supports circle layout. By default it if disabled. We don't recommend to use circle layout with adapter items count less then 3.
+ *
+ * Please be sure that layout_width of adapter item is a constant value and not {@link ViewGroup.LayoutParams#MATCH_PARENT} + * for {@link #HORIZONTAL} orientation. + * So like layout_height is not {@link ViewGroup.LayoutParams#MATCH_PARENT} for {@link CarouselLayoutManager#VERTICAL}
+ *
+ */ +public class CarouselLayoutManager extends RecyclerView.LayoutManager implements RecyclerView.SmoothScroller.ScrollVectorProvider { + + public static final int HORIZONTAL = OrientationHelper.HORIZONTAL; + public static final int VERTICAL = OrientationHelper.VERTICAL; + /** + * 固定值一直不变 + */ + public static final int INVALID_POSITION = -1; + public static final int MAX_VISIBLE_ITEMS = 3; + + private static final boolean CIRCLE_LAYOUT = false; + + private boolean mDecoratedChildSizeInvalid; + private Integer mDecoratedChildWidth; + private Integer mDecoratedChildHeight; + + private final int mOrientation; + private boolean mCircleLayout; + + private int mPendingScrollPosition; + + private final LayoutHelper mLayoutHelper = new LayoutHelper(MAX_VISIBLE_ITEMS); + + private PostLayoutListener mViewPostLayout; + + private final List mOnCenterItemSelectionListeners = new ArrayList<>(); + private final List onDargAutoDiffListeners = new ArrayList<>(); + private int mCenterItemPosition = INVALID_POSITION; + private int mItemsCount; + + @Nullable + private CarouselSavedState mPendingCarouselSavedState; + + /** + * @param orientation should be {@link #VERTICAL} or {@link #HORIZONTAL} + */ + @SuppressWarnings("unused") + public CarouselLayoutManager(final int orientation) { + this(orientation, CIRCLE_LAYOUT); + } + + /** + * If circleLayout is true then all items will be in cycle. Scroll will be infinite on both sides. + * + * @param orientation should be {@link #VERTICAL} or {@link #HORIZONTAL} + * @param circleLayout true for enabling circleLayout + */ + @SuppressWarnings("unused") + public CarouselLayoutManager(final int orientation, final boolean circleLayout) { + if (HORIZONTAL != orientation && VERTICAL != orientation) { + throw new IllegalArgumentException("orientation should be HORIZONTAL or VERTICAL"); + } + mOrientation = orientation; + mCircleLayout = circleLayout; + mPendingScrollPosition = INVALID_POSITION; + } + + /** + * Change circle layout type + */ + @SuppressWarnings("unused") + public void setCircleLayout(final boolean circleLayout) { + if (mCircleLayout != circleLayout) { + mCircleLayout = circleLayout; + requestLayout(); + } + } + + /** + * Setup {@link PostLayoutListener} for this LayoutManager. + * Its methods will be called for each visible view item after general LayoutManager layout finishes.
+ *
+ * Generally this method should be used for scaling and translating view item for better (different) view presentation of layouting. + * + * @param postLayoutListener listener for item layout changes. Can be null. + */ + @SuppressWarnings("unused") + public void setPostLayoutListener(@Nullable final PostLayoutListener postLayoutListener) { + mViewPostLayout = postLayoutListener; + requestLayout(); + } + + /** + * Setup maximum visible (layout) items on each side of the center item. + * Basically during scrolling there can be more visible items (+1 item on each side), but in idle state this is the only reached maximum. + * + * @param maxVisibleItems should be great then 0, if bot an {@link IllegalAccessException} will be thrown + */ + @CallSuper + @SuppressWarnings("unused") + public void setMaxVisibleItems(final int maxVisibleItems) { + if (0 > maxVisibleItems) { + throw new IllegalArgumentException("maxVisibleItems can't be less then 0"); + } + mLayoutHelper.mMaxVisibleItems = maxVisibleItems; + requestLayout(); + } + + /** + * @return current setup for maximum visible items. + * @see #setMaxVisibleItems(int) + */ + @SuppressWarnings("unused") + public int getMaxVisibleItems() { + return mLayoutHelper.mMaxVisibleItems; + } + + @Override + public RecyclerView.LayoutParams generateDefaultLayoutParams() { + return new RecyclerView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + } + + /** + * @return current layout orientation + * @see #VERTICAL + * @see #HORIZONTAL + */ + public int getOrientation() { + return mOrientation; + } + + @Override + public boolean canScrollHorizontally() { + return 0 != getChildCount() && HORIZONTAL == mOrientation; + } + + @Override + public boolean canScrollVertically() { + return 0 != getChildCount() && VERTICAL == mOrientation; + } + + /** + * @return current layout center item + */ + public int getCenterItemPosition() { + return mCenterItemPosition; + } + + /** + * @param onCenterItemSelectionListener listener that will trigger when ItemSelectionChanges. can't be null + */ + public void addOnItemSelectionListener(@NonNull final OnCenterItemSelectionListener onCenterItemSelectionListener) { + mOnCenterItemSelectionListeners.add(onCenterItemSelectionListener); + } + + /** + * @param onCenterItemSelectionListener listener that was previously added by {@link #addOnItemSelectionListener(OnCenterItemSelectionListener)} + */ + public void removeOnItemSelectionListener(@NonNull final OnCenterItemSelectionListener onCenterItemSelectionListener) { + mOnCenterItemSelectionListeners.remove(onCenterItemSelectionListener); + } + + public void addOnDargAutoDiffListener(@NonNull final OnDargAutoDiffListener onDargAutoDiffListener) { + onDargAutoDiffListeners.add(onDargAutoDiffListener); + } + + public void removeOnDargAutoDiffListener(@NonNull final OnDargAutoDiffListener onDargAutoDiffListener) { + onDargAutoDiffListeners.remove(onDargAutoDiffListener); + } + + @SuppressWarnings("RefusedBequest") + @Override + public void scrollToPosition(final int position) { + if (0 > position) { + throw new IllegalArgumentException("position can't be less then 0. position is : " + position); + } + mPendingScrollPosition = position; + requestLayout(); + } + + @SuppressWarnings("RefusedBequest") + @Override + public void smoothScrollToPosition(@NonNull final RecyclerView recyclerView, @NonNull final RecyclerView.State state, final int position) { + final LinearSmoothScroller linearSmoothScroller = new LinearSmoothScroller(recyclerView.getContext()) { + @Override + public int calculateDyToMakeVisible(final View view, final int snapPreference) { + if (!canScrollVertically()) { + return 0; + } + + return getOffsetForCurrentView(view); + } + + @Override + public int calculateDxToMakeVisible(final View view, final int snapPreference) { + if (!canScrollHorizontally()) { + return 0; + } + return getOffsetForCurrentView(view); + } + }; + linearSmoothScroller.setTargetPosition(position); + startSmoothScroll(linearSmoothScroller); + } + + @Override + @Nullable + public PointF computeScrollVectorForPosition(final int targetPosition) { + if (0 == getChildCount()) { + return null; + } + final float directionDistance = getScrollDirection(targetPosition); + //noinspection NumericCastThatLosesPrecision + final int direction = (int) -Math.signum(directionDistance); + + if (HORIZONTAL == mOrientation) { + return new PointF(direction, 0); + } else { + return new PointF(0, direction); + } + } + + private float getScrollDirection(final int targetPosition) { + final float currentScrollPosition = makeScrollPositionInRange0ToCount(getCurrentScrollPosition(), mItemsCount); + + if (mCircleLayout) { + final float t1 = currentScrollPosition - targetPosition; + final float t2 = Math.abs(t1) - mItemsCount; + if (Math.abs(t1) > Math.abs(t2)) { + return Math.signum(t1) * t2; + } else { + return t1; + } + } else { + return currentScrollPosition - targetPosition; + } + } + + @Override + public int scrollVerticallyBy(final int dy, @NonNull final RecyclerView.Recycler recycler, @NonNull final RecyclerView.State state) { + if (HORIZONTAL == mOrientation) { + return 0; + } + return scrollBy(dy, recycler, state); + } + + @Override + public int scrollHorizontallyBy(final int dx, final RecyclerView.Recycler recycler, final RecyclerView.State state) { + if (VERTICAL == mOrientation) { + return 0; + } + return scrollBy(dx, recycler, state); + } + + /** + * This method is called from {@link #scrollHorizontallyBy(int, RecyclerView.Recycler, RecyclerView.State)} and + * {@link #scrollVerticallyBy(int, RecyclerView.Recycler, RecyclerView.State)} to calculate needed scroll that is allowed.
+ *
+ * This method may do relayout work. + * + * @param diff 要滚动的距离 + * @param recycler 回收期 + * @param state Transient state of RecyclerView + * @return distance that we actually scrolled by + */ + @CallSuper + protected int scrollBy(final int diff, @NonNull final RecyclerView.Recycler recycler, @NonNull final RecyclerView.State state) { + if (null == mDecoratedChildWidth || null == mDecoratedChildHeight) { + return 0; + } + if (0 == getChildCount() || 0 == diff) { + return 0; + } + final int resultScroll; + if (mCircleLayout) { + resultScroll = diff; + + mLayoutHelper.mScrollOffset += resultScroll; + + final int maxOffset = getScrollItemSize() * mItemsCount; + while (0 > mLayoutHelper.mScrollOffset) { + mLayoutHelper.mScrollOffset += maxOffset; + } + while (mLayoutHelper.mScrollOffset > maxOffset) { + mLayoutHelper.mScrollOffset -= maxOffset; + } + + mLayoutHelper.mScrollOffset -= resultScroll; + } else { + final int maxOffset = getMaxScrollOffset(); + + if (0 > mLayoutHelper.mScrollOffset + diff) { + resultScroll = -mLayoutHelper.mScrollOffset; //to make it 0 + } else if (mLayoutHelper.mScrollOffset + diff > maxOffset) { + resultScroll = maxOffset - mLayoutHelper.mScrollOffset; //to make it maxOffset + } else { + resultScroll = diff; + } + } + if (0 != resultScroll) { + mLayoutHelper.mScrollOffset += resultScroll; + fillData(recycler, state); + } + return resultScroll; + } + + @Override + public void onMeasure(@NonNull final RecyclerView.Recycler recycler, @NonNull final RecyclerView.State state, final int widthSpec, final int heightSpec) { + mDecoratedChildSizeInvalid = true; + + super.onMeasure(recycler, state, widthSpec, heightSpec); + } + + @SuppressWarnings("rawtypes") + @Override + public void onAdapterChanged(final RecyclerView.Adapter oldAdapter, final RecyclerView.Adapter newAdapter) { + super.onAdapterChanged(oldAdapter, newAdapter); + + removeAllViews(); + } + + + @SuppressWarnings("RefusedBequest") + @Override + @CallSuper + public void onLayoutChildren(@NonNull final RecyclerView.Recycler recycler, @NonNull final RecyclerView.State state) { + if (0 == state.getItemCount()) { + removeAndRecycleAllViews(recycler); + selectItemCenterPosition(INVALID_POSITION); + return; + } + + detachAndScrapAttachedViews(recycler); + + if (null == mDecoratedChildWidth || mDecoratedChildSizeInvalid) { + final List scrapList = recycler.getScrapList(); + + final boolean shouldRecycle; + final View view; + if (scrapList.isEmpty()) { + shouldRecycle = true; + final int itemsCount = state.getItemCount(); + view = recycler.getViewForPosition( + mPendingScrollPosition == INVALID_POSITION ? + 0 : + Math.max(0, Math.min(itemsCount - 1, mPendingScrollPosition)) + ); + addView(view); + } else { + shouldRecycle = false; + view = scrapList.get(0).itemView; + } + measureChildWithMargins(view, 0, 0); + + final int decoratedChildWidth = getDecoratedMeasuredWidth(view); + final int decoratedChildHeight = getDecoratedMeasuredHeight(view); + if (shouldRecycle) { + detachAndScrapView(view, recycler); + } + + if (null != mDecoratedChildWidth && (mDecoratedChildWidth != decoratedChildWidth || mDecoratedChildHeight != decoratedChildHeight)) { + if (INVALID_POSITION == mPendingScrollPosition && null == mPendingCarouselSavedState) { + mPendingScrollPosition = mCenterItemPosition; + } + } + + mDecoratedChildWidth = decoratedChildWidth; + mDecoratedChildHeight = decoratedChildHeight; + mDecoratedChildSizeInvalid = false; + } + + if (INVALID_POSITION != mPendingScrollPosition) { + final int itemsCount = state.getItemCount(); + mPendingScrollPosition = 0 == itemsCount ? INVALID_POSITION : Math.max(0, Math.min(itemsCount - 1, mPendingScrollPosition)); + } + if (INVALID_POSITION != mPendingScrollPosition) { + mLayoutHelper.mScrollOffset = calculateScrollForSelectingPosition(mPendingScrollPosition, state); + mPendingScrollPosition = INVALID_POSITION; + mPendingCarouselSavedState = null; + } else if (null != mPendingCarouselSavedState) { + mLayoutHelper.mScrollOffset = calculateScrollForSelectingPosition(mPendingCarouselSavedState.mCenterItemPosition, state); + mPendingCarouselSavedState = null; + } else if (state.didStructureChange() && INVALID_POSITION != mCenterItemPosition) { + mLayoutHelper.mScrollOffset = calculateScrollForSelectingPosition(mCenterItemPosition, state); + } + + fillData(recycler, state); + } + + private int calculateScrollForSelectingPosition(final int itemPosition, final RecyclerView.State state) { + if (itemPosition == INVALID_POSITION) { + return 0; + } + + final int fixedItemPosition = itemPosition < state.getItemCount() ? itemPosition : state.getItemCount() - 1; + return fixedItemPosition * (VERTICAL == mOrientation ? mDecoratedChildHeight : mDecoratedChildWidth); + } + + private void fillData(@NonNull final RecyclerView.Recycler recycler, @NonNull final RecyclerView.State state) { + final float currentScrollPosition = getCurrentScrollPosition(); + + generateLayoutOrder(currentScrollPosition, state); + detachAndScrapAttachedViews(recycler); + recyclerOldViews(recycler); + + final int width = getWidthNoPadding(); + final int height = getHeightNoPadding(); + if (VERTICAL == mOrientation) { + fillDataVertical(recycler, width, height); + } else { + fillDataHorizontal(recycler, width, height); + } + + recycler.clear(); + + detectOnItemSelectionChanged(currentScrollPosition, state); + } + + private void detectOnItemSelectionChanged(final float currentScrollPosition, final RecyclerView.State state) { + final float absCurrentScrollPosition = makeScrollPositionInRange0ToCount(currentScrollPosition, state.getItemCount()); + final int centerItem = Math.round(absCurrentScrollPosition); + if (currentScrollPosition - centerItem != 0) { + new Handler(Looper.getMainLooper()).post(() -> dragDxDiff(currentScrollPosition, mCenterItemPosition)); + } + if (mCenterItemPosition != centerItem) { + mCenterItemPosition = centerItem; + new Handler(Looper.getMainLooper()).post(new Runnable() { + @Override + public void run() { + selectItemCenterPosition(centerItem); + } + }); + } + } + + private void selectItemCenterPosition(final int centerItem) { + for (final OnCenterItemSelectionListener onCenterItemSelectionListener : mOnCenterItemSelectionListeners) { + onCenterItemSelectionListener.onCenterItemChanged(centerItem); + } + } + + private void dragDxDiff(final float centerItem, final int currentPosition) { + for (final OnDargAutoDiffListener onDargAutoDiffListener : onDargAutoDiffListeners) { + onDargAutoDiffListener.onDxChanged(centerItem, currentPosition); + } + } + + private void fillDataVertical(final RecyclerView.Recycler recycler, final int width, final int height) { + final int start = (width - mDecoratedChildWidth) / 2; + final int end = start + mDecoratedChildWidth; + + final int centerViewTop = (height - mDecoratedChildHeight) / 2; + + for (int i = 0, count = mLayoutHelper.mLayoutOrder.length; i < count; ++i) { + final LayoutOrder layoutOrder = mLayoutHelper.mLayoutOrder[i]; + final int offset = getCardOffsetByPositionDiff(layoutOrder.mItemPositionDiff); + final int top = centerViewTop + offset; + final int bottom = top + mDecoratedChildHeight; + fillChildItem(start, top, end, bottom, layoutOrder, recycler, i); + } + } + + private void fillDataHorizontal(final RecyclerView.Recycler recycler, final int width, final int height) { + final int top = (height - mDecoratedChildHeight) / 2; + final int bottom = top + mDecoratedChildHeight; + + final int centerViewStart = (width - mDecoratedChildWidth) / 2; + + for (int i = 0, count = mLayoutHelper.mLayoutOrder.length; i < count; ++i) { + final LayoutOrder layoutOrder = mLayoutHelper.mLayoutOrder[i]; + final int offset = getCardOffsetByPositionDiff(layoutOrder.mItemPositionDiff); + final int start = centerViewStart + offset; + final int end = start + mDecoratedChildWidth; + fillChildItem(start, top, end, bottom, layoutOrder, recycler, i); + } + } + + + @SuppressWarnings("MethodWithTooManyParameters") + private void fillChildItem(final int start, final int top, final int end, final int bottom, @NonNull final LayoutOrder layoutOrder, @NonNull final RecyclerView.Recycler recycler, final int i) { + final View view = bindChild(layoutOrder.mItemAdapterPosition, recycler); + ViewCompat.setElevation(view, i); + ItemTransformation transformation = null; + if (null != mViewPostLayout) { + transformation = mViewPostLayout.transformChild(view, layoutOrder.mItemPositionDiff, mOrientation, layoutOrder.mItemAdapterPosition); + } + if (null == transformation) { + view.layout(start, top, end, bottom); + } else { + view.layout(Math.round(start + transformation.mTranslationX), Math.round(top + transformation.mTranslationY), + Math.round(end + transformation.mTranslationX), Math.round(bottom + transformation.mTranslationY)); + view.setScaleX(transformation.mScaleX); + view.setScaleY(transformation.mScaleY); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + view.setTransitionAlpha(transformation.mAlpha); + } else { + view.setAlpha(transformation.mAlpha); + } + } + } + + /** + * 中心项目的当前滚动位置。如果是循环布局,则该值可以在任何范围内。如果不是,那么它在[0,-1] + */ + private float getCurrentScrollPosition() { + final int fullScrollSize = getMaxScrollOffset(); + if (0 == fullScrollSize) { + return 0; + } + return 1.0f * mLayoutHelper.mScrollOffset / getScrollItemSize(); + } + + /** + * 填充布局中所有项目的最大滚动值。通常,这仅适用于非循环布局。 + */ + private int getMaxScrollOffset() { + return getScrollItemSize() * (mItemsCount - 1); + } + + /** + * Because we can support old Android versions, we should layout our children in specific order to make our center view in the top of layout + * (this item should layout last). So this method will calculate layout order and fill up {@link #mLayoutHelper} object. + * This object will be filled by only needed to layout items. Non visible items will not be there. + * + * @param currentScrollPosition current scroll position this is a value that indicates position of center item + * (if this value is int, then center item is really in the center of the layout, else it is near state). + * Be aware that this value can be in any range is it is cycle layout + * @param state Transient state of RecyclerView + * @see #getCurrentScrollPosition() + */ + private void generateLayoutOrder(final float currentScrollPosition, @NonNull final RecyclerView.State state) { + mItemsCount = state.getItemCount(); + final float absCurrentScrollPosition = makeScrollPositionInRange0ToCount(currentScrollPosition, mItemsCount); + final int centerItem = Math.round(absCurrentScrollPosition); + + if (mCircleLayout && 1 < mItemsCount) { + final int layoutCount = Math.min(mLayoutHelper.mMaxVisibleItems * 2 + 1, mItemsCount); + + mLayoutHelper.initLayoutOrder(layoutCount); + + final int countLayoutHalf = layoutCount / 2; + // before center item + for (int i = 1; i <= countLayoutHalf; ++i) { + final int position = Math.round(absCurrentScrollPosition - i + mItemsCount) % mItemsCount; + mLayoutHelper.setLayoutOrder(countLayoutHalf - i, position, centerItem - absCurrentScrollPosition - i); + } + // after center item + for (int i = layoutCount - 1; i >= countLayoutHalf + 1; --i) { + final int position = Math.round(absCurrentScrollPosition - i + layoutCount) % mItemsCount; + mLayoutHelper.setLayoutOrder(i - 1, position, centerItem - absCurrentScrollPosition + layoutCount - i); + } + mLayoutHelper.setLayoutOrder(layoutCount - 1, centerItem, centerItem - absCurrentScrollPosition); + + } else { + final int firstVisible = Math.max(centerItem - mLayoutHelper.mMaxVisibleItems, 0); + final int lastVisible = Math.min(centerItem + mLayoutHelper.mMaxVisibleItems, mItemsCount - 1); + final int layoutCount = lastVisible - firstVisible + 1; + + mLayoutHelper.initLayoutOrder(layoutCount); + + for (int i = firstVisible; i <= lastVisible; ++i) { + if (i == centerItem) { + mLayoutHelper.setLayoutOrder(layoutCount - 1, i, i - absCurrentScrollPosition); + } else if (i < centerItem) { + mLayoutHelper.setLayoutOrder(i - firstVisible, i, i - absCurrentScrollPosition); + } else { + mLayoutHelper.setLayoutOrder(layoutCount - (i - centerItem) - 1, i, i - absCurrentScrollPosition); + } + } + } + } + + public int getWidthNoPadding() { + return getWidth() - getPaddingStart() - getPaddingEnd(); + } + + public int getHeightNoPadding() { + return getHeight() - getPaddingEnd() - getPaddingStart(); + } + + private View bindChild(final int position, @NonNull final RecyclerView.Recycler recycler) { + final View view = recycler.getViewForPosition(position); + + addView(view); + measureChildWithMargins(view, 0, 0); + + return view; + } + + private void recyclerOldViews(final RecyclerView.Recycler recycler) { + for (RecyclerView.ViewHolder viewHolder : new ArrayList<>(recycler.getScrapList())) { + int adapterPosition = viewHolder.getAdapterPosition(); + boolean found = false; + for (LayoutOrder layoutOrder : mLayoutHelper.mLayoutOrder) { + if (layoutOrder.mItemAdapterPosition == adapterPosition) { + found = true; + break; + } + } + if (!found) { + recycler.recycleView(viewHolder.itemView); + } + } + } + + /** + * Called during {@link #fillData(RecyclerView.Recycler, RecyclerView.State)} to calculate item offset from layout center line.
+ *
+ * Returns {@link #convertItemPositionDiffToSmoothPositionDiff(float)} * (size off area above center item when it is on the center).
+ * Sign is: plus if this item is bellow center line, minus if not
+ *
+ * ----- - area above it
+ * ||||| - center item
+ * ----- - area bellow it (it has the same size as are above center item)
+ * + * @param itemPositionDiff current item difference with layout center line. if this is 0, then this item center is in layout center line. + * if this is 1 then this item is bellow the layout center line in the full item size distance. + * @return offset in scroll px coordinates. + */ + protected int getCardOffsetByPositionDiff(final float itemPositionDiff) { + final double smoothPosition = convertItemPositionDiffToSmoothPositionDiff(itemPositionDiff); + + final int dimenDiff; + if (VERTICAL == mOrientation) { + dimenDiff = (getHeightNoPadding() - mDecoratedChildHeight) / 2; + } else { + dimenDiff = (getWidthNoPadding() - mDecoratedChildWidth) / 2; + } + //noinspection NumericCastThatLosesPrecision + return (int) Math.round(Math.signum(itemPositionDiff) * dimenDiff * smoothPosition); + } + + /** + * Called during {@link #getCardOffsetByPositionDiff(float)} for better item movement.
+ * Current implementation speed up items that are far from layout center line and slow down items that are close to this line. + * This code is full of maths. If you want to make items move in a different way, probably you should override this method.
+ * Please see code comments for better explanations. + * + * @param itemPositionDiff current item difference with layout center line. if this is 0, then this item center is in layout center line. + * if this is 1 then this item is bellow the layout center line in the full item size distance. + * @return smooth position offset. needed for scroll calculation and better user experience. + * @see #getCardOffsetByPositionDiff(float) + */ + @SuppressWarnings({"MagicNumber", "InstanceMethodNamingConvention"}) + protected double convertItemPositionDiffToSmoothPositionDiff(final float itemPositionDiff) { + // generally item moves the same way above center and bellow it. So we don't care about diff sign. + final float absIemPositionDiff = Math.abs(itemPositionDiff); + + // we detect if this item is close for center or not. We use (1 / maxVisibleItem) ^ (1/3) as close definer. + if (absIemPositionDiff > StrictMath.pow(1.0f / mLayoutHelper.mMaxVisibleItems, 1.0f / 3)) { + // this item is far from center line, so we should make it move like square root function + return StrictMath.pow(absIemPositionDiff / mLayoutHelper.mMaxVisibleItems, 1 / 2.0f); + } else { + // this item is close from center line. we should slow it down and don't make it speed up very quick. + // so square function in range of [0, (1/maxVisible)^(1/3)] is quite good in it; + return StrictMath.pow(absIemPositionDiff, 2.0f); + } + } + + /** + * @return full item size + */ + protected int getScrollItemSize() { + if (VERTICAL == mOrientation) { + return mDecoratedChildHeight; + } else { + return mDecoratedChildWidth; + } + } + + @Override + public Parcelable onSaveInstanceState() { + if (null != mPendingCarouselSavedState) { + return new CarouselSavedState(mPendingCarouselSavedState); + } + final CarouselSavedState savedState = new CarouselSavedState(super.onSaveInstanceState()); + savedState.mCenterItemPosition = mCenterItemPosition; + return savedState; + } + + @Override + public void onRestoreInstanceState(final Parcelable state) { + if (state instanceof CarouselSavedState) { + mPendingCarouselSavedState = (CarouselSavedState) state; + + super.onRestoreInstanceState(mPendingCarouselSavedState.mSuperState); + } else { + super.onRestoreInstanceState(state); + } + } + + /** + * @return 从中心到最近项目的滚动偏移量 + */ + protected int getOffsetCenterView() { + return Math.round(getCurrentScrollPosition()) * getScrollItemSize() - mLayoutHelper.mScrollOffset; + } + + protected int getOffsetForCurrentView(@NonNull final View view) { + final int targetPosition = getPosition(view); + final float directionDistance = getScrollDirection(targetPosition); + + return Math.round(directionDistance * getScrollItemSize()); + } + + /** + * 使滚动范围在[0,count]内的Helper方法。通常,只有循环布局才需要此方法。 + * + * @param currentScrollPosition 滚动位置范围 个位数 view的index 小数滚动的范围 + * @param count adapter 中的数量 + * @return 在[0,总数]范围内滚动位置良好 + */ + private static float makeScrollPositionInRange0ToCount(final float currentScrollPosition, final int count) { + float absCurrentScrollPosition = currentScrollPosition; + while (0 > absCurrentScrollPosition) { + absCurrentScrollPosition += count; + } + while (Math.round(absCurrentScrollPosition) >= count) { + absCurrentScrollPosition -= count; + } + return absCurrentScrollPosition; + } + + /** + * This interface methods will be called for each visible view item after general LayoutManager layout finishes.
+ *
+ * Generally this method should be used for scaling and translating view item for better (different) view presentation of layouting. + */ + @SuppressWarnings("InterfaceNeverImplemented") + public abstract static class PostLayoutListener { + + /** + * 子布局完成后调用。通常,您可以在这里进行任何平移和缩放工作。 + * + * @param child view that was layout + * @param itemPositionToCenterDiff view center line difference to layout center. if > 0 then this item is bellow layout center line, else if not + * @param orientation layoutManager orientation {@link #getLayoutDirection()} + * @param itemPositionInAdapter item position inside adapter for this layout pass + */ + public ItemTransformation transformChild( + @NonNull final View child, + final float itemPositionToCenterDiff, + final int orientation, + final int itemPositionInAdapter + ) { + return transformChild(child, itemPositionToCenterDiff, orientation); + } + + /** + * Called after child layout finished. Generally you can do any translation and scaling work here. + * + * @param child view that was layout + * @param itemPositionToCenterDiff view center line difference to layout center. if > 0 then this item is bellow layout center line, else if not + * @param orientation layoutManager orientation {@link #getLayoutDirection()} + */ + public ItemTransformation transformChild( + @NonNull final View child, + final float itemPositionToCenterDiff, + final int orientation + ) { + throw new IllegalStateException("at least one transformChild should be implemented"); + } + } + + public interface OnCenterItemSelectionListener { + + /** + * Listener that will be called on every change of center item. + * This listener will be triggered on every layout operation if item was changed. + * Do not do any expensive operations in this method since this will effect scroll experience. + * + * @param adapterPosition current layout center item + */ + void onCenterItemChanged(final int adapterPosition); + } + + public interface OnDargAutoDiffListener { + void onDxChanged(final float adapterPosition, final int currentPosition); + } + + /** + * Helper class that holds currently visible items. + * Generally this class fills this list.
+ *
+ * This class holds all scroll and maxVisible items state. + * + * @see #getMaxVisibleItems() + */ + private static class LayoutHelper { + + private int mMaxVisibleItems; + + private int mScrollOffset; + + private LayoutOrder[] mLayoutOrder; + + private final List> mReusedItems = new ArrayList<>(); + + LayoutHelper(final int maxVisibleItems) { + mMaxVisibleItems = maxVisibleItems; + } + + /** + * Called before any fill calls. Needed to recycle old items and init new array list. Generally this list is an array an it is reused. + * + * @param layoutCount items count that will be layout + */ + void initLayoutOrder(final int layoutCount) { + if (null == mLayoutOrder || mLayoutOrder.length != layoutCount) { + if (null != mLayoutOrder) { + recycleItems(mLayoutOrder); + } + mLayoutOrder = new LayoutOrder[layoutCount]; + fillLayoutOrder(); + } + } + + /** + * Called during layout generation process of filling this list. Should be called only after {@link #initLayoutOrder(int)} method call. + * + * @param arrayPosition position in layout order + * @param itemAdapterPosition adapter position of item for future data filling logic + * @param itemPositionDiff difference of current item scroll position and center item position. + * if this is a center item and it is in real center of layout, then this will be 0. + * if current layout is not in the center, then this value will never be int. + * if this item center is bellow layout center line then this value is greater then 0, + * else less then 0. + */ + void setLayoutOrder(final int arrayPosition, final int itemAdapterPosition, final float itemPositionDiff) { + final LayoutOrder item = mLayoutOrder[arrayPosition]; + item.mItemAdapterPosition = itemAdapterPosition; + item.mItemPositionDiff = itemPositionDiff; + } + + /** + * Checks is this screen Layout has this adapterPosition view in layout + * + * @param adapterPosition adapter position of item for future data filling logic + * @return true is adapterItem is in layout + */ + boolean hasAdapterPosition(final int adapterPosition) { + if (null != mLayoutOrder) { + for (final LayoutOrder layoutOrder : mLayoutOrder) { + if (layoutOrder.mItemAdapterPosition == adapterPosition) { + return true; + } + } + } + return false; + } + + @SuppressWarnings("VariableArgumentMethod") + private void recycleItems(@NonNull final LayoutOrder... layoutOrders) { + for (final LayoutOrder layoutOrder : layoutOrders) { + //noinspection ObjectAllocationInLoop + mReusedItems.add(new WeakReference<>(layoutOrder)); + } + } + + private void fillLayoutOrder() { + for (int i = 0, length = mLayoutOrder.length; i < length; ++i) { + if (null == mLayoutOrder[i]) { + mLayoutOrder[i] = createLayoutOrder(); + } + } + } + + private LayoutOrder createLayoutOrder() { + final Iterator> iterator = mReusedItems.iterator(); + while (iterator.hasNext()) { + final WeakReference layoutOrderWeakReference = iterator.next(); + final LayoutOrder layoutOrder = layoutOrderWeakReference.get(); + iterator.remove(); + if (null != layoutOrder) { + return layoutOrder; + } + } + return new LayoutOrder(); + } + } + + /** + * Class that holds item data. + * This class is filled during {@link #generateLayoutOrder(float, RecyclerView.State)} and used during {@link #fillData(RecyclerView.Recycler, RecyclerView.State)} + */ + private static class LayoutOrder { + + /** + * Item adapter position + */ + private int mItemAdapterPosition; + /** + * Item center difference to layout center. If center of item is bellow layout center, then this value is greater then 0, else it is less. + */ + private float mItemPositionDiff; + } + + protected static class CarouselSavedState implements Parcelable { + + private final Parcelable mSuperState; + private int mCenterItemPosition; + + protected CarouselSavedState(@Nullable final Parcelable superState) { + mSuperState = superState; + } + + private CarouselSavedState(@NonNull final Parcel in) { + mSuperState = in.readParcelable(RecyclerView.LayoutManager.class.getClassLoader()); + mCenterItemPosition = in.readInt(); + } + + protected CarouselSavedState(@NonNull final CarouselSavedState other) { + mSuperState = other.mSuperState; + mCenterItemPosition = other.mCenterItemPosition; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(final Parcel parcel, final int i) { + parcel.writeParcelable(mSuperState, i); + parcel.writeInt(mCenterItemPosition); + } + + public static final Creator CREATOR + = new Creator() { + @Override + public CarouselSavedState createFromParcel(final Parcel parcel) { + return new CarouselSavedState(parcel); + } + + @Override + public CarouselSavedState[] newArray(final int i) { + return new CarouselSavedState[i]; + } + }; + } +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselZoomPostLayoutListener.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselZoomPostLayoutListener.java new file mode 100644 index 0000000000..c1de86ed79 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CarouselZoomPostLayoutListener.java @@ -0,0 +1,40 @@ +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage; + +import android.view.View; + +import androidx.annotation.NonNull; + +/** + * Implementation of {@link CarouselLayoutManager.PostLayoutListener} that makes interesting scaling of items.
+ * We are trying to make items scaling quicker for closer items for center and slower for when they are far away.
+ * Tis implementation uses atan function for this purpose. + */ +public class CarouselZoomPostLayoutListener extends CarouselLayoutManager.PostLayoutListener { + + private final float mScaleMultiplier; + + public CarouselZoomPostLayoutListener() { + this(0.21f); + } + + public CarouselZoomPostLayoutListener(final float scaleMultiplier) { + mScaleMultiplier = scaleMultiplier; + } + + @Override + public ItemTransformation transformChild(@NonNull final View child, final float itemPositionToCenterDiff, final int orientation) { + float scale = 1.0f - mScaleMultiplier * Math.abs(itemPositionToCenterDiff); + final float translateY; + final float translateX; + if (CarouselLayoutManager.VERTICAL == orientation) { + final float translateYGeneral = child.getMeasuredHeight() * (1 - scale) / 2f; + translateY = Math.signum(itemPositionToCenterDiff) * translateYGeneral; + translateX = 0; + } else { + final float translateXGeneral = child.getMeasuredWidth() * (1 - scale)/8; + translateX = Math.signum(itemPositionToCenterDiff) * translateXGeneral; + translateY = 0; + } + return new ItemTransformation(scale,scale, scale, 0, translateY); + } +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CenterScrollListener.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CenterScrollListener.java new file mode 100644 index 0000000000..2ff5515969 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/CenterScrollListener.java @@ -0,0 +1,52 @@ +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +/** + * Class for centering items after scroll event.
+ * This class will listen to current scroll state and if item is not centered after scroll it will automatically scroll it to center. + */ +public class CenterScrollListener extends RecyclerView.OnScrollListener { + + private boolean mAutoSet = true; + + @Override + public void onScrollStateChanged(@NonNull final RecyclerView recyclerView, final int newState) { + super.onScrollStateChanged(recyclerView, newState); + final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); + if (!(layoutManager instanceof CarouselLayoutManager)) { + mAutoSet = true; + return; + } + + final CarouselLayoutManager lm = (CarouselLayoutManager) layoutManager; + if (!mAutoSet) { + if (RecyclerView.SCROLL_STATE_IDLE == newState) { + final int scrollNeeded = lm.getOffsetCenterView(); + // 滚动到中心位置 + if (CarouselLayoutManager.HORIZONTAL == lm.getOrientation()) { + recyclerView.smoothScrollBy(scrollNeeded, 0); + } else { + recyclerView.smoothScrollBy(0, scrollNeeded); + } + pageSelect(recyclerView,newState); + mAutoSet = true; + } + } + if (RecyclerView.SCROLL_STATE_DRAGGING == newState || RecyclerView.SCROLL_STATE_SETTLING == newState) { + mAutoSet = false; + } + if(RecyclerView.SCROLL_STATE_DRAGGING == newState){ + pageStop(); + } + } + + protected void pageStop() { + + } + + protected void pageSelect(RecyclerView recyclerView, final int newState) { + + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/HorizontalDecoration.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/HorizontalDecoration.java similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/HorizontalDecoration.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/HorizontalDecoration.java index 7fdc6b4c4e..09f4c44241 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/HorizontalDecoration.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/HorizontalDecoration.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view; +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage; import android.graphics.Rect; import android.view.View; @@ -8,7 +8,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; -import com.mogo.och.bus.passenger.ui.adapter.TemperatureAdapter; +import com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter; +import com.mogo.och.charter.passenger.ui.softcontrol.adapter.TemperatureAdapter; public class HorizontalDecoration extends RecyclerView.ItemDecoration { private int space = 0; diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/ItemTransformation.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/ItemTransformation.java new file mode 100644 index 0000000000..9994307061 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/ItemTransformation.java @@ -0,0 +1,18 @@ +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage; + +public class ItemTransformation { + + final float mAlpha; + final float mScaleX; + final float mScaleY; + final float mTranslationX; + final float mTranslationY; + + public ItemTransformation(final float alpha,final float scaleX, final float scaleY, final float translationX, final float translationY) { + mScaleX = scaleX; + mScaleY = scaleY; + mTranslationX = translationX; + mTranslationY = translationY; + mAlpha = alpha; + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/layoutmanage/PagerCenterSnapHelper.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/PagerCenterSnapHelper.kt similarity index 97% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/layoutmanage/PagerCenterSnapHelper.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/PagerCenterSnapHelper.kt index f0a3f564db..9051b98a65 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/layoutmanage/PagerCenterSnapHelper.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/layoutmanage/PagerCenterSnapHelper.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.layoutmanage +package com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage import android.view.View import androidx.recyclerview.widget.OrientationHelper diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawBitmapView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawBitmapView.kt similarity index 69% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawBitmapView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawBitmapView.kt index 7fb326490b..11aa2f0fe2 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawBitmapView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawBitmapView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view +package com.mogo.och.charter.passenger.ui.softcontrol.view import android.content.Context import android.graphics.Bitmap @@ -7,17 +7,17 @@ import android.graphics.Canvas import android.graphics.Paint import android.util.AttributeSet import android.view.View -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R -class DrawBitmapView @JvmOverloads constructor( +class DrawBitmapView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : View(context, attrs, defStyleAttr) { private lateinit var mBitmap: Bitmap private lateinit var mBitPaint: Paint - private var drawBitmapViewResource = R.drawable.bus_pm1_aircondition_wind_high + private var drawBitmapViewResource = R.drawable.bus_pm1_aircondition_wind_high private var mBitWidth = 0 private var showHeight = 0 set(value) { @@ -27,13 +27,16 @@ class DrawBitmapView @JvmOverloads constructor( init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.MainWindStatus) - drawBitmapViewResource = typedArray.getResourceId(R.styleable.MainWindStatus_main_wind_drawable,R.drawable.bus_pm1_aircondition_wind_high) + drawBitmapViewResource = typedArray.getResourceId( + R.styleable.MainWindStatus_main_wind_drawable, + R.drawable.bus_pm1_aircondition_wind_high + ) typedArray.recycle() initBitmap() initPaint() } - fun setDrawableImage(bitmap: Bitmap){ + fun setDrawableImage(bitmap: Bitmap) { mBitmap = bitmap } @@ -51,7 +54,7 @@ class DrawBitmapView @JvmOverloads constructor( override fun onDraw(canvas: Canvas) { super.onDraw(canvas) canvas.clipRect(0, 0, mBitWidth, showHeight) - canvas.drawBitmap(mBitmap, (width-mBitmap.width)/2f, 0f, mBitPaint) + canvas.drawBitmap(mBitmap, (width - mBitmap.width) / 2f, 0f, mBitPaint) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawableCheckBox.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawableCheckBox.java similarity index 90% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawableCheckBox.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawableCheckBox.java index b208883823..b6121440da 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/DrawableCheckBox.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/view/DrawableCheckBox.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view; +package com.mogo.och.charter.passenger.ui.softcontrol.view; import android.content.Context; import android.graphics.Bitmap; @@ -18,27 +18,15 @@ import java.lang.ref.WeakReference; public class DrawableCheckBox extends androidx.appcompat.widget.AppCompatCheckBox { public DrawableCheckBox(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - -// TODO Auto-generated constructor stub - } public DrawableCheckBox(Context context, AttributeSet attrs) { - super(context, attrs); - -// TODO Auto-generated constructor stub - } public DrawableCheckBox(Context context) { - super(context); - -// TODO Auto-generated constructor stub - } @Override @@ -59,11 +47,8 @@ public class DrawableCheckBox extends androidx.appcompat.widget.AppCompatCheckBo int y = getWidth(); canvas.translate((getWidth() - bodyWidth) / 2, 0); } - } - super.onDraw(canvas); - } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/M1BlueToothView.kt similarity index 91% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/M1BlueToothView.kt index e193fa8785..cc8df22d64 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/M1BlueToothView.kt @@ -1,11 +1,11 @@ -package com.mogo.och.bus.passenger.view.statusbar +package com.mogo.och.charter.passenger.ui.statusbar import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView -import com.mogo.och.bus.passenger.R +import com.mogo.och.charter.passenger.R import kotlinx.android.synthetic.main.m1_statusview_blue_tooth.view.* /** diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt similarity index 81% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt index 0b82c76464..5f71592fbe 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/statusbar/StatusBarView.kt @@ -1,14 +1,17 @@ -package com.mogo.och.bus.passenger.view.statusbar +package com.mogo.och.charter.passenger.ui.statusbar import android.annotation.SuppressLint import android.content.Context import android.os.SystemClock import android.util.AttributeSet import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup +import androidx.annotation.ColorRes import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat import chassis.ChassisStatesOuterClass +import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener @@ -19,11 +22,15 @@ import com.mogo.eagle.core.function.call.autopilot.CallerBatteryManagementSystem import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.event.DebugView +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.ui.debugview.DebugEvent +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.common.module.manager.loopmanager.LoopInfo import kotlinx.android.synthetic.main.m1_statusview_datetime.view.* import me.jessyan.autosize.utils.AutoSizeUtils import org.greenrobot.eventbus.EventBus @@ -52,7 +59,7 @@ class StatusBarView @JvmOverloads constructor( mHits[mHits.size - 1] = SystemClock.uptimeMillis() if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) { mHits = LongArray(COUNTS) //重新初始化数组 - EventBus.getDefault().post(DebugView(type)) + EventBus.getDefault().post(DebugEvent(type)) } } @@ -63,6 +70,10 @@ class StatusBarView @JvmOverloads constructor( isFocusable = true } + fun setBackgroudColor(@ColorRes color:Int){ + setBackgroundColor(ContextCompat.getColor(context,color)) + } + override fun onAttachedToWindow() { super.onAttachedToWindow() post { @@ -91,6 +102,19 @@ class StatusBarView @JvmOverloads constructor( val state = CallerAutoPilotStatusListenerManager.getState() setAutoPilotStatusInfo(state) + + BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::showConnectStatusWithDriver)) + } + + private fun showConnectStatusWithDriver(){ + UiThreadHandler.post { + CallerLogger.d(TAG,"司机屏连接状态:${CallerTelematicManager.getClientConnStatus()}") + if(CallerTelematicManager.getClientConnStatus()){ + aciv_connect_driver_status.visibility = View.GONE + }else{ + aciv_connect_driver_status.visibility = View.VISIBLE + } + } } private fun setAutoPilotStatusInfo(state: Int) { @@ -138,6 +162,7 @@ class StatusBarView @JvmOverloads constructor( CallerHmiViewControlListenerManager.removeListener(TAG) CallerSkinModeListenerManager.removeListener(TAG) CallerDevaToolsManager.hideStatusBar() + BizLoopManager.removeLoopFunction(TAG) } override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) { diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ConsultVideoPlayer.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ConsultVideoPlayer.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt index 73c5ba7cb7..a6d86d0e1d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ConsultVideoPlayer.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/ConsultVideoPlayer.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.view +package com.mogo.och.charter.passenger.ui.video import android.app.Activity import android.content.Context @@ -18,10 +18,10 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.app.ActivityCompat import com.mogo.eagle.core.utilcode.util.TimeTransformUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.utils.FullVideoUtils +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.utils.FullVideoUtils import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack import com.shuyu.gsyvideoplayer.utils.GSYVideoType import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer @@ -47,8 +47,8 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { private lateinit var layoutBottom: ConstraintLayout private lateinit var vPpenLeft: View - private var fullVideoPlayer:ConsultVideoPlayer?=null - var smalllPlayer:ConsultVideoPlayer?=null + private var fullVideoPlayer: ConsultVideoPlayer?=null + var smalllPlayer: ConsultVideoPlayer?=null private var currentTime = 0 @@ -93,8 +93,8 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { // layoutParams.height = 320 // mTopContainer.layoutParams = layoutParams val background = layoutBottom.background as GradientDrawable - val x = arrayOf(12f, 12f,12f, 12f,12f, 12f,12f, 12f) - background.cornerRadii = x.toFloatArray() + val x = floatArrayOf(12f, 12f,12f, 12f,12f, 12f,12f, 12f) + background.cornerRadii = x layoutBottom.background = background //fullscreenButton.setPadding(0,0,0,0) @@ -141,16 +141,18 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun setStateAndUi(state: Int) { super.setStateAndUi(state) if(state==CURRENT_STATE_PLAYING_BUFFERING_START){ - ToastCharterUtils.showShort("加载中请稍等") + ToastCharterUtils.showToastShort("加载中请稍等") } } override fun onWindowFocusChanged(hasWindowFocus: Boolean) { super.onWindowFocusChanged(hasWindowFocus) if(isIfCurrentIsFullscreen&&smalllPlayer!=null){ - if(hasWindowFocus){//获取焦点 - onVideoResume() - }else{ + if (hasWindowFocus) {//获取焦点 + if (isInPlayingState && smalllPlayer!!.mCurrentState != CURRENT_STATE_PAUSE) { + onVideoResume() + } + } else { onVideoPause() } } @@ -265,7 +267,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { override fun onError(what: Int, extra: Int) { super.onError(what, extra) mThumbImageViewLayout?.visibility = View.VISIBLE - ToastCharterUtils.showLong("哎呀,出错了,看看其他视频吧") + ToastCharterUtils.showToastLong("哎呀,出错了,看看其他视频吧") currentTime = -1 if(isIfCurrentIsFullscreen){ smalllPlayer?.clearFullscreenLayout(this) @@ -392,6 +394,8 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { } } } + // 点击视频不展示状态栏 + gsyVideoPlayer.isHideKey = false gsyVideoPlayer.smalllPlayer = this frameLayout.setBackgroundColor(Color.BLACK) val lp = LayoutParams(width, height) @@ -457,7 +461,7 @@ class ConsultVideoPlayer : StandardGSYVideoPlayer { return Math.ceil((25 * context.resources.displayMetrics.density).toDouble()).toInt() } - fun clearFullscreenLayout(gsyVideoPlayer:ConsultVideoPlayer) { + fun clearFullscreenLayout(gsyVideoPlayer: ConsultVideoPlayer) { mIfCurrentIsFullscreen = false val delay = 100 gsyVideoPlayer.smalllPlayer = null diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt similarity index 55% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt index 6708be7aef..150ca3b0b8 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/VideoView.kt @@ -1,52 +1,56 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment.fragment +package com.mogo.och.charter.passenger.ui.video -import android.os.Bundle +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView -import com.mogo.commons.mvp.MvpFragment -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.TaxiPassengerVideoPlay -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionVideoPresenter -import com.mogo.och.bus.passenger.ui.adapter.RecyclerVideoAdapter -import com.mogo.och.bus.passenger.ui.layoutmanage.CarouselLayoutManager -import com.mogo.och.bus.passenger.ui.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.bus.passenger.ui.layoutmanage.CenterScrollListener -import com.mogo.och.bus.passenger.view.ConsultVideoPlayer +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay +import com.mogo.och.charter.passenger.callback.IClearViewCallback +import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselLayoutManager +import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselZoomPostLayoutListener +import com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CenterScrollListener +import com.mogo.och.charter.passenger.ui.video.adapter.RecyclerVideoAdapter import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import kotlinx.android.synthetic.main.m1_video_fragment.* +import kotlinx.android.synthetic.main.m1_video_fragment.view.rvVideoPlaylist import kotlin.math.floor -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1VideoFragment : - MvpFragment() { +class VideoView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener { - private val arrayListOf = ArrayList() - - override fun getLayoutId(): Int { - return R.layout.m1_video_fragment + companion object { + const val TAG = "DebugView" } - override fun getTagName(): String { - return TAG - } + private val arrayListOf = ArrayList() - override fun initViews() { + var goneViewListener: IClearViewCallback? = null + + init { + LayoutInflater.from(context).inflate(R.layout.m1_video_fragment, this, true) + onClick { + goneViewListener?.goneAllView() + } initConsultData() val carouselLayoutManager = - CarouselLayoutManager( + com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselLayoutManager( CarouselLayoutManager.HORIZONTAL, true ) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener()) + carouselLayoutManager.setPostLayoutListener(com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselZoomPostLayoutListener()) carouselLayoutManager.maxVisibleItems = 1 - rvVideoPlaylist.addOnScrollListener(object : CenterScrollListener() { + rvVideoPlaylist.addOnScrollListener(object : com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CenterScrollListener() { var prePlayerPosition = 0 override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { //播放视频 - val (centerItemPosition: kotlin.Int, player) = getPlayer(carouselLayoutManager) + val (centerItemPosition, player) = getPlayer(carouselLayoutManager) if (player is ConsultVideoPlayer) { if (prePlayerPosition != centerItemPosition) { if (player.currentState == GSYVideoView.CURRENT_STATE_PAUSE) { @@ -57,8 +61,6 @@ class M1VideoFragment : val prePlayer = playerHolder?.findViewById(R.id.video_item_player) prePlayer?.onVideoReset() - val taxiPassengerVideoPlay = arrayListOf[centerItemPosition] - setBackageAndPlayNext(taxiPassengerVideoPlay) } else { player.onVideoResume(false) } @@ -67,7 +69,7 @@ class M1VideoFragment : } override fun pageStop() { - val (_: kotlin.Int, player) = getPlayer(carouselLayoutManager) + val (_, player) = getPlayer(carouselLayoutManager) if (player is ConsultVideoPlayer) { player.onVideoPause() } @@ -86,13 +88,13 @@ class M1VideoFragment : } } val recyclerVideoAdapter = - RecyclerVideoAdapter( - requireContext(), + com.mogo.och.charter.passenger.ui.video.adapter.RecyclerVideoAdapter( + context, arrayListOf, rvVideoPlaylist ) recyclerVideoAdapter.setOnThumbImageClilckListener { - val (_: kotlin.Int, player) = getPlayer(carouselLayoutManager) + val (_, player) = getPlayer(carouselLayoutManager) if (player is ConsultVideoPlayer) { player.onVideoReset() player.thumbImageViewLayout.visibility = View.VISIBLE @@ -104,42 +106,66 @@ class M1VideoFragment : rvVideoPlaylist?.adapter = recyclerVideoAdapter } - private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + } + + private fun getPlayer(carouselLayoutManager: com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselLayoutManager): Pair { val centerItemPosition: Int = carouselLayoutManager.centerItemPosition val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition) val player = playerHolder?.findViewById(R.id.video_item_player) return Pair(centerItemPosition, player) } - private fun setBackageAndPlayNext(taxiPassengerVideoPlay: TaxiPassengerVideoPlay) { - // 设置背景图片 + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + } + + override fun onVisibilityChanged(changedView: View, visibility: Int) { + super.onVisibilityChanged(changedView, visibility) + if (changedView != this) { + return + } + val carouselLayoutManager = rvVideoPlaylist?.layoutManager as com.mogo.och.charter.passenger.ui.softcontrol.layoutmanage.CarouselLayoutManager + val (_, player) = getPlayer(carouselLayoutManager) + when (visibility) { + View.VISIBLE -> {} + else -> { + player?.let { + if (!player.isIfCurrentIsFullscreen) { + player.onVideoReset() + } + } + } + } } private fun initConsultData() { arrayListOf.clear() arrayListOf.add( - TaxiPassengerVideoPlay( + com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay( "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708596763/全车型混剪增加红旗车队.m4v", "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969511280/车队.png", "蘑菇车联覆盖生活的方方面面" ) ) arrayListOf.add( - TaxiPassengerVideoPlay( + com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay( "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708554279/红旗车队.m4v", "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969553174/红旗重新排版.png", "蘑菇车联之红旗车队" ) ) arrayListOf.add( - TaxiPassengerVideoPlay( + com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay( "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708499497/大运会合作解说版.m4v", "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969536177/大运会.png", "蘑菇车联牵手成都大运会" ) ) arrayListOf.add( - TaxiPassengerVideoPlay( + com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay( "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708409810/20210610重新排版3屏.m4v", "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969579713/三屏.png", "多视角体验蘑菇车联自动驾驶" @@ -147,18 +173,4 @@ class M1VideoFragment : ) } - override fun createPresenter(): BusPassengerFunctionVideoPresenter { - return BusPassengerFunctionVideoPresenter(this) - } - - companion object { - const val TAG = "M1VideoFragment" - @JvmStatic - fun newInstance(): M1VideoFragment { - val args = Bundle() - val fragment = M1VideoFragment() - fragment.arguments = args - return fragment - } - } } \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerItemVideoHolder.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerItemVideoHolder.java new file mode 100644 index 0000000000..a113e336af --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerItemVideoHolder.java @@ -0,0 +1,29 @@ +package com.mogo.och.charter.passenger.ui.video.adapter; + +import android.content.Context; +import android.view.View; + +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.och.charter.passenger.R; +import com.mogo.och.charter.passenger.ui.video.ConsultVideoPlayer; +import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; + +public class RecyclerItemVideoHolder extends RecyclerView.ViewHolder { + + public final static String TAG = "RecyclerView2List"; + + protected Context context; + + public ConsultVideoPlayer gsyVideoPlayer; + + GSYVideoOptionBuilder gsyVideoOptionBuilder; + + public RecyclerItemVideoHolder(Context context, View v) { + super(v); + this.context = context; + gsyVideoPlayer = v.findViewById(R.id.video_item_player); + gsyVideoOptionBuilder = new GSYVideoOptionBuilder(); + } + +} diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/RecyclerVideoAdapter.java b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java similarity index 90% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/RecyclerVideoAdapter.java rename to OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java index 8fac0b6982..707a8bc74e 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/adapter/RecyclerVideoAdapter.java +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/video/adapter/RecyclerVideoAdapter.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.adapter; +package com.mogo.och.charter.passenger.ui.video.adapter; import android.content.Context; import android.view.LayoutInflater; @@ -10,9 +10,9 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; -import com.mogo.och.bus.passenger.utils.ToastCharterUtils; -import com.mogo.och.bus.passenger.R; -import com.mogo.och.bus.passenger.bean.TaxiPassengerVideoPlay; +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; +import com.mogo.och.charter.passenger.R; +import com.mogo.och.charter.passenger.bean.TaxiPassengerVideoPlay; import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack; import java.util.List; @@ -102,12 +102,12 @@ public class RecyclerVideoAdapter extends RecyclerView.Adapter + + diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml b/OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml rename to OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg_shape.xml b/OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg_shape.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg_shape.xml rename to OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg_shape.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg_top.xml b/OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg_top.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bg_taxi_p_video_bg_top.xml rename to OCH/charter/passenger/src/main/res/drawable/bg_taxi_p_video_bg_top.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg_01.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg_01.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg_01.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_common_bg_01.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_left_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_left_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_left_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_left_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_left_selected.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_left_selected.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_left_selected.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_left_selected.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_selecotr.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_selecotr.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_selecotr.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_selecotr.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_pattern_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_switch_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_switch_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_switch_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_switch_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_switch_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_switch_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_aircondition_switch_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_aircondition_switch_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_left_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_left_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_left_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_left_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_text_color_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_text_color_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_airconditon_text_color_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_airconditon_text_color_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_device_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_device_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_device_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_device_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_information_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_information_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_information_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_information_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_order_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_order_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_order_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_order_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_soft_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_soft_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_bottom_soft_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_bottom_soft_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_normal.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_press.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_press.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_press.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_press.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_press_selecor.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_press_selecor.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_closedoor_press_selecor.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_closedoor_press_selecor.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_normal.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_press.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_press.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_press.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_press.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_press_selecor.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_press_selecor.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_go_press_selecor.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_go_press_selecor.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_normal.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_press.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_press.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_press.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_press.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_press_selecor.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_press_selecor.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_opendoor_press_selecor.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_opendoor_press_selecor.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_normal.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_press.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_press.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_press.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_press.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_press_selecor.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_press_selecor.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_device_stopside_press_selecor.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_device_stopside_press_selecor.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_distance_split_bg.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_distance_split_bg.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_distance_split_bg.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_distance_split_bg.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_left_bg_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_left_bg_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_left_bg_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_left_bg_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_selected.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_selected.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_selected.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_selected.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_left_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_left_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_switch_bg_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_switch_bg_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_switch_bg_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_switch_bg_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_switch_bg_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_switch_bg_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_light_switch_bg_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_light_switch_bg_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_setting_soft_b_shape.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_setting_soft_b_shape.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_setting_soft_b_shape.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_setting_soft_b_shape.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_selected.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_selected.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_selected.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_selected.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_switch_left_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_switch_left_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_change_full.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_change_full.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_change_full.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_change_full.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_change_normal.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_change_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_change_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_change_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_pause_big.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_pause_big.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_pause_big.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_pause_big.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_pause_small.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_pause_small.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_pause_small.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_pause_small.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_start_big.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_start_big.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_start_big.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_start_big.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_start_small.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_start_small.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_start_small.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_start_small.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_thumb_big.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_thumb_big.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_thumb_big.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_thumb_big.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_thumb_samll.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_thumb_samll.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_video_player_thumb_samll.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_video_player_thumb_samll.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_select.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_select.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_select.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_select.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_selected.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_selected.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_selected.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_selected.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_selector.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_left_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_left_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_right_process_humb.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_right_process_humb.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_function_voice_right_process_humb.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_function_voice_right_process_humb.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_overmap_reset_size.xml b/OCH/charter/passenger/src/main/res/drawable/bus_p_overmap_reset_size.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/bus_p_overmap_reset_size.xml rename to OCH/charter/passenger/src/main/res/drawable/bus_p_overmap_reset_size.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml diff --git a/OCH/charter/passenger/src/main/res/drawable/charter_p_only_unlock_bg.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_only_unlock_bg.xml new file mode 100644 index 0000000000..6a3414b1b9 --- /dev/null +++ b/OCH/charter/passenger/src/main/res/drawable/charter_p_only_unlock_bg.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_bottom_corner.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_bottom_corner.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_bottom_corner.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_bottom_corner.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_normal.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_normal.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_normal.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_normal.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selected.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selected.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selected.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selected.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selector.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selector.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selector.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_selct_site_name_shape_selector.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_cancle_line_site_change.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_cancle_line_site_change.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_cancle_line_site_change.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_cancle_line_site_change.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_end_order.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_end_order.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_line_switch_left.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_line_switch_left.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_line_switch_left.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_line_switch_left.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_order_info.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_order_info.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_order_info.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_order_info.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_submit_line_site_change.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_shape_submit_line_site_change.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_submit_line_site_change.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_shape_submit_line_site_change.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_wait_driver_submit_ani.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_wait_driver_submit_ani.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_wait_driver_submit_ani.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_wait_driver_submit_ani.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_welcome_explore.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_welcome_explore.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_welcome_explore.xml rename to OCH/charter/passenger/src/main/res/drawable/charter_p_welcome_explore.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml b/OCH/charter/passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml rename to OCH/charter/passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_opendoor_selecotr.xml b/OCH/charter/passenger/src/main/res/drawable/m1_order_end_opendoor_selecotr.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_opendoor_selecotr.xml rename to OCH/charter/passenger/src/main/res/drawable/m1_order_end_opendoor_selecotr.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_line_checked_shape.xml b/OCH/charter/passenger/src/main/res/drawable/m1_order_line_checked_shape.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_line_checked_shape.xml rename to OCH/charter/passenger/src/main/res/drawable/m1_order_line_checked_shape.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_line_shape.xml b/OCH/charter/passenger/src/main/res/drawable/m1_order_line_shape.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_line_shape.xml rename to OCH/charter/passenger/src/main/res/drawable/m1_order_line_shape.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/taxi_power_size_seekbar_style.xml b/OCH/charter/passenger/src/main/res/drawable/taxi_power_size_seekbar_style.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/taxi_power_size_seekbar_style.xml rename to OCH/charter/passenger/src/main/res/drawable/taxi_power_size_seekbar_style.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/taxi_video_seekbar_style.xml b/OCH/charter/passenger/src/main/res/drawable/taxi_video_seekbar_style.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/taxi_video_seekbar_style.xml rename to OCH/charter/passenger/src/main/res/drawable/taxi_video_seekbar_style.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/font/din.ttf b/OCH/charter/passenger/src/main/res/font/din.ttf similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/font/din.ttf rename to OCH/charter/passenger/src/main/res/font/din.ttf diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml b/OCH/charter/passenger/src/main/res/layout/m1_bottom_bar.xml similarity index 93% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml rename to OCH/charter/passenger/src/main/res/layout/m1_bottom_bar.xml index 2d9cca558f..0de1e420ce 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml +++ b/OCH/charter/passenger/src/main/res/layout/m1_bottom_bar.xml @@ -8,7 +8,7 @@ tools:ignore="MissingDefaultResource"> - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/res/layout/m1_devices_unlock.xml b/OCH/charter/passenger/src/main/res/layout/m1_devices_unlock.xml new file mode 100644 index 0000000000..2ce8e3177d --- /dev/null +++ b/OCH/charter/passenger/src/main/res/layout/m1_devices_unlock.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_itinerary_info.xml similarity index 50% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_itinerary_info.xml index 814d50d16b..f37fd34daa 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml +++ b/OCH/charter/passenger/src/main/res/layout/m1_itinerary_info.xml @@ -1,62 +1,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml new file mode 100644 index 0000000000..3515c4025c --- /dev/null +++ b/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_1_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_1_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_1_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_1_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_2_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_2_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_2_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_2_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_3_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_3_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_3_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_3_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_4_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_4_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_4_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_4_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_fragment.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_novice_guidance_welcome_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_novice_guidance_welcome_fragment.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_order_end.xml b/OCH/charter/passenger/src/main/res/layout/m1_order_end.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_order_end.xml rename to OCH/charter/passenger/src/main/res/layout/m1_order_end.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_order_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_order_fragment.xml similarity index 98% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_order_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_order_fragment.xml index 932725b461..6df7a84dd7 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_order_fragment.xml +++ b/OCH/charter/passenger/src/main/res/layout/m1_order_fragment.xml @@ -8,14 +8,12 @@ + app:layout_constraintStart_toStartOf="parent"> + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_soft_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_soft_fragment.xml similarity index 98% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_soft_fragment.xml rename to OCH/charter/passenger/src/main/res/layout/m1_soft_fragment.xml index 1334bfb082..16ca18765c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_soft_fragment.xml +++ b/OCH/charter/passenger/src/main/res/layout/m1_soft_fragment.xml @@ -2,6 +2,7 @@ @@ -9,6 +10,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:clickable="true" + android:layout_marginBottom="@dimen/dp_141_5" android:background="@drawable/bus_p_function_setting_soft_b_shape" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintDimensionRatio="3:1" @@ -82,7 +84,7 @@ app:layout_constraintStart_toStartOf="@+id/gl_left" app:layout_constraintTop_toTopOf="parent" /> - - + + + - - - + + + @drawable/open_lock_000 + @drawable/open_lock_001 + @drawable/open_lock_002 + @drawable/open_lock_003 + @drawable/open_lock_004 + @drawable/open_lock_005 + @drawable/open_lock_006 + @drawable/open_lock_007 + @drawable/open_lock_008 + @drawable/open_lock_009 + + @drawable/open_lock_010 + @drawable/open_lock_011 + @drawable/open_lock_012 + @drawable/open_lock_013 + @drawable/open_lock_014 + @drawable/open_lock_015 + @drawable/open_lock_016 + @drawable/open_lock_017 + @drawable/open_lock_018 + @drawable/open_lock_019 + + @drawable/open_lock_020 + @drawable/open_lock_021 + @drawable/open_lock_022 + @drawable/open_lock_023 + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml b/OCH/charter/passenger/src/main/res/values/attrs.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml rename to OCH/charter/passenger/src/main/res/values/attrs.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml b/OCH/charter/passenger/src/main/res/values/color.xml similarity index 96% rename from OCH/mogo-och-charter-passenger/src/main/res/values/color.xml rename to OCH/charter/passenger/src/main/res/values/color.xml index ca22013238..cbf9937b31 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml +++ b/OCH/charter/passenger/src/main/res/values/color.xml @@ -50,5 +50,7 @@ #91EFF6FF #CCFFFFFF #80FFFFFF + #40FFFFFF #F0E0EFFF + #66000000 \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml b/OCH/charter/passenger/src/main/res/values/strings.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml rename to OCH/charter/passenger/src/main/res/values/strings.xml diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/styles.xml b/OCH/charter/passenger/src/main/res/values/styles.xml similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/values/styles.xml rename to OCH/charter/passenger/src/main/res/values/styles.xml diff --git a/OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.kt b/OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.kt similarity index 100% rename from OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.kt rename to OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.kt diff --git a/OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/Model.kt b/OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/Model.kt similarity index 100% rename from OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/Model.kt rename to OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/Model.kt diff --git a/OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/ModelX.kt b/OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/ModelX.kt similarity index 100% rename from OCH/mogo-och-charter-passenger/src/test/java/com/mogo/och/bus/passenger/ModelX.kt rename to OCH/charter/passenger/src/test/java/com/mogo/och/bus/passenger/ModelX.kt diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java deleted file mode 100644 index 947adbfc0c..0000000000 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ /dev/null @@ -1,146 +0,0 @@ -package com.mogo.och.bus.util; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import android.text.TextUtils; - -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.app.AppConfigInfo; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.commons.utils.MogoAnalyticUtils; -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.DateTimeUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.constant.BusConst; - -import java.util.HashMap; - -/** - * OCH Bus埋点工具 - * - * Created on 2022/3/24 - */ -public class BusAnalyticsManager { - - private static final class SingletonHolder { - private static final BusAnalyticsManager INSTANCE = new BusAnalyticsManager(); - } - - public static BusAnalyticsManager getInstance() { - return BusAnalyticsManager.SingletonHolder.INSTANCE; - } - - private String mStartAutopilotKey; - private HashMap mStartAutopilotParams = new HashMap<>(); - - private Runnable startAutopilotRunnable = () -> { - // 15s内未开启,上报失败埋点 - triggerStartAutopilotFailureEvent("", "15s后app等待超时"); - }; - - public void triggerStartAutopilotFailureEventByAdas(String failCode, String failMsg){ - removeWaitingCallback(); - triggerStartAutopilotFailureEvent(failCode, failMsg); - } - - private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ - if (mStartAutopilotParams.isEmpty()) return; - - CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg ); - - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() != - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_CODE, failCode); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, failMsg); - } - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT - , CallerAutoPilotStatusListenerManager.INSTANCE.getState() == - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams();//清空参数数据,防止误传 - } - - private void removeWaitingCallback() { - if (startAutopilotRunnable != null) { - UiThreadHandler.removeCallbacks(startAutopilotRunnable); - } - } - - public void clearStartAutopilotFailureMSG(){ - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_CODE, ""); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, ""); - } - - private void clearStartAutopilotParams(){ - mStartAutopilotParams.clear(); - } - - /** - * 触发'开启自动驾驶'埋点流程 - * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 - * @param restart false(点击'滑动出发'启动)/true(接管后点击'自动驾驶'按钮启动) - * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) - */ - public void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, int lineId) { - mStartAutopilotKey = restart ? - BusConst.EVENT_KEY_RESTART_AUTOPILOT : BusConst.EVENT_KEY_START_SERVICE; - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - mStartAutopilotParams.put(BusConst.EVENT_PARAM_SN, sn); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_TIME, dateTime); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_NAME, startName); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_END_NAME, endName); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_LINE_ID, lineId); - - if (send) { - if (mStartAutopilotParams.isEmpty()) return; - // 开启成功,上报埋点 - clearStartAutopilotFailureMSG(); - removeWaitingCallback(); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT, true); - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams();//清空参数数据,防止误传 - } else { - UiThreadHandler.postDelayed(startAutopilotRunnable, BusConst.LOOP_PERIOD_15S); - } - } - - /** - * 触发"无法开启自驾已知异常"埋点 - * @param startName - * @param endName - * @param lineId - */ - public void triggerUnableStartAPReasonEvent(String startName, String endName, int lineId, - String reason) { - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - HashMap params = new HashMap<>(); - - params.put(BusConst.EVENT_PARAM_SN, sn); - params.put(BusConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - params.put(BusConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - params.put(BusConst.EVENT_PARAM_TIME, dateTime); - params.put(BusConst.EVENT_PARAM_START_NAME, startName); - params.put(BusConst.EVENT_PARAM_END_NAME, endName); - params.put(BusConst.EVENT_PARAM_LINE_ID, lineId); - params.put(BusConst.EVENT_PARAM_UNABLE_START_REASON, reason); - MogoAnalyticUtils.INSTANCE.track(BusConst.EVENT_KEY_AP_UNABLE_START_REASON, params); - } -} diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/DebugView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/DebugView.kt deleted file mode 100644 index b2a2aa2c15..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/DebugView.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.mogo.och.bus.passenger.bean.event - -data class DebugView(val type: String) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/EventLineSites.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/EventLineSites.kt deleted file mode 100644 index beb65c2882..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/event/EventLineSites.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.mogo.och.bus.passenger.bean.event - -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse - -data class EventLineSites(val lineInfo: LineInfoResponse.LineInfo?, val sites: List?, val clear:Boolean=false) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt deleted file mode 100644 index 6ae6bde5c9..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.mogo.och.bus.passenger.bean.response - -import com.mogo.eagle.core.data.BaseData - -/** - * - */ -data class OrderInfoResponse(val data: OrderInfo?) : BaseData() { - data class OrderInfo( - val orderNo: String?,//订单id - val sn: String?,//司机sn - val productType: Int?,//车辆类型 - val lineId: Long?,//线路id - val lineName: String?,//线路名称 - var startSiteId: Int?, - var startSiteName: String?, - var startSiteNameKr: String?, - var siteId: Long?,//站点id - var siteName: String?,//站点名称 - val siteNameKr: String?,//站点名称 - var wgs84Lat: Double?, - var wgs84Lon: Double?, - var gcj02Lat: Double?, - var gcj02Lon: Double?, - val startTime: Long?,//开始时间 - val endTime: Long?,//结束时间 - val passengerPhone: String?,//乘客手机号 - var arriveStatus:Int?,//1:未到达 2:到达 - ) - companion object{ - val ARRIVING = 1 - val ARRIVED = 2 - - /** - * 爱情号 - */ - val M1_LOVE = 1 - - /** - * 友情号 - */ - val M1_FRIENDLY = 2 - - /** - * 家庭号 - */ - val M1_FAMILY = 3 - } -} - diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt deleted file mode 100644 index a1668f7b62..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment - -class BusPassengerFunctionPresenter(view: M1ContainFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { - companion object{ - private const val TAG = "BusPassengerFunctionPresenter" - } - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - } - - fun haveOrder(): Boolean { - return CharterPassengerModel.hasOrder() - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt deleted file mode 100644 index 34f47d9982..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt +++ /dev/null @@ -1,245 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -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.passenger.ui.dialogfragment.fragment.M1SoftFragment -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus -import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue -import com.mogo.och.common.module.manager.devicemanage.data.LightStatus -import io.reactivex.disposables.Disposable - -class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : - BusBasePassengerFunctionDevicePresenter(view), - LightAirconditionDoorCallback { - companion object { - private const val TAG = "BusPassengerFunctionSoftPresenter" - } - - private var subscribeLightTop1: Disposable?=null - private var subscribeLightTop2: Disposable?=null - private var subscribeLightAtmosphere: Disposable?=null - - private var airconditionDisposable: Disposable?=null - private var heaterDisposable: Disposable?=null - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - LightAirconditionDoorStatusManager.addListener(TAG, this) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - LightAirconditionDoorStatusManager.removeListener(TAG) - } - - /** - * 空调状态变化 - */ - override fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + - "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + - "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + - "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}") - UiThreadHandler.post { - if(airconditionStatus.isOpen){ - mView?.setAirconditionHeaterView( - airconditionStatus.isOpen, - heaterIsOpen, - airconditionStatus.temperature, - airconditionStatus.pattert, - airconditionStatus.windSpeed - ) - }else{ - mView?.setAirconditionHeaterView( - airconditionStatus.isOpen, - heaterIsOpen, - airconditionStatus.temperature, - 0, - 0 - ) - } - } - } - /** - * 暖风机状态变化 - */ - override fun onHeaterStatusCallback(airconditionIsOpen:Boolean, heaterStatue: HeaterStatue, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--暖风机开关:${heaterStatue.isOpen}、" + - "风速:${heaterStatue.windSpeed}") - UiThreadHandler.post { - if(heaterStatue.isOpen) { - mView?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - heaterStatue.windSpeed - ) - }else{ - mView?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - 0 - ) - } - } - } - /** - * 灯状态变化 - */ - override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightTop1View(lightStatus.isOpenLight1,isFirst) - } - } - /** - * 灯状态变化 - */ - override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightTop2View(lightStatus.isOpenLight2,isFirst) - mView?.setLightView(lightStatus.isOpenLight1,lightStatus.isOpenLight2) - } - } - /** - * 灯状态变化 - */ - override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightAtmosphereView(lightStatus.isOpenatmosphere,isFirst) - } - } - - /** - * 设置空调 - */ - fun openAndSetAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "" + - "打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd") - CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd) - disposeSubscribe(airconditionDisposable) - airconditionDisposable = createSubscribe(10000){ - if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen&& - LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&& - LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&& - LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - fun closeAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调") - CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd) - disposeSubscribe(airconditionDisposable) - airconditionDisposable = createSubscribe(10000){ - if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - /** - * 设置暖风 - */ - fun openAndSetHeader(windSpeedCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风机、档位${windSpeedCmd}") - CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd) - disposeSubscribe(heaterDisposable) - heaterDisposable = createSubscribe(10000){ - if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen&& - LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) { - ToastCharterUtils.showShort("暖风机操作未生效,请稍后重试吧~") - } - } - } - - fun closeHeader(){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风机") - CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0) - disposeSubscribe(heaterDisposable) - heaterDisposable = createSubscribe(10000){ - if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) { - ToastCharterUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的 - } - } - } - - fun setLightData1(leftLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯2:$leftLight") - disposeSubscribe(subscribeLightTop1) - if(leftLight){ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1) - subscribeLightTop1 = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - }else{ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2) - subscribeLightTop1 = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } - fun setLightData2(rightLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯1:$rightLight") - disposeSubscribe(subscribeLightTop2) - if(rightLight){ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1) - subscribeLightTop2 = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - }else{ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2) - subscribeLightTop2 = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } - fun setAtmosphereLightData2(atmosphereLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "氛围灯:$atmosphereLight") - disposeSubscribe(subscribeLightAtmosphere) - if (atmosphereLight) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1) - subscribeLightAtmosphere = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } else { - CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2) - subscribeLightAtmosphere = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt deleted file mode 100644 index cdc59f1886..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1VideoFragment - -class BusPassengerFunctionVideoPresenter(view: M1VideoFragment?) : - BusBasePassengerFunctionDevicePresenter(view) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/DebugWatchDogPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/DebugWatchDogPresenter.kt deleted file mode 100644 index f451a04c96..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/DebugWatchDogPresenter.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import com.mogo.och.bus.passenger.ui.dialogfragment.DebugViewWatchDogFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment - -class DebugWatchDogPresenter(view: DebugViewWatchDogFragment?) : - BusBasePassengerFunctionDevicePresenter(view){ - companion object { - private const val TAG = "BusPassengerFunctionPresenter" - } - - -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt deleted file mode 100644 index 3b47ae8b55..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.callback.ITimeCallback -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.utils.DateTimeUtil - -class OrderInfoPresenter(view: OrderInfoFragment?) : - BusBasePassengerFunctionDevicePresenter(view), ITimeCallback { - companion object{ - private const val TAG = "OrderInfoPresenter" - } - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - CharterPassengerModel.setOrderLeftTimeListeners(TAG,this) - getDataInfo() - } - - private fun getDataInfo() { - val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() - currentOrderInfo?.let { - mView?.setPhone(it.passengerPhone?:"") - try { - mView?.setStartTimeAndEndTime( - DateTimeUtil.formatLongToString(it.startTime!!, DateTimeUtil.HH_mm), - DateTimeUtil.formatLongToString(it.endTime!!, DateTimeUtil.HH_mm)) - }catch (e:Exception){ - e.printStackTrace() - } - } - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - CharterPassengerModel.setOrderLeftTimeListeners(TAG,null) - } - - override fun setOrderTimeCallBack(timeInSecond: Long) { - val leftTime = DateTimeUtil.second2Time(timeInSecond) - mView?.setLeftTime(leftTime) - } - - fun endOrder() { - CharterPassengerModel.endOrder(object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - ToastCharterUtils.showShort("结束成功") - CharterPassengerModel.setEndOrderStatus() - mView?.closeDialogContaion() - val msg = EndOrderMsg( - CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"", - ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "发送数据:结束订单${msg}") - } - } - - override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") - } - }) - } - - -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt deleted file mode 100644 index a3d1cde613..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt +++ /dev/null @@ -1,321 +0,0 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment - -import android.content.DialogInterface -import android.os.Bundle -import android.util.Log -import android.view.View -import android.view.WindowManager -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentTransaction -import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.mvp.MvpDialogFragment -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1SoftFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1VideoFragment -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment -import com.mogo.och.bus.passenger.ui.view.bottom.BottomBar -import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import kotlinx.android.synthetic.main.m1_contain_fragment.* -import org.greenrobot.eventbus.EventBus - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1ContainFragment : - MvpDialogFragment() { - - var tab: String = VIDEOTAB - var fragmentTag: String = M1VideoFragment.TAG - var fragment: Fragment? = null - - var closeThis:ContainDismiss = object :ContainDismiss{ - override fun closeDialog() { - dismissAllowingStateLoss() - } - } - - override fun onCreate(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+ TAG, "onCreate") - super.onCreate(savedInstanceState) - arguments?.let { - tab = it.getString(SELECTTAB, VIDEOTAB) - } - savedInstanceState?.let { - tab = it.getString(SELECTTAB, tab) - } - setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 - } - - private fun setCheckView() { //todo yakun 优化 - CallerLogger.d(M_BUS_P+ TAG, "setCheckView") - when (tab) { - VIDEOTAB -> { - fragment =childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) - ?: M1VideoFragment.newInstance() - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.VIDEO) - cl_container.setBackgroundResource(R.drawable.m1_function_bg) - fragmentTag = M1VideoFragment.TAG - } - SETTINGSOFTTAB -> { - fragment =childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) - ?: M1SoftFragment.newInstance() - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.SETTING) - cl_container.setBackgroundResource(R.drawable.m1_function_bg) - fragmentTag = M1SoftFragment.TAG - } - ORDERINFO -> { - fragment =childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) - ?: OrderInfoFragment.newInstance(closeThis) - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.ORDERINFO) - cl_container.background = null - fragmentTag = OrderInfoFragment.TAG - } - SELECTLINE ->{ - fragment =childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) - ?: M1OrderLineFragment.newInstance(closeThis) - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE) - cl_container.background = null - fragmentTag = M1OrderLineFragment.TAG - } - else -> {} - } - CallerLogger.d(M_BUS_P+ TAG, "fragment:$fragment") - - fragment?.let { - val beginTransaction = childFragmentManager.beginTransaction() - beginTransaction - .replace(R.id.fl_function_group, it, fragmentTag) - .commitNow() - } - - } - - override fun getLayoutId(): Int = R.layout.m1_contain_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - - //dialog?.setCancelable(false) - CallerLogger.d(M_BUS_P+ TAG, "initViews") - setCheckView() - cl_container.setOnClickListener { - dismissAllowingStateLoss() - } - bb_bottom_bar.setSettingClickListener{ - CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") - if(tab==SETTINGSOFTTAB) { - dismissAllowingStateLoss() - }else{ - tab = SETTINGSOFTTAB - setCheckView() - } - } - bb_bottom_bar.setLineClickListener{ - CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") - if(tab==SELECTLINE) { - dismissAllowingStateLoss() - }else{ - tab = SELECTLINE - setCheckView() - } - } - bb_bottom_bar.setOrderInfoClickListener{ - if (LoginStatusManager.isLogin()) { - if(mPresenter?.haveOrder()==true){ - - }else{ - ToastCharterUtils.showShort("请确认订单") - return@setOrderInfoClickListener - } - }else{ - ToastCharterUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) - return@setOrderInfoClickListener - } - - CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") - if(tab==ORDERINFO) { - dismissAllowingStateLoss() - }else{ - tab = ORDERINFO - setCheckView() - } - } - bb_bottom_bar.setApplyClickListener(object : BottomClickView.ApplyClickLintener{ - override fun onApplyClick() { - dismissAllowingStateLoss() - } - }) - } - - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - CallerLogger.d(M_BUS_P+ TAG, "onViewCreated") - dialog?.window?.let { - BarUtils.hideStatusBarAndSticky(it) - it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - dialog?.setOnShowListener { _ -> - it.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - BarUtils.hideStatusBarAndSticky(it) - } - } - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - EventBus.getDefault().post(EventLineSites(null,null,true)) - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - CallerLogger.d(M_BUS_P+ TAG, "onSaveInstanceState") - context?.let { - SharedPrefs.getInstance(it).putString(SELECTTAB, tab) - } - } - - override fun createPresenter(): BusPassengerFunctionPresenter = - BusPassengerFunctionPresenter(this) - - /** - * 重写父类show()方法 - * 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState - */ - override fun show(manager: FragmentManager, tag: String?) { - try { - var cls = this.javaClass.superclass ?: return - while (true) { - if (cls.name == "java.lang.Object") { - break - } - cls = cls.superclass!! - if (cls == DialogFragment::class.java) { - break - } - } - val mDismissed = cls.getDeclaredField("mDismissed") - val mShownByMe = cls.getDeclaredField("mShownByMe") - mDismissed.isAccessible = true - mShownByMe.isAccessible = true - mDismissed.setBoolean(this, false) - mShownByMe.setBoolean(this, true) - if (isAdded) { - return - } - val ft: FragmentTransaction = manager.beginTransaction() - ft.add(this, tag) - ft.commitAllowingStateLoss() - } catch (e: Exception) { - Log.e("DialogFragment", "show", e.fillInStackTrace()) - } - } - - override fun onViewStateRestored(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+ TAG, "onViewStateRestored") - when (tab) { - VIDEOTAB -> { - - } - SETTINGSOFTTAB -> {} - ORDERINFO -> {} - SELECTLINE -> {} - else -> {} - } - super.onViewStateRestored(savedInstanceState) - } - - companion object { - const val TAG = "M1ContainFragment" - - /** - * 娱乐视频 - */ - const val VIDEOTAB = "VideoTab" - - /** - * 空调、暖风、灯和剩余设置 - */ - const val SETTINGSOFTTAB = "SettingSoftTab" - - /** - * 订单信息 - */ - const val ORDERINFO = "OrderInfo" - - /** - * 选择线路 - */ - const val SELECTLINE = "SelectLine" - - - - const val SELECTTAB = "SELECTTAB" - - @JvmStatic - fun newInstance(): M1ContainFragment { - val args = Bundle() - val fragment = M1ContainFragment() - CallerLogger.d(M_BUS_P + TAG, "创建新的Fragment") - fragment.arguments = args - return fragment - } - - - fun openSettingPage( - childFragmentManager: FragmentManager, - parentFragmentManager: FragmentManager, - bpFunctionGroup: M1ContainFragment?, - tab: String - ) { - val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(TAG) - if (fragmentByTag is DialogFragment) { - if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) { - CallerLogger.d(M_BUS_P + TAG, "正在展示") - return - } - if (fragmentByTag.dialog != null && fragmentByTag.isAdded) { - if (AppStateManager.currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用 - CallerLogger.d(M_BUS_P + TAG, "权限验证") - return - } - } - } - bpFunctionGroup?.arguments?.putString(SELECTTAB, tab) - if (bpFunctionGroup != null) { - if (bpFunctionGroup.dialog != null && bpFunctionGroup.dialog!!.isShowing) { - CallerLogger.d(M_BUS_P + DebugViewWatchDogFragment.TAG, "正在展示") - return - } - if (ClickUtils.isFastClick()) { - if (bpFunctionGroup.isAdded) { - CallerLogger.d(M_BUS_P + DebugViewWatchDogFragment.TAG, "已经添加") - return - } - bpFunctionGroup.show(parentFragmentManager, TAG) - CallerLogger.d(M_BUS_P + TAG, "展示$tab---$bpFunctionGroup") - } else { - CallerLogger.d(M_BUS_P + TAG, "dialog 1s内执行一次") - } - } - } - } - - interface ContainDismiss{ - fun closeDialog() - } - interface ChangeCheck{ - fun changeChange() - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt deleted file mode 100644 index 54a1b26ed8..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt +++ /dev/null @@ -1,275 +0,0 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment.fragment - -import android.animation.ObjectAnimator -import android.graphics.drawable.AnimationDrawable -import android.os.Bundle -import android.view.View -import android.view.animation.LinearInterpolator -import androidx.recyclerview.widget.LinearLayoutManager -import com.elegant.utils.UiThreadHandler -import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter -import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter -import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import com.mogo.och.bus.passenger.view.BottomDecoration -import com.mogo.och.common.module.utils.RxUtils -import io.reactivex.disposables.Disposable -import kotlinx.android.synthetic.main.m1_order_fragment.* -import kotlinx.android.synthetic.main.m1_order_loading.iv_loading_wait_ent -import me.jessyan.autosize.utils.AutoSizeUtils - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1OrderLineFragment : - MvpFragment() { - - private var dismiss: M1ContainFragment.ContainDismiss? = null - - - private lateinit var lineAdapter: OrderLineItemAdapter - private lateinit var siteAdapter: OrderSiteItemAdapter - - val lineList = mutableListOf() - val siteList = mutableListOf() - - private var subscribeDirverAgree: Disposable? = null - private var subscribeDirverRefuse: Disposable? = null - - private val loadingAni = - ObjectAnimator.ofFloat(iv_loading_wait_ent, "rotation", 0f, 90f, 180f, 270f, 360f) - .apply { - repeatCount = -1 - interpolator = LinearInterpolator() - duration = 1000 - } - - - override fun getLayoutId(): Int { - return R.layout.m1_order_fragment - } - - override fun getTagName(): String { - return TAG - } - - override fun initViews() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "initViews") - lineAdapter = OrderLineItemAdapter(requireContext(), lineList) - siteAdapter = OrderSiteItemAdapter(requireContext(), siteList) - loadingAni.target = iv_loading_wait_ent - rlv_line_list.layoutManager = - LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) - rlv_line_list.addItemDecoration( - BottomDecoration( - AutoSizeUtils.dp2px(context, 60f) - ) - ) - rlv_line_list.adapter = lineAdapter - - rv_site_list.layoutManager = - LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) - rv_site_list.addItemDecoration( - BottomDecoration( - AutoSizeUtils.dp2px(context, 90f) - ) - ) - rv_site_list.adapter = siteAdapter - - initListener() - - } - - private fun initListener() { - lineAdapter.checkChangeListener = object : OrderLineItemAdapter.CheckListener { - override fun canSwitchLine(): Boolean { - return true - } - - override fun onCheckListener(lineInfo: LineInfoResponse.LineInfo) { - mPresenter?.checkLineClick(lineInfo) - siteAdapter.clearCheck() - } - } - siteAdapter.checkChangeListener = object : OrderSiteItemAdapter.CheckListener { - override fun canSwitchLine(): Boolean { - return mPresenter?.canSwitchLine()?:true - } - - override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?) { - // 设置临时选中的 - mPresenter?.checkSiteClick(siteInfo) - } - - } - tv_site_cancle.onClick { - mPresenter?.resetData() - } - tv_site_submit.onClick { - CharterPassengerModel.switchLine5minWait?.let { - if (!it.isDisposed) { - ToastCharterUtils.showShort("选择线路后5分钟内不可用选") - return@onClick - } - } - mPresenter?.changeSites(siteList) - } - - } - - - /** - * 设置是否可用选择站点 - */ - fun setEnableSiteStatus(cancleAndSubmit: Boolean) { - if (cancleAndSubmit) { - g_side_cancle_submit_group?.visibility = View.VISIBLE - } else { - g_side_cancle_submit_group?.visibility = View.GONE - } - } - - fun hideDataWaitDriverMsg() { - g_lines_sites_data?.visibility = View.GONE - g_loading_group?.visibility = View.VISIBLE - iv_loading_wait_driver?.let { - val animationDrawable = it.drawable as AnimationDrawable - animationDrawable.start() - } - } - - fun showSelectData() { - UiThreadHandler.post { - g_lines_sites_data?.visibility = View.VISIBLE - g_loading_group?.visibility = View.GONE - group_driver_agrenn_line?.visibility = View.GONE - aciv_driver_refuse_group?.visibility = View.GONE - } - } - - fun hideDataDriverAgree(){ - group_driver_agrenn_line?.visibility = View.VISIBLE - aciv_driver_refuse_group?.visibility = View.GONE - g_loading_group?.visibility = View.GONE - g_lines_sites_data?.let { - it.visibility = View.GONE - subscribeDirverAgree = RxUtils.createSubscribe(3_000) { - dismiss?.closeDialog() - } - } - } - fun hideDataDriverRefuse(){ - group_driver_agrenn_line?.visibility = View.GONE - aciv_driver_refuse_group?.visibility = View.VISIBLE - g_loading_group?.visibility = View.GONE - g_lines_sites_data?.let { - it.visibility = View.GONE - subscribeDirverRefuse = RxUtils.createSubscribe(3_000) { - showSelectData() - } - } - } - - fun setVisableByTrun( - showBiz: Boolean = false, - showNetError: Boolean = false, - showNorOrder: Boolean = false, - showLoading: Boolean = false - ) { - if(showBiz){ - // 选择线路页面 - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.VISIBLE - m1_order_loading?.visibility = View.GONE - return - } - if(showNetError){ - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.VISIBLE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.GONE - return - } - if(showNorOrder){ - m1_order_noorder?.visibility = View.VISIBLE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.GONE - return - } - if(showLoading){ - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.VISIBLE - if (!loadingAni.isRunning) { - loadingAni.start() - } - } - } - - - fun go2StartCar() { - dismiss?.closeDialog() - } - - override fun createPresenter(): BusPassengerFunctionOrderPresenter { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "createPresenter") - return BusPassengerFunctionOrderPresenter(this) - } - - override fun onDestroyView() { - super.onDestroyView() - loadingAni.cancel() - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "onDestroyView") - RxUtils.disposeSubscribe(subscribeDirverAgree) - RxUtils.disposeSubscribe(subscribeDirverRefuse) - } - - fun lineAdapterSubmit(lineInfo: LineInfoResponse.LineInfo) { - lineAdapter.submitLine(lineInfo) - } - - fun lineAdapterSetData( - lineInfo: List, - checkLine: LineInfoResponse.LineInfo? - ) { - lineAdapter.setDataList(lineInfo,checkLine) - } - - fun siteAdapterSetData(siteInfo: List) { - siteAdapter.setDataList(siteInfo) - } - fun siteAdapterEnableIndex(index: Int) { - siteAdapter.setEnableIndex(index) - } - - fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { - this.dismiss = dismiss - } - - companion object { - const val TAG = "M1OrderLineFragment" - - @JvmStatic - fun newInstance(dismiss: M1ContainFragment.ContainDismiss): M1OrderLineFragment { - val args = Bundle() - val fragment = M1OrderLineFragment() - fragment.arguments = args - fragment.setContainDismiss(dismiss) - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt deleted file mode 100644 index ff9a178037..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt +++ /dev/null @@ -1,82 +0,0 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment.fragment - -import android.os.Bundle -import android.view.View -import com.mogo.commons.mvp.MvpFragment -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import kotlinx.android.synthetic.main.m1_devices_fragment.* - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class OrderInfoFragment : - MvpFragment() { - - private var dismiss: M1ContainFragment.ContainDismiss?=null - - override fun getLayoutId(): Int = R.layout.m1_devices_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - initListener() - } - - private fun initListener() { - actv_end_order_submit.setOnClickListener { - mPresenter?.endOrder() - } - actv_contain_order.setOnClickListener { - this.dismiss?.closeDialog() - } - actv_end_order.setOnClickListener { - cl_order_info.visibility = View.GONE - cl_order_info_endorder_comfit.visibility = View.VISIBLE - } - } - - fun setStartTimeAndEndTime(startTime:String,endTime:String){ - actv_order_times.text = "$startTime-$endTime" - } - fun setPhone(phone:String){ - if(phone.length>8) { - //截取电话号码前三位 - val phoneNumPre = phone.substring(0, 3); - //截取电话号码后四位 - val phoneNumFix = phone.substring(7); - actv_order_phone.text = "$phoneNumPre****$phoneNumFix" - }else{ - actv_order_phone.text = phone - } - } - - fun setLeftTime(leftTime:String){ - actv_left_time.text = "剩余时间 $leftTime" - } - - fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { - this.dismiss = dismiss - } - - fun closeDialogContaion(){ - this.dismiss?.closeDialog() - } - - override fun createPresenter(): OrderInfoPresenter = - OrderInfoPresenter(this) - - companion object { - const val TAG = "OrderInfoFragment" - @JvmStatic - fun newInstance(dismiss: M1ContainFragment.ContainDismiss): OrderInfoFragment { - val args = Bundle() - val fragment = OrderInfoFragment() - fragment.arguments = args - fragment.setContainDismiss(dismiss) - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/EndOrderView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/EndOrderView.kt deleted file mode 100644 index 9473c6e425..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/EndOrderView.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.bus.passenger.ui.view - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView -import com.mogo.och.bus.passenger.R - -class EndOrderView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { - init { - LayoutInflater.from(context).inflate(R.layout.m1_order_end, this, true) - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt deleted file mode 100644 index 93f17a75f9..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/utils/ToastCharterUtils.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.mogo.och.bus.passenger.utils - -import android.view.View -import com.mogo.eagle.core.utilcode.util.ActivityUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.bus.passenger.view.ToastCharterView -import me.jessyan.autosize.utils.AutoSizeUtils - -object ToastCharterUtils { - fun showTaost(toastText:String){ - val context = ActivityUtils.getTopActivity() - val marker = ToastCharterView(context) - marker.setText(toastText) - marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) - ) - marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) - ToastUtils.showShort(marker) - } - fun showLong(toastText:String){ - val context = ActivityUtils.getTopActivity() - val marker = ToastCharterView(context) - marker.setText(toastText) - marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) - ) - marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) - ToastUtils.showLong(marker) - } - - fun showShort(toastText:String?){ - toastText?.let { - val context = ActivityUtils.getTopActivity() - val marker = ToastCharterView(context) - marker.setText(toastText) - marker.measure( - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 145f), View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(AutoSizeUtils.dp2px(context, 34f), View.MeasureSpec.EXACTLY) - ) - marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) - ToastUtils.showShort(marker) - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/RecyclerViewCornerRadius.java b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/RecyclerViewCornerRadius.java deleted file mode 100644 index 1d84288d1c..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/RecyclerViewCornerRadius.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.mogo.och.bus.passenger.view; -import android.graphics.Canvas; -import android.graphics.Path; -import android.graphics.RectF; -import android.graphics.Region; -import android.os.Build; -import android.view.ViewTreeObserver; - -import androidx.recyclerview.widget.RecyclerView; - -/** - * 为RecyclerView设置圆角 - */ -public class RecyclerViewCornerRadius extends RecyclerView.ItemDecoration { - public static final String TAG = "RecyclerViewCornerRadius"; - - private RectF rectF; - private Path path; - - private int topLeftRadius = 0; - private int topRightRadius = 0; - private int bottomLeftRadius = 0; - private int bottomRightRadius = 0; - - public RecyclerViewCornerRadius(final RecyclerView recyclerView) { - recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - rectF = new RectF(0, 0, recyclerView.getMeasuredWidth(), recyclerView.getMeasuredHeight()); - - path = new Path(); - path.reset(); - path.addRoundRect(rectF, new float[]{ - topLeftRadius, topLeftRadius, - topRightRadius, topRightRadius, - bottomLeftRadius, bottomLeftRadius, - bottomRightRadius, bottomRightRadius - }, Path.Direction.CCW); - - recyclerView.getViewTreeObserver().removeOnGlobalLayoutListener(this); - } - }); - } - - public void setCornerRadius(int radius) { - this.topLeftRadius = radius; - this.topRightRadius = radius; - this.bottomLeftRadius = radius; - this.bottomRightRadius = radius; - } - - public void setCornerRadius(int topLeftRadius, int topRightRadius, int bottomLeftRadius, int bottomRightRadius) { - this.topLeftRadius = topLeftRadius; - this.topRightRadius = topRightRadius; - this.bottomLeftRadius = bottomLeftRadius; - this.bottomRightRadius = bottomRightRadius; - } - - @Override - public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { - c.clipRect(rectF); - - - if (Build.VERSION.SDK_INT >= 28) { - c.clipPath(path); - } else { - c.clipPath(path, Region.Op.REPLACE); - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 84eb21a653..b45f3d939a 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -44,7 +44,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxccorektx implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.material diff --git a/OCH/mogo-och-common-module/libs/pinyin4j-2.5.1.jar b/OCH/mogo-och-common-module/libs/pinyin4j-2.5.1.jar deleted file mode 100644 index 8446c53fce..0000000000 Binary files a/OCH/mogo-och-common-module/libs/pinyin4j-2.5.1.jar and /dev/null differ diff --git a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/BizBroadcastReceiver.kt b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/BizBroadcastReceiver.kt index b33df5e396..5bcaf39ad8 100644 --- a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/BizBroadcastReceiver.kt +++ b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/BizBroadcastReceiver.kt @@ -29,7 +29,7 @@ class BizBroadcastReceiver: BroadcastReceiver() { CallerLogger.d("${SceneConstant.M_OCHCOMMON}${TAG}", "类型:${type} 频率:${frequency} 命令所在文件:${sourceFilePath}" ) - DebugDataDispatch.disPathc(type,frequency,sourceFilePath) + DebugDataDispatch.disPathc(type,frequency,sourceFilePath,intent) } catch (e: Exception) { e.printStackTrace() } diff --git a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index ed7619f7b4..9060d89523 100644 --- a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -1,10 +1,16 @@ package com.mogo.och.common.module.debug +import android.content.Intent import android.os.Environment +import chassis.Chassis.DoorNumber +import chassis.VehicleStateOuterClass import com.amap.api.maps.model.LatLng import com.google.gson.reflect.TypeToken import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisGnssListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -14,6 +20,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.debug.location.MogoLocationExit import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import mogo.telematics.pad.MessagePad +import mogo_msg.MogoReportMsg import java.io.BufferedReader import java.io.File import java.io.FileInputStream @@ -26,12 +33,20 @@ object DebugDataDispatch { const val globalPathMock = "globalPath" const val locationMock = "location" + const val carDoorMock = "carDoor" + const val carNeedTurnAround = "trunAroud" + +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "sy73_log.json" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "globalPath" --es path "sy73.json" +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "carDoor" --ei doorPostion 1 --ei doorStatus 1 +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "trunAroud" --es code "IMAP_TRA_LOADED" + val ROOT_PATH = Environment.getExternalStorageDirectory().absolutePath + File.separator + "MLog" + File.separator + "APPLog" + File.separator //程序外部存储跟目录 - fun disPathc(type: String?, frequency: Int, sourceFilePath: String?) { + fun disPathc(type: String?, frequency: Int, sourceFilePath: String?, intent: Intent) { when (type) { globalPathMock -> { sourceFilePath?.let { @@ -43,30 +58,52 @@ object DebugDataDispatch { getLocaitonByLog(ROOT_PATH+it) } } + carDoorMock -> { + // 1--5 + val intArrayExtra = intent.getIntExtra("doorPostion",0) + // 0 -1 + val booleanArrayExtra = intent.getIntExtra("doorStatus",0) + + val newBuilder = VehicleStateOuterClass.DoorStateV2.newBuilder() + newBuilder.number = DoorNumber.forNumber(intArrayExtra) + newBuilder.status = booleanArrayExtra + val multiList = mutableListOf() + multiList.add(newBuilder.build()) + + CallerChassisDoorStateListenerManager.invokeAutopilotDoorState(multiList) + } + carNeedTurnAround -> { + // 1--5 + val intArrayExtra = intent.getStringExtra("code") + val newBuilder = MogoReportMsg.MogoReportMessage.newBuilder() + newBuilder.code = intArrayExtra + newBuilder.timestampBuilder.sec = 0 + newBuilder.timestampBuilder.nsec = 0 + newBuilder.src = "2" + newBuilder.level = "" + CallerAutoPilotStatusListenerManager.invokeAutopilotGuardian(newBuilder.build()) + } else -> {} } } fun getLocaitonByLog(path:String) { ThreadUtils.getIoPool().execute { - val inputStream = FileInputStream(path) - val reader = BufferedReader(InputStreamReader(inputStream)) - var line: String? = "" try { + val inputStream = FileInputStream(path) + val reader = BufferedReader(InputStreamReader(inputStream)) + var line: String? = "" while (reader.readLine().also { line = it } != null) { val list = GsonUtils.fromJson( line.toString(), object : TypeToken() {}.type ) - val mogoLocation = MogoLocation() - mogoLocation.latitude = list.msg.GnssInfo.latitude - mogoLocation.longitude = list.msg.GnssInfo.longitude - mogoLocation.heading = list.msg.GnssInfo.heading - mogoLocation.gnssSpeed = list.msg.GnssInfo.gnssSpeed.toFloat() - CallerChassisLocationGCJ02ListenerManager.invokeChassisLocationGCJ02( - mogoLocation, - DataSourceType.OBU - ) + val newBuilder = MessagePad.GnssInfo.newBuilder() + newBuilder.latitude = list.msg.GnssInfo.latitude + newBuilder.longitude = list.msg.GnssInfo.longitude + newBuilder.heading = list.msg.GnssInfo.heading + newBuilder.gnssSpeed = list.msg.GnssInfo.gnssSpeed + CallerChassisGnssListenerManager.invokeChassisGnssListener(newBuilder.build()) Thread.sleep(100) } } catch (e: IOException) { @@ -99,6 +136,12 @@ object DebugDataDispatch { locationBuilder.longitude = latLng.longitude newBuilder.addWayPoints(locationBuilder) } + try { + val file = File(path) + newBuilder.lineId = file.name.toLong() + } catch (e: Exception) { + e.printStackTrace() + } val mogoLocation = MogoLocation() diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java index ebe1fa2731..0af1851615 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java @@ -19,8 +19,8 @@ public class TaxiLoginReqBean { } public static class Location4Login{ - double lat; - double lon; + public double lat; + public double lon; public Location4Login(double lat, double lon) { this.lat = lat; diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java index 22e63dd838..c9f95f263b 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java @@ -14,8 +14,8 @@ public class TaxiLogoutReqBean { } public static class Location4Login{ - double lat; - double lon; + public double lat; + public double lon; public Location4Login(double lat, double lon) { this.lat = lat; diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt index fe0e21da28..e110fa20ec 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt @@ -25,5 +25,8 @@ class OchCommonConst { const val LOGINSERVICE = "/ochbiz/common/login" const val BUSINESS_STRING = 100 + + // 自动驾驶自动规划的最大距离 + const val AUTOMATIC_PLANNING_MAX_DISTANCE = 15 } } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt index 27f4b19f7b..223f60effa 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt @@ -16,6 +16,7 @@ import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonServiceManager import com.mogo.och.common.module.utils.ToastUtilsOch +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils /** * Created by pangfan on 2021/8/19 @@ -63,20 +64,20 @@ object OchCommonLoginModel { override fun onSuccess(data: BaseData?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) iTaxiLoginCallback?.getPhoneCodeSuccess() } else { if (data != null) { - ToastUtils.showShort(data.code) + ToastCharterUtils.showToastShort(data.code.toString()) } } } override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext?.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(mContext?.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) } } @@ -97,7 +98,7 @@ object OchCommonLoginModel { override fun onSuccess(data: TaxiLoginRespBean?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login) mContext?.let { SharedPrefs.getInstance(it).putString("och_account", phone) @@ -105,16 +106,16 @@ object OchCommonLoginModel { iTaxiLoginCallback?.loginSuccess() } else { if (data != null) { - ToastUtils.showShort(data.code) + ToastCharterUtils.showToastShort(data.code.toString()) } } } override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext?.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(mContext?.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java index a2951bfbde..9d23783a11 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java @@ -17,6 +17,7 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.biz.network.OchCommonServiceManager; import com.mogo.och.common.module.utils.ToastUtilsOch; +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; import java.util.concurrent.TimeUnit; @@ -59,7 +60,7 @@ public abstract class OchCommonLoginStatusModel { public void onSuccess(DriverStatusQueryRespBean data) { if (null != data && 0 == data.code) { LoginStatusManager.setLoginStatus(data.data.driverStatus); - CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus()); + CallerLogger.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus()); loginSuccess(data); } } @@ -67,9 +68,9 @@ public abstract class OchCommonLoginStatusModel { @Override public void onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); + ToastCharterUtils.showToastShort(mContext.getString(R.string.network_error_tip)); } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); + ToastCharterUtils.showToastShort(mContext.getString(R.string.request_error_tip)); } subscribe = Observable.timer(5, TimeUnit.SECONDS).subscribe(aLong -> { queryCarStatus(); @@ -106,9 +107,9 @@ public abstract class OchCommonLoginStatusModel { @Override public void onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); + ToastCharterUtils.showToastShort(mContext.getString(R.string.network_error_tip)); } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); + ToastCharterUtils.showToastShort(mContext.getString(R.string.request_error_tip)); } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt index 4f607084b2..784d7f3e43 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt @@ -6,11 +6,11 @@ import com.mogo.commons.mvp.Presenter 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.RegexUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.R -import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback import com.mogo.och.common.module.biz.model.OchCommonLoginModel +import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -42,7 +42,7 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : initListeners() } if (!RegexUtils.isMobileExact(phone)) { - ToastUtils.showShort(R.string.module_och_taxi_login_phone_error) + ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_phone_error) mView?.inputPhoneError() return } @@ -98,12 +98,12 @@ class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) : initListeners() } if (!RegexUtils.isMobileExact(phone)) { - ToastUtils.showShort(R.string.module_och_taxi_login_phone_error) + ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_phone_error) mView?.inputPhoneError() return } if(code.isBlank()||code.length<4){ - ToastUtils.showShort(R.string.module_och_taxi_login_code_error) + ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_code_error) return } mView?.closeSoftInput() diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt index 3ac45bea20..76db0f8f1c 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/AbnormalFactorsLoopManager.kt @@ -9,8 +9,8 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.util.NetworkUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.utils.PermissionUtil +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -36,9 +36,9 @@ object AbnormalFactorsLoopManager : IMogoStatusChangedListener { return@observable } if (newValue) { - ToastUtils.showLong("长链接状态恢复") + ToastCharterUtils.showToastLong("长链接状态恢复") } else { - ToastUtils.showLong("长链接异常,请开启相应权限或者查看网络") + ToastCharterUtils.showToastLong("长链接异常,请开启相应权限或者查看网络") } } @@ -88,7 +88,7 @@ object AbnormalFactorsLoopManager : IMogoStatusChangedListener { i(TAG, "abnormal_factors_Str = $toastStr") if (!FunctionBuildConfig.isDemoMode && toastStr !== "") { - ToastUtils.showLong(toastStr + "请开启相应权限或者查看网络") + ToastCharterUtils.showToastLong(toastStr + "请开启相应权限或者查看网络") } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java similarity index 69% rename from OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java index e97c0b6b34..bb7491b45d 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/autopilotmanager/OCHAdasAbilityManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager; +package com.mogo.och.common.module.manager.autopilotmanager; import android.content.Context; @@ -11,6 +11,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsList import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.UnableAutopilotReason; + +import java.util.ArrayList; /** * Created on 2022/10/9 @@ -21,8 +24,8 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo private static final String TAG = OCHAdasAbilityManager.class.getSimpleName(); - private boolean isAutopilotAbility = true; - private String autopilotAbilityReason = ""; + private boolean isAutopilotAbility; + private ArrayList unableAutopilotReasons; private String startFailedCode = ""; private String startFailedMessage = ""; @@ -37,6 +40,8 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo } public void init(Context context) { + this.isAutopilotAbility = CallerAutopilotActionsListenerManager.INSTANCE.isAutopilotAbility(); + this.unableAutopilotReasons = CallerAutopilotActionsListenerManager.INSTANCE.getUnableAutopilotReasons(); initListeners(); } @@ -49,7 +54,23 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo } public String getAutopilotUnAbilityReason(){ - return autopilotAbilityReason; + try { + if(unableAutopilotReasons==null||unableAutopilotReasons.isEmpty()){ + return "未知异常"; + }else { + StringBuilder stringBuilder = new StringBuilder(); + for (int i = 0; i < unableAutopilotReasons.size(); i++) { + stringBuilder.append(unableAutopilotReasons.get(i)); + if(i unableAutopilotReasons) { this.isAutopilotAbility = isAutopilotAbility; - this.autopilotAbilityReason = unableAutopilotReason; - Logger.d(TAG, "是否可以启动自动驾驶=" + isAutopilotAbility + " 原因=" + autopilotAbilityReason); + this.unableAutopilotReasons = unableAutopilotReasons; + Logger.d(TAG, "是否可以启动自动驾驶=" + isAutopilotAbility + " 原因=" + (unableAutopilotReasons == null ? null : unableAutopilotReasons.toString())); } - @Override public void onAutopilotStatistics(@Nullable AutopilotStatistics statistics) { if (statistics == null) return; diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/DebugViewWatchDogFragment.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugViewWatchDogFragment.kt similarity index 94% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/DebugViewWatchDogFragment.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugViewWatchDogFragment.kt index 8f8026b9f3..b7eeafedee 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/DebugViewWatchDogFragment.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugViewWatchDogFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment +package com.mogo.och.common.module.manager.debug import android.content.DialogInterface import android.os.Bundle @@ -17,10 +17,8 @@ import com.mogo.eagle.core.utilcode.util.AppStateManager import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.eagle.core.utilcode.util.KeyboardUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.DebugWatchDogPresenter -import com.mogo.och.bus.passenger.ui.MainFragment +import com.mogo.och.common.module.R +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import kotlinx.android.synthetic.main.m1_debugview_pass.* /** @@ -45,7 +43,7 @@ class DebugViewWatchDogFragment : actv_password_submit.setOnClickListener { val text = acet_close.text if(text==null||text.isEmpty()){ - ToastCharterUtils.showShort("请输入密码") + ToastCharterUtils.showToastShort("请输入密码") }else{ if(text.toString() == "123987"){ dismissAllowingStateLoss() @@ -54,7 +52,7 @@ class DebugViewWatchDogFragment : } ToggleDebugView.toggleDebugView.toggle(requireContext()) }else{ - ToastCharterUtils.showShort("请输入正确密码") + ToastCharterUtils.showToastShort("请输入正确密码") } } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugWatchDogPresenter.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugWatchDogPresenter.kt new file mode 100644 index 0000000000..c43cb5d864 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/debug/DebugWatchDogPresenter.kt @@ -0,0 +1,12 @@ +package com.mogo.och.common.module.manager.debug + +import com.mogo.commons.mvp.Presenter + +class DebugWatchDogPresenter(view: DebugViewWatchDogFragment?) : + Presenter(view){ + companion object { + private const val TAG = "BusPassengerFunctionPresenter" + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt index 01262dba66..4db99d75e8 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt @@ -8,6 +8,7 @@ import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg import com.mogo.och.common.module.manager.LanSocketManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.disposables.Disposable object LightAirconditionDoorManager { @@ -19,7 +20,7 @@ object LightAirconditionDoorManager { fun go2OpenDoor(go2Open:Boolean){ val canOpenOrCloseDoor = canOpenOrCloseDoor() if(!canOpenOrCloseDoor.isNullOrBlank()){ - ToastUtils.showLong(canOpenOrCloseDoor) + ToastCharterUtils.showToastLong(canOpenOrCloseDoor) return } RxUtils.disposeSubscribe(dooorSubscribe) @@ -35,7 +36,7 @@ object LightAirconditionDoorManager { doorStatusSubscribe = RxUtils.createSubscribe(6000) { if (LightAirconditionDoorStatusManager.doorStatus.isOpen) { if(!go2Open) {// 关门失败 - ToastUtils.showShort("车辆系统繁忙,稍后再试试吧~") + ToastCharterUtils.showToastShort("车辆系统繁忙,稍后再试试吧~") VoiceNotice.showNotice( "车辆系统繁忙,稍后再试试吧~", AIAssist.LEVEL0 @@ -44,7 +45,7 @@ object LightAirconditionDoorManager { } }else{ if(go2Open) {//开门失败 - ToastUtils.showShort("车辆系统繁忙,稍后再试试吧~") + ToastCharterUtils.showToastShort("车辆系统繁忙,稍后再试试吧~") VoiceNotice.showNotice( "车辆系统繁忙,稍后再试试吧~", AIAssist.LEVEL0 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt index 205510c9da..bc30038358 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/DistanceDegree.kt @@ -1,13 +1,54 @@ package com.mogo.och.common.module.manager.distancemamager -data class DistanceDegree(var distance:Float,var degree:Double?,var isNext:Boolean?):Comparable{ +data class DistanceDegree(var distance: Float, var degree: Double?, var isNext: Boolean?) : + Comparable { override fun compareTo(other: DistanceDegree): Int { // 对比距离 - if(distance == other.distance){ + if (distance == other.distance) { return 0; - } else if(distance < other.distance){ + } else if (distance < other.distance) { return -1; } return 1; } + + var next: DistanceDegree? = null + + fun recycle() { + synchronized(sPoolSync) { + if (sPoolSize < MAX_POOL_SIZE) { + next = sPool + sPool = this + sPoolSize++ + } + //Logger.d("DistanceDegree","缓存对象个数${sPoolSize}个") + } + } + + companion object { + var sPoolSync = Any() + private var sPool: DistanceDegree? = null + private var sPoolSize = 0 + private var MAX_POOL_SIZE = 20 + + + fun obtain(distance: Float, degree: Double?, isNext: Boolean?): DistanceDegree { + synchronized(sPoolSync) { + if (sPool != null) { + val m: DistanceDegree = sPool!! + sPool = m.next + m.next = null + m.distance = distance + m.degree = degree + m.isNext = isNext + sPoolSize-- + //Logger.d("DistanceDegree","取出一个对象个数${sPoolSize}个") + return m + } + //Logger.d("DistanceDegree","创建一个对象 ${sPoolSize}个") + return DistanceDegree(distance, degree, isNext) + } + } + } + } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt index d199f69d5b..ec647b77f8 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/IDistanceListener.kt @@ -6,7 +6,8 @@ interface IDistanceListener { /** * @param distance 距离终点坐标的距离 */ - fun distanceCallback(distance: Float) + fun distanceCallback(distance: Float){} + fun stationDistanceCallback(stationDistance:Float){} } interface ITrajectoryListener{ diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt index 72a72bd85e..b2fcc24349 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryAndDistanceManager.kt @@ -12,13 +12,20 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.eagle.core.utilcode.util.CoordinateUtils -import com.mogo.och.common.module.manager.loopmanager.BusPassengerModelLoopManager +import com.mogo.eagle.core.utilcode.util.LocationUtils +import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.zhjt.service.chain.ChainLog +import io.reactivex.schedulers.Schedulers import mogo.telematics.pad.MessagePad import java.util.concurrent.ConcurrentHashMap + +/** + * 计算当前位置距离站点距离和走过的和未走过的轨迹点 + */ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ private val distanceListeners: ConcurrentHashMap = ConcurrentHashMap() @@ -56,8 +63,11 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ @Volatile private var mRoutePoints: MutableList? = ArrayList() + // 0-1 1-2 2-3 各个轨迹点的距离 private var mRoutePointsDistance: MutableList? = ArrayList() + // 所有轨迹点距离的和 private var maxDistanceAllPoint:Double = 0.0 + private val stationDistance: ConcurrentHashMap = ConcurrentHashMap() @Volatile private var lineId:Long? = null @@ -82,8 +92,8 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ d(M_OCHCOMMON + TAG, "onAutopilotRotting: 收到轨迹") globalPathResp?.wayPointsList?.let { if (it.size > 0) { - d(M_OCHCOMMON + TAG, "收到轨迹:${it.size}第一个点${it[0]}最后一个点:${it.last()}") - if(globalPathResp.lineId!=null) { + d(M_OCHCOMMON + TAG, "收到轨迹:轨迹个数${it.size}第一个点${it[0]}最后一个点:${it.last()} 轨迹id:${globalPathResp.lineId}") + if(globalPathResp.lineId!=null) {// 适配低版本不传递lineId if (globalPathResp.lineId == lineId && !mRoutePoints.isNullOrEmpty()) { d(M_OCHCOMMON + TAG, "重复轨迹") startCalculateDistanceLoop() @@ -105,6 +115,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ val latLngModels = CoordinateCalculateRouteUtil .coordinateConverterWgsToGcjLocations(AbsMogoApplication.getApp(), routePoints!!) mRoutePoints = latLngModels + TrajectoryCache.writeLastTrajectory2jsonFile(latLngModels, lineId.toString()) mRoutePointsDistance = ArrayList() maxDistanceAllPoint = 0.0 @@ -123,6 +134,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ } } + private fun removeTempData() { resetStation() preCarLocationIndexInTrajectory = 0 @@ -151,17 +163,31 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ removeTempData() endCalculateDistanceLoop() cleanRoutePoints() + TrajectoryCache.deleteCatcheFile() this.endStationInfo.stationPoint = null this.startStationInfo.stationPoint = null this.lineId = null + stationDistance.clear() }else{ if(isSameStation(this.startStationInfo.stationPoint,startStationInfo)&& isSameStation(this.endStationInfo.stationPoint,endStationInfo)){ if(this.lineId!=lineId){ resetStation() + cleanRoutePoints() + TrajectoryCache.deleteCatcheFile() + stationDistance.clear() } }else{ resetStation() + if (this.lineId == 0L || this.lineId == null) { + // 兼容老MAP 不返回轨迹id lineID + }else { + if (this.lineId != lineId) {// bus 切换站点不会切线路 + cleanRoutePoints() + TrajectoryCache.deleteCatcheFile() + } + } + stationDistance.clear() } this.endStationInfo.stationPoint = endStationInfo this.startStationInfo.stationPoint = startStationInfo @@ -214,16 +240,18 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ * 启动路距计算 */ private fun startCalculateDistanceLoop() { - BusPassengerModelLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance)) - d(SceneConstant.M_BUS_P + TAG, "开始路距计算") + BizLoopManager.setLoopFunction(TAGDISTANCE, LoopInfo(1, ::calculateDistance, + scheduler = Schedulers.computation() + )) + d(M_OCHCOMMON + TAG, "开始路距计算") } /** * 结束启动路距计算 */ private fun endCalculateDistanceLoop() { - BusPassengerModelLoopManager.removeLoopFunction(TAGDISTANCE) - d(SceneConstant.M_BUS_P + TAG, "结束路距计算") + BizLoopManager.removeLoopFunction(TAGDISTANCE) + d(M_OCHCOMMON + TAG, "结束路距计算") } @@ -232,7 +260,7 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ location: MogoLocation, ) { val autoPilotState = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state - val locationInfo = "自动驾驶状态:$autoPilotState line信息:${lineId}定位信息:${location.latitude},${location.longitude},${location.heading}" + val locationInfo = "自动驾驶状态:$autoPilotState line信息:${lineId}定位信息:${location.latitude},${location.longitude},${location.heading} 当前速度:${location.gnssSpeed}" if (mRoutePoints.isNullOrEmpty()) return // 计算起始站点在轨迹中的信息 这个是一个常量 if (startStationInfo.stationPoint != null @@ -269,6 +297,22 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ writeLog(calculateData, locationInfo) } + try { + if (endStationInfo.stationPoint != null + && endStationInfo.isNext!= null + && endStationInfo.index != null + && endStationInfo.distance != null + && startStationInfo.stationPoint != null + && startStationInfo.isNext != null + && startStationInfo.index != null + && startStationInfo.distance != null + ) { + calculateStationDistance() + } + }catch (e:Exception){ + e(M_OCHCOMMON+ TAG,"计算两个站点间的距离") + } + val carLocationInfo:Triple if(endStationInfo.isNext==true){ // 计算车的位置在轨迹中的信息 这个是一个变量可以缓存 @@ -331,6 +375,56 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ } + /** + * 计算站点间距离 + */ + private fun calculateStationDistance() { + var lastSumLength = 0f + val key = getKey() + if (stationDistance[key] !=null) { + return + } + + val stationIndex = endStationInfo.index?:0 + if (startStationInfo.index!! < stationIndex-1) { + // subList 是[) 需要的是[] + val subList = mRoutePoints!!.subList(startStationInfo.index!!, stationIndex + 1) + // 轨迹点所有的距离 + lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(subList) + val stationDistance = endStationInfo.distance ?: 0f + if (endStationInfo.isNext == true) {// isNext = true + lastSumLength -= stationDistance + } else {// isNext = false + lastSumLength += stationDistance + } + if (startStationInfo.isNext==true) {// 是否是下一个 true 下一个 + lastSumLength += startStationInfo.distance!! + } else { + lastSumLength -= startStationInfo.distance!! + } + } else { + val lastPoints = endStationInfo.stationPoint + lastSumLength = CoordinateUtils.calculateLineDistance( + startStationInfo.stationPoint!!.longitude, startStationInfo.stationPoint!!.latitude, + lastPoints!!.longitude, lastPoints.latitude + ) + } + d(M_OCHCOMMON+ TAG,"两站点距离:$lastSumLength") + stationDistance[key] = lastSumLength + + if(distanceListeners.size>0) { + distanceListeners.forEach { + //val tag = it.key + val listener = it.value + listener.stationDistanceCallback(lastSumLength) + } + } + } + + private fun getKey(): String { + return "${startStationInfo.stationPoint!!.longitude}${startStationInfo.stationPoint!!.latitude}${endStationInfo.stationPoint!!.longitude}${endStationInfo.stationPoint!!.latitude}" + } + private fun invokeDistance( carLocationInfo: Triple, @@ -466,4 +560,123 @@ object TrajectoryAndDistanceManager: IMoGoPlanningRottingListener{ d(M_OCHCOMMON+ TAG,location) } + + /** + * 距离站点的距离 + */ + private fun distanceWithStartStation():String{ + if (startStationInfo.stationPoint==null) { + return "请选择起始结束站点" + } + val currentPoint = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + val distance = CoordinateUtils.calculateLineDistance( + currentPoint.longitude, + currentPoint.latitude, + startStationInfo.stationPoint!!.longitude, + startStationInfo.stationPoint!!.latitude + ) + return if(distance <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE){ + "" + }else{ + "距离起始站点过远:${distance}米" + } + } + + /** + * 距离轨迹的距离 + */ + private fun distanceWithTrajectory(redCatche: MutableList): String { + val currentPoint = + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + // 判断距离轨迹的距离 + val carLocationInfo: Triple = + CoordinateCalculateRouteUtil.getNearestPointInfo( + 0, + redCatche.size - 1, + redCatche, + currentPoint, + 2, + useHeading = false + ) + if (carLocationInfo.third <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { + return ""// 可以启动自驾 + } else { + // 判断距离线段的距离 垂足的距离 + val nextPoint: MogoLocation + val prePoint: MogoLocation + // isNext true 最近的点是在下一个 + // isNext false 最近的点是在上一个 + if (carLocationInfo.second == true) { + if (carLocationInfo.first > 0) { + nextPoint = redCatche[carLocationInfo.first] + prePoint = redCatche[carLocationInfo.first - 1] + } else { + // 距离第一个点大于15m 过远 + return "距离轨迹线超过15m:${carLocationInfo.first}米,无法启动自驾" + } + } else { + if (carLocationInfo.first + 1 < redCatche.size) { + nextPoint = redCatche[carLocationInfo.first + 1] + prePoint = redCatche[carLocationInfo.first] + } else { + nextPoint = redCatche[carLocationInfo.first] + prePoint = redCatche[carLocationInfo.first - 1] + } + } + val pointToLine = LocationUtils.pointToLine( + prePoint.longitude, + prePoint.latitude, + nextPoint.longitude, + nextPoint.latitude, + currentPoint.longitude, + currentPoint.latitude + ) + return if (pointToLine <= OchCommonConst.AUTOMATIC_PLANNING_MAX_DISTANCE) { + "" + } else { + "距离轨迹线超过15m,无法启动自驾" + } + } + } + + + /** + * 返回空为可启动自驾 + * 返回其他不可启动自驾 返回为原因 + */ + fun canStartAutopilot(lineId: Long?):String{ + if(lineId==null){ + return "请确认线路ID" + } + + try { + if(mRoutePoints.isNullOrEmpty()){ + // 判断距离起始站的距离 + // 没有收到过轨迹 + // 收到过轨迹 且底盘没有在自动驾驶中(没办法申请轨迹) 自驾中重启底盘的形式 + val redCatche = TrajectoryCache.redCatche(lineId.toString()) + return if(redCatche.isNullOrEmpty()){ + distanceWithStartStation() + }else{ + distanceWithTrajectory(redCatche) + } + + }else { + return if (this.lineId == 0L || this.lineId == null) { + distanceWithTrajectory(mRoutePoints!!) + } else { + if (lineId != this.lineId) { + // 判断距离起始站的距离 + distanceWithStartStation() + } else { + distanceWithTrajectory(mRoutePoints!!) + } + } + } + }catch (e:Exception){ + e.printStackTrace() + } + return "" + } + } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryCache.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryCache.kt new file mode 100644 index 0000000000..da7f1e62d5 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/distancemamager/TrajectoryCache.kt @@ -0,0 +1,67 @@ +package com.mogo.och.common.module.manager.distancemamager + +import com.elegant.network.utils.GsonUtil +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import java.io.File +import java.io.FileReader +import java.io.FileWriter +import java.io.IOException + +object TrajectoryCache { + + private const val TAG = "TrajectoryCache" + + private val dir = "${AbsMogoApplication.getApp().cacheDir}/trajectory/" + + fun writeLastTrajectory2jsonFile(latLngModels: MutableList,name:String) { + val jsonFromObject = GsonUtil.jsonFromObject(latLngModels) + try { + val path = File(dir) + if(!path.exists()){ + path.mkdir() + }else { + path.deleteRecursively() + CallerLogger.d(M_OCHCOMMON + TAG,"删除缓存") + path.mkdir() + } + val writer = FileWriter("${path.path}/${name}") + writer.write(jsonFromObject) + writer.close() + CallerLogger.d(M_OCHCOMMON + TAG,"写入缓存") + } catch (e: IOException) { + e.printStackTrace() + } + } + + fun deleteCatcheFile(){ + try { + val path = File(dir) + if(path.exists()){ + path.deleteRecursively() + CallerLogger.d(M_OCHCOMMON + TAG,"删除缓存") + } + } catch (e: IOException) { + e.printStackTrace() + } + } + + fun redCatche(name: String): MutableList? { + try { + val path = File(dir) + if(!path.exists()){ + return null + } + val fileReader = FileReader("${path.path}/${name}") + val readText = fileReader.readText() + fileReader.close() + return GsonUtil.arrayFromJson(readText, MogoLocation::class.java) + } catch (e: IOException) { + e.printStackTrace() + } + return null + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt similarity index 70% rename from OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt index aaacdf7319..ff512902fa 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BusPassengerModelLoopManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/BizLoopManager.kt @@ -4,6 +4,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.och.common.module.utils.RxUtils import io.reactivex.Observable +import io.reactivex.Observer import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers import java.util.concurrent.ConcurrentHashMap @@ -14,7 +15,7 @@ import java.util.concurrent.TimeUnit * * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等) */ -object BusPassengerModelLoopManager { +object BizLoopManager { private val TAG = "BusPassengerModelLoopManager" @@ -66,8 +67,21 @@ object BusPassengerModelLoopManager { aLong?.let { if (it % loopInfo.interval == 0L) { try { - loopInfo.function.invoke() - CallerLogger.d(TAG, "${aLong}对象${loopInfo}正在执行方法${tag}") + if(loopInfo.scheduler!=null) { + Observable.just(tag).observeOn(loopInfo.scheduler) + .subscribe(object :Observer{ + override fun onSubscribe(d: Disposable) {} + override fun onError(e: Throwable) {} + override fun onComplete() { + loopInfo.function.invoke() + CallerLogger.d(TAG, "${aLong}正在执行方法${tag}_${Thread.currentThread().name}") + } + override fun onNext(t: String) {} + }) + }else{ + loopInfo.function.invoke() + CallerLogger.d(TAG, "${aLong}正在执行方法${tag}_${Thread.currentThread().name}") + } }catch (e:Throwable){ e.printStackTrace() CallerLogger.e(TAG,"$tag:--$e") diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt index 88aba91287..a987ec2d5c 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/loopmanager/LoopInfo.kt @@ -1,3 +1,11 @@ package com.mogo.och.common.module.manager.loopmanager -data class LoopInfo(val interval:Long,val function: () -> Unit,val immediately:Boolean=false) \ No newline at end of file +import io.reactivex.Scheduler + +/** + * interval 轮训间隔 + * function 轮询执行的方法 + * immediately 是否立刻执行 + * scheduler 轮训执行的线程 + */ +data class LoopInfo(val interval:Long,val function: () -> Unit,val immediately:Boolean=false,var scheduler: Scheduler? = null) \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java index 3bb41f5c9b..a0de8f4d6f 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java @@ -24,8 +24,8 @@ import com.amap.api.navi.model.NaviInfo; import com.amap.api.navi.model.NaviLatLng; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.common.module.utils.PermissionUtil; +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; import java.util.ArrayList; import java.util.List; @@ -47,6 +47,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { private ICommonNaviChangedCallback mNaviChangedCallback; private AtomicInteger errorCount = new AtomicInteger(0); private boolean isPlay; + public static AmapNaviToDestinationModel getInstance(Context context) { mContext = context; return SingletonHolder.INSTANCE; @@ -55,25 +56,28 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { private static final class SingletonHolder { private static final AmapNaviToDestinationModel INSTANCE = new AmapNaviToDestinationModel(); } - private AmapNaviToDestinationModel(){ + + private AmapNaviToDestinationModel() { } - public void initAMapNavi(NaviLatLng startLatLng,NaviLatLng endLatLng) { + + public void initAMapNavi(NaviLatLng startLatLng, NaviLatLng endLatLng) { try { mAMapNavi = AMapNavi.getInstance(mContext); mAMapNavi.addAMapNaviListener(this); mAMapNavi.setUseInnerVoice(true, true); sList.add(startLatLng); eList.add(endLatLng); - }catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); } } - public void setVoiceIsMute(boolean isPlay){ + + public void setVoiceIsMute(boolean isPlay) { if (mAMapNavi == null) return; this.isPlay = isPlay; - if (isPlay){ + if (isPlay) { mAMapNavi.startSpeak(); - }else { + } else { mAMapNavi.stopSpeak(); } } @@ -82,8 +86,8 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { return mAMapNavi; } - public void destroyAmaNavi(){ - if (mAMapNavi != null){ + public void destroyAmaNavi() { + if (mAMapNavi != null) { isPlay = false; sList.clear(); eList.clear(); @@ -94,9 +98,10 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { } } - public void setOCHTaciNaviChangedCallback(ICommonNaviChangedCallback callback){ + public void setTaxiNaviChangedCallback(ICommonNaviChangedCallback callback) { this.mNaviChangedCallback = callback; } + @Override public void onInitNaviFailure() { Toast.makeText(mContext, "init navi Failed", Toast.LENGTH_SHORT).show(); @@ -126,6 +131,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { } mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy); } + @Override public void onCalculateRouteSuccess(int[] ints) { //多路径算路成功回调 @@ -135,9 +141,9 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { @Override public void onNaviInfoUpdate(NaviInfo naviinfo) { //导航过程中的信息更新,请看NaviInfo的具体说明 - if (null != mNaviChangedCallback){ - CallerLogger.INSTANCE.i(M_TAXI + TAG, "距离=" + naviinfo.getPathRetainDistance() + ", 剩余时间 " + naviinfo.getPathRetainTime()); - mNaviChangedCallback.onCurrentNaviDistAndTimeChanged(naviinfo.getPathRetainDistance(),naviinfo.getPathRetainTime());// 米、秒 + if (null != mNaviChangedCallback) { + CallerLogger.i(M_TAXI + TAG, "距离=" + naviinfo.getPathRetainDistance() + ", 剩余时间 " + naviinfo.getPathRetainTime()); + mNaviChangedCallback.onCurrentNaviDistAndTimeChanged(naviinfo.getPathRetainDistance(), naviinfo.getPathRetainTime());// 米、秒 } } @@ -150,30 +156,31 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { public void onCalculateRouteFailure(AMapCalcRouteResult result) { //路线计算失败 //多路径算路成功回调 - if (errorCount.get() < 5){ + if (errorCount.get() < 5) { errorCount.getAndIncrement(); - if (mNaviChangedCallback != null){ - mNaviChangedCallback.reInitNaviAmap(isPlay,true); + if (mNaviChangedCallback != null) { + mNaviChangedCallback.reInitNaviAmap(isPlay, true); } } - if (!NetworkUtils.isConnected(mContext) || result.getErrorCode() == 2){ - ToastUtils.showShort("网络异常,请重试"); - if (mNaviChangedCallback != null){ - mNaviChangedCallback.reInitNaviAmap(isPlay,false); + if (!NetworkUtils.isConnected(mContext) || result.getErrorCode() == 2) { + ToastCharterUtils.showToastShort("网络异常,请重试"); + if (mNaviChangedCallback != null) { + mNaviChangedCallback.reInitNaviAmap(isPlay, false); } return; } - if (!PermissionUtil.isLocServiceEnable(mContext) || !PermissionUtil.checkPermission(mContext,new String[]{Manifest.permission.ACCESS_FINE_LOCATION})){ - ToastUtils.showShort("请开启车机定位后重试"); - if (mNaviChangedCallback != null){ - mNaviChangedCallback.reInitNaviAmap(isPlay,false); + if (!PermissionUtil.isLocServiceEnable(mContext) || !PermissionUtil.checkPermission(mContext, new String[]{Manifest.permission.ACCESS_FINE_LOCATION})) { + ToastCharterUtils.showToastShort("请开启车机定位后重试"); + if (mNaviChangedCallback != null) { + mNaviChangedCallback.reInitNaviAmap(isPlay, false); } return; } - CallerLogger.INSTANCE.i(M_TAXI + TAG, "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); - CallerLogger.INSTANCE.i(M_TAXI + TAG, "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); + CallerLogger.i(M_TAXI + TAG, "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail()); + CallerLogger.i(M_TAXI + TAG, "错误码详细链接见:http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/"); } + @Override public void onStartNavi(int type) { //开始导航回调 @@ -233,6 +240,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { public void onGpsOpenStatus(boolean enabled) { //GPS开关状态回调 } + @Override public void showModeCross(AMapModelCross aMapModelCross) { } @@ -258,7 +266,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { // //当前用户要执行的动作 // int recommend = aMapLaneInfo.frontLane[i]; // -// CallerLogger.INSTANCE.e(M_TAXI + "ggb", "---->>> background is " + background + " ; recommend is " + recommend); +// CallerLogger.e(M_TAXI + "ggb", "---->>> background is " + background + " ; recommend is " + recommend); // //根据文档中每个动作对应的枚举类型,显示对应的图片 // try { // sb.append(",第" + (i + 1) + "车道为" + array[background]); @@ -270,7 +278,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener { // e.printStackTrace(); // } // } -// CallerLogger.INSTANCE.e(M_TAXI + "showLaneInfo", sb.toString()); +// CallerLogger.e(M_TAXI + "showLaneInfo", sb.toString()); } @Override diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt index 887729704f..0a34893090 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/CommonAmapNaviVIew.kt @@ -134,7 +134,6 @@ class CommonAmapNaviVIew @JvmOverloads constructor( } override fun onNaviCancel() { - TODO("Not yet implemented") } override fun onNaviBackClick(): Boolean { @@ -170,11 +169,11 @@ class CommonAmapNaviVIew @JvmOverloads constructor( } override fun onMapTypeChanged(p0: Int) { - TODO("Not yet implemented") + } override fun onNaviViewShowMode(p0: Int) { - TODO("Not yet implemented") + } fun onCreate(savedInstanceState : Bundle?){ @@ -193,57 +192,57 @@ class CommonAmapNaviVIew @JvmOverloads constructor( amapNaviView.onDestroy() } - var array = arrayOf( - "直行车道", - "左转车道", - "左转或直行车道", - "右转车道", - "右转或直行车道", - "左掉头车道", - "左转或者右转车道", - " 左转或右转或直行车道", - "右转掉头车道", - "直行或左转掉头车道", - "直行或右转掉头车道", - "左转或左掉头车道", - "右转或右掉头车道", - "直行并且车道扩展", - "左转+左掉头+扩展", - "不可以选择该车道", - "直行+左转+左掉头车道", - "右转+左掉头", - "左转+右转+左掉头", - "直行+右转+左掉头", - "左转+右掉头", - "公交车道", - "空车道", - "可变车道" - ) +// var array = arrayOf( +// "直行车道", +// "左转车道", +// "左转或直行车道", +// "右转车道", +// "右转或直行车道", +// "左掉头车道", +// "左转或者右转车道", +// " 左转或右转或直行车道", +// "右转掉头车道", +// "直行或左转掉头车道", +// "直行或右转掉头车道", +// "左转或左掉头车道", +// "右转或右掉头车道", +// "直行并且车道扩展", +// "左转+左掉头+扩展", +// "不可以选择该车道", +// "直行+左转+左掉头车道", +// "右转+左掉头", +// "左转+右转+左掉头", +// "直行+右转+左掉头", +// "左转+右掉头", +// "公交车道", +// "空车道", +// "可变车道" +// ) - var actions = arrayOf( - "直行", - "左转", - "左转或直行", - "右转", - "右转或这行", - "左掉头", - "左转或者右转", - " 左转或右转或直行", - "右转掉头", - "直行或左转掉头", - "直行或右转掉头", - "左转或左掉头", - "右转或右掉头", - "直行并且车道扩展", - "左转+左掉头+扩展", - "不可以选择", - "直行+左转+左掉头", - "右转+左掉头", - "左转+右转+左掉头", - "直行+右转+左掉头", - "左转+右掉头", - "公交车道", - "空车道", - "可变车道" - ) +// var actions = arrayOf( +// "直行", +// "左转", +// "左转或直行", +// "右转", +// "右转或这行", +// "左掉头", +// "左转或者右转", +// " 左转或右转或直行", +// "右转掉头", +// "直行或左转掉头", +// "直行或右转掉头", +// "左转或左掉头", +// "右转或右掉头", +// "直行并且车道扩展", +// "左转+左掉头+扩展", +// "不可以选择", +// "直行+左转+左掉头", +// "右转+左掉头", +// "左转+右转+左掉头", +// "直行+右转+左掉头", +// "左转+右掉头", +// "公交车道", +// "空车道", +// "可变车道" +// ) } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt index 79444f76f5..10bbe0ded4 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt @@ -599,8 +599,10 @@ object CoordinateCalculateRouteUtil { mRoutePoints: List, location: MogoLocation, type:Int, - size:Int = 4 + size:Int = 4, + useHeading:Boolean = true, ): Triple { + val startTime = System.currentTimeMillis() Logger.d(SceneConstant.M_OCHCOMMON + "calculateRouteSumLength", "参数:[$preIndex $endIndex) mRoutePoints:${mRoutePoints.size} type:$type size:$size" + " location:(${location.latitude},${location.longitude},${location.heading})") @@ -615,9 +617,9 @@ object CoordinateCalculateRouteUtil { latLngIndex.longitude, latLngIndex.latitude ) - distanceMap[DistanceDegree(distance, null,null)] = index + distanceMap[DistanceDegree.obtain(distance, null,null)] = index if (distanceMap.size > size) { - distanceMap.pollLastEntry() + distanceMap.pollLastEntry()?.key?.recycle() } } distanceMap.forEach { @@ -687,6 +689,12 @@ object CoordinateCalculateRouteUtil { // 通过航向角过滤一遍 if(distanceDegree.degree!=null&&DrivingDirectionUtils.getAngleDiff(location.heading, distanceDegree.degree!!)<90){ currentIndex = pointIndex + val iterator1 = distanceMap.iterator() + while (iterator1.hasNext()) { + iterator1.next().key.recycle() + iterator1.remove() + } + distanceMap.clear() return Triple(currentIndex,distanceDegree.isNext,distanceDegree.distance) } } @@ -701,12 +709,14 @@ object CoordinateCalculateRouteUtil { val next = iterator.next() val key = next.key if (key.degree == null) { + key.recycle() iterator.remove() } else { - if (location.heading != 0.0) { + if (location.heading != 0.0 && useHeading) { key.degree?.let { val dexAngle = DrivingDirectionUtils.getAngleDiff(location.heading, it) if (dexAngle > 90) { + key.recycle() iterator.remove() } } @@ -715,6 +725,14 @@ object CoordinateCalculateRouteUtil { } if(distanceMap.size==0&&size<16){ + val iterator1 = distanceMap.iterator() + while (iterator1.hasNext()) { + iterator1.next().key.recycle() + iterator1.remove() + } + distanceMap.clear() + Logger.d(SceneConstant.M_OCHCOMMON + "calculateRouteSumLength", + "计算时间:${startTime-System.currentTimeMillis()}") return getNearestPointInfo(preIndex,endIndex,mRoutePoints,location,type,size+2) } @@ -734,9 +752,25 @@ object CoordinateCalculateRouteUtil { if(preIndexDistance!=null&&preIndexNextDistance!=null){ if(preIndexDistance!!.distancemiddleVale){ + key.recycle() iteratorRemove.remove() } } @@ -773,6 +808,7 @@ object CoordinateCalculateRouteUtil { val next = iteratorRemove.next() val key = next.key if(next.value 0) { + stringBuffer.append(m < 10 ? ("0" + m) : m).append(":"); + }else { + stringBuffer.append("00:"); + } + stringBuffer.append(s < 10 ? ("0" + s) : s); + return stringBuffer.toString(); + + } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt new file mode 100644 index 0000000000..e60bb084d5 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt @@ -0,0 +1,154 @@ +package com.mogo.och.common.module.utils + +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.graphics.drawable.BitmapDrawable +import android.os.Handler +import android.os.Looper +import android.widget.ImageView +import com.mogo.commons.AbsMogoApplication +import java.lang.ref.SoftReference + +class FrameAnimatorContainer (resId: Int, fps: Int, imageView: ImageView,initFirstFrame:Boolean = true){ + private lateinit var mFrames: IntArray // 帧数组 + private var mIndex = 0 // 当前帧 + private var mShouldRun = false // 开始/停止播放用 + private var mIsRunning = false // 动画是否正在播放,防止重复播放 + private var mSoftReferenceImageView: SoftReference? = null // 软引用ImageView,以便及时释放掉 + private var mHandler: Handler? = null + private var mDelayMillis = 0 + private var mOnAnimationStoppedListener: OnAnimationStoppedListener? = null//播放停止监听 + private var mBitmap: Bitmap? = null + private var mBitmapOptions: BitmapFactory.Options? = null //Bitmap管理类,可有效减少Bitmap的OOM问题 + + init { + createAnimation(imageView, getData(resId), fps,initFirstFrame) + } + + private fun createAnimation(imageView: ImageView, frames: IntArray, fps: Int, initFirstFrame:Boolean) { + mHandler = Handler(Looper.myLooper()!!) + mFrames = frames + mIndex = -1 + mSoftReferenceImageView = SoftReference(imageView) + mShouldRun = false + mIsRunning = false + mDelayMillis = 1000 / fps //帧动画时间间隔,毫秒 + if(initFirstFrame) { + imageView.setImageResource(mFrames[0]) + } + + // 当图片大小类型相同时进行复用,避免频繁GC + val bmp = (imageView.drawable as BitmapDrawable).bitmap + val width = bmp.width + val height = bmp.height + val config = bmp.config + mBitmap = Bitmap.createBitmap(width, height, config) + mBitmapOptions = BitmapFactory.Options() + //设置Bitmap内存复用 + mBitmapOptions!!.inBitmap = mBitmap //Bitmap复用内存块,类似对象池,避免不必要的内存分配和回收 + mBitmapOptions!!.inMutable = true //解码时返回可变Bitmap + mBitmapOptions!!.inSampleSize = 1 //缩放比例 + } + + //循环读取下一帧 + private val next: Int + get() { + mIndex++ + if (mIndex >= mFrames.size) mIndex = 0 + return mFrames[mIndex] + } + + @Synchronized + fun reStart(){ + mIndex = 0 + start() + } + + /** + * 播放动画,同步锁防止多线程读帧时,数据安全问题 + */ + @Synchronized + fun start() { + mShouldRun = true + if (mIsRunning) return + val runnable: Runnable = object : Runnable { + override fun run() { + val imageView = mSoftReferenceImageView!!.get() + if (!mShouldRun || imageView == null) { + mIsRunning = false + if (mOnAnimationStoppedListener != null) { + mOnAnimationStoppedListener!!.AnimationStopped() + } + return + } + mIsRunning = true + //新开线程去读下一帧 + mHandler!!.postDelayed(this, mDelayMillis.toLong()) + if (imageView.isShown) { + val imageRes: Int = next + if (mBitmap != null) { // so Build.VERSION.SDK_INT >= 11 + var bitmap: Bitmap? = null + try { + bitmap = BitmapFactory.decodeResource( + imageView.resources, + imageRes, + mBitmapOptions + ) + } catch (e: Exception) { + e.printStackTrace() + } + if (bitmap != null) { + imageView.setImageBitmap(bitmap) + } else { + imageView.setImageResource(imageRes) + mBitmap!!.recycle() + mBitmap = null + } + } else { + imageView.setImageResource(imageRes) + } + } + } + } + mHandler!!.post(runnable) + } + + /** + * 停止播放 + */ + @Synchronized + fun stop() { + mShouldRun = false + } + + /** + * 设置停止播放监听 + * @param listener 设置监听 + */ + fun setOnAnimStopListener(listener: OnAnimationStoppedListener?) { + mOnAnimationStoppedListener = listener + } + + /** + * 从xml中读取帧数组 + * @param resId + * @return + */ + private fun getData(resId: Int): IntArray { + val array = AbsMogoApplication.getApp().resources.obtainTypedArray(resId) + val len = array.length() + val intArray = IntArray(array.length()) + for (i in 0 until len) { + intArray[i] = array.getResourceId(i, 0) + } + array.recycle() + return intArray + } + + /** + * 停止播放监听 + */ + interface OnAnimationStoppedListener { + fun AnimationStopped() + } +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/PinYinUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/PinYinUtil.java index 543a898081..590d160de9 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/PinYinUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/PinYinUtil.java @@ -1,7 +1,5 @@ package com.mogo.och.common.module.utils; -import net.sourceforge.pinyin4j.PinyinHelper; - /** * @author: wangmingjun * @date: 2021/11/26 @@ -13,19 +11,6 @@ public class PinYinUtil { * @return 大写首字母缩写的字符串 */ public static String getPinYinHeadChar(String str) { - str = str.replaceAll("[\\p{P}‘’“”|+=¥$<>^~~]", ""); - StringBuilder convert = new StringBuilder(); - for (int j = 0; j < str.length(); j++) { - char word = str.charAt(j); - String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); - if (pinyinArray != null) { - convert.append(pinyinArray[0].charAt(0)); - } else { - if (!"".equals(String.valueOf(word).trim())){ - convert.append(word); - } - } - } - return convert.toString().trim().toUpperCase(); + return str; } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt index cb6cbd7dbd..8d41c08fec 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt @@ -1,11 +1,19 @@ package com.mogo.och.common.module.utils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable +import io.reactivex.exceptions.UndeliverableException +import io.reactivex.plugins.RxJavaPlugins +import java.io.IOException import java.util.concurrent.TimeUnit +import io.reactivex.functions.Consumer object RxUtils { + + private const val TAG = "RxUtils" fun disposeSubscribe(subscribe: Disposable?) { subscribe?.let { if (!it.isDisposed) { @@ -21,6 +29,12 @@ object RxUtils { function.invoke() } } + fun createSubscribeOnOwnThread(delay: Long=2000, function: () -> Unit): Disposable? { + return Observable.timer(delay, TimeUnit.MILLISECONDS) + .subscribe { + function.invoke() + } + } fun isDisposed(disposable: Disposable?):Boolean{ if(disposable!=null){ @@ -29,4 +43,41 @@ object RxUtils { return false } + + // 调用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 + fun errCatch(){ + RxJavaPlugins.setErrorHandler(Consumer { e -> + if (e is UndeliverableException) { + CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "UndeliverableException") + return@Consumer + } + if (e is IOException) { // + // fine, irrelevant network problem or API that throws on cancellation + CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "IOException") + return@Consumer + } + if (e is InterruptedException) { + // fine, some blocking code was interrupted by a dispose call + CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "InterruptedException") + return@Consumer + } + if (e is NullPointerException || e is IllegalArgumentException) { + // that's likely a bug in the application + CallerLogger.d( + SceneConstant.M_OCHCOMMON + TAG, + "NullPointerException or IllegalArgumentException" + ) + Thread.currentThread().uncaughtExceptionHandler?.uncaughtException(Thread.currentThread(), e) + return@Consumer + } + if (e is IllegalStateException) { + // that's a bug in RxJava or in a custom operator + CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "IllegalStateException") + Thread.currentThread().uncaughtExceptionHandler?.uncaughtException(Thread.currentThread(), e) + return@Consumer + } + CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "Undeliverable exception") + }) + } } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java index cdfe46ed50..248eb054cb 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/ToastUtilsOch.java @@ -4,7 +4,7 @@ import android.content.Context; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils; public class ToastUtilsOch { @@ -17,9 +17,9 @@ public class ToastUtilsOch { return; } if (DebugConfig.isDebug()) { - ToastUtils.showShort(code+","+message); + ToastCharterUtils.showToastShort(code+","+message); }else { - ToastUtils.showShort(message); + ToastCharterUtils.showToastShort(message); } } @@ -36,9 +36,9 @@ public class ToastUtilsOch { public static void toastRequestError(Context context,String failMsg){ if (!NetworkUtils.isConnected(context)) { - ToastUtils.showShort("网络异常,请稍后重试"); + ToastCharterUtils.showToastShort("网络异常,请稍后重试"); }else { - ToastUtils.showShort(failMsg); + ToastCharterUtils.showToastShort(failMsg); } } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt new file mode 100644 index 0000000000..dcfd21e62c --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/DriverConnectStatusView.kt @@ -0,0 +1,47 @@ +package com.mogo.och.common.module.wigets + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import androidx.appcompat.widget.AppCompatImageView +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.R +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.common.module.manager.loopmanager.LoopInfo + +class DriverConnectStatusView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : AppCompatImageView(context, attrs, defStyleAttr) { + companion object { + const val TAG = "StatusBarView" + } + + init { + setImageResource(R.drawable.driver_connect_statis) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::showConnectStatusWithDriver)) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + BizLoopManager.removeLoopFunction(TAG) + } + + private fun showConnectStatusWithDriver(){ + UiThreadHandler.post { + CallerLogger.d(TAG,"司机屏连接状态:${CallerTelematicManager.getClientConnStatus()}") + visibility = if(CallerTelematicManager.getClientConnStatus()){ + View.GONE + }else{ + View.VISIBLE + } + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MineGradientDrawable.kt similarity index 90% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MineGradientDrawable.kt index fce4124456..9d2d711134 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/drawable/MineGradientDrawable.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MineGradientDrawable.kt @@ -1,8 +1,7 @@ -package com.yangyakun.main.ui.loading.drawable +package com.mogo.och.common.module.wigets import android.graphics.* import android.graphics.drawable.Drawable -import android.util.Log import androidx.core.graphics.toRectF /** @@ -18,7 +17,7 @@ class MineGradientDrawable(colorStart: Int = Color.BLUE,colorEnd:Int = Color.RED private var colorWith = 4f private var transparentWidth = 4f - private var index = arrayOf(0.53,0.76,0.92) + private var index = doubleArrayOf(0.53,0.76,0.92) private var tartHeight = 0 private var heightDex = 0 @@ -29,9 +28,8 @@ class MineGradientDrawable(colorStart: Int = Color.BLUE,colorEnd:Int = Color.RED this.colorStart = colorStart this.colorEnd = colorEnd this.tartHeight = height - Color.TRANSPARENT mPaint.isAntiAlias = true - index.forEachIndexed { index, d -> + index.forEachIndexed { _, d -> currendDex += (1-d)/2 } } @@ -51,14 +49,13 @@ class MineGradientDrawable(colorStart: Int = Color.BLUE,colorEnd:Int = Color.RED var countstep = 0 while (true){ val rectF = rect.toRectF() - var height = 0f - height = if(rect.height()>tartHeight){ + val height: Float = if(rect.height()>tartHeight){ tartHeight.toFloat() }else{ rectF.bottom - rectF.top } // 计算前几个和后几个特殊高度递增和递减 - var dex = 0f; + var dex = 0f if(countstep() + + init { + mContext = context + LayoutInflater.from(context).inflate(R.layout.start_autopilot_animation_view, this, true) + } + + fun playDI(){ + try { + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(mContext , R.raw.startautopilot) + }catch (e: Exception){ + e.printStackTrace() + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + } + + fun show(direction: DirectionEnum, time: Long) { + showWarning(direction, time) + } + + fun dismiss(direction: DirectionEnum) { + dismissWarning(direction) + cancelCountdown() + } + + fun cancelCountdown(){ //防止内存泄漏 + startTimer?.cancel() + startTimer = null + } + + /** + * 展示指定方位上的红框预警 + * @param direction + * @see WarningDirectionEnum + */ + private fun showWarning(direction: DirectionEnum, time: Long = ALL_CLOSE_TIMER) { + //开始倒计时 + countDownTimer() + + // 如果传入的不是关闭显示,则设置倒计时,定时关闭红框警示 + if (oldDirection.get() == direction) { + removeCallbacks(closeWarningTask) + postDelayed(closeWarningTask, time) + return + } + if (direction != DirectionEnum.ALERT_WARNING_NON) { + oldDirection.set(direction) + removeCallbacks(closeWarningTask) + postDelayed(closeWarningTask, time) + } + post { + if (direction == DirectionEnum.ALERT_WARNING_TOP){ + startAutopilotTipImg.visibility = View.VISIBLE + startAutopilotTip.visibility = View.VISIBLE + } + + if (direction == DirectionEnum.ALERT_WARNING_NON) { + dismissWarning(DirectionEnum.ALERT_WARNING_TOP) + } else { + val alphaAnimation = AlphaAnimation(0f, 0.88f) + alphaAnimation.duration = 600 + alphaAnimation.interpolator = LinearInterpolator() + alphaAnimation.repeatCount = Animation.INFINITE + alphaAnimation.repeatMode = Animation.REVERSE + startAnimation(alphaAnimation) + } + } + } + + private fun dismissWarning(direction: DirectionEnum) { + if (direction == DirectionEnum.ALERT_WARNING_NON) { + return + } + removeCallbacks(closeWarningTask) + post { + when (direction) { + DirectionEnum.ALERT_WARNING_TOP -> { + startAutopilotTipImg.visibility = View.GONE + startAutopilotTip.visibility = View.GONE + } + else -> { + CallerLogger.d("$M_HMI$TAG", "Not Support Direction") + } + } + clearAnimation() + this.oldDirection.set(null) + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + } + + enum class DirectionEnum( + var direction: Int, + ) { + ALERT_WARNING_NON( + 0), + ALERT_WARNING_TOP( + 1) + } + + private fun countDownTimer() { + + startAutopilotTip.visibility = VISIBLE + + startTimer = object : CountDownTimer(ALL_CLOSE_TIMER, 1000L) {// 5倒计时后开启自驾 + + @SuppressLint("SetTextI18n") + override fun onTick(millisUntilFinished: Long) { + // 倒计时 + UiThreadHandler.post { + startAutopilotTip.text = "${(millisUntilFinished/1000).toInt()} 车辆即将自动开启自动驾驶" + } + playDI() + } + + override fun onFinish() { + //倒计时结束了... + UiThreadHandler.post { + startAutopilotTip.text = "车辆正在自动开启自动驾驶" + } + } + } + + startTimer?.start() + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt new file mode 100644 index 0000000000..932b1632f7 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterUtils.kt @@ -0,0 +1,91 @@ +package com.mogo.och.common.module.wigets.toast + +import android.view.Gravity +import android.view.View +import androidx.annotation.StringRes +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.eagle.core.utilcode.util.StringUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import me.jessyan.autosize.utils.AutoSizeUtils + +object ToastCharterUtils { + const val TAG = "ToastCharterUtils" + + private val toastUtils = ToastUtils().setGravity(Gravity.CENTER or Gravity.FILL_HORIZONTAL, 0, 0) + + @JvmStatic + fun showToastLong(toastText: String){ + if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) { + showCharterLongToast(toastText) + }else{ + ToastUtils.showLong(toastText) + } + } + + @JvmStatic + fun showToastShort(toastText: String?){ + toastText?.let { + if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) { + showCharterShortToast(toastText) + }else{ + ToastUtils.showShort(toastText) + } + } + } + + @JvmStatic + fun showToastShort(@StringRes resId: Int, vararg args: Any?) { + val string = StringUtils.getString(resId, args) + string?.let { + showToastShort(it) + } + } + @JvmStatic + fun showToastShort(@StringRes resId: Int) { + val string = StringUtils.getString(resId) + string?.let { + showToastShort(it) + } + } + + + fun showCharterLongToast(toastText: String) { + val context = ActivityUtils.getTopActivity() + val marker = ToastCharterView(context) + marker.setText(toastText) + marker.measure( + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) + ) + marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) + ToastUtils.showLongWithmarker(marker, toastUtils) + } + + private fun showCharterShortToast(toastText: String?) { + toastText?.let { + val context = ActivityUtils.getTopActivity() + val marker = ToastCharterView(context) + marker.setText(toastText) + marker.measure( + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 145f), + View.MeasureSpec.UNSPECIFIED + ), + View.MeasureSpec.makeMeasureSpec( + AutoSizeUtils.dp2px(context, 34f), + View.MeasureSpec.EXACTLY + ) + ) + marker.layout(0, 0, marker.measuredWidth, marker.measuredHeight) + ToastUtils.showShortWithmarker(marker, toastUtils) + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ToastCharterView.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterView.kt similarity index 87% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ToastCharterView.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterView.kt index 314280bcf7..27807b3950 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/view/ToastCharterView.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/toast/ToastCharterView.kt @@ -1,10 +1,10 @@ -package com.mogo.och.bus.passenger.view +package com.mogo.och.common.module.wigets.toast import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.och.bus.passenger.R +import com.mogo.och.common.module.R import kotlinx.android.synthetic.main.charter_p_view_toast.view.* class ToastCharterView @JvmOverloads constructor( diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_debug_view_password.png b/OCH/mogo-och-common-module/src/main/res/drawable-nodpi/charter_p_debug_view_password.png similarity index 100% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_debug_view_password.png rename to OCH/mogo-och-common-module/src/main/res/drawable-nodpi/charter_p_debug_view_password.png diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_bg.xml b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_bg.xml similarity index 78% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_bg.xml rename to OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_bg.xml index 39850c37aa..34b6cfc3fc 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_bg.xml +++ b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_bg.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_cancle.xml b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_cancle.xml similarity index 78% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_cancle.xml rename to OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_cancle.xml index c061ab1fa0..ebc348c24f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_cancle.xml +++ b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_cancle.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_edit_bg.xml b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_edit_bg.xml similarity index 78% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_edit_bg.xml rename to OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_edit_bg.xml index 204ecfe5e2..2cf51a6c09 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_edit_bg.xml +++ b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_edit_bg.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_submit.xml b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_submit.xml similarity index 78% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_submit.xml rename to OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_submit.xml index cd71d5703f..a62507c38d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_debugview_submit.xml +++ b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_debugview_submit.xml @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_toast_shape.xml b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_toast_shape.xml similarity index 77% rename from OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_toast_shape.xml rename to OCH/mogo-och-common-module/src/main/res/drawable/charter_p_toast_shape.xml index bfa4b479b1..144a69aabe 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_toast_shape.xml +++ b/OCH/mogo-och-common-module/src/main/res/drawable/charter_p_toast_shape.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/drawable/driver_connect_statis.xml b/OCH/mogo-och-common-module/src/main/res/drawable/driver_connect_statis.xml new file mode 100644 index 0000000000..3dde439fdb --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/res/drawable/driver_connect_statis.xml @@ -0,0 +1,5 @@ + + + diff --git a/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_animation_bkg_top.xml b/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_animation_bkg_top.xml new file mode 100644 index 0000000000..bdea1df71c --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_animation_bkg_top.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_tip_bkg_top.xml b/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_tip_bkg_top.xml new file mode 100644 index 0000000000..203bde5b74 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/res/drawable/start_autopilot_tip_bkg_top.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/charter_p_view_toast.xml b/OCH/mogo-och-common-module/src/main/res/layout/charter_p_view_toast.xml similarity index 85% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/charter_p_view_toast.xml rename to OCH/mogo-och-common-module/src/main/res/layout/charter_p_view_toast.xml index 4dc65ef199..39f96b1362 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/charter_p_view_toast.xml +++ b/OCH/mogo-och-common-module/src/main/res/layout/charter_p_view_toast.xml @@ -4,7 +4,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="wrap_content" + android:gravity="center" + android:layout_width="match_parent" android:layout_height="wrap_content"> diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_debugview_pass.xml b/OCH/mogo-och-common-module/src/main/res/layout/m1_debugview_pass.xml similarity index 98% rename from OCH/mogo-och-charter-passenger/src/main/res/layout/m1_debugview_pass.xml rename to OCH/mogo-och-common-module/src/main/res/layout/m1_debugview_pass.xml index 873316e934..d6c0a9bbc7 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_debugview_pass.xml +++ b/OCH/mogo-och-common-module/src/main/res/layout/m1_debugview_pass.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/bus_p_m1_80000000" + android:background="@color/common_80000000" tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/raw/startautopilot.wav b/OCH/mogo-och-common-module/src/main/res/raw/startautopilot.wav new file mode 100644 index 0000000000..528c6fb9b0 Binary files /dev/null and b/OCH/mogo-och-common-module/src/main/res/raw/startautopilot.wav differ diff --git a/OCH/mogo-och-common-module/src/main/res/values/colors.xml b/OCH/mogo-och-common-module/src/main/res/values/colors.xml index f4d8555616..0755fb7f2c 100644 --- a/OCH/mogo-och-common-module/src/main/res/values/colors.xml +++ b/OCH/mogo-och-common-module/src/main/res/values/colors.xml @@ -14,4 +14,12 @@ #66B8BFE8 #3B4577 + + #80000000 + #1466FB + #E0EFFF + #B8C2D7 + #B8C2D8 + #203555 + #B3EFF6FF \ No newline at end of file diff --git a/OCH/mogo-och-data/build.gradle b/OCH/mogo-och-data/build.gradle index ae9cbd0b40..91ba454fa1 100644 --- a/OCH/mogo-och-data/build.gradle +++ b/OCH/mogo-och-data/build.gradle @@ -33,7 +33,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxccorektx implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.material diff --git a/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml b/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml index 8cb712a588..70e98f5895 100644 --- a/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml +++ b/OCH/mogo-och-noop/src/main/res/layout/och_noop_fragment_hmi.xml @@ -131,16 +131,6 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/AndroidManifest.xml b/OCH/mogo-och-taxi-passenger/src/main/AndroidManifest.xml deleted file mode 100644 index 84947cad22..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/AndroidManifest.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ICallback.aidl b/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ICallback.aidl deleted file mode 100644 index a3a46acde7..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ICallback.aidl +++ /dev/null @@ -1,12 +0,0 @@ -// ICallback.aidl -package com.mogo.och.taxi.passenger.mulprocess; - -// Declare any non-default types here with import statements - -interface ICallback { - - void onResult(long meters, long timeInSecond,float speed); - - void postEvent(int type); - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ILeftMenuService.aidl b/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ILeftMenuService.aidl deleted file mode 100644 index ab9159d363..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/aidl/com/mogo/och/taxi/passenger/mulprocess/ILeftMenuService.aidl +++ /dev/null @@ -1,19 +0,0 @@ -// ILeftMenuService.aidl -package com.mogo.och.taxi.passenger.mulprocess; - -import com.mogo.och.taxi.passenger.mulprocess.ICallback; - -// Declare any non-default types here with import statements - -interface ILeftMenuService { - - /** - * Pass the selected item to the main process - */ - void transmissionIndex(int index); - - void registerCallback(in ICallback cb); - - void unRegisterCallback(in ICallback cb); - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java deleted file mode 100644 index badb7dee50..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.taxi.passenger.callback; - - -import com.amap.api.maps.model.LatLng; -import com.mogo.eagle.core.data.map.MogoLocation; - -import java.util.List; - -import mogo.telematics.pad.MessagePad; -/** - * @author: wangmingjun - * @date: 2021/11/1 - */ -public interface IOCHTaxiPassengerAutopilotPlanningCallback { - void setLineMarker(LatLng startStation,LatLng endStation); - void routeResultByServer(List routeArriviedTemp, List routeArrivingTemp, MogoLocation location); - void showRottingMapView(); -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITPClickStartAutopilotCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITPClickStartAutopilotCallback.java deleted file mode 100644 index bf55573adc..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITPClickStartAutopilotCallback.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.mogo.och.taxi.passenger.callback; - -public interface ITPClickStartAutopilotCallback { - void onClickCallback(); -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java deleted file mode 100644 index 8a726a52d2..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/ITaxiPassengerScoreCallback.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.mogo.och.taxi.passenger.callback; - -import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; - -public interface ITaxiPassengerScoreCallback { - void onScoreCallback(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean); -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/event/UIStatus.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/event/UIStatus.java deleted file mode 100644 index 83c06dfa6e..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/event/UIStatus.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.taxi.passenger.event; - -public class UIStatus { - - public static final int LIVE = 0; - public static final int OVERVIEW = 1; - public static final int CONSULT = 2; - public static final int MOVIE = 3; - - public int status = LIVE; - - public UIStatus(int status) { - this.status = status; - } - -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java deleted file mode 100644 index c43702af78..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.mogo.och.taxi.passenger.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -import android.content.Context; - -import com.amap.api.services.core.AMapException; -import com.amap.api.services.core.LatLonPoint; -import com.amap.api.services.geocoder.GeocodeResult; -import com.amap.api.services.geocoder.GeocodeSearch; -import com.amap.api.services.geocoder.RegeocodeQuery; -import com.amap.api.services.geocoder.RegeocodeResult; -import com.amap.api.services.geocoder.RegeocodeRoad; -import com.mogo.eagle.core.network.utils.GsonUtil; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback; - -import java.util.List; -import java.util.Timer; -import java.util.TimerTask; - -/** - * @author: wangmingjun - * @date: 2021/12/6 - */ -public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeSearchListener { - - private final String TAG = TaxiPassengerGeocodeSearchModel.class.getSimpleName(); - - private static Context mContext; - - private IOCHTaxiPassengerNaviChangedCallback mNaviChangedCallback; - - GeocodeSearch mGeocodeSearch = null; - - private String roadName = ""; - - private Timer timer ; - - TimerTask timerTask; - - public static TaxiPassengerGeocodeSearchModel getInstance(Context context) { - mContext = context; - return SingletonHolder.INSTANCE; - } - - private static final class SingletonHolder { - private static final TaxiPassengerGeocodeSearchModel INSTANCE = new TaxiPassengerGeocodeSearchModel(); - } - - private TaxiPassengerGeocodeSearchModel(){ - } - - public void initGeocodeSearch(){ - //通过经纬度逆地理编码得到位置 - try { - mGeocodeSearch = new GeocodeSearch(mContext); - mGeocodeSearch.setOnGeocodeSearchListener(this); - } catch (AMapException e) { - e.printStackTrace(); - } - timer = new Timer(); - timerTask = new TimerTask() { - @Override - public void run() { - if (mNaviChangedCallback != null){ - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "roadName道路名称: " + roadName); - mNaviChangedCallback.onCurrentRoadName(roadName); - } - } - }; - try{ - timer.schedule(timerTask,500,2000); - }catch (Exception e){ - e.printStackTrace(); - } - } - - public void searchLocationInfo(double lat, double lon){ - if (null != mGeocodeSearch){ - LatLonPoint latLng = new LatLonPoint(lat, lon); - //第一个参数表示一个Latlng,第二参数表示范围多少米,第三个参数表示是火系坐标系还是GPS原生坐标系 - RegeocodeQuery query = new RegeocodeQuery(latLng, 200, GeocodeSearch.AMAP); - mGeocodeSearch.getFromLocationAsyn(query); - } - } - - public void destroyGeocodeSearch(){ - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "destroyGeocodeSearch"); - if (mGeocodeSearch != null){ - mGeocodeSearch = null; - } - if (mNaviChangedCallback != null){ - mNaviChangedCallback = null; - } - if (null != timer){ - timer.cancel(); - } - if (null != timerTask){ - timerTask = null; - } - roadName = ""; - } - - public void setOCHTaciNaviChangedCallback(IOCHTaxiPassengerNaviChangedCallback callback){ - this.mNaviChangedCallback = callback; - } - - @Override - public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {//更新频率几十 ms, 暂定更新UI为2s一次 - if (regeocodeResult != null) { - List roads = regeocodeResult.getRegeocodeAddress().getRoads(); - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "位置roads:" + GsonUtil.jsonFromObject(roads)); - if (roads != null && roads.size() > 0){ - roadName = roads.get(0).getName();//当前路的名字 -// mNaviChangedCallback.onCurrentRoadName(roads.get(0).getName()); - } - } - } - - @Override - public void onGeocodeSearched(GeocodeResult geocodeResult, int i) { - - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java deleted file mode 100644 index f95bba5744..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ /dev/null @@ -1,1078 +0,0 @@ -package com.mogo.och.taxi.passenger.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -import android.content.Context; -import android.content.Intent; -import android.net.ConnectivityManager; -import android.os.Looper; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.amap.api.maps.model.LatLng; -import com.amap.api.navi.model.NaviLatLng; -import com.elegant.network.utils.GsonUtil; -import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; -import com.mogo.commons.module.intent.IMogoIntentListener; -import com.mogo.commons.module.intent.IntentManager; -import com.mogo.commons.module.status.IMogoStatusChangedListener; -import com.mogo.commons.module.status.MogoStatusManager; -import com.mogo.commons.module.status.StatusDescriptor; -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.enums.DataSourceType; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.data.msgbox.MsgBoxBean; -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.autopilot.IMoGoPlanningRottingListener; -import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener; -import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener; -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.CallerChassisLocationGCJ02ListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager; -import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; -import com.mogo.eagle.core.utilcode.util.CoordinateUtils; -import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.distancemamager.IDistanceListener; -import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener; -import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager; -import com.mogo.och.common.module.map.AmapNaviToDestinationModel; -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; -import com.mogo.och.common.module.utils.PinYinUtil; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerAutopilotPlanningCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback; -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback; -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonValueCallback; -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerVeloctityCallback; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; -import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager; -import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils; -import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager; - -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; -import io.reactivex.exceptions.UndeliverableException; -import io.reactivex.functions.Consumer; -import io.reactivex.plugins.RxJavaPlugins; -import mogo.telematics.pad.MessagePad; -import mogo_msg.MogoReportMsg; -import system_master.SystemStatusInfo; - -/** - * Created by pangfan on 2021/8/19 - * - * 网约车 - 出租车业务逻辑处理 - */ -public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback { - - private static final String TAG = TaxiPassengerModel.class.getSimpleName(); - - private static final class SingletonHolder { - private static final TaxiPassengerModel INSTANCE = new TaxiPassengerModel(); - } - - public static TaxiPassengerModel getInstance() { - return SingletonHolder.INSTANCE; - } - - private Context mContext; - private volatile TaxiPassengerOrderQueryRespBean.Result mCurrentOCHOrder; //当前订单 - private volatile List mInServiceList = Collections.emptyList(); //进行中订单 - private volatile List mWaitServiceList = Collections.emptyList(); //待服务订单 - - private IOCHTaxiPassengerADASStatusCallback mADASStatusCallback; //Model->Presenter:自动驾驶状态相关 - private IOCHTaxiPassengerAutopilotPlanningCallback mAutopilotPlanningCallback; //Model->Presenter:自动驾驶线路规划 - - private final Map mOrderStatusCallbackMap = new ConcurrentHashMap<>(); - private final Map mControllerStatusCallbackMap = new ConcurrentHashMap<>(); - - private ITaxiPassengerVeloctityCallback mVeloctityCallback;//道路限速返回 - - private int mPreRouteIndex = 0; - - private Disposable subscribe; - private int delayTime = 2; - - private double mLongitude, mLatitude; - private MogoLocation mLocation = null; - - private final List mLocationsModels = new ArrayList<>(); - - private TaxiPassengerModel() { - } - - public void setMoGoAutopilotPlanningListener(IOCHTaxiPassengerAutopilotPlanningCallback - moGoAutopilotPlanningCallback) { - this.mAutopilotPlanningCallback = moGoAutopilotPlanningCallback; - } - - public void setADASStatusCallback(IOCHTaxiPassengerADASStatusCallback callback) { - this.mADASStatusCallback = callback; - } - - public void setControllerStatusCallback(String tag,IOCHTaxiPassengerControllerStatusCallback callback) { - if (tag == null || "".equals(tag)) return; - - if (callback == null) { - mControllerStatusCallbackMap.remove(tag); - return; - } - - mControllerStatusCallbackMap.put(tag,callback); - - } - - public void setOrderStatusCallback(String tag ,IOCHTaxiPassengerOrderStatusCallback callback) { - if (tag == null || "".equals(tag)) return; - - if (callback == null) { - mOrderStatusCallbackMap.remove(tag); - return; - } - - mOrderStatusCallbackMap.put(tag,callback); - } - - public void setVeloctityCallback(ITaxiPassengerVeloctityCallback callback){ - this.mVeloctityCallback = callback; - } - - public void init( Context context ) { - mContext = context.getApplicationContext(); - initListeners(); - - // 调用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.INSTANCE.d(M_TAXI_P + TAG, "UndeliverableException"); - } - if ((e instanceof IOException)) {// - // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "IOException"); - return; - } - if (e instanceof InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "InterruptedException"); - return; - } - if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { - // that's likely a bug in the application - CallerLogger.INSTANCE.d(M_TAXI_P + 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.INSTANCE.d(M_TAXI_P + TAG, "IllegalStateException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"Undeliverable exception"); - } - }); - - startOrStopOrderLoop(); - } - - /** - * 订单轮询 初始化主Fragment的Presenter init 调用 - */ - public void startOrStopOrderLoop(){ - if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(true); - } - } - - /** - * 关闭订单轮训 页面摧毁时 - */ - public void release() { - startOrStopOrderLoop(false); - startOrStopQueryOrderRemaining(false); - releaseListeners(); - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - } - - private void initListeners() { - - // 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口 - CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener); - IntentManager.getInstance().registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener ); - MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); - // 定位监听 - CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10,mMapLocationListener); - - //2021.11.1 自动驾驶路线规划接口 - CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); - - //增加限速监听 - CallerLimitingVelocityListenerManager.INSTANCE.addListener(TAG,limitingVelocityListener); - - AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); - - //开启自驾后 异常信息返回 - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); - - CallerMsgBoxEventListenerManager.INSTANCE.addListener(TAG,iMsgBoxEventListener); - - TrajectoryAndDistanceManager.INSTANCE.addDistanceListener(TAG,distanceListener); - - TrajectoryAndDistanceManager.INSTANCE.addTrajectoryListener(TAG,trajectoryListener); - } - - private void releaseListeners() { - MogoStatusManager.getInstance().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); - - // 注销定位监听 - CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG); - - MogoAiCloudSocketManager.getInstance(mContext) - .unregisterLifecycleListener(10010); - - CallerAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); - CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); - CallerLimitingVelocityListenerManager.INSTANCE.removeListener(limitingVelocityListener); - - AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); - - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); - - CallerMsgBoxEventListenerManager.INSTANCE.removeListener(iMsgBoxEventListener); - - TrajectoryAndDistanceManager.INSTANCE.removeListener(TAG); - } - - /** - * 订单轮训 - * @param start true 开启订单轮训 - * false 关闭订单轮训 - */ - private void startOrStopOrderLoop(boolean start) { - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "startOrStopOrderLoop() " + start); - if (start) { - TaxiPassengerModelLoopManager.getInstance().startInAndWaitOrdersLoop(); - } else { - TaxiPassengerModelLoopManager.getInstance().stopInAndWaitOrdersLoop(); - } - } - - /** - * 查询订单状态:进行中/待服务(轮询防止因crash导致应用重启、断网没收到推送等) - * - * 注:只有在本地缓存mCurrentOCHOrder为null时(已完成or已取消有明确结果)或id相同且status不同时, - * 才更新最新进行中单到本地 - */ - public void queryInAndWaitOrders() { - TaxiPassengerServiceManager.queryOrdersInAndWaitService(mContext, - new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerOrdersInServiceQueryRespBean data) { - if (data == null || data.data == null) { - return; - } - - //1. 处理进行中订单 - mInServiceList = data.data.servicing; - if (data.data.servicing != null && !data.data.servicing.isEmpty()) { - // 1.1. 当存在进行中单时:对本地currentOrder进行更新 - if (mCurrentOCHOrder == null) { - //1.1.1. 当本地无currentOrder(已经完成or取消),则更新currentOrder,并通知ui更新 - updateNativeCurrentOrder(data.data.servicing.get(0)); - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } else { - //1.1.2. 当本地有currentOrder: - //orderId不一致时:通过currentOrder.orderId查询订单状态,并通知ui更新 - //orderId一致且orderStatus不一致时:则更新currentOrder,并通知ui更新 - if (!mCurrentOCHOrder.orderNo.equals(data.data.servicing.get(0).orderNo)) { - queryCurOrderStatus(); -// } else if (mCurrentOCHOrder.orderStatus != data.data.servicing.get(0).orderStatus) { - } else { //todo 订单拦截放到各自实现去做 - updateNativeCurrentOrder(data.data.servicing.get(0)); - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } - } - } else { - // 1.2. 当无进行中订单时:如果本地也无则跳过;如果本地仍存在currentOrder,查询此单(完成or取消)并通知ui更 - if (mCurrentOCHOrder != null) { - queryCurOrderStatus(); - } - recoverNaviInfo(); - } - } - - @Override - public void onError() { - - } - - @Override - public void onFail(int code, String msg) { - CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"queryInAndWaitOrders"+code+msg); - } - }); - } - - //仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder - private void queryCurOrderStatus() { - if (mCurrentOCHOrder == null) { - return; - } - final String orderNo = mCurrentOCHOrder.orderNo; - TaxiPassengerServiceManager.queryOrderById(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerOrderQueryRespBean data) { - if (data != null && data.data != null - && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(data.data.orderNo)) { - if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.getCode() - || data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.getCode() - || data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.getCode()) { - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderStatusChanged(data.data); - } - } - clearCurrentOCHOrder(); - } else { - updateNativeCurrentOrder(data.data); - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 获取当前订单 - public TaxiPassengerOrderQueryRespBean.Result getCurrentOCHOrder() { - return mCurrentOCHOrder; - } - - // 获取当前订单状态 - public TaxiPassengerOrderStatusEnum getCurOrderStatus() { - TaxiPassengerOrderQueryRespBean.Result order = TaxiPassengerModel.getInstance().getCurrentOCHOrder(); - if (order == null) { - return TaxiPassengerOrderStatusEnum.None; - } - return TaxiPassengerOrderStatusEnum.valueOf(order.orderStatus); - } - - //更新本地currentOrder信息,并保存订单到本地避免车机重启丢失数据 - private void updateNativeCurrentOrder(TaxiPassengerOrderQueryRespBean.Result data) { - if (data == null) { - return; - } - mCurrentOCHOrder = data; - SharedPrefsMgr.getInstance(mContext).putString(TaxiPassengerConst.SP_KEY_OCH_TAXI_ORDER, - GsonUtil.jsonFromObject(data)); - } - - //清除订单信息 - public void clearCurrentOCHOrder() { - mCurrentOCHOrder = null; - clearAutopilotControlParameters(); - SharedPrefsMgr.getInstance(mContext).remove(TaxiPassengerConst.SP_KEY_OCH_TAXI_ORDER); - } - - //检测当前订单 - public boolean checkCurrentOCHOrder() { - if ( mCurrentOCHOrder != null - && mCurrentOCHOrder.startSiteGcjPoint != null - && mCurrentOCHOrder.endSiteGcjPoint != null) { - return true; - } - return false; - } - - // TODO: 2021/9/12 - public void calculateTravelDistance(MogoLocation carLocation){ - if (checkCurrentOCHOrder() && mCurrentOCHOrder.endSiteGcjPoint.size()>0) { - double endLon = mCurrentOCHOrder.endSiteGcjPoint.get(0); - double endLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); - double distance = CoordinateUtils.calculateLineDistance( - endLon, endLat, - carLocation.getLongitude(), carLocation.getLatitude()); - mCurrentOCHOrder.decreaseTravelDistance(distance); - } - } - - - //监听网络变化,避免启动机器时无网导致无法更新订单信息 - private final IDistanceListener distanceListener = distance -> { - - }; - - private final ITrajectoryListener trajectoryListener = (routeArrivied, routeArriving, location) -> { - List routeArriviedTemp = new ArrayList<>(); - List routeArrivingTemp = new ArrayList<>(); - LatLng temp; - for (MogoLocation mogoLocation : routeArrivied) { - temp = new LatLng(mogoLocation.getLatitude(),mogoLocation.getLongitude()); - routeArriviedTemp.add(temp); - } - for (MogoLocation mogoLocation : routeArriving) { - temp = new LatLng(mogoLocation.getLatitude(),mogoLocation.getLongitude()); - routeArrivingTemp.add(temp); - } - mAutopilotPlanningCallback.routeResultByServer(routeArriviedTemp,routeArrivingTemp,location); - setRouteLineMarker(); - }; - private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { - @Override - public void onIntentReceived( String intentStr, Intent intent ) { - CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "onIntentReceived = %s", intentStr ); - if ( ConnectivityManager.CONNECTIVITY_ACTION.equals( intentStr ) ) { - if ( NetworkUtils.isConnected( mContext ) ) { - startOrStopOrderLoop(true); - } - } - } - }; - - private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { - // VR mode变更回调 - @Override - public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { - if (StatusDescriptor.VR_MODE == descriptor) { - if (mControllerStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){ - callback.onVRModeChanged(isTrue); - } - } - } - } - }; - - // 自车定位 - private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { - @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { - //位置变化时,通过围栏判断是否到达x点 - if (null == gnssInfo) return; - if (checkCurrentOCHOrder()) { - if (getCurOrderStatus() == TaxiPassengerOrderStatusEnum.OnTheWayToEnd) { - calculateTravelDistance(gnssInfo); - } - } - mLongitude = gnssInfo.getLongitude(); - mLatitude = gnssInfo.getLatitude(); - - mLocation = gnssInfo; - // CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"mLongitude = "+mLongitude+", mLatitude = "+mLatitude); - for (IOCHTaxiPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){ - callback.onCarLocationChanged(gnssInfo); - } - } - - }; - - private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){ - - @Override - public void onAutopilotDockerInfo(@NonNull String dockerVersion) { - } - - @Override - public void onAutopilotRouteLineId(long lineId) { - } - - @Override - public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { - } - - @Override - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - } - - @Override - public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { - } - - private boolean arriveAtEnd = false; //乘客app专用字段 - - @Override - public void onAutopilotStatusResponse(int state) { -// CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "state = %s", state ); - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); - if (mCurrentOCHOrder != null - && getCurOrderStatus() == TaxiPassengerOrderStatusEnum.UserArriveAtStart) { - TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); - startServicePilotDone(); - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { - if (FunctionBuildConfig.isDemoMode - && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - // 当美化模式(演示模式)开启时:且是乘客app、且未到终点时,维持自动驾驶icon开启状态 - if (!arriveAtEnd) { - return; - } else { - arriveAtEnd = false; - } - } - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable(); - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { - if (FunctionBuildConfig.isDemoMode - && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - // 当美化模式(演示模式)开启时:且是乘客app、且未到终点时,维持自动驾驶icon开启状态 - if (!arriveAtEnd) { - return; - } else { - arriveAtEnd = false; - } - } - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable(); - } - } - - @Override - public void onAutopilotSNRequest() { - } - - @Override - public void onAutopilotArriveAtStation(@Nullable MessagePad.ArrivalNotification arrivalNotification) { - if (FunctionBuildConfig.isDemoMode - && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - arriveAtEnd = true; - } - - if (arrivalNotification == null || !checkCurrentOCHOrder() - || (getCurOrderStatus() == TaxiPassengerOrderStatusEnum.ArriveAtEnd)) { - return; - } - } - - @Override - public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { - } - }; - - private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener(){ - - @Override - public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp routeList) { - if (null != routeList && routeList.getWayPointsList().size() > 0){ - calculateRouteLineSum(CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjListCommon(mContext,routeList.getWayPointsList())); - startToRouteAndWipe(routeList.getWayPointsList()); - } - } - - }; - - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { - @Override - public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { - TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage); - } - }; - - private final IMsgBoxEventListener iMsgBoxEventListener = new IMsgBoxEventListener() { - @Override - public void onBubbleReportClickEvent(@NonNull MsgBoxBean msgBoxBean) { - - } - - @Override - public void onBubbleV2XClickEvent(@NonNull MsgBoxBean msgBoxBean) { - - } - - @Override - public void onBubbleOperationClickEvent(@NonNull MsgBoxBean msgBoxBean) { - - } - - @Override - public void onUpdateTipEvent(boolean isShow) { - - } - - @Override - public void onSummaryClickEvent() { - if (mCurrentOCHOrder == null){ - ToastUtils.showLong("行程已结束"); - }else { - OverlayLeftViewUtils.INSTANCE.transmissionIndexGet(OverlayLeftViewUtils.OVERVIEW); - } - } - }; - - public void startToRouteAndWipe(List models) { - List locationsModels = CoordinateCalculateRouteUtil - .coordinateConverterWgsToGcjLocations(mContext,models); - mLocationsModels.clear(); - mLocationsModels.addAll(locationsModels); - startOrStopRouteAndWipe(true); - showRottingMapView(); - } - - public void showRottingMapView(){ - AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi(); - if (mAutopilotPlanningCallback != null){ - mAutopilotPlanningCallback.showRottingMapView(); - } - } - - public void startNaviByAmap() { - if (mCurrentOCHOrder != null && - mCurrentOCHOrder.orderStatus == TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode()){ - AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi(); - - double orderEndStationLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); - double orderEndStationLng = mCurrentOCHOrder.endSiteGcjPoint.get(0); - NaviLatLng startNaviLatLng = new NaviLatLng(mLatitude, mLongitude); - NaviLatLng endNaviLatLng = new NaviLatLng(orderEndStationLat,orderEndStationLng); - AmapNaviToDestinationModel.getInstance(mContext).initAMapNavi(startNaviLatLng, endNaviLatLng); - AmapNaviToDestinationModel.getInstance(mContext).setVoiceIsMute(false); - } - } - - /** - * 实时轨迹擦除 - * @param isStart - */ - public void startOrStopRouteAndWipe(boolean isStart){ - - } - - /** - * 设置小地图路径的起终点marker - */ - public void setRouteLineMarker(){ - if (mCurrentOCHOrder.startSiteGcjPoint == null || mCurrentOCHOrder.startSiteGcjPoint.isEmpty() || mCurrentOCHOrder.startSiteGcjPoint.size() < 2|| - mCurrentOCHOrder.endSiteGcjPoint == null || mCurrentOCHOrder.endSiteGcjPoint.isEmpty() || mCurrentOCHOrder.endSiteGcjPoint.size() < 2) { - setMarker(null,null); - return; - } - LatLng startStation = new LatLng(mCurrentOCHOrder.startSiteGcjPoint.get(1),mCurrentOCHOrder.startSiteGcjPoint.get(0)); - LatLng endStation = new LatLng(mCurrentOCHOrder.endSiteGcjPoint.get(1),mCurrentOCHOrder.endSiteGcjPoint.get(0)); - setMarker(startStation,endStation); - } - - private void setMarker(LatLng startStation,LatLng endStation){ - if (mAutopilotPlanningCallback != null) { - mAutopilotPlanningCallback.setLineMarker(startStation,endStation); - } - } - - /** - * 限速监听 - */ - private final ILimitingVelocityListener limitingVelocityListener = new ILimitingVelocityListener(){ - - @Override - public void onUnion(int limitingVelocity, @NonNull DataSourceType sourceType) { - - } - - @Override - public void onLimitingVelocityChange(int limitingVelocity, DataSourceType dataSourceType) { - if (mVeloctityCallback != null){ - mVeloctityCallback.onLimitingVelocityChange(limitingVelocity); - } - } - }; - - /** - * 导航订单起点到终点 获得剩余时间,里程,预计到达时间 - */ - public void initGeocodeSearch() { - if (mCurrentOCHOrder != null){ - TaxiPassengerGeocodeSearchModel.getInstance(mContext).initGeocodeSearch(); - TaxiPassengerGeocodeSearchModel.getInstance(mContext).setOCHTaciNaviChangedCallback(this); - } - } - - public void destoryGeocodeSearch(){ - TaxiPassengerGeocodeSearchModel.getInstance(mContext).destroyGeocodeSearch(); - } - - public void startOrStopQueryOrderRemaining(boolean isStart){ - if (isStart){ - TaxiPassengerModelLoopManager.getInstance().startQueryOrderRemainingLoop(); - }else { - TaxiPassengerModelLoopManager.getInstance().stopQueryOrderRemainingLoop(); - } - } - - /** - * 查询订单剩余里程和时间 - */ - public void queryOrderRemaining(){ - if (mCurrentOCHOrder == null) return; - TaxiPassengerServiceManager.queryOrderRemaining(mContext, mCurrentOCHOrder.orderNo, new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerOrderQueryRemainingResp data) { - if (data != null && data.data!=null){ - CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"distance = "+data.data.distance+" ,duration = "+data.data.duration); - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderDistToEndChanged(data.data.distance,data.data.duration); - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - public void queryOrderRouteList() { - if (mCurrentOCHOrder == null) return; - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "--route--- queryOrderRouteList"); - TaxiPassengerServiceManager.queryOrderRouteList(mContext, mCurrentOCHOrder.orderNo, new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerQueryOrderRouteResp data) { - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "--route---"+GsonUtil.jsonFromObject(data)); - if (data != null && data.data != null && data.data != null && data.data.size() > 0){ - if (mAutopilotPlanningCallback != null){ - calculateRouteLineSum(data.data); -// if (mAutopilotPlanningCallback != null){ -// mAutopilotPlanningCallback.setLineMarker(data.data); -// } - mLocationsModels.clear(); - List locationsModels = CoordinateCalculateRouteUtil. - coordinateConverterLatlngToLocation(data.data); - mLocationsModels.addAll(locationsModels); - startOrStopRouteAndWipe(true); - } - }else { - subscribe = Observable.timer(delayTime, TimeUnit.SECONDS).subscribe(aLong -> { - queryOrderRouteList(); - }); - } - } - - @Override - public void onFail(int code, String msg) { - subscribe = Observable.timer(delayTime, TimeUnit.SECONDS).subscribe(aLong -> { - queryOrderRouteList(); - }); - } - }); - } - - @Override - public void onCurrentRoadName(String currentRoadName) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentRoadName(currentRoadName); - } - } - - /** - * 订单结束或者取消的时候, 刷新导航标识位以及缓存的数据 - */ - public void recoverNaviInfo(){ - SharedPrefsMgr.getInstance(mContext).remove(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS); - } - - public void calculateRouteLineSum(List points){ - float sumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(points); - SharedPrefsMgr.getInstance(mContext).putInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS,(int) sumLength); - } - - public void checkPhoneAndUpdateStatus(String phoneTail,ITaxiPassengerCommonCallback commonCallback) { - if (mCurrentOCHOrder == null) return; - TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus(mContext, mCurrentOCHOrder.orderNo, - phoneTail, new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerBaseRespBean data) { - if (data != null && data.code == 0 && mCurrentOCHOrder != null){ - //乘客验证成功,更新订单状态为 "乘客已上车", 立马弹出乘客开始行程页面,不再等待轮询 - mCurrentOCHOrder.orderStatus = TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode(); - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } - if(commonCallback!=null) { - commonCallback.onCommonCallback(); - } - - } - - @Override - public void onError() { - ToastUtils.showLong("当前网络异常,请重新验证;若始终异常,请您在手机端取消行程,给您带来不便,十分抱歉!"); - } - - @Override - public void onFail(int code, String msg) { - ToastUtils.showLong("当前网络异常,请重新验证;若始终异常,请您在手机端取消行程,给您带来不便,十分抱歉!"); - CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"提交用户输入的手机后4位、并进行状态扭转 后台结果错误"+code+msg); - } - }); - } - - public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean , ITaxiPassengerCommonValueCallback commonCallback) { - if (taxiPassengerScoreUpdateOrderReqBean.orderNo == null) return; - TaxiPassengerServiceManager.arrivedAndScore(mContext,taxiPassengerScoreUpdateOrderReqBean, - new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerBaseRespBean data) { - if(commonCallback!=null) { - commonCallback.onCommonCallback(true); - } - } - - @Override - public void onError() { - ToastUtils.showLong("网络错误请稍后再试"); - CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"对订单进行打分 1-5分 网络错误"); - if(commonCallback!=null) { - commonCallback.onCommonCallback(false); - } - } - - @Override - public void onFail(int code, String msg) { - CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"对订单进行打分 1-5分 后台结果错误"+code+msg); - if(commonCallback!=null) { - commonCallback.onCommonCallback(false); - } - } - }); - } - - public void loopQueryPilotStatus(){ - if (mCurrentOCHOrder == null) return; - TaxiPassengerServiceManager.queryPilotStatus(mContext, mCurrentOCHOrder.orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiPassengerBaseRespBean data) { - if (data != null && data.code == 0 && data.data.equals(true)) { - updateAutopilotStatus(true); - startOrStopReadyToAutopilotLoop(false); - } - } - - @Override - public void onFail(int code, String msg) { - updateAutopilotStatus(false); - } - }); - } - - public void updateAutopilotStatus(boolean isBoarded){ - if (mOrderStatusCallbackMap.size() > 0) { - for (IOCHTaxiPassengerOrderStatusCallback callback :mOrderStatusCallbackMap.values()){ - callback.onDriverHasCheckedPilotCondition(isBoarded); - } - } - } - - public void startDriverReadyToAutopilotLoop(){ - if (NetworkUtils.isConnected(mContext)) { - startOrStopReadyToAutopilotLoop(true); - } - } - - public void startOrStopReadyToAutopilotLoop(boolean isStart) { - if (isStart){ - TaxiPassengerModelLoopManager.getInstance().startReadyToAutopilot(); - }else { - TaxiPassengerModelLoopManager.getInstance().stopReadyToAutopilot(); - } - } - - public void startServicePilotDone(){ - if (mCurrentOCHOrder == null) return; - TaxiPassengerStartReqBean.Result result = new TaxiPassengerStartReqBean.Result(); - result.lat = mLatitude; - result.lon = mLongitude; - TaxiPassengerServiceManager.startServicePilotDone(mContext, - mCurrentOCHOrder.orderNo, result, - new OchCommonServiceCallback(){ - - @Override - public void onSuccess(TaxiPassengerBaseRespBean data) { - - } - - @Override - public void onFail(int code, String msg) { -// ToastUtils.showShort(msg); - } - }); - } - - public void startAutopilot() { - if (!checkCurrentOCHOrder()) { - CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "no order or order is empty."); - ToastUtils.showShort("当前订单不存在或异常!"); - return; - } - - if (mCurrentOCHOrder.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()){ - startServicePilotDone(); - } - - if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().getAutopilotAbilityStatus()) { - ToastUtils.showLong(OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason() + - ", 请稍候重试"); - - TaxiPassengerAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo, - OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); - return; - } - - AutopilotControlParameters parameters = initAutopilotControlParameters(); - if (parameters == null){ - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is empty."); - return; - } - - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(parameters); - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "start autopilot with parameter: %s" - , GsonUtil.jsonFromObject(parameters) - + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr - + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr); - - - TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); - } - - private AutopilotControlParameters initAutopilotControlParameters() { - if (!checkCurrentOCHOrder()) { - CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "no order or order is empty."); - ToastUtils.showShort("当前订单不存在或异常!"); - return null; - } - - AutopilotControlParameters parameters = new AutopilotControlParameters(); - double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0); - double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1); - double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0); - double endWgsLat = mCurrentOCHOrder.endSitePoint.get(1); - - parameters.vehicleType = mCurrentOCHOrder.businessType; - parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.startSiteAddr); // 起点名称拼音首字母大写:科学城B区2号门(KXCBQ2HM) - parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM) - parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon); - parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon); - - if (parameters.autoPilotLine == null) { - parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine( - mCurrentOCHOrder.lineId, - mCurrentOCHOrder.csvFileUrl, mCurrentOCHOrder.csvFileMd5, - mCurrentOCHOrder.txtFileUrl, mCurrentOCHOrder.txtFileMd5, - mCurrentOCHOrder.contrailSaveTime, mCurrentOCHOrder.carModel, - mCurrentOCHOrder.csvFileUrlDPQP, mCurrentOCHOrder.csvFileMd5DPQP, - mCurrentOCHOrder.txtFileUrlDPQP, mCurrentOCHOrder.txtFileMd5DPQP, - mCurrentOCHOrder.contrailSaveTimeDPQP); - } - - return parameters; - } - - /** - * 将业务订单信息保存,鹰眼可取用 - */ - public void updateAutopilotControlParameters() { - - AutopilotControlParameters parameters = initAutopilotControlParameters(); - if (null == parameters){ - CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "AutopilotControlParameters is empty."); - return; - } - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is update."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); - } - - public void clearAutopilotControlParameters(){ - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is clear."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); - } - - - private void runOnUIThread(Runnable executor) { - if (executor == null) { - return; - } - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(executor); - } else { - executor.run(); - } - } - - public void setStation(){ - if(mCurrentOCHOrder!=null){ - MogoLocation startStation = new MogoLocation(); - startStation.setLongitude(mCurrentOCHOrder.startSiteGcjPoint.get(0)); - startStation.setLatitude(mCurrentOCHOrder.startSiteGcjPoint.get(1)); - MogoLocation endStation = new MogoLocation(); - endStation.setLongitude(mCurrentOCHOrder.endSiteGcjPoint.get(0)); - endStation.setLatitude(mCurrentOCHOrder.endSiteGcjPoint.get(1)); - TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,mCurrentOCHOrder.lineId); - } - } - - public void cleanStation(){ - TrajectoryAndDistanceManager.INSTANCE.setStationPoint(null,null,-1L); - } - -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java deleted file mode 100644 index bb3ebec0dc..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.mogo.och.taxi.passenger.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.ObservableEmitter; -import io.reactivex.ObservableOnSubscribe; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; -import io.reactivex.functions.Consumer; -import io.reactivex.schedulers.Schedulers; - -/** - * Created on 2021/9/10 - * - * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等) - */ -public class TaxiPassengerModelLoopManager { - - private static final String TAG = TaxiPassengerModelLoopManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final TaxiPassengerModelLoopManager INSTANCE = new TaxiPassengerModelLoopManager(); - } - - public static TaxiPassengerModelLoopManager getInstance() { - return SingletonHolder.INSTANCE; - } - - private Disposable mInAndWaitServiceDisposable; //进行中、待服务订单列表轮询 - private Disposable mQueryOrderRemainingDisposable; //心跳轮询 - private CompositeDisposable mRouteWipeDisposable; //轨迹擦除 - private Disposable mReadyToAutopilotDisposable; //轮询是否可开启自动驾驶 - - public void startReadyToAutopilot() { - if (mReadyToAutopilotDisposable != null && !mReadyToAutopilotDisposable.isDisposed()) { - return; - } - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startReadyToAutopilot()"); - mReadyToAutopilotDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, - TaxiPassengerConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiPassengerModel.getInstance().loopQueryPilotStatus()); - } - - public void stopReadyToAutopilot() { - if (mReadyToAutopilotDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopReadyToAutopilot()"); - mReadyToAutopilotDisposable.dispose(); - mReadyToAutopilotDisposable = null; - } - } - - public void stopRouteAndWipe() { - if (mRouteWipeDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopRouteAndWipe()"); - mRouteWipeDisposable.dispose(); - mRouteWipeDisposable = null; - } - } - - public void startInAndWaitOrdersLoop() { - if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable.isDisposed()) { - return; - } - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startInAndWaitOrdersLoop()"); - mInAndWaitServiceDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, - TaxiPassengerConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiPassengerModel.getInstance().queryInAndWaitOrders()); - } - - public void stopInAndWaitOrdersLoop() { - if (mInAndWaitServiceDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopInAndWaitOrdersLoop()"); - mInAndWaitServiceDisposable.dispose(); - mInAndWaitServiceDisposable = null; - } - } - - /** - * 轮训查下 查询订单剩余里程和时间 - */ - public void startQueryOrderRemainingLoop() { - if (mQueryOrderRemainingDisposable != null && !mQueryOrderRemainingDisposable.isDisposed()) { - return; - } - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startQueryOrderRemainingLoop()"); - mQueryOrderRemainingDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, - TaxiPassengerConst.LOOP_CALCULATEROUTE_2S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiPassengerModel.getInstance().queryOrderRemaining()); - } - - public void stopQueryOrderRemainingLoop() { - if (mQueryOrderRemainingDisposable != null) { - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopQueryOrderRemainingLoop()"); - mQueryOrderRemainingDisposable.dispose(); - mQueryOrderRemainingDisposable = null; - } - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderCursor.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderCursor.java deleted file mode 100644 index c1d1c3c5bd..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderCursor.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.mogo.och.taxi.passenger.mulprocess; - -import android.database.MatrixCursor; -import android.os.Bundle; -import android.os.IBinder; -import android.os.Parcel; -import android.os.Parcelable; - -public class BinderCursor extends MatrixCursor { - - static final String KEY_BINDER = "binder"; - - Bundle mBinderExtra = new Bundle(); - - public static class BinderParcelable implements Parcelable { - - public IBinder mBinder; - - public static final Creator CREATOR = new Creator() { - @Override - public BinderParcelable createFromParcel(Parcel source) { - return new BinderParcelable(source); - } - - @Override - public BinderParcelable[] newArray(int size) { - return new BinderParcelable[size]; - } - }; - - BinderParcelable(IBinder binder) { - mBinder = binder; - } - - BinderParcelable(Parcel source) { - mBinder = source.readStrongBinder(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeStrongBinder(mBinder); - } - } - - public BinderCursor(String[] columnNames, IBinder binder) { - super(columnNames); - - if (binder != null) { - Parcelable value = new BinderParcelable(binder); - mBinderExtra.putParcelable(KEY_BINDER, value); - } - } - - @Override - public Bundle getExtras() { - return mBinderExtra; - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderProvider.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderProvider.java deleted file mode 100644 index a5aedc83b1..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/BinderProvider.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.och.taxi.passenger.mulprocess; - -import static android.os.Binder.getCallingUid; - -import android.content.ContentProvider; -import android.content.ContentValues; -import android.database.Cursor; -import android.net.Uri; -import android.os.IBinder; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - - -public class BinderProvider extends ContentProvider { - - public static final String TAG = BinderProvider.class.getSimpleName(); - - public static final String AUTHORITY = "com.mogo.och.taxi.passenger.leftmenu"; - public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/binder"); - public static final String SERVICE_LEFTMENU = "lefmenu"; - - @Override - public boolean onCreate() { - return true; - } - - - @Override - public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { - getCallingUid(); - IBinder binder; - if (selectionArgs[0].equals(BinderProvider.SERVICE_LEFTMENU)) { - binder = new OrderServiceImpl(); - } else { - return null; - } - BinderCursor cursor = new BinderCursor(new String[]{"service"}, binder); - return cursor; - } - - - @Override - public String getType(Uri uri) {return null;} - - - @Override - public Uri insert(Uri uri, ContentValues values) {return null;} - - @Override - public int delete(Uri uri, String selection, String[] selectionArgs) {return 0;} - - @Override - public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {return 0;} -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/EmptyService.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/EmptyService.kt deleted file mode 100644 index 5d3a6ff53c..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/EmptyService.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.mogo.och.taxi.passenger.mulprocess - -import android.app.Service -import android.content.Context -import android.content.Intent -import android.os.IBinder - -class EmptyService: Service() { - - companion object{ - fun startService(context: Context){ - //预加载视频进程 - val intent = Intent(context, EmptyService::class.java) - context.startService(intent) - } - } - - override fun onBind(intent: Intent?): IBinder? { - // 加载进程的空Service - return null - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java deleted file mode 100644 index f98ac9cc33..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/mulprocess/OrderServiceImpl.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.mogo.och.taxi.passenger.mulprocess; - -import android.os.RemoteException; - -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.taxi.passenger.ui.leftmenu.LeftMenuOpen; -import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils; - -public class OrderServiceImpl extends ILeftMenuService.Stub { - - public static final String TAG = "mulprocessOrderServiceImpl"; - - @Override - public void transmissionIndex(int index) throws RemoteException { - CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 transmissionIndex"+index); - UiThreadHandler.post(() -> { - OverlayLeftViewUtils.INSTANCE.transmissionIndexGet(index); - }); - } - - @Override - public void registerCallback(ICallback cb) throws RemoteException { - CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 registerCallback"); - LeftMenuOpen.INSTANCE.registerCallbackHost(cb); - } - - @Override - public void unRegisterCallback(ICallback cb) throws RemoteException { - CallerLogger.INSTANCE.d(SceneConstant.M_TAXI_P + TAG, "跨进程 unRegisterCallback"); - LeftMenuOpen.INSTANCE.unregisterCallbackHost(cb); - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java deleted file mode 100644 index e7c366c18a..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceApi.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.mogo.och.taxi.passenger.network; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerCheckPhoneUpdateOrderReqBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRemainingResp; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryReqBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerQueryOrderRouteResp; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean; - -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; - -/** - * Created by pangfan on 2021/8/19 - * - * 网约车-出租车接口定义 - */ -interface TaxiPassengerServiceApi { - - /** - * 查询全部服务中/待服务订单(没有的时候返回code 0,空列表) - * @param driverSn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET("/autopilot-car-hailing/order/v2/driver/taxi/passenger/orderInService/query") - - Observable queryOrdersInAndWaitService(@Header("appId") String appId, @Header("ticket") String ticket, @Query("driverSn") String driverSn); - - - /** - * 通过orderNo查询订单信息(用于本地已经有orderNo时) - * @param data - * @return - * @deprecated v2.1_0930需求中暂不再使用此接口 - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/passenger/queryOrderById" ) - Observable queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket,@Body TaxiPassengerOrderQueryReqBean data); - - /** - * 查询订单剩余里程和时间 - * @param appId - * @param ticket - * @param orderNo - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET("/autopilot-car-hailing/order/v2/driver/taxi/queryOrderRemaining") - Observable queryOrderRemaining(@Header("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo); - - /** - * 查询订单全路径 - * @param appId - * @param ticket - * @param orderNo - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" ) - @GET( "/autopilot-car-hailing/order/v2/driver/taxi/passenger/orderRoute" ) - Observable queryOrderRoute(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("orderNo") String orderNo); - - /** - * 提交用户输入的手机后4位、并进行状态扭转 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/verification/phone" ) - Observable checkPhoneAndUpdateOrderStatus(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerCheckPhoneUpdateOrderReqBean data); - - /** - * 对订单进行打分 1-5分 加上文案评论 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/evaluation/info/driver/taxi/submit" ) - Observable arrivedAndScore(@Header ("appId") String appId, @Header("ticket") String ticket, @Body TaxiPassengerScoreUpdateOrderReqBean data); - - /** - * 获取星星对应的文案(所有文案) - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/autopilot-car-hailing/evaluation/label/driver/taxi/list" ) - Observable getWorldAllStar(@Header ("appId") String appId, @Header("ticket") String ticket); - /** - * 获取星星对应的文案(和星星一一对应) - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar" ) - Observable getWorldByStar(@Header ("appId") String appId, @Header("ticket") String ticket,@Query("star") String star); - - /** - * 查询司机是否已确认可开启自动驾驶 - * @param appId - * @param ticket - * @param orderNo - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @GET( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/pilot/status" ) - Observable queryPilotStatus(@Header ("appId") String appId - , @Header("ticket") String ticket,@Query("orderNo") String orderNo); - - /** - * 乘客屏启动自动驾驶成功 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/passenger/startServicePilot" ) - Observable startServicePilotDone(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiPassengerStartReqBean data); -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java deleted file mode 100644 index 655a1a1f6c..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.mogo.och.taxi.passenger.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -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.map.MogoLocation; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.manager.OCHAdasAbilityManager; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback; -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; -import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel; -import com.mogo.och.taxi.passenger.model.TaxiPassengerModel; -import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment; -import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen; - -/** - * @author: wangmingjun - * @date: 2022/3/4 - */ -public class BaseTaxiPassengerPresenter extends Presenter implements - IOCHTaxiPassengerADASStatusCallback, IOCHTaxiPassengerControllerStatusCallback, - IOCHTaxiPassengerOrderStatusCallback { - - private static final String TAG = BaseTaxiPassengerPresenter.class.getSimpleName(); - - private volatile TaxiPassengerOrderQueryRespBean.Result mCurrentPassengerOrder = null; //当前订单 - - public BaseTaxiPassengerPresenter(TaxiPassengerBaseFragment view) { - super(view); - TaxiPassengerModel.getInstance().init(AbsMogoApplication.getApp()); - OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); - initListeners(); - } - - @Override - public void onCreate( @NonNull LifecycleOwner owner ) { - super.onCreate( owner ); - CallerLogger.INSTANCE.d( M_TAXI_P + TAG, "网约车-出租车拿到订单" ); - } - - @Override - public void onDestroy( @NonNull LifecycleOwner owner ) { - super.onDestroy( owner ); - - releaseListeners(); - TaxiPassengerModel.getInstance().release(); - OCHAdasAbilityManager.getInstance().release(); - } - - private void initListeners() { - TaxiPassengerModel.getInstance().setADASStatusCallback(this); - TaxiPassengerModel.getInstance().setOrderStatusCallback("BaseTaxiPassengerPresenter",this); - TaxiPassengerModel.getInstance().setControllerStatusCallback("BaseTaxiPassengerPresenter",this); - } - - private void releaseListeners() { - TaxiPassengerModel.getInstance().setADASStatusCallback(null); - TaxiPassengerModel.getInstance().setOrderStatusCallback("BaseTaxiPassengerPresenter",null); - TaxiPassengerModel.getInstance().setControllerStatusCallback("BaseTaxiPassengerPresenter",null); - } - - private void runOnUIThread( Runnable executor ) { - if ( executor == null ) { - return; - } - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( executor ); - } else { - executor.run(); - } - } - - // 获取当前订单状态 - public TaxiPassengerOrderStatusEnum getCurOrderStatus() { - return TaxiPassengerModel.getInstance().getCurOrderStatus(); - } - - public void startOrStopOrderLoop(){ - TaxiPassengerModel.getInstance().startOrStopOrderLoop(); - } - - @Override - public void onAutopilotArriveEnd() { - - } - - @Override - public void onAutopilotEnable() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)); - } - - @Override - public void onAutopilotDisable() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)); - } - - @Override - public void onAutopilotRunning() { - runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); - } - - @Override - public void onVRModeChanged(boolean isVRMode) { - runOnUIThread(() -> mView.switchVRFlatMode(isVRMode)); - } - - @Override - public void onCarLocationChanged(MogoLocation location) { - // 速度不用展示 - // LeftMenuOpen.INSTANCE.callCallBack(-1,-1,location.getSpeed()); - } - - @Override - public void onCurrentOrderStatusChanged(TaxiPassengerOrderQueryRespBean.Result order) { -// CallerLogger.INSTANCE.d(M_TAXI_P + TAG, GsonUtil.jsonFromObject(order)); - if (mCurrentPassengerOrder == null){ - mCurrentPassengerOrder = order; //当前无订单 - updateOrderView(order); - }else if (mCurrentPassengerOrder.orderStatus != order.orderStatus) { - mCurrentPassengerOrder = order; - updateOrderView(order); - } - } - - @Override - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - LeftMenuOpen.INSTANCE.callCallBack(meters,timeInSecond,-1); - } - - @Override - public void onCurrentRoadName(String currentRoadName) { - - } - - @Override - public void onDriverHasCheckedPilotCondition(boolean isBoarded) { - CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"isBoarded = "+isBoarded); - runOnUIThread(() -> { - mView.updateStartAutopilotBtnStatus(isBoarded); - }); - } - - private void updateOrderView(TaxiPassengerOrderQueryRespBean.Result order) { - CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"updateOrderView = "+order.orderStatus); - // 70 取消订单 - if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){ - runOnUIThread(() -> { - mView.showOrHideServingOrderFragment(false,true); - mView.showOrHideOverMapViewFragment(false); - mView.showOrHideStartAutopilotView(false,false); - mView.showOrHidePressengerCheckPager(false, "", - "", "", "", ""); - mView.showOrHideArrivedEndLayout(false,"",""); - }); - TaxiPassengerModel.getInstance().recoverNaviInfo(); - TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch(); - TaxiPassengerModel.getInstance().startOrStopReadyToAutopilotLoop(false); - TaxiPassengerModel.getInstance().cleanStation(); - return; - } - // 20 司机到达上车点 - if (TaxiPassengerOrderStatusEnum.ArriveAtStart.getCode() == order.orderStatus) { - runOnUIThread(() -> { - mView.preOrderThankPageTenlogic(order.startSiteAddr, - order.endSiteAddr, order.passengerNum, order.carNumber, order.passengerPhone); - }); - return; - } - // TODO: 2022/6/10 若乘客端确认已经上车,则显示开始行程按钮 并且不可点击 暗 - // TODO: 2022/6/10 乘客已上车 需要开启轮询司机确认可以开启自动驾驶的接口 - // TODO: 2022/6/10 若司机端已经确认,则显示开始行程按钮 并且可点击,第二步的轮询停止 - //TODO: 2022/6/10 若订单取消或者隐藏则关掉开始行程界面,轮询也要取消 - if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus){ - runOnUIThread(() ->{ - CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"UserArriveAtStart"); - mView.showOrHideStartAutopilotView(true,false); - }); - //开启轮询司机是否已准备好开启自动驾驶的环境 - TaxiPassengerModel.getInstance().startDriverReadyToAutopilotLoop(); - TaxiPassengerModel.getInstance().setStation(); - } - if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ - runOnUIThread(() ->{ - mView.showOrHideStartAutopilotView(false,false); - mView.showOrHideServingOrderFragment(true,true); - }); - TaxiPassengerModel.getInstance().startOrStopReadyToAutopilotLoop(false); - TaxiPassengerModel.getInstance().setStation(); - } - // 30 用户到达上车点 并通过了手机号后四位验证 - // 40 服务中 - if (TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus - || TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ - runOnUIThread(() -> { - mView.showOrHideArrivedEndLayout(false,"",""); - mView.showOrHidePressengerCheckPager(false, "", - "", "", "", ""); - if(TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true); - } - }); - return; - } - - // 50 到达终点 乘客可以评价 - if (TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){ - TaxiPassengerModel.getInstance().recoverNaviInfo(); - TaxiPassengerModel.getInstance().startOrStopRouteAndWipe(false); - TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch(); - mView.showOrHideOverMapViewFragment(false); - runOnUIThread(() -> { - mView.showOrHideServingOrderFragment(false,true); - mView.showOrHideArrivedEndLayout(true, order.endSiteAddr,order.orderNo); - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false); - }); - TaxiPassengerModel.getInstance().cleanStation(); - return; - } - // 60 服务完成 页面 - if (TaxiPassengerOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){ - TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch(); - mCurrentPassengerOrder = null; - TaxiPassengerModel.getInstance().cleanStation(); - return; - } - } - - public void checkAndUpdateStatus(String phone){ - TaxiPassengerModel.getInstance().checkPhoneAndUpdateStatus(phone, new ITaxiPassengerCommonCallback() { - @Override - public void onCommonCallback() { - mView.showOrHidePressengerCheckPager(false,"","","","",""); - } - }); - } - - /** - * 封装请求 - */ - public void arrivedAndScore(TaxiPassengerScoreUpdateOrderReqBean taxiPassengerScoreUpdateOrderReqBean){ - TaxiPassengerModel.getInstance().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean,aBoolean -> mView.showArrivedEndLayout2Thank(aBoolean)); - } - - /** - * 开启自动驾驶 - */ - public void startAutopilot(){ - TaxiPassengerModel.getInstance().startAutopilot(); - } - -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java deleted file mode 100644 index e0e6edf5e9..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/TaxiPassengerServingOrderPresenter.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.mogo.och.taxi.passenger.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -import android.os.Build; -import android.os.Looper; - -import androidx.annotation.NonNull; -import androidx.annotation.RequiresApi; -import androidx.lifecycle.LifecycleOwner; - -import com.amap.api.maps.model.LatLng; -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager; -import com.mogo.eagle.core.network.utils.GsonUtil; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerAutopilotPlanningCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback; -import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback; -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerVeloctityCallback; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum; -import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel; -import com.mogo.och.taxi.passenger.model.TaxiPassengerModel; -import com.mogo.och.taxi.passenger.ui.TaxiPassengerServingOrderFragment; - -import java.util.List; - -import mogo.telematics.pad.MessagePad; - -/** - * @author: wangmingjun - * @date: 2022/3/14 - */ -public class TaxiPassengerServingOrderPresenter extends Presenter - implements IOCHTaxiPassengerAutopilotPlanningCallback, IOCHTaxiPassengerOrderStatusCallback - , IOCHTaxiPassengerControllerStatusCallback, ITaxiPassengerVeloctityCallback { - - private static final String TAG = TaxiPassengerServingOrderPresenter.class.getSimpleName(); - - private volatile TaxiPassengerOrderQueryRespBean.Result mCurrentPassengerOrder = null; //当前订单 - - public TaxiPassengerServingOrderPresenter(TaxiPassengerServingOrderFragment view) { - super(view); - initListener(); - } - - @Override - public void onResume(@NonNull LifecycleOwner owner) { - super.onResume(owner); - } - - private void initListener() { - // 设置起点和终点marker和实时车辆位置 - TaxiPassengerModel.getInstance().setMoGoAutopilotPlanningListener(this); - TaxiPassengerModel.getInstance().setOrderStatusCallback("TaxiPassengerServingOrderPresenter",this); - TaxiPassengerModel.getInstance().setControllerStatusCallback("TaxiPassengerServingOrderPresenter",this); - // 获取道路限速 - TaxiPassengerModel.getInstance().setVeloctityCallback(this); - } - - public void releaseListener(){ - TaxiPassengerModel.getInstance().setMoGoAutopilotPlanningListener(null); - TaxiPassengerModel.getInstance().setOrderStatusCallback("TaxiPassengerServingOrderPresenter",null); - TaxiPassengerModel.getInstance().setControllerStatusCallback("TaxiPassengerServingOrderPresenter",null); - TaxiPassengerModel.getInstance().setVeloctityCallback(null); - - } - - @Override - public void setLineMarker(LatLng startStation,LatLng endStation) { - if (startStation == null || endStation == null) return; - runOnUIThread(() -> mView.setLineMarker(startStation,endStation)); - } - - @Override - public void routeResultByServer(List routeArriviedTemp, List routeArrivingTemp, MogoLocation location) { - runOnUIThread(() ->mView.routeResultByServer(routeArriviedTemp,routeArrivingTemp,location)); - } - - @Override - public void showRottingMapView() { - runOnUIThread(() ->mView.showRottingMapView()); - } - - - @Override - public void onCurrentOrderStatusChanged(TaxiPassengerOrderQueryRespBean.Result order) { - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, GsonUtil.jsonFromObject(order)); - - if (mCurrentPassengerOrder == null || mCurrentPassengerOrder.orderStatus != order.orderStatus){ - if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){ - TaxiPassengerModel.getInstance().startOrStopQueryOrderRemaining(true); - if (mCurrentPassengerOrder == null){ - TaxiPassengerModel.getInstance().queryOrderRouteList(); - } - TaxiPassengerModel.getInstance().updateAutopilotControlParameters(); - CallerFuncBizManager.getBizProvider().queryV2XEvents();//全览模式的V2X事件轮询开始 - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "OnTheWayToEnd"); - } - - if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus - || TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus - || TaxiPassengerOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){ - TaxiPassengerModel.getInstance().startOrStopQueryOrderRemaining(false); - TaxiPassengerModel.getInstance().clearAutopilotControlParameters(); - CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "Cancel or ArriveAtEnd or JourneyCompleted"); - } - - mCurrentPassengerOrder = order; //当前无订单 - runOnUIThread(() ->mView.updateOrderStatusView(order)); - } - } - - @RequiresApi(api = Build.VERSION_CODES.N) - @Override - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond)); - } - - @Override - public void onCurrentRoadName(String currentRoadName) { - runOnUIThread(() -> mView.onCurrentRoadName(currentRoadName)); - } - - @Override - public void onDriverHasCheckedPilotCondition(boolean isBoarded) { - - } - - @Override - public void onVRModeChanged(boolean isVRMode) { - - } - - private long startTime = 0; - private static final long TIMEINTERVAL = 4000; - - @Override - public void onCarLocationChanged(MogoLocation location) { - if (location != null){ - runOnUIThread(() -> mView.onCarLocationChanged(location)); - long currentTimeMillis = System.currentTimeMillis(); - if(currentTimeMillis-startTime { - CallerFuncBizManager.bizProvider.getAllV2XEvents() - } - TaxiPassengerOrderStatusEnum.ArriveAtEnd,TaxiPassengerOrderStatusEnum.JourneyCompleted, - TaxiPassengerOrderStatusEnum.Cancel -> { - // stop clear - stopAndClear() - } - else -> {} - } - } - - private fun stopAndClear(){ - CallerFuncBizManager.bizProvider.stopQueryV2XEvents() - UiThreadHandler.post({ - overmapview?.clearV2XMarkers() - overmapview?.clearCustomPolyline() - }, UiThreadHandler.MODE.QUEUE) - } - - - override fun getLayoutId(): Int { - return R.layout.taxi_p_overmap_fragment - } - - override fun getTagName(): String { - return TAG - } - - override fun initViews() { - - } - - override fun initViews(savedInstanceState: Bundle?) { - super.initViews(savedInstanceState) - overmapview = findViewById(R.id.overMapView) - overmapview?.onCreateView(savedInstanceState) - - CallerLogger.d(SceneConstant.M_TAXI_P + TAG,"onCreateView") - statusChange(TaxiPassengerModel.getInstance().curOrderStatus) - } - - companion object{ - private const val TAG = "OverviewFragment" - @JvmStatic - fun newInstance(): OverviewFragment { - val args = Bundle() - val fragment = OverviewFragment() - fragment.arguments = args - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java deleted file mode 100644 index 42c739cee9..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ /dev/null @@ -1,521 +0,0 @@ -package com.mogo.och.taxi.passenger.ui; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentTransaction; -import androidx.lifecycle.Lifecycle; - -import com.mogo.commons.module.status.MogoStatusManager; -import com.mogo.commons.mvp.MvpFragment; -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.function.hmi.ui.msgbox.PassengerMsgBoxBubbleView; -import com.mogo.eagle.core.function.hmi.ui.msgbox.PassengerMsgBoxButtonView; -import com.mogo.eagle.core.function.hmi.ui.msgbox.PassengerMsgBoxListView; -import com.mogo.eagle.core.function.hmi.ui.widget.RomaPassengerView; -import com.mogo.eagle.core.function.view.MapBizView; -import com.mogo.eagle.core.utilcode.util.DeviceUtils; -import com.mogo.eagle.core.utilcode.util.OverlayViewUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.listener.IMogoMapListener; -import com.mogo.map.uicontroller.IMogoMapUIController; -import com.mogo.map.uicontroller.VisualAngleMode; -import com.mogo.och.taxi.passenger.R; -import com.mogo.och.taxi.passenger.callback.ITPClickStartAutopilotCallback; -import com.mogo.och.taxi.passenger.event.UIStatus; -import com.mogo.och.taxi.passenger.mulprocess.EmptyService; -import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter; -import com.mogo.och.taxi.passenger.ui.comment.TaxiPassengerArrivedView; -import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.lang.ref.WeakReference; -import java.util.Objects; - - -/** - * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 - *

- * 部分业务放在了此处处理 - * - * @author tongchenfei - */ -public class TaxiPassengerBaseFragment extends MvpFragment - implements IMogoMapListener, TaxiPassengerTaxiView, ITPClickStartAutopilotCallback { - - public static final String TAG = "TaxiPassengerBaseFragment"; - - private MapBizView mapBizView; - private ImageView mAutopilotImage; - private ImageView mMapswitchBtn; - private RomaPassengerView romaPView; - - private WeakReference mArrivedEndView; - private WeakReference mArrivedCheckView; - private WeakReference mStartAutopilotView; - protected TaxiPassengerServingOrderFragment ochServingOrderFragment = null; - - protected OverviewFragment overviewFragment = null; - //消息盒子 - private PassengerMsgBoxButtonView viewPassengerMsgBoxButton; - private PassengerMsgBoxBubbleView viewPassengerMsgBoxBubble; - private PassengerMsgBoxListView viewPassengerMsgBoxList; - - private final Handler mHandler = new Handler(Looper.getMainLooper()); - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - EventBus.getDefault().register(this); - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_p_base_fragment; - } - - @Override - public String getTagName() { - return "BaseOchTaxiPassengerFragment"; - } - - @Override - protected void initViews() { - mapBizView = findViewById(R.id.mapBizView); - mAutopilotImage = findViewById(R.id.module_och_autopilot_iv); - mMapswitchBtn = findViewById(R.id.module_och_taxi_swich_map_iv); - romaPView = findViewById(R.id.romaPView); - if(DeviceUtils.isLenovoModel() || DeviceUtils.isEB5Model()){ - romaPView.setVisibility(View.VISIBLE); - }else{ - romaPView.setVisibility(View.GONE); - } - - updateSwitchMapIcon(); - initListener(); - - onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState()); - - switchVRFlatMode(MogoStatusManager.getInstance().isVrMode()); - //预加载视频进程 - EmptyService.Companion.startService(getContext()); - - //消息盒子 - viewPassengerMsgBoxButton = findViewById(R.id.viewPassengerMsgBoxButton); - viewPassengerMsgBoxBubble = findViewById(R.id.viewPassengerMsgBoxBubble); - viewPassengerMsgBoxList = findViewById(R.id.viewPassengerMsgBoxList); - viewPassengerMsgBoxButton.setClickListener(show -> { - if (show) { - viewPassengerMsgBoxList.setVisibility(View.VISIBLE); - viewPassengerMsgBoxBubble.setVisibility(View.GONE); - viewPassengerMsgBoxBubble.isShowData(false); - } else { - viewPassengerMsgBoxList.setVisibility(View.GONE); - viewPassengerMsgBoxBubble.setVisibility(View.VISIBLE); - viewPassengerMsgBoxBubble.isShowData(true); - } - }); - } - - @Override - protected void initViews(Bundle savedInstanceState) { - super.initViews(savedInstanceState); - mapBizView.onCreate(savedInstanceState); - } - - private void updateSwitchMapIcon() { - IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); - if (controller != null) { - if (controller.getCurrentMapVisualAngle().isLongSight()) { - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_long); - } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); - } else { - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); - } - } - } - - private void initListener() { - mMapswitchBtn.setOnClickListener(v -> { - IMogoMapUIController controller = CallerMapUIServiceManager.INSTANCE.getMapUIController(); - if (controller != null) { - //切换地图的远近视图 - if (controller.getCurrentMapVisualAngle().isLongSight()) { - Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(true); - controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); - } else if (controller.getCurrentMapVisualAngle().isMediumSight()) { - Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMapUIController()).setLockMode(false); - controller.changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null); - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_long); - } else { - controller.changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null); - mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium); - } - } - //OverlayLeftViewUtils.INSTANCE.dismissOverlayView(); - }); - findViewById(R.id.iv_temp).setOnClickListener(view -> { - OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity(), 0, true, -1, true); - //showOrHideArrivedEndLayout(true, "北京北京北京", "1527481606997577728"); - //showOrHidePressengerCheckPager(true, "开始站点开", "开始站点开始站点开始", "2", "京A888888", "18811539480"); - //OCHFloatWindowManager.getInstance().ShowFloatWindow(getContext()); - }); - } - - private void initArrivedView() { - mArrivedEndView = new WeakReference<>(new TaxiPassengerArrivedView(getContext())); - mArrivedEndView.get().setITaxiPassengerScoreCallback((taxiPassengerScoreUpdateOrderReqBean) -> getPresenter().arrivedAndScore(taxiPassengerScoreUpdateOrderReqBean)); - } - - private void initCheckView() { - mArrivedCheckView = new WeakReference<>(new TaxiPassengerCheckView(getContext())); - mArrivedCheckView.get().setITaxiPassengerCommonValueCallback(phoneTail -> getPresenter().checkAndUpdateStatus(phoneTail)); - } - - @Override - public void onResume() { - super.onResume(); - mapBizView.onResume(); -// mPresenter.startOrStopOrderLoop(); -// showOrHideServingOrderFragment(true,false); -// showOrHideStartAutopilotView(true,true); - } - - /** - * VR mode 转换 - * - * @param isVRMode - */ - public void switchVRFlatMode(boolean isVRMode) { - if (mRootView != null) { - mRootView.setVisibility(isVRMode ? View.VISIBLE : View.GONE); - } - } - - /** - * 改变自动驾驶状态 - * - * @param status 2 - running 1 - enable 2 - disable - */ - private int mPrevAPStatus = -1; - - public void onAutopilotStatusChanged(int status) { - getActivity().runOnUiThread(() -> { - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { - // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading - return; - } - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status - && mPrevAPStatus != status) { - // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false - onAutopilotStatusSuccessDone(); - } - // 3. 其他过程直接更新 - if (mPrevAPStatus != status) { - autopilotStatusAnimchanged(status); - } - mPrevAPStatus = status; - }); - } - - public void autopilotStatusAnimchanged(int status) { -// mAutopilotTv.setText(isInAutopilot?"自动驾驶":"开启自动驾驶"); - if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { - mAutopilotImage.setImageResource(R.drawable.taxi_p_auto_nor); - } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) { - mAutopilotImage.setImageResource(R.drawable.taxi_p_un_auto_nor); - } else { - mAutopilotImage.setImageResource(R.drawable.taxi_p_un_auto_nor); - } - - } - - private void startAutopilotDone(boolean success) { - mHandler.postDelayed(() -> onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState()), 1000L); - } - - @NonNull - @Override - protected BaseTaxiPassengerPresenter createPresenter() { - return new BaseTaxiPassengerPresenter(this); - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapBizView.onLowMemory(); - } - - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - mapBizView.onSaveInstanceState(outState); - } - - @Override - public void onPause() { - super.onPause(); - mapBizView.onPause(); - } - - @Override - public void onDestroyView() { - mapBizView.onDestroy(); - super.onDestroyView(); - EventBus.getDefault().unregister(this); - removeListener(); - } - - private void removeListener() { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { - return; - } - mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(null); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void changeOverview(UIStatus uiStatus) { - if (uiStatus.status == UIStatus.LIVE) { - showOrHideOverMapViewFragment(false); - showOrHideServingOrderFragment(true, false); - } else if (uiStatus.status == UIStatus.OVERVIEW) { - showOrHideOverMapViewFragment(true); - showOrHideServingOrderFragment(false, false); - } - } - - @Override - public void onMapVisualAngleChanged(VisualAngleMode visualAngleMode) { - //todo ui 切换 - } - - /** - * 显示或隐藏订单信息 - * - * @param isShow - */ - public void showOrHideServingOrderFragment(boolean isShow, boolean showOrHideLefeMenu) { - - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - if (isShow) { - if (ochServingOrderFragment == null) { - ochServingOrderFragment = TaxiPassengerServingOrderFragment.newInstance(); - } - if (showOrHideLefeMenu) { - OverlayLeftViewUtils.INSTANCE.showOverlayView(getActivity(), 0, true, -1, true); - } - if (ochServingOrderFragment.isHidden()) { - transaction - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .show(ochServingOrderFragment).commitAllowingStateLoss(); - return; - } - if (ochServingOrderFragment.isAdded()) { - transaction - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .show(ochServingOrderFragment).commitAllowingStateLoss(); - return; - } - transaction - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .add(R.id.module_mogo_och_navi_panel_container, ochServingOrderFragment) - .show(ochServingOrderFragment).commitAllowingStateLoss(); - - } else { - if (ochServingOrderFragment != null) { - transaction - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) - .hide(ochServingOrderFragment).commitAllowingStateLoss(); - } - if (showOrHideLefeMenu) { - OverlayLeftViewUtils.INSTANCE.dismissOverlayView(true); - } - } - } - - /** - * 显示或隐藏全局概览 - * - * @param isShow - */ - public void showOrHideOverMapViewFragment(boolean isShow) { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - if (isShow) { - if (overviewFragment == null) { - overviewFragment = OverviewFragment.newInstance(); - } - if (overviewFragment.isHidden()) { - transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .show(overviewFragment).commitAllowingStateLoss(); - transaction.setMaxLifecycle(overviewFragment, Lifecycle.State.RESUMED); - return; - } - if (overviewFragment.isAdded()) { - transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .show(overviewFragment).commitAllowingStateLoss(); - transaction.setMaxLifecycle(overviewFragment, Lifecycle.State.RESUMED); - return; - } - transaction - .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) - .add(R.id.fl_container_overview, overviewFragment) - .show(overviewFragment).commitAllowingStateLoss(); - transaction.setMaxLifecycle(overviewFragment, Lifecycle.State.RESUMED); - } else { - if (overviewFragment != null) { - transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) - .hide(overviewFragment).commitAllowingStateLoss(); - transaction.setMaxLifecycle(overviewFragment, Lifecycle.State.STARTED); - } - } - } - - /** - * 显示或者隐藏乘客可点击自动驾驶页面 - * 乘客验证成功,页面显示,按钮置于不可点击 - * 司机端确认可点击开启自动驾驶, 按钮置为可点击 - * 订单前往目的地,页面消失 - * - * @param isShow - */ - public void showOrHideStartAutopilotView(boolean isShow, boolean isClickable) { - if (isShow) { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { - mStartAutopilotView = new WeakReference<>(new TaxiPassengerStartAutopilotView(getContext())); - } - mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(this); - OverlayViewUtils.showOverlayView(getActivity(), mStartAutopilotView.get()); - updateStartAutopilotBtnStatus(isClickable); - } else { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { - return; - } - mStartAutopilotView.get().setOnClickStartAutopilotBtnCallback(null); - mStartAutopilotView.get().closeAllAnimsAndView(); - mStartAutopilotView = null; - } - } - - public void updateStartAutopilotBtnStatus(boolean isClickable) { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { - return; - } - mStartAutopilotView.get().handleStartAutopilotBtnStatus(isClickable); - } - - public void onAutopilotStatusSuccessDone() { - if (mStartAutopilotView == null || mStartAutopilotView.get() == null) { - return; - } - mStartAutopilotView.get().onAutopilotStatusSuccess(); - } - - /** - * 显示或者隐藏到达乘客站点的洁面 - * ① 取消订单 可有可无 - * ② 到达上车点 隐藏到达终点的页面(上一个订单没有评价) - * ③ 到达目的地 显示到达终点的页面 - * ④ debug 使用 - * - * @param isShow true 展示 false 隐藏 - * @param arrivedEndStation 目的地 - * @param orderNo 订单No - */ - public void showOrHideArrivedEndLayout(boolean isShow, String arrivedEndStation, String orderNo) { - if (isShow) { - if (mArrivedEndView == null || mArrivedEndView.get() == null) { - initArrivedView(); - } - OverlayViewUtils.showOverlayView(getActivity(), mArrivedEndView.get(), R.style.och_window_anim_alpha); - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - mArrivedEndView.get().setDataAndStartAnimation(arrivedEndStation, orderNo); - } - //如果在全屏 回收需要300毫秒 后期优化使用单独的播放器 - }, 500); - } else { - if (mArrivedEndView == null || mArrivedEndView.get() == null) { - return; - } - OverlayViewUtils.dismissOverlayView(mArrivedEndView.get()); - } - } - - // 20 司机到达上车点 - public void preOrderThankPageTenlogic(String startSiteAddr, - String endSiteAddr, - String passengerNum, - String carNumber, - String phone) { - showOrHideArrivedEndLayout(false, "", ""); - showOrHidePressengerCheckPager(true, startSiteAddr, - endSiteAddr, passengerNum, carNumber, phone); - } - - /** - * ① 取消订单 到达上车点后乘客取消订单 隐藏乘客验证页面 - * ② 司机到达上车点 到达上车点 展示乘客验证页面 - * ③ 乘客到达上车点 手机号验证成功后 隐藏乘客验证页面 - * ④ debug 使用 - */ - public void showOrHidePressengerCheckPager(boolean isShow, String startSiteAddr, - String endSiteAddr, - String passengerNum, - String carNumber, - String phone) { - try { - if (isShow) { - if (mArrivedCheckView == null || mArrivedCheckView.get() == null) { - initCheckView(); - } - mArrivedCheckView.get().setData(startSiteAddr, endSiteAddr, passengerNum, carNumber, phone); - OverlayViewUtils.showOverlayView(getActivity(), mArrivedCheckView.get()); - } else { - if (mArrivedCheckView == null || mArrivedCheckView.get() == null) { - return; - } - OverlayViewUtils.dismissOverlayView(mArrivedCheckView.get()); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 用户评分后接口回调 - * - * @param isSuccess true 打分成功 false 打分失败 - */ - public void showArrivedEndLayout2Thank(boolean isSuccess) { - if (mArrivedEndView == null || mArrivedEndView.get() == null) { - initArrivedView(); - } - if (isSuccess) { - mArrivedEndView.get().scoreSuccess(); - } else { - mArrivedEndView.get().scoreFail(); - } - } - - @Override - public void onClickCallback() { - - mPresenter.startAutopilot(); - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.kt deleted file mode 100644 index 926ee23f72..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.kt +++ /dev/null @@ -1,370 +0,0 @@ -package com.mogo.och.taxi.passenger.ui - -import android.animation.Animator -import android.animation.AnimatorInflater -import android.os.Build -import android.os.Bundle -import android.view.View -import android.view.animation.Animation -import android.view.animation.RotateAnimation -import android.widget.ImageView -import android.widget.TextView -import androidx.annotation.RequiresApi -import androidx.appcompat.widget.AppCompatSeekBar -import androidx.fragment.app.FragmentTransaction -import com.amap.api.maps.model.LatLng -import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.map.AmapNaviToDestinationModel -import com.mogo.och.common.module.map.CommonAmapNaviVIew -import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.common.module.utils.NumberFormatUtil -import com.mogo.och.common.module.wigets.OCHGradientTextView -import com.mogo.och.common.module.wigets.OCHRadiusImageView -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerMapViewCallback -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.model.TaxiPassengerModel -import com.mogo.och.taxi.passenger.presenter.TaxiPassengerServingOrderPresenter -import com.mogo.och.taxi.passenger.utils.TPRouteDataTestUtils -import java.util.Calendar - -/** - * @author: wangmingjun - * @date: 2022/3/8 - */ -class TaxiPassengerServingOrderFragment : - MvpFragment(), - TaxiPassengerTaxiView, ITaxiPassengerMapViewCallback { - private val TAG = TaxiPassengerServingOrderFragment::class.java.simpleName - private var mTPSpeedTv: OCHGradientTextView? = null - private var mTPSpeedTvShadowBg: TextView? = null - private var mTPOrderStatus: TextView? = null - private var mTPOrderStartStation: TextView? = null - private var mTPOrderEndStation: TextView? = null - private var mTPOrderRemainDis: TextView? = null - private var mTPOrderRemainDisUnit: TextView? = null - private var mTPOrderRemainTime: TextView? = null - private var mTPOrderRemainArriveTime: TextView? = null - private var mMapArrowIcon: ImageView? = null - private var mMapRottingView: TaxiPassengerMapDirectionView? = null - private var mAmapNaviVIew: CommonAmapNaviVIew? = null - private var lastBearing = 0f - private var rotateAnimation: RotateAnimation? = null - private var mProgressSeekBar: AppCompatSeekBar? = null - private var mProgessDes: TextView? = null - private var mSpeedLayoutBg: OCHRadiusImageView? = null - @Volatile - private var mLimitingVelocity = 0 // 返回的道路限速值 - override fun getLayoutId(): Int { - return R.layout.taxi_p_activity_serving_order_view - } - - override fun getTagName(): String { - return "TaxiPassengerServingOrderFragment" - } - - override fun initViews() { - mTPSpeedTv = findViewById(R.id.taxi_p_speed_tv) - mTPSpeedTvShadowBg = findViewById(R.id.taxi_p_speed_tv_bg) - mTPSpeedTv!!.setVertrial(true) - mTPSpeedTv!!.setmColorList( - intArrayOf( - resources.getColor(R.color.taxi_p_speed_normal_color1), resources.getColor( - R.color.taxi_p_speed_normal_color2 - ) - ) - ) - mTPSpeedTv!!.text = 0.toString() - mTPSpeedTvShadowBg!!.text = 0.toString() - mTPOrderStatus = findViewById(R.id.taxi_p_order_status_tv) - mTPOrderStartStation = findViewById(R.id.taxi_p_order_status_start_station_tv) - mTPOrderEndStation = findViewById(R.id.taxi_p_order_status_end_station_tv) - mTPOrderRemainDis = findViewById(R.id.taxi_p_order_remain_distance) - mTPOrderRemainDisUnit = findViewById(R.id.taxi_p_order_remain_distance_unit) - mTPOrderRemainTime = findViewById(R.id.taxi_p_order_remain_time) - mTPOrderRemainArriveTime = findViewById(R.id.taxi_p_order_remain_arrive_time) - mMapArrowIcon = findViewById(R.id.taxi_p_arrow_nor) - mProgressSeekBar = findViewById(R.id.taxi_p_seekbar) - mProgessDes = findViewById(R.id.taxi_p_progress_des) - mSpeedLayoutBg = findViewById(R.id.taxi_p_speed_bg) - mTPOrderStatus!!.setOnLongClickListener { - TPRouteDataTestUtils.converToRouteData() - true - } - } - - override fun initViews(savedInstanceState: Bundle?) { - super.initViews(savedInstanceState) - initRouteNaviView(savedInstanceState) - initAmapNaviView(savedInstanceState) - } - - private fun initAmapNaviView(savedInstanceState: Bundle?) { - mAmapNaviVIew = findViewById(R.id.taxi_p_order_amap_navi_view) - mAmapNaviVIew?.onCreate(savedInstanceState) - TaxiPassengerModel.getInstance().startNaviByAmap() - } - - private fun initRouteNaviView(savedInstanceState: Bundle?) { - mMapRottingView = findViewById(R.id.taxi_p_order_rotting_map_view) - mMapRottingView?.onCreateView(savedInstanceState) - mMapRottingView?.setTaxiPassengerMapViewCallback(this) - } - - override fun createPresenter(): TaxiPassengerServingOrderPresenter { - return TaxiPassengerServingOrderPresenter(this) - } - - /** - * 设置进度条最大值为 起点终点首次规划出的值 - */ - private fun setSeekBarMax() { - //计算订单起点和终点距离 - val maxInt = SharedPrefsMgr.getInstance(requireContext()) - .getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) - d(SceneConstant.M_TAXI_P + TAG, "maxInt = $maxInt") - mProgressSeekBar!!.max = maxInt - } - - /** - * 行驶进度值更新 - */ - @RequiresApi(api = Build.VERSION_CODES.N) - private fun updateDriveProcessLoading(progressLoading: Int) { - val progressInt = SharedPrefsMgr.getInstance(requireContext()) - .getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) - progressLoading - d(SceneConstant.M_TAXI_P + TAG, "progressInt = $progressInt") - mProgressSeekBar?.setProgress(progressInt, true) - mProgressSeekBar?.jumpDrawablesToCurrentState() - } - - private fun updateDriveRoadName(currentRoadName: String) { - mProgessDes?.text = currentRoadName - } - - override fun onResume() { - super.onResume() - mMapRottingView?.onResume() - mAmapNaviVIew?.onResume() - TaxiPassengerModel.getInstance().initGeocodeSearch() - } - - override fun onHiddenChanged(hidden: Boolean) { - super.onHiddenChanged(hidden) - if (hidden) { //fragment 隐藏, 导航取消c - clearPolyline() - TaxiPassengerModel.getInstance().destoryGeocodeSearch() - } else { //fragment 显示, 导航开始 - e(SceneConstant.M_TAXI_P + "TaxiPassengerNaviTo", "initGeocodeSearch") - TaxiPassengerModel.getInstance().initGeocodeSearch() - } - } - - override fun onPause() { - super.onPause() - mMapRottingView?.onPause() - mAmapNaviVIew?.onPause() - } - - override fun onDestroy() { - super.onDestroy() - mMapRottingView?.onDestroy() - mAmapNaviVIew?.onDestroy() - AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi() - TaxiPassengerModel.getInstance().destoryGeocodeSearch() - } - - fun showRottingMapView() { - if (mAmapNaviVIew != null && mAmapNaviVIew!!.visibility == View.VISIBLE) { - mAmapNaviVIew!!.visibility = View.GONE - } - if (mMapRottingView != null && mMapRottingView!!.visibility == View.GONE) { - mMapRottingView!!.visibility = View.VISIBLE - } - } - - fun setLineMarker(startStation: LatLng?, endStation: LatLng?) { - if (startStation != null && endStation != null) { - UiThreadHandler.post { mMapRottingView?.setLineMarker(startStation, endStation) } - } else { - clearPolyline() - } - } - - fun routeResultByServer( - routeArriviedTemp: List?, - routeArrivingTemp: List?, - location: MogoLocation - ) { - if (routeArriviedTemp.isNullOrEmpty()||routeArrivingTemp.isNullOrEmpty()) { - clearPolyline() - } else { - drawablePolylineByServerRoute(routeArriviedTemp, routeArrivingTemp,location) - } - } - - private fun drawablePolylineByServerRoute(routeArrivied: List?, - routeArriving: List?, - location: MogoLocation?) { - mMapRottingView?.setCoordinatesLatLng(routeArrivied, routeArriving,location) - UiThreadHandler.post { mMapRottingView?.drawablePolyline() } - } - - private fun clearPolyline() { - UiThreadHandler.post { mMapRottingView?.clearPolyline() } - } - - fun updateOrderStatusView(order: TaxiPassengerOrderQueryRespBean.Result) { - mTPOrderStartStation!!.text = order.startSiteAddr - mTPOrderEndStation!!.text = order.endSiteAddr - if (TaxiPassengerOrderStatusEnum.ArriveAtStart.code == order.orderStatus) { - mTPOrderStatus!!.text = getString(R.string.taxi_p_arrive_to_start) - mTPOrderRemainDis!!.text = "--" - mTPOrderRemainTime!!.text = "--" - mTPOrderRemainArriveTime!!.text = "--" - setSeekBarMax() - return - } - if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.code == order.orderStatus) { - mTPOrderStatus!!.setText(R.string.taxi_p_start_to_end) - setSeekBarMax() - return - } - } - - /** - * 剩余里程,剩余时间,当前定位点所在道路 - * @param meters 单位 米 - * @param remainTime 单位 秒 - */ - @RequiresApi(api = Build.VERSION_CODES.N) - fun onCurrentOrderDistToEndChanged(meters: Long, remainTime: Long) { - var disUnit = "公里" - var remainDis = "0" - if (meters > 0) { - if (meters / 1000 < 1) { - disUnit = "米" - remainDis = Math.round(meters.toFloat()).toString() - } else { - disUnit = "公里" - remainDis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) - } - } - val time = Math.ceil(remainTime.toDouble() / 60f).toInt() - val beforeTime = Calendar.getInstance() - beforeTime.add(Calendar.MINUTE, time) - val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.HH_mm) - updateOrderDisAndTimeView(remainDis, disUnit, time, arriveTime) - updateDriveProcessLoading(meters.toInt()) - } - - fun onCurrentRoadName(roadName: String) { - updateDriveRoadName(roadName) - } - - private fun updateOrderDisAndTimeView( - remainDis: String, - remainDisUnit: String, - remainTime: Int, - arriveTime: String - ) { - mTPOrderRemainDis!!.text = remainDis - mTPOrderRemainDisUnit!!.text = remainDisUnit - mTPOrderRemainTime!!.text = remainTime.toString() - mTPOrderRemainArriveTime!!.text = arriveTime - } - - fun onCarLocationChanged(location: MogoLocation) { - updateSpeedView(location.gnssSpeed) - } - - fun onLimitingVelocityChange(limitingVelocity: Int) { - mLimitingVelocity = limitingVelocity - } - - /** - * 更新速度 - * - * @param newSpeed - */ - private fun updateSpeedView(newSpeed: Float) { - val speed = (Math.abs(newSpeed) * 3.6f).toInt() // 倒车时工控机反馈定位信息中speed为负值 - d(SceneConstant.M_TAXI_P + TAG, "mLimitingVelocity = $mLimitingVelocity") - mTPSpeedTv?.setmColorList( - intArrayOf( - resources.getColor(R.color.taxi_p_speed_normal_color1), resources.getColor( - R.color.taxi_p_speed_normal_color2 - ) - ) - ) - mTPSpeedTv?.text = speed.toString() - mTPSpeedTvShadowBg?.text = speed.toString() - mSpeedLayoutBg?.setImageResource(R.drawable.taxi_p_speed_light_green_bg) - } - - override fun onCameraChange(bearing: Float) { - startIvCompass(360-bearing) - } - - /** - * 设置指南针旋转 - * - * @param bearing - */ - private fun startIvCompass(bearing: Float) { - d(SceneConstant.M_TAXI_P + TAG, "startIvCompass: $bearing") - rotateAnimation = RotateAnimation( - lastBearing, bearing, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f - ) - rotateAnimation!!.fillAfter = true - mMapArrowIcon!!.startAnimation(rotateAnimation) - lastBearing = bearing - } - - override fun onCreateAnimator(transit: Int, enter: Boolean, nextAnim: Int): Animator? { - if (transit == FragmentTransaction.TRANSIT_FRAGMENT_OPEN) { - return if (enter) { //普通的进入的动作 - AnimatorInflater.loadAnimator( - context, - R.animator.alpha_hide_show_f - ) - } else { //比如一个已经Fragmen被另一个replace,是一个进入动作,被replace的那个就是false - AnimatorInflater.loadAnimator( - context, - R.animator.alpha_hide_hide_f - ) - } - } else if (FragmentTransaction.TRANSIT_FRAGMENT_CLOSE == transit) { - return if (enter) { //之前被replace的重新进入到界面或者Fragment回到栈顶 - AnimatorInflater.loadAnimator( - context, - R.animator.alpha_hide_show_f - ) - } else { //Fragment退出,出栈 - AnimatorInflater.loadAnimator( - context, - R.animator.alpha_hide_hide_f - ) - } - } - return super.onCreateAnimator(transit, enter, nextAnim) - } - - companion object { - @JvmStatic - fun newInstance(): TaxiPassengerServingOrderFragment { - val args = Bundle() - val fragment = TaxiPassengerServingOrderFragment() - fragment.arguments = args - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java deleted file mode 100644 index 29c26ae3c7..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerStartAutopilotView.java +++ /dev/null @@ -1,289 +0,0 @@ -package com.mogo.och.taxi.passenger.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.elegant.utils.UiThreadHandler; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.OverlayViewUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.utils.AnimatorDrawableUtil; -import com.mogo.och.common.module.wigets.sfv.FrameSurfaceView; -import com.mogo.och.taxi.passenger.R; -import com.mogo.och.taxi.passenger.callback.ITPClickStartAutopilotCallback; - -import java.util.Arrays; - -/** - * @author: wangmingjun - * @date: 2022/6/14 - */ -public class TaxiPassengerStartAutopilotView extends RelativeLayout implements View.OnClickListener { - - private static final String TAG = TaxiPassengerStartAutopilotView.class.getSimpleName(); - - private TextView mStartAutopilotBtn; - private ImageView mAutopilotBtnBg; - private ImageView mCloseIV; - private ITPClickStartAutopilotCallback mClickCallback; - public boolean isStarting = false; - private static final long TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L; - private Context mContext; - private View view; - private AnimatorDrawableUtil mAnimationDrawable ; - private AnimatorDrawableUtil mCarAnimationDrawable ; - private ImageView mCarIv; - private Integer[] startingAnimIds = new Integer[]{ - R.drawable.light_00000, - R.drawable.light_00001, - R.drawable.light_00002, - R.drawable.light_00003, - R.drawable.light_00004, - R.drawable.light_00005, - R.drawable.light_00006, - R.drawable.light_00007, - R.drawable.light_00008, - R.drawable.light_00009, - R.drawable.light_00010, - R.drawable.light_00011, - R.drawable.light_00012, - R.drawable.light_00013 - }; - private Integer[] startBtnBgAnimIds = new Integer[]{ - R.drawable.image_00000, R.drawable.image_00001, R.drawable.image_00002, R.drawable.image_00003, - R.drawable.image_00004, R.drawable.image_00005, R.drawable.image_00006, R.drawable.image_00007, - R.drawable.image_00008, R.drawable.image_00009, R.drawable.image_00010, R.drawable.image_00011, - R.drawable.image_00012, R.drawable.image_00013,R.drawable.image_00014,R.drawable.image_00015, - R.drawable.image_00016, R.drawable.image_00017,R.drawable.image_00018,R.drawable.image_00019, - R.drawable.image_00020, R.drawable.image_00021,R.drawable.image_00022,R.drawable.image_00023, - R.drawable.image_00024, R.drawable.image_00025,R.drawable.image_00026,R.drawable.image_00027, - R.drawable.image_00028, R.drawable.image_00029,R.drawable.image_00030,R.drawable.image_00031, - R.drawable.image_00032, R.drawable.image_00033,R.drawable.image_00034,R.drawable.image_00035, - R.drawable.image_00036, R.drawable.image_00037,R.drawable.image_00038,R.drawable.image_00039, - R.drawable.image_00040, R.drawable.image_00041,R.drawable.image_00042,R.drawable.image_00043, - R.drawable.image_00044, R.drawable.image_00045,R.drawable.image_00046,R.drawable.image_00047, - R.drawable.image_00048, R.drawable.image_00049,R.drawable.image_00050,R.drawable.image_00051, - R.drawable.image_00052, R.drawable.image_00053,R.drawable.image_00054,R.drawable.image_00055, - R.drawable.image_00056, R.drawable.image_00057,R.drawable.image_00058,R.drawable.image_00059, - R.drawable.image_00060, R.drawable.image_00061,R.drawable.image_00062,R.drawable.image_00063, - R.drawable.image_00064, R.drawable.image_00065,R.drawable.image_00066,R.drawable.image_00067, - R.drawable.image_00068,R.drawable.image_00069,R.drawable.image_00070, R.drawable.image_00071, - R.drawable.image_00072,R.drawable.image_00073, R.drawable.image_00074, R.drawable.image_00075, - R.drawable.image_00076,R.drawable.image_00077,R.drawable.image_00078,R.drawable.image_00079, - R.drawable.image_00080, R.drawable.image_00081, R.drawable.image_00082,R.drawable.image_00083, - R.drawable.image_00084, R.drawable.image_00085, R.drawable.image_00086,R.drawable.image_00087, - R.drawable.image_00088, R.drawable.image_00089, R.drawable.image_00090,R.drawable.image_00091, - R.drawable.image_00092, R.drawable.image_00093, R.drawable.image_00094,R.drawable.image_00095, - R.drawable.image_00096, R.drawable.image_00097, R.drawable.image_00098,R.drawable.image_00099, - }; - - public TaxiPassengerStartAutopilotView(Context context) { - super(context); - mContext = context; - initView(context); - } - - private void initView(Context context) { - view = LayoutInflater.from(context).inflate(R.layout.taxi_p_start_autopilot_view, this,true); - mStartAutopilotBtn = view.findViewById(R.id.taxi_p_start_autopilot); - mStartAutopilotBtn.setOnClickListener(this); - - mCloseIV = view.findViewById(R.id.starting_autopilot_view_close); - mCloseIV.setOnClickListener(this); - - mAutopilotBtnBg = view.findViewById(R.id.taxi_p_autopilot_btn_bg); - mCarIv = view.findViewById(R.id.taxi_p_autopilot_starting); - -// initBtnAnimatonDrawable(); -// -// initCarStartingFrame(); - } - - private void initCarStartingFrame() { - mCarAnimationDrawable = new AnimatorDrawableUtil(); - mCarAnimationDrawable.setAnimation(mCarIv,Arrays.asList(startingAnimIds)); - } - - private void initBtnAnimatonDrawable() { - mAnimationDrawable = new AnimatorDrawableUtil(); - mAnimationDrawable.setAnimation(mAutopilotBtnBg,Arrays.asList(startBtnBgAnimIds)); - } - - public void setOnClickStartAutopilotBtnCallback(ITPClickStartAutopilotCallback clickCallback){ - this.mClickCallback = clickCallback; - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.taxi_p_start_autopilot){ - //开启动画和自动驾驶 - if (!(boolean)mStartAutopilotBtn.getTag()){ - ToastUtils.showLong(R.string.taxi_p_start_autopilot_un_click_tip); - return; - } - if (!isStarting){ - if (mClickCallback == null){ - CallerLogger.INSTANCE.d(M_TAXI_P+TAG,"mClickCallback = null"); - return; - } - startOrStopLoadingAnim(true); - mClickCallback.onClickCallback(); - } - }else if (v.getId() == R.id.starting_autopilot_view_close){ - closeAllAnimsAndView(); - } - } - - @SuppressLint("UseCompatLoadingForDrawables") - public void handleStartAutopilotBtnStatus(boolean isClickable){ - - if (mCarIv != null){ - mCarIv.setBackgroundResource(R.drawable.light_00000); - } - if (mStartAutopilotBtn == null) return; - - updateStartAutopilotBtnStatus(isClickable); - - if (isClickable){ //高亮可点击状态下动画一直进行 - startAutopilotBgAnimatorDrawable(true); - }else {// 置灰色可点击状态下动画停止 - startAutopilotBgAnimatorDrawable(false); - } - } - - public void updateStartAutopilotBtnStatus(boolean isClickable){ - if (mContext == null) return; - if (isClickable){ - mStartAutopilotBtn.setTextColor( - mContext.getResources().getColor(R.color.taxi_p_start_autopilot_txt_color)); - mStartAutopilotBtn.setBackground(null); - }else { - mStartAutopilotBtn.setBackground( - mContext.getResources().getDrawable(R.drawable.taxi_p_start_autopilot_txt_btn_bg)); - mAutopilotBtnBg.setBackground(null); - mStartAutopilotBtn.setTextColor( - mContext.getResources().getColor(R.color.taxi_p_start_autopilot_txt_un_color)); - } - mStartAutopilotBtn.setTag(isClickable); - mStartAutopilotBtn.setText( - mContext.getResources().getString(R.string.taxi_p_start_autopilot_txt)); - } - - public void startAutopilotBgAnimatorDrawable(boolean isStart){ - - if (isStart){ - if (mAnimationDrawable == null){ - initBtnAnimatonDrawable(); - } - if (mAnimationDrawable != null){ - mAnimationDrawable.start(true, 30, null); - } - }else { - clearBgAnimDrawable(); - } - } - - private void startingCarBgAnimatorDrawable(boolean isStart){ - if (isStart){ - if (mCarAnimationDrawable == null){ - initCarStartingFrame(); - } - mCarIv.setBackgroundResource(0); - mCarAnimationDrawable.start(true,40, null); - }else { - if (mCarAnimationDrawable != null){ - mCarAnimationDrawable.stop(); - } - mCarIv.setBackgroundResource(R.drawable.light_00000); - } - } - - public void startOrStopLoadingAnim(boolean start) { - - startingCarBgAnimatorDrawable(start); - - if (start) { - isStarting = true; - mStartAutopilotBtn.setText(getResources().getString(R.string.taxi_p_start_autopilot_loading)); - mStartAutopilotBtn.setTextColor(getResources().getColor(R.color.taxi_p_start_autopilot_txt_color)); - - startingAutopilotCountDown(); - } else { - clearBgAnimDrawable(); - isStarting = false; - handleStartAutopilotBtnStatus(true); - } - } - - public void clearBgAnimDrawable() { - if (mAnimationDrawable != null){ - mAnimationDrawable.stop(); - } - } - - public void closeAllAnimsAndView(){ - isStarting = false; - clearStartingAnimFrame(); - clearBgAnimDrawable(); - OverlayViewUtils.dismissOverlayView(this); - mContext = null; - } - - public void clearStartingAnimFrame(){ - if (mCarAnimationDrawable != null){ - mCarAnimationDrawable.stop(); - } - } - public void onAutopilotStatusSuccess(){ - startOrStopLoadingAnim(false); - } - - private void startingAutopilotCountDown() { - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { //未启动成功20s后做处理 - if (isStarting){ //判断动画是否在进行 - ToastUtils.showLong(R.string.taxi_p_start_autopilot_fail_10s_tip); -// startOrStopLoadingAnim(false); - updateStatusCountDownOver(); - } - - } - },TIMER_START_AUTOPILOT_INTERVAL); - } - - private void updateStatusCountDownOver() { - if (mContext == null) return; - isStarting = false; - startingCarBgAnimatorDrawable(false); - mStartAutopilotBtn.setText( - mContext.getResources().getString(R.string.taxi_p_start_autopilot_txt)); - } - - @Override - protected void onDetachedFromWindow() { - isStarting = false; - clearStartingAnimFrame(); - clearBgAnimDrawable(); - mContext = null; - super.onDetachedFromWindow(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - try { - mContext = AbsMogoApplication.getApp(); - }catch (Exception e){ - e.printStackTrace(); - } - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt deleted file mode 100644 index 464e7a67a2..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt +++ /dev/null @@ -1,200 +0,0 @@ -package com.mogo.och.taxi.passenger.ui - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.LinearLayout -import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener -import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.taxi.passenger.R -import kotlinx.android.synthetic.main.taxi_p_traffic_light_view.view.* - -/** - * Taxi乘客端:红绿灯view - * - * Created on 2022/3/14 - */ -class TaxiPassengerTrafficLightView @JvmOverloads constructor( - context: Context?, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr), IMoGoTrafficLightListener { - - companion object { - private const val TAG = "TaxiPassengerTrafficLightView" - } - - private var mCurrentLightId = TrafficLightEnum.BLACK - - init { - init(context) - } - - private fun init(context: Context?) { - LayoutInflater.from(context).inflate(R.layout.taxi_p_traffic_light_view, this, true) - } - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - CallerTrafficLightListenerManager.addListener(TAG, this) - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - CallerTrafficLightListenerManager.removeListener(TAG) - } - - /** - * 展示红绿灯预警 - * - * @param checkLightId 0-都是默认,1-红,2-黄,3-绿 - * @param lightSource 1:云端下发;2:自车感知 - */ - override fun showTrafficLight(checkLightId: TrafficLightEnum, lightSource: DataSourceType) { - super.showTrafficLight(checkLightId, lightSource) - mCurrentLightId = checkLightId - updateTrafficLightIcon(checkLightId) - } - - /** - * 关闭红绿灯预警展示,并重制灯态 - */ - override fun disableTrafficLight() { - super.disableTrafficLight() - UiThreadHandler.post { - mCurrentLightId = TrafficLightEnum.BLACK - this@TaxiPassengerTrafficLightView.visibility = GONE - } - } - - /** - * @param redNum 红灯倒计时 - * @param yellowNum 黄灯倒计时 - * @param greenNum 绿灯倒计时 - */ - override fun changeCountdownTrafficLightNum(redNum: Int, yellowNum: Int, greenNum: Int) { - super.changeCountdownTrafficLightNum(redNum, yellowNum, greenNum) - resetView() - when (mCurrentLightId) { - TrafficLightEnum.RED -> changeCountdownRed(redNum) - TrafficLightEnum.YELLOW -> changeCountdownYellow(yellowNum) - TrafficLightEnum.GREEN -> changeCountdownGreen(greenNum) - else -> UiThreadHandler.post { taxi_p_traffic_light_time_tv.text = "" } - } - } - - override fun changeCountdownRed(redNum: Int) { - super.changeCountdownRed(redNum) - UiThreadHandler.post { - if (redNum > 0) { - resetView() - taxi_p_traffic_light_time_tv.setVertrial(true) - taxi_p_traffic_light_time_tv.setmColorList( - intArrayOf( - resources.getColor(R.color.taxi_p_traffic_light_red_color_up), - resources.getColor(R.color.taxi_p_traffic_light_red_color_down) - ) - ) - taxi_p_traffic_light_time_tv.text = redNum.toString() - } else { - disableTrafficLightCountDown() - taxi_p_traffic_light_time_tv.text = "" - } - } - } - - override fun changeCountdownGreen(greenNum: Int) { - super.changeCountdownGreen(greenNum) - UiThreadHandler.post { - if (greenNum > 0) { - resetView() - taxi_p_traffic_light_time_tv.setVertrial(true) - taxi_p_traffic_light_time_tv.setmColorList( - intArrayOf( - resources.getColor(R.color.taxi_p_traffic_light_green_color_up), - resources.getColor(R.color.taxi_p_traffic_light_green_color_down) - ) - ) - taxi_p_traffic_light_time_tv.text = greenNum.toString() - } else { - disableTrafficLightCountDown() - taxi_p_traffic_light_time_tv.text = "" - } - } - } - - override fun changeCountdownYellow(yellowNum: Int) { - super.changeCountdownYellow(yellowNum) - UiThreadHandler.post { - if (yellowNum > 0) { - resetView() - taxi_p_traffic_light_time_tv.setVertrial(true) - taxi_p_traffic_light_time_tv.setmColorList( - intArrayOf( - resources.getColor(R.color.taxi_p_traffic_light_yellow_color_up), - resources.getColor(R.color.taxi_p_traffic_light_yellow_color_down) - ) - ) - taxi_p_traffic_light_time_tv.text = yellowNum.toString() - } else { - disableTrafficLightCountDown() - taxi_p_traffic_light_time_tv.text = "" - } - } - } - - /** - * 更新红绿灯icon - * - * @param lightId 0-都是默认,1-红,2-黄,3-绿 - */ - private fun updateTrafficLightIcon(lightId: TrafficLightEnum) { - UiThreadHandler.post { - when (lightId) { - TrafficLightEnum.RED -> { - taxi_p_traffic_light_iv.setBackgroundResource(R.drawable.taxi_p_light_red_nor) - this@TaxiPassengerTrafficLightView.visibility = VISIBLE - } - TrafficLightEnum.YELLOW -> { - taxi_p_traffic_light_iv.setBackgroundResource(R.drawable.taxi_p_lightyellow_nor) - this@TaxiPassengerTrafficLightView.visibility = VISIBLE - } - TrafficLightEnum.GREEN -> { - taxi_p_traffic_light_iv.setBackgroundResource(R.drawable.taxi_p_light_green_nor) - this@TaxiPassengerTrafficLightView.visibility = VISIBLE - } - else -> this@TaxiPassengerTrafficLightView.visibility = GONE - } - } - } - - override fun disableTrafficLightCountDown() { - super.disableTrafficLightCountDown() - UiThreadHandler.post { - val layoutParams = layoutParams - if (layoutParams is MarginLayoutParams) { - layoutParams.width = - resources.getDimension(R.dimen.taxi_p_traffic_light_icon_size).toInt() - setLayoutParams(layoutParams) - taxi_p_traffic_light_time_tv.visibility = GONE - taxi_p_traffic_light_bg.layoutParams.width = - resources.getDimension(R.dimen.dp_124).toInt() - } - } - } - - private fun resetView() { - val layoutParams = layoutParams - if (layoutParams is MarginLayoutParams) { - val lp = layoutParams - lp.width = resources.getDimension(R.dimen.taxi_p_traffic_light_layout_width).toInt() - setLayoutParams(lp) - taxi_p_traffic_light_time_tv.visibility = VISIBLE - taxi_p_traffic_light_bg.layoutParams.width = - resources.getDimension(R.dimen.taxi_p_traffic_light_bg_width).toInt() - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerV2XNotificationView.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerV2XNotificationView.java deleted file mode 100644 index c05c0d4fad..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerV2XNotificationView.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.mogo.och.taxi.passenger.ui; - -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.util.AttributeSet; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.widget.ImageView; -import android.widget.TextView; - -import com.mogo.eagle.core.data.enums.SidePattern; -import com.mogo.eagle.core.function.api.hmi.view.IViewNotification; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.passenger.R; - -import org.jetbrains.annotations.Nullable; - -/** - * V2X预警事件view:通过FloatWindow呈现,无需加入到自定义layout中 - * - * Created on 2022/3/16 - */ -public class TaxiPassengerV2XNotificationView extends IViewNotification { - - private ImageView mV2XNotificationIcon; - private TextView mV2XNotificationText; - - public TaxiPassengerV2XNotificationView(@Nullable Context context) { - this(context, null, 0); - } - - public TaxiPassengerV2XNotificationView(@Nullable Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public TaxiPassengerV2XNotificationView(@Nullable Context context, @Nullable AttributeSet attrs, - int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context); - } - - private void init(Context context) { - LayoutInflater.from(context).inflate(R.layout.taxi_p_v2x_notification_view, this, - true); - - mV2XNotificationIcon = findViewById(R.id.taxi_p_v2x_notification_icon_iv); - mV2XNotificationText = findViewById(R.id.taxi_p_v2x_notification_text_tv); - - // 设置View的出场位置 - setSidePattern(SidePattern.LEFT); - setLayoutGravity(Gravity.LEFT | Gravity.TOP); - // 设置View的停留位置:相对屏幕左上角的位置 -// setOffsetX(getResources(). -// getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_left)); -// setOffsetY(getResources(). -// getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_top)); - setPadding(getResources(). - getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_left), getResources(). - getDimensionPixelSize(R.dimen.taxi_p_v2x_notification_view_margin_top), 0, 0); - } - - @Override - public void setWarningIcon(int warningIcon) { - super.setWarningIcon(warningIcon); - UiThreadHandler.post(() -> { - mV2XNotificationIcon.setImageResource(warningIcon); - }); - } - - @Override - public void setWarningIcon(@Nullable Drawable drawable) { - super.setWarningIcon(drawable); - UiThreadHandler.post(() -> { - mV2XNotificationIcon.setImageDrawable(drawable); - }); - } - - @Override - public void setWarningContent(@Nullable CharSequence warningContent) { - super.setWarningContent(warningContent); - UiThreadHandler.post(() -> { - mV2XNotificationText.setText(warningContent); - }); - } - - @Override - public void setWarningContent(int warningContentId) { - super.setWarningContent(warningContentId); - UiThreadHandler.post(() -> { - mV2XNotificationText.setText(warningContentId); - }); - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt deleted file mode 100644 index 545947b0ef..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt +++ /dev/null @@ -1,479 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.comment - -import android.animation.* -import android.content.Context -import android.graphics.drawable.AnimationDrawable -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.view.animation.Animation -import android.view.animation.AnimationUtils -import android.widget.ImageView -import android.widget.RelativeLayout -import android.widget.TextView -import androidx.appcompat.widget.AppCompatButton -import androidx.appcompat.widget.AppCompatImageView -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.recyclerview.widget.RecyclerView -import com.amap.api.navi.view.PoiInputSearchWidget -import com.google.android.flexbox.FlexWrap -import com.google.android.flexbox.FlexboxLayoutManager -import com.google.android.flexbox.JustifyContent -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.util.OverlayViewUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.wigets.OCHBorderShadowLayout -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld -import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerCommonCallback -import com.mogo.och.taxi.passenger.callback.ITaxiPassengerScoreCallback -import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager -import com.mogo.och.taxi.passenger.ui.comment.adapter.CommentAdapter -import com.mogo.och.taxi.passenger.widget.ResizeAnimation -import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder -import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import java.util.concurrent.TimeUnit - - -/** - * - * 评价View - * Created on 2022/5/16 - */ -class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener { - - 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 lateinit var mArrivedEndStation: TextView - private lateinit var tvFeel: TextView - private lateinit var ochShadowLayout: OCHBorderShadowLayout - private lateinit var ochThankShadowLayout: OCHBorderShadowLayout - private lateinit var ivStarFirst: ImageView - private lateinit var ivStarSecond: ImageView - private lateinit var ivStarThird: ImageView - private lateinit var ivStarFourth: ImageView - private lateinit var ivStarFifth: ImageView - private lateinit var ivAnimalList: ImageView - private lateinit var btnSubmit: AppCompatButton - private lateinit var rvCommentList: RecyclerView - private lateinit var acivClose: AppCompatImageView - private lateinit var svpFrame: SimpleVideoPlayer - private lateinit var clCommentContain: ConstraintLayout - private var subscribe: Disposable?=null - private var orderNo = "" - private var currentFraction = 1 - - private val gsyVideoOptionBuilder = GSYVideoOptionBuilder() - - - var iTaxiPassengerScoreCallback: ITaxiPassengerScoreCallback?=null - - var taxiPassengerCommonCallback: ITaxiPassengerCommonCallback?=null - var left2Right: Animation = AnimationUtils.loadAnimation( - context, R.anim.left_to_right - ) - var right2Left: Animation = AnimationUtils.loadAnimation( - context, R.anim.right_to_left - ) - var alphaAnimation: Animation = AnimationUtils.loadAnimation( - context, R.anim.alpha_hide_show - ) - - private var allStartOrdered = mutableListOf() - - var showThanks:Boolean = false - var allStarWithWorld: TaxiPassengerAllStarWorld?=null - - private fun initView(context: Context) { - d(SceneConstant.M_TAXI_P + TAG, "initView") - LayoutInflater.from(context).inflate(R.layout.taxi_p_arrived_end_panel, this, true) - mArrivedEndStation = findViewById(R.id.arrived_end_station) - tvFeel = findViewById(R.id.tv_feel) - ochShadowLayout = findViewById(R.id.och_shadow_layout) - ochThankShadowLayout = findViewById(R.id.och_thank_shadow_layout) - ivAnimalList = findViewById(R.id.iv_animal_list) - acivClose = findViewById(R.id.aciv_close) - svpFrame = findViewById(R.id.svp_frame) - rvCommentList = findViewById(R.id.rv_comment_list) - clCommentContain = findViewById(R.id.cl_comment_contain) - btnSubmit = findViewById(R.id.btn_submit) - svpFrame.setBackgroundResource(R.drawable.tail_ani_0000) - svpFrame.setIsTouchWiget(false) - svpFrame.setIsTouchWigetFull(false) - svpFrame.enableshowProgressDialog = false - svpFrame.enableDoubleClick = false - - allStartOrdered = mutableListOf() - initCommentList() - initScore() - - findViewById(R.id.tv_please_score).setOnClickListener(this) - - - acivClose.setOnClickListener { - ochShadowLayout.visibility = View.GONE - OverlayViewUtils.dismissOverlayView(this@TaxiPassengerArrivedView) - } - - val url = "android.resource://" + context.packageName + "/" + R.raw.end_video - gsyVideoOptionBuilder.setUrl(url) - .setCacheWithPlay(false) - .setPlayTag("TaxiPassengerArrivedView") - .build(svpFrame) - } - - private fun initCommentList() { - val recyclerVideoAdapter = CommentAdapter(context, mutableListOf()) - rvCommentList.adapter = recyclerVideoAdapter - val manager = FlexboxLayoutManager(context) - manager.justifyContent = JustifyContent.CENTER - manager.flexWrap = FlexWrap.WRAP - rvCommentList.layoutManager = manager - btnSubmit.setOnClickListener(this) - } - - private fun initScore() { - ivStarFirst = findViewById(R.id.iv_star_first) - ivStarSecond = findViewById(R.id.iv_star_second) - ivStarThird = findViewById(R.id.iv_star_third) - ivStarFourth = findViewById(R.id.iv_star_fourth) - ivStarFifth = findViewById(R.id.iv_star_fifth) - ivStarFirst.setOnClickListener(this) - ivStarSecond.setOnClickListener(this) - ivStarThird.setOnClickListener(this) - ivStarFourth.setOnClickListener(this) - ivStarFifth.setOnClickListener(this) - - allStartOrdered.add(ivStarFirst) - allStartOrdered.add(ivStarSecond) - allStartOrdered.add(ivStarThird) - allStartOrdered.add(ivStarFourth) - allStartOrdered.add(ivStarFifth) - - // 请求文案 - requestStarWord() - } - - - override fun onDetachedFromWindow() { - svpFrame.setBackgroundResource(R.drawable.tail_ani_0000) - svpFrame.setVideoAllCallBack(null) - svpFrame.onVideoReset() - svpFrame.release() - tvFeel.text = "" - rvCommentList.visibility = View.INVISIBLE - btnSubmit.visibility = View.INVISIBLE - clCommentContain.getLayoutParams().height = 748 - clCommentContain.requestLayout() - super.onDetachedFromWindow() - subscribe?.let { - if (!it.isDisposed) { - it.dispose() - } - } - } - - override fun onClick(v: View?) { - when (v?.id) { - R.id.tv_please_score -> { - //iTaxiPassengerScoreCallback?.onScoreCallback(2,orderNo) - } - R.id.iv_star_first -> {commitAndStartAnimation(1,"非常差")} - R.id.iv_star_second -> {commitAndStartAnimation(2,"差")} - R.id.iv_star_third -> {commitAndStartAnimation(3,"一般")} - R.id.iv_star_fourth -> {commitAndStartAnimation(4,"舒适")} - R.id.iv_star_fifth -> {commitAndStartAnimation(5,"非常棒")} - R.id.btn_submit -> {submitScore()} - else -> {} - } - } - - /** - * 提交到后台 - */ - private fun submitScore() { - val commentAdapter = rvCommentList.adapter as CommentAdapter - val selectComment = commentAdapter.getSelectComment() - if(selectComment.isEmpty()){ - ToastUtils.showLong("请选择评价内容") - return - } - iTaxiPassengerScoreCallback?.onScoreCallback(TaxiPassengerScoreUpdateOrderReqBean(orderNo,currentFraction,selectComment)) - } - - private fun commitAndStartAnimation(fraction: Int,title:String) { - resetStar() - allStartOrdered.forEach { - it.isEnabled = false - } - currentFraction = fraction - tvFeel.text = title - if(allStarWithWorld!=null&&allStarWithWorld!!.data!=null&&allStarWithWorld!!.data!!.size>0){ - // 已经请求到总量了 - val filter = allStarWithWorld!!.data.filter { - it.isSelect = false - it.star == fraction.toString() - } - val commentAdapter = rvCommentList.adapter as CommentAdapter - commentAdapter.addAll(filter.toMutableList()) - startStartAnimation(fraction) - }else{ - // 总量请求失败 单独去取 - requestStarWordByStar(fraction) - } - } - private var currentAnimarion = 0 - private var maxIndex = 0 - private fun startStartAnimation(fraction: Int) { - currentAnimarion = 0 - maxIndex = fraction-1 - try { - animation(fraction) - } catch (e: Exception) { - e.printStackTrace() - } - } - - /** - * 星星动画 - */ - private fun animation(fraction: Int) { - - val showView = allStartOrdered[currentAnimarion] - showView.setImageResource(R.drawable.taxi_p_passenger_star_check) - val alpha = ObjectAnimator.ofFloat(showView, "alpha", 0.1f, 1f) - .setDuration(120) - alpha.addUpdateListener(object : ValueAnimator.AnimatorUpdateListener{ - var isStart = false - override fun onAnimationUpdate(animation: ValueAnimator) { - val animatedValue = animation?.getAnimatedValue("alpha") - animatedValue as Float - if(animatedValue>0.45&&!isStart){ - isStart = true - //开始下一个 - if(currentAnimarion==maxIndex){ - return - } - currentAnimarion++ - animation(fraction) - } - } - - }) - - val keyframe1 = Keyframe.ofFloat(0f,1f) - val keyframe3 = Keyframe.ofFloat(0.9f,1.2f) - val keyframe4 = Keyframe.ofFloat(1f,1f) - val holderX = PropertyValuesHolder.ofKeyframe( - "scaleX", keyframe1, keyframe3, keyframe4 - ) - val holderY = PropertyValuesHolder.ofKeyframe( - "scaleY", keyframe1, keyframe3, keyframe4 - ) - val scaleX = ObjectAnimator.ofPropertyValuesHolder(showView, holderX).setDuration(240) - val scaleY = ObjectAnimator.ofPropertyValuesHolder(showView, holderY).setDuration(240) - - - val set = AnimatorSet() - set.play(scaleX).with(scaleY).with(alpha) - if(currentAnimarion==maxIndex) { - // 最后一个动画结束后提交积分 - set.addListener(object : AnimatorListenerAdapter() { - override fun onAnimationEnd(animation: Animator) { - super.onAnimationEnd(animation) - // 启动变高动画 - startChangeHeightAnimarion() - } - }) - } - set.start() - } - - private fun startChangeHeightAnimarion() { - // 815 除了 点评的高度 - val resizeAnimation = ResizeAnimation(clCommentContain,913+rvCommentList.height, clCommentContain.height) - resizeAnimation.duration = 300 - resizeAnimation.setAnimationListener(object :Animation.AnimationListener{ - override fun onAnimationStart(animation: Animation?) { - rvCommentList.visibility = View.VISIBLE - } - - override fun onAnimationEnd(animation: Animation?) { - allStartOrdered.forEach { - it.isEnabled = true - } - if(btnSubmit.visibility==View.GONE||btnSubmit.visibility==View.INVISIBLE) { - btnSubmit.visibility = View.VISIBLE - val showAnimator = ObjectAnimator.ofFloat(btnSubmit, "alpha", 0.1f, 1f) - showAnimator.duration = 600 - showAnimator.start() - } - - } - - override fun onAnimationRepeat(animation: Animation?) { - - } - - }) - clCommentContain.startAnimation(resizeAnimation) - } - - /** - * 设置目的地重置星星状态 - */ - fun setDataAndStartAnimation(endSiteAddr: String?,orderId:String) { - mArrivedEndStation.text = endSiteAddr - ochThankShadowLayout.visibility = View.GONE - ivAnimalList.visibility = View.GONE - svpFrame.setVideoAllCallBack(object : GSYSampleCallBack() { - override fun onAutoComplete(url: String?, vararg objects: Any?) { - svpFrame.setBackgroundResource(R.drawable.tail_ani_0090) - } - }) - svpFrame.startPlayLogic() - postDelayed({ - ochShadowLayout.visibility = View.VISIBLE - ochShadowLayout.startAnimation(left2Right) - },1928) - - showThanks = false - this.orderNo = orderId - resetStar() - } - - /** - * 评论成功 向左移动并消失 消失后感谢页面透明度0-1 然后开始小手的动画 - */ - fun scoreSuccess(){ - right2Left.setAnimationListener(object :PoiInputSearchWidget.AnimationListenerAdapter(){ - override fun onAnimationEnd(p0: Animation?) { - ochShadowLayout.visibility = View.GONE - ochThankShadowLayout.startAnimation(alphaAnimation) - ivAnimalList.startAnimation(alphaAnimation) - alphaAnimation.setAnimationListener(object : PoiInputSearchWidget.AnimationListenerAdapter(){ - override fun onAnimationStart(p0: Animation?) { - ochThankShadowLayout.visibility = View.VISIBLE - ivAnimalList.visibility = View.VISIBLE - showThanks = true - } - override fun onAnimationEnd(p0: Animation?) { - val animationDrawable = ivAnimalList.drawable as AnimationDrawable - animationDrawable.start() - } - }) - } - }) - ochShadowLayout.startAnimation(right2Left) - - // 10s 后逻辑 - subscribe = Observable.timer(10000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - // 正在展示感谢页面 - if (taxiPassengerCommonCallback == null) { - // 没有用户确定页面 - OverlayViewUtils.dismissOverlayView(this@TaxiPassengerArrivedView) - } else { - // 有排队展示的用户确定页面 - taxiPassengerCommonCallback?.onCommonCallback() - } - } - } - - /** - * 评论失败 重置状态 - */ - fun scoreFail(){ - scoreSuccess() -// tvFeel.text = "" -// resetStar() - } - - private fun resetStar() { - allStartOrdered.forEach { - it.setImageResource(R.drawable.taxi_p_passenger_star) - it.isEnabled = true - } - } - - private fun requestStarWord() { - TaxiPassengerServiceManager.getAllScoreWorld(context, - object : OchCommonServiceCallback { - override fun onError() { - CallerLogger.e( - SceneConstant.M_TAXI_P + TAG, - "/autopilot-car-hailing/evaluation/label/driver/taxi/list 接口 onError" - ) - } - - override fun onFail(code: Int, msg: String) { - CallerLogger.e( - SceneConstant.M_TAXI_P + TAG, - "/autopilot-car-hailing/evaluation/label/driver/taxi/list 接口:${code}---${msg}" - ) - } - - override fun onSuccess(data: TaxiPassengerAllStarWorld?) { - allStarWithWorld = data - } - - }) - } - - private fun requestStarWordByStar(start:Int) { - TaxiPassengerServiceManager.getWorldByStar(context,start.toString(), - object : OchCommonServiceCallback { - override fun onError() { - CallerLogger.e( - SceneConstant.M_TAXI_P + TAG, - "/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar 接口 onError" - ) - } - - override fun onFail(code: Int, msg: String) { - CallerLogger.e( - SceneConstant.M_TAXI_P + TAG, - "/autopilot-car-hailing/evaluation/label/driver/taxi/listByStar 接口:${code}---${msg}" - ) - } - - override fun onSuccess(data: TaxiPassengerAllStarWorld?) { - if(data?.data != null &&data.data!!.size>0){ - val commentAdapter = rvCommentList.adapter as CommentAdapter - commentAdapter.addAll(data.data.toMutableList()) - startStartAnimation(start) - } - } - - }) - } - - - companion object { - const val TAG = "TaxiPassengerArrivedView" - } - - init { - try { - initView(context) - } catch (e: Exception) { - e.printStackTrace() - } - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt deleted file mode 100644 index 71334c1f80..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/CommentAdapter.kt +++ /dev/null @@ -1,74 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.comment.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld.TaxiPassengerStarWorld - -class CommentAdapter(private val context: Context?,private val itemDataList: MutableList) : - RecyclerView.Adapter() { - - fun add(taxiPassengerStarWorld: TaxiPassengerStarWorld) { - itemDataList.add(taxiPassengerStarWorld) - notifyItemInserted(itemDataList.size) - } - - fun addAll(itemDataList: MutableList){ - this.itemDataList.clear() - this.itemDataList.addAll(itemDataList) - // region 临时代码 - var needMove:TaxiPassengerStarWorld?=null - itemDataList.forEachIndexed { index, taxiPassengerStarWorld -> - if(taxiPassengerStarWorld.labelInfo=="频繁急停急刹"){ - needMove = taxiPassengerStarWorld - return@forEachIndexed - } - } - needMove?.let { - this.itemDataList.remove(it) - this.itemDataList.add(this.itemDataList.size-1,it) - } - // endregion - this.notifyDataSetChanged() - } - fun getSelectComment(): List { - return itemDataList.filter { - if(it.isSelect==null){ - it.isSelect = false - } - it.isSelect - } - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemCommentHolder { - val v = LayoutInflater.from(context).inflate(R.layout.list_comment_item, parent, false) - return ItemCommentHolder(context, v) - } - - override fun onBindViewHolder(holder: ItemCommentHolder, position: Int) { - val taxiPassengerStarWorld = itemDataList[position] - holder.commentItem.text = taxiPassengerStarWorld.labelInfo - if (taxiPassengerStarWorld.isSelect!=null&&taxiPassengerStarWorld.isSelect) { - taxiPassengerStarWorld.isSelect = true - holder.commentItem.setBackgroundResource(R.drawable.taxi_p_comment_selected) - } else { - taxiPassengerStarWorld.isSelect = false - holder.commentItem.setBackgroundResource(R.drawable.taxi_p_comment_select) - } - holder.commentItem.setOnClickListener { v: View? -> - taxiPassengerStarWorld.isSelect = !taxiPassengerStarWorld.isSelect - notifyItemChanged(holder.bindingAdapterPosition) - } - } - - override fun getItemCount(): Int { - return itemDataList.size - } - - companion object { - private const val TAG = "RecyclerBaseAdapter" - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java deleted file mode 100644 index b09b073cde..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/adapter/ItemCommentHolder.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.comment.adapter; - -import android.content.Context; -import android.view.View; -import android.widget.CheckBox; - -import androidx.recyclerview.widget.RecyclerView; - -import com.mogo.och.taxi.passenger.R; - -public class ItemCommentHolder extends RecyclerView.ViewHolder { - - public final static String TAG = "ItemCommentHolder"; - - protected Context context; - - public CheckBox commentItem; - - public ItemCommentHolder(Context context, View v) { - super(v); - this.context = context; - commentItem = v.findViewById(R.id.tv_comment); - } - -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ItemViewTouchListener.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ItemViewTouchListener.kt deleted file mode 100644 index f9cd1a55b8..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ItemViewTouchListener.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.leftmenu - -import android.annotation.SuppressLint -import android.view.MotionEvent -import android.view.View -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant - -class ItemViewTouchListener : - View.OnTouchListener { - // 判断并放跑点击事件 - private var dragTime = 0L - @SuppressLint("ClickableViewAccessibility") - override fun onTouch(view: View, motionEvent: MotionEvent): Boolean { - try { - when (motionEvent.action) { - MotionEvent.ACTION_DOWN -> { - LeftMenuOpen.dragAndOpen(motionEvent.rawX.toInt(),motionEvent.action) - dragTime = System.currentTimeMillis() - } - MotionEvent.ACTION_MOVE -> { - if (LeftMenuOpen.dragAndOpen(motionEvent.rawX.toInt(),motionEvent.action)) { - return false - } - } - MotionEvent.ACTION_UP -> { - LeftMenuOpen.dragAndOpen(motionEvent.rawX.toInt(),motionEvent.action) - if (System.currentTimeMillis() - dragTime > 500) { - dragTime = 0 - return true - } - } - else -> {} - } - } catch (e: Exception) { - CallerLogger.e(SceneConstant.M_TAXI_P + TAG, e.message) - e.printStackTrace() - } - return false - } - - companion object { - const val TAG = "ItemViewTouchListener" - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt deleted file mode 100644 index a3ac772d40..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt +++ /dev/null @@ -1,448 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.leftmenu - -import android.annotation.SuppressLint -import android.content.ContentResolver -import android.database.Cursor -import android.os.DeadObjectException -import android.os.IBinder -import android.os.RemoteCallbackList -import android.os.RemoteException -import android.view.MotionEvent -import android.view.View -import android.view.ViewGroup -import android.view.WindowManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.common.module.utils.NumberFormatUtil -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.event.FinishActivity -import com.mogo.och.taxi.passenger.mulprocess.BinderCursor -import com.mogo.och.taxi.passenger.mulprocess.BinderProvider -import com.mogo.och.taxi.passenger.mulprocess.ICallback -import com.mogo.och.taxi.passenger.mulprocess.ILeftMenuService -import com.mogo.och.taxi.passenger.ui.video.FloatingDistanceInfoUtils -import com.mogo.och.taxi.passenger.ui.video.VideoActivity -import org.greenrobot.eventbus.EventBus -import rx.Observable -import rx.Observer -import rx.exceptions.OnCompletedFailedException -import rx.schedulers.Schedulers -import java.util.* - - -@SuppressLint("StaticFieldLeak") -object LeftMenuOpen { - - const val TAG = "mulprocessLeftMenuOpen" - - private var windowView: View? = null - private var wl: WindowManager.LayoutParams? = null - private var windowManager: WindowManager? = null - private var close: ((view: View, windowManager: WindowManager?) -> Unit)? = null - private var open: ((view: View, windowManager: WindowManager?) -> Unit)? = null - - - // 两部分主进程和子进程 - private var dragList = mutableSetOf() - - private var orderService: ILeftMenuService? = null - - private var icallbacks: RemoteCallbackList? = null - - var checkIndex = OverlayLeftViewUtils.LIVE - private var lastClickTime = 0L - private const val FAST_CLICK_DELAY_TIME = 1300 // 防止事件发送过快 - - - fun setValue( - windowView: View, - wl: WindowManager.LayoutParams?, - windowManager: WindowManager?, - close: (view: View, windowManager: WindowManager?) -> Unit, - open: (view: View, windowManager: WindowManager?) -> Unit, - isMainProcess: Boolean - ) { - this.open = open - this.close = close - this.windowView = windowView - this.windowManager = windowManager - this.wl = wl - dragList.forEach { - registerDragView(it) - } - if(!isMainProcess) { - registerC() - } - } - - fun clearValue() { - this.open = null - this.close = null - this.windowView = null - this.windowManager = null - this.wl = null - - orderService = null - - val iterator = dragList.iterator() - while (iterator.hasNext()) { - val next = iterator.next() - unRegisterDragView(next,false) - iterator.remove() - } - } - - - private var x = 0 - - // 判断并放跑点击事件 - private const val DEVIATION = 10 - private const val NEGATIVEDEVIATION = -10 - - fun dragAndOpen(newX: Int, action: Int): Boolean { - when (action) { - MotionEvent.ACTION_DOWN -> { - x = newX - } - MotionEvent.ACTION_MOVE -> { - val nowX = newX - val movedX = nowX - x - x = nowX - wl?.let { it -> - it.x += movedX - if (it.x > 0 || it.x < OverlayLeftViewUtils.DEVIATION_WIDTH) { - it.apply { - x -= movedX - } - return true - } - windowView?.let { windowView -> - windowManager?.let { windowManager -> - if (it.x > NEGATIVEDEVIATION && movedX > 0) { - open?.let { it1 -> - UiThreadHandler.post { - it1(windowView, windowManager) - } - } - } else { - //更新悬浮球控件位置 - UiThreadHandler.post { - windowManager.updateViewLayout(windowView, it) - } - } - if (it.x < OverlayLeftViewUtils.DEVIATION_WIDTH + DEVIATION && movedX < 0) { - close?.let { it1 -> - UiThreadHandler.post { - it1(windowView, windowManager) - } - } - } else { - //更新悬浮球控件位置 - UiThreadHandler.post { - windowManager.updateViewLayout(windowView, it) - } - } - } - - } - - } - } - MotionEvent.ACTION_UP -> { - wl?.let { wl -> - val startX = wl.x - if (startX > OverlayLeftViewUtils.DEVIATION_WIDTH / 2 && startX < 0) { - //拖动距离大于一半 自动打开 - open?.let { - UiThreadHandler.post { - it(windowView!!, windowManager) - } - } - } else if (startX < OverlayLeftViewUtils.DEVIATION_WIDTH / 2 && startX >= OverlayLeftViewUtils.DEVIATION_WIDTH) { - // 拖动距离小于一半自动关闭 - close?.let { - UiThreadHandler.post { - it(windowView!!, windowManager) - } - } - } else { - - } - } - } - } - return false - } - - fun registerDragView(view: View?) { - if (view != null) { - dragList.add(view) - view.setOnTouchListener(ItemViewTouchListener()) - view.setOnClickListener { - open?.let { it1 -> it1(windowView!!, windowManager) } - } - } - } - - fun unRegisterDragView(view: View?,remove:Boolean) { - if(remove) { - dragList.remove(view) - } - view?.let { - it.setOnTouchListener(null) - it.setOnClickListener(null) - if(it.id==R.id.ids_video_anchor){ - val parent = it.parent as ViewGroup - parent.removeView(it) - } - } - } - - fun transmissionIndex(index:Int){ - Observable.empty().subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() { - try { - CallerLogger.d(M_TAXI_P + TAG, "tran--transmissionIndex---$index") - if (orderService == null) { - registerC() - } - orderService?.transmissionIndex(index) - }catch (ill:IllegalStateException){ - ill.printStackTrace() - }catch (onCo: OnCompletedFailedException){ - onCo.printStackTrace() - }catch (deadobjectexception: DeadObjectException){ - deadobjectexception.printStackTrace() - } - } - override fun onError(e: Throwable?) {} - override fun onNext(t: String?) {} - }) - } - - /** - * 主进程调用 - */ - fun registerCallbackHost(cb:ICallback?){ - if(icallbacks==null){ - icallbacks = RemoteCallbackList() - } - cb?.let { - icallbacks?.register(it) - } - } - - /** - * 主进程调用 反注册 - */ - fun unregisterCallbackHost(cb:ICallback?){ - cb?.let { - icallbacks?.unregister(it) - } - icallbacks?.kill() - icallbacks = null - } - - /** - * 子进程调用 注册回调 主进程中调用 - * 方便主进程传递到子进程 速度、剩余公里、剩余时间、到达时间 - */ - fun registerCallback(cb:ICallback?){ - Observable.empty().subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() { - try { - CallerLogger.d(M_TAXI_P + TAG, "tran--registerCallback--注册") - if (orderService == null) { - registerC() - } - cb?.let { - orderService?.registerCallback(it) - } - }catch (ill:IllegalStateException){ - ill.printStackTrace() - }catch (onCo: OnCompletedFailedException){ - onCo.printStackTrace() - }catch (deadobjectexception: DeadObjectException){ - deadobjectexception.printStackTrace() - } - - } - override fun onError(e: Throwable?) {} - override fun onNext(t: String?) {} - }) - } - - /** - * 子进程调用 反注册 - */ - fun unregisterCallback(cb:ICallback?){ - Observable.empty().subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() { - CallerLogger.d(M_TAXI_P + TAG, "tran--unregisterCallback--反注册") - cb?.let { - try { - orderService?.unRegisterCallback(it) - }catch (ill:IllegalStateException){ - ill.printStackTrace() - }catch (onCo: OnCompletedFailedException){ - onCo.printStackTrace() - }catch (deadobjectexception: DeadObjectException){ - deadobjectexception.printStackTrace() - } - } - } - override fun onError(e: Throwable?) {} - override fun onNext(t: String?) {} - }) - } - - /** - * 主进程调用 向子进程传输 剩余距离、剩余时间、和速度 - */ - fun callCallBack(meters: Long,timeInSecond: Long,speed:Float){ - if(checkIndex == OverlayLeftViewUtils.CONSULT||checkIndex == OverlayLeftViewUtils.MOVIE) { - if (System.currentTimeMillis() - lastClickTime < FAST_CLICK_DELAY_TIME){ - return - } - lastClickTime = System.currentTimeMillis() - - Observable.empty().subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() { - CallerLogger.d(M_TAXI_P + TAG, "callCallBack$meters--$timeInSecond--$speed") - try { - val len = icallbacks?.beginBroadcast() - len?.let { - for (i in 0 until len) { - try { - icallbacks?.getBroadcastItem(i)?.onResult(meters, timeInSecond, speed) - } catch (e: RemoteException) { - e.printStackTrace() - } - } - } - icallbacks?.finishBroadcast() - }catch (e:Exception){ - CallerLogger.e(M_TAXI_P + TAG, "callCallBack${e.message}") - } - } - override fun onError(e: Throwable?) {} - override fun onNext(t: String?) {} - }) - } - } - - fun invoKeyByEventType(typeID:Int){ - Observable.empty().subscribeOn(Schedulers.io()) - .subscribe(object : Observer { - override fun onCompleted() { - val len = icallbacks?.beginBroadcast() - len?.let { - for (i in 0 until it) { - try { - icallbacks?.getBroadcastItem(i)?.postEvent(typeID) - } catch (e: RemoteException) { - e.printStackTrace() - } - } - } - icallbacks?.finishBroadcast() - } - override fun onError(e: Throwable?) {} - override fun onNext(t: String?) {} - }) - } - - /** - * 主进程、video进程都得调用 - * 主进程在显示是主动调用 - * video进程在天津View是判断是否调用了 - */ - @Synchronized - private fun registerC() { - if(orderService!=null){ - return - } - CallerLogger.d(M_TAXI_P + TAG, "tran--registerC--获取jni") - val resolver: ContentResolver = Utils.getApp().contentResolver - - val cu = resolver.query( - BinderProvider.CONTENT_URI, - null, - null, - arrayOf(BinderProvider.SERVICE_LEFTMENU), - null - ) ?: return - - val binder: IBinder = getBinder(cu) - try { - try { - orderService = ILeftMenuService.Stub.asInterface(binder) - }catch (ill:IllegalStateException){ - ill.printStackTrace() - }catch (onCo: OnCompletedFailedException){ - onCo.printStackTrace() - }catch (deadobjectexception: DeadObjectException){ - deadobjectexception.printStackTrace() - } - - } catch (e: RemoteException) { - e.printStackTrace() - } finally { - cu.close() - } - } - - private fun getBinder(cursor: Cursor): IBinder { - val extras = cursor.extras - extras.classLoader = BinderCursor.BinderParcelable::class.java.classLoader - val w = extras.getParcelable("binder") - return w!!.mBinder - } - - val callBack = object : ICallback.Stub() { - override fun onResult(meters :Long, timeInSecond:Long,speed:Float) { - if(speed<0){ - // 距离单位 - var disUnit = "公里" - // 距离 - var remainDis: String? = "0" - - if (meters > 0) { - if (meters / 1000 < 1) { - disUnit = "米" - remainDis = Math.round(meters.toFloat()).toString() - } else { - disUnit = "公里" - remainDis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) - } - } - // 剩余时间 - val time = Math.ceil(timeInSecond.toDouble() / 60f).toInt() - - val beforeTime = Calendar.getInstance() - beforeTime.add(Calendar.MINUTE, time) - //到达时间 - val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.HH_mm) - FloatingDistanceInfoUtils.setDistance(meters,remainDis,disUnit,time,arriveTime) - }else{ - FloatingDistanceInfoUtils.setSpeed(speed) - } - } - - override fun postEvent(type: Int) { - when (type) { - VideoActivity.EVENT_FINISH -> { - EventBus.getDefault().post(FinishActivity()) - } - else -> {} - } - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ListAdapter.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ListAdapter.kt deleted file mode 100644 index 93b2aa0ed1..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/ListAdapter.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.leftmenu - -import android.content.Context -import android.view.View -import android.view.ViewGroup -import android.widget.BaseAdapter -import android.widget.ImageView -import com.mogo.och.taxi.passenger.ui.leftmenu.model.LeftMenuModel - -class ListAdapter(private val context: Context,val list: MutableList) : BaseAdapter() { - - override fun getCount(): Int { - return list.size - } - - override fun getItem(position: Int): Any { - return list[position] - } - - override fun getItemId(position: Int): Long { - return position.toLong() - } - - override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { - val imageView = ImageView(context) - val leftMenuModel = list[position] - if (leftMenuModel.isChecked) { - imageView.setImageResource(leftMenuModel.selected) - } else { - imageView.setImageResource(leftMenuModel.select) - } - imageView.setOnClickListener { - setSelectIndex(position,true) - } - return imageView - } - - /** - * 多进程调用 - */ - fun setSelectIndex(index: Int,needStartActivity: Boolean) { - for (i in list.indices) { - if(index==i){ - if(!list[i].isChecked){ - list[i].selectListener.onSelect(needStartActivity) - OverlayLeftViewUtils.transmissionIndex(index) - } - } - list[i].isChecked = index == i - } - notifyDataSetChanged() - } - - interface OnTabSelectListener { - fun onSelect(isCurrentProcess:Boolean) - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt deleted file mode 100644 index d833aab94a..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/OverlayLeftViewUtils.kt +++ /dev/null @@ -1,432 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.leftmenu - -import android.animation.Animator -import android.animation.ValueAnimator -import android.annotation.SuppressLint -import android.app.Activity -import android.content.Context.WINDOW_SERVICE -import android.graphics.PixelFormat -import android.view.Gravity -import android.view.LayoutInflater -import android.view.View -import android.view.WindowManager -import android.view.animation.LinearInterpolator -import android.widget.FrameLayout -import android.widget.ListView -import androidx.appcompat.widget.AppCompatImageView -import androidx.constraintlayout.widget.ConstraintLayout -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.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.event.FinishActivity -import com.mogo.och.taxi.passenger.event.UIStatus -import com.mogo.och.taxi.passenger.mulprocess.EmptyService -import com.mogo.och.taxi.passenger.ui.leftmenu.model.LeftMenuModel -import com.mogo.och.taxi.passenger.ui.video.VideoActivity -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import org.greenrobot.eventbus.EventBus -import java.util.concurrent.TimeUnit - -/** - * 遮罩层工具类 - * - * @author mogoauto - */ -@SuppressLint("StaticFieldLeak") -object OverlayLeftViewUtils { - private const val TAG = "OverlayViewUtils" - private var windowManager: WindowManager? = null - - @Volatile - private var isShowing = false - - private var params:WindowManager.LayoutParams?=null - - const val WIDTH = 810 - const val DEVIATION_WIDTH = -669 - - const val LIVE = 0 - const val OVERVIEW = 1 - const val CONSULT = 2 - const val MOVIE = 3 - - - private var overlayView: View?=null - - private var subscribe: Disposable?=null - private var subscribeLive: Disposable?=null - private var subscribeOVERVIEW: Disposable?=null - - private var acivOpenClose: AppCompatImageView?=null - - /** - * 添加覆盖View在Activity上面 - */ - @JvmOverloads - fun showOverlayView(context: Activity,checkIndex:Int = LIVE,isOpen: Boolean=true, ani: Int = -1,isMainProcess: Boolean = false) { - if (isShowing) { - return - } - if (windowManager == null) { - windowManager = context.getSystemService(WINDOW_SERVICE) as WindowManager - } - - overlayView = LayoutInflater.from(context) - .inflate(R.layout.taxi_p_window_float_interphone, null) as ConstraintLayout - overlayView?.let { view -> - // 设置View显示模式,沉浸式的侵入到状态栏,导航栏 - view.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_LAYOUT_STABLE - or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) - layoutParams(ani,view, isOpen) - - // 如果正在展示中,并且lastOverlayView不为null,先做移除操作,保证覆盖在最上面的View只有一个,防止叠加导致无法移除 - dismissOverlayView(false) - - val vDragField = view.findViewById(R.id.v_drag_field) - acivOpenClose = view.findViewById(R.id.aciv_open_close) - vDragField.setOnTouchListener(ItemViewTouchListener()) - vDragField.setOnClickListener { - val start: Int = params!!.x - if (start > DEVIATION_WIDTH /2 && start < 10) { - close(view, windowManager) - } else if (start < DEVIATION_WIDTH /2 && start >= DEVIATION_WIDTH) { - open(view, windowManager) - } - } - - val lvSelectItem = view.findViewById(R.id.lv_select_item) - val integers = mutableListOf() - - val liveSelected = object :ListAdapter.OnTabSelectListener{ - override fun onSelect(isCurrentProcess:Boolean) { - LeftMenuOpen.checkIndex = LIVE - if(isCurrentProcess) { - close(view, windowManager) - }else { - LeftMenuOpen.invoKeyByEventType(VideoActivity.EVENT_FINISH) - } - if(isMainProcess){ - //主进程 建议Eventbus实现 - subscribeLive = Observable.timer(300, TimeUnit.MILLISECONDS) - .subscribe { - EventBus.getDefault().post(UIStatus(UIStatus.LIVE)) - } - }else{ - EventBus.getDefault().post(FinishActivity()) - } - } - } - - val overViewSelected = object :ListAdapter.OnTabSelectListener{ - override fun onSelect(isCurrentProcess:Boolean) { - LeftMenuOpen.checkIndex = OVERVIEW - if(isCurrentProcess) { - close(view, windowManager) - }else { - LeftMenuOpen.invoKeyByEventType(VideoActivity.EVENT_FINISH) - } - if(isMainProcess){ - //主进程 建议Eventbus实现 - subscribeOVERVIEW = Observable.timer(300, TimeUnit.MILLISECONDS) - .subscribe { - EventBus.getDefault().post(UIStatus(UIStatus.OVERVIEW)) - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "发送Eventbus subscribeOVERVIEW") - } - }else{ - EventBus.getDefault().post(FinishActivity()) - } - } - } - - val consultSelect = object :ListAdapter.OnTabSelectListener{ - override fun onSelect(isCurrentProcess:Boolean) { - LeftMenuOpen.checkIndex = CONSULT - if(isCurrentProcess) { - close(view, windowManager) - //计算订单起点和终点距离 - val sumDis = SharedPrefsMgr.getInstance(context).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) - VideoActivity.startActivity(context, VideoActivity.VIDEOTYPE_CONSULT,sumDis) - } - } - } - - val entertainmentSelect = object :ListAdapter.OnTabSelectListener{ - override fun onSelect(isCurrentProcess:Boolean) { - LeftMenuOpen.checkIndex = MOVIE - if(isCurrentProcess) { - close(view, windowManager) - val sumDis = SharedPrefsMgr.getInstance(context).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) - VideoActivity.startActivity(context, VideoActivity.VIDEOTYPE_MOIES,sumDis) - } - } - } - - integers.add(LeftMenuModel(R.drawable.shape_size_live_select, R.drawable.shape_size_live_selected,false,liveSelected)) - integers.add(LeftMenuModel(R.drawable.shape_size_overview_select, R.drawable.shape_size_overview_selected,false,overViewSelected)) - integers.add(LeftMenuModel(R.drawable.shape_size_consult_select, R.drawable.shape_size_consult_selected,false,consultSelect)) - integers.add(LeftMenuModel(R.drawable.shape_size_entertainment_select, R.drawable.shape_size_entertainment_selected,false,entertainmentSelect)) - integers.forEachIndexed { index, leftMenuModel -> - leftMenuModel.isChecked = index == checkIndex - } - lvSelectItem.adapter = ListAdapter(context, integers) - - addTarget(context) - - LeftMenuOpen.setValue(view, params, windowManager,::close,::open,isMainProcess) - try { - windowManager!!.addView(overlayView, params) - checkProcess() - isShowing = true - } catch (e: WindowManager.BadTokenException) { - isShowing = true; - dismissOverlayView(false) - } catch (e: Exception) { - e.printStackTrace() - } - } - } - - private fun addTarget(context: Activity) { - try { - val content = - context.window.decorView.findViewById(android.R.id.content) - val textView = View(context) - textView.id = R.id.ids_video_anchor - addDragTarget(textView) - val param: FrameLayout.LayoutParams = - FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT) - param.gravity = Gravity.CENTER_VERTICAL - param.width = 143 - param.height = 308 - textView.layoutParams = param - content.addView(textView) - } catch (e: java.lang.Exception) { - e.printStackTrace() - } - } - - /** - * 打开状态栏 - */ - private fun open(overlayView: View,windowManager: WindowManager?) { - checkProcess() - val valueAnimator = ValueAnimator.ofInt(params!!.x, 0) - valueAnimator.duration = 100 - valueAnimator.interpolator = LinearInterpolator() - valueAnimator.addUpdateListener { - params?.x = it.animatedValue as Int - windowManager?.updateViewLayout(overlayView, params) - } - valueAnimator.addListener(object : Animator.AnimatorListener { - override fun onAnimationStart(animation: Animator) {} - override fun onAnimationEnd(animation: Animator) { - acivOpenClose?.apply { - pivotX = (width /2).toFloat() - pivotY = (height /2).toFloat() - rotation = 0f - } - closeByTime(overlayView, windowManager) - params?.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS or - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL - windowManager?.updateViewLayout(overlayView, params) - } - override fun onAnimationCancel(animation: Animator) {} - override fun onAnimationRepeat(animation: Animator) {} - }) - valueAnimator.start() - } - - private fun checkProcess() { - ThreadPoolService.execute { - val currentProcessName = ProcessUtils.getCurrentProcessName() - if (currentProcessName.contains(":video")) { - return@execute - } - val allBackgroundProcesses = ProcessUtils.getAllBackgroundProcesses() - var haveProcess = false - allBackgroundProcesses.forEach { - if (it.contains(":video")) { - haveProcess = true - return@forEach - } - } - if (!haveProcess) { - EmptyService.startService(Utils.getApp()) - } - } - } - - fun addDragTarget(view :View?){ - LeftMenuOpen.registerDragView(view) - } - - fun removeDragTarget(view: View?){ - LeftMenuOpen.unRegisterDragView(view,true) - } - - /** - * - */ - fun transmissionIndex(index:Int){ - // TODO 需要与,杨亚坤,确认为啥要限制仅在主进程 -// if(!ProcessUtils.isMainProcess(Utils.getApp())) { - LeftMenuOpen.transmissionIndex(index) -// } - } - - fun transmissionIndexGet(index: Int){ - overlayView?.let { - val lvSelectItem = it.findViewById(R.id.lv_select_item) - val listAdapter = lvSelectItem.adapter as ListAdapter - listAdapter.setSelectIndex(index,false) - } - - } - - private fun closeByTime( - overlayView: View, - windowManager: WindowManager? - ) { - subscribe?.let { - if (!it.isDisposed) { - it.dispose() - } - } - subscribe = Observable.timer(3000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - if (params?.x == 0) { - close(overlayView, windowManager) - } - } - } - - /** - * 关闭状态栏 - */ - private fun close(overlayView: View,windowManager: WindowManager?) { - val valueAnimator = ValueAnimator.ofInt(params!!.x, DEVIATION_WIDTH) - valueAnimator.duration = 100 - valueAnimator.interpolator = LinearInterpolator() - valueAnimator.addUpdateListener { - params?.let { paramsIn-> - paramsIn.x = it.animatedValue as Int - windowManager?.updateViewLayout(overlayView, paramsIn) - } - } - valueAnimator.addListener(object : Animator.AnimatorListener { - override fun onAnimationStart(animation: Animator) {} - override fun onAnimationEnd(animation: Animator) { - acivOpenClose?.apply { - pivotX = (width /2).toFloat() - pivotY = (height /2).toFloat() - rotation = 180f - } - params?.let { - it.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS or - WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE or - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL - windowManager?.updateViewLayout(overlayView, it) - } - - } - override fun onAnimationCancel(animation: Animator) {} - override fun onAnimationRepeat(animation: Animator) {} - }) - valueAnimator.start() - } - - private fun layoutParams(ani: Int,view :View,isOpen: Boolean) { - if(params ==null) { - params = WindowManager.LayoutParams() - } - params = WindowManager.LayoutParams() - params?.let { - it.width = WIDTH - it.height = WindowManager.LayoutParams.MATCH_PARENT - it.alpha = 1.0f - it.gravity = Gravity.START or Gravity.CENTER_HORIZONTAL - if(isOpen) { - it.x = 0 - }else{ - it.x = DEVIATION_WIDTH - } - it.y = 0 - it.format = PixelFormat.RGBA_8888 - // 设置窗口类型为应用子窗口,和PopupWindow同类型 - it.type = WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL - // 没有边界限制,允许窗口扩展到屏幕外 - it.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS or - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL - if (ani != -1) { - it.windowAnimations = ani - } - closeByTime(view, windowManager) - } - } - - fun getStatus():Boolean{ - return isShowing - } - - /** - * 移除覆盖View在Activity上面 - */ - fun dismissOverlayView(isMain:Boolean) { - if (!isShowing) { - return - } - releaseDelay(subscribe) - releaseDelay(subscribeLive) - releaseDelay(subscribeOVERVIEW) - subscribe = null - subscribeLive = null - subscribeOVERVIEW = null - // 管理的要关闭都得关闭 - if(isMain) { - LeftMenuOpen.invoKeyByEventType(VideoActivity.EVENT_FINISH) - } - - LeftMenuOpen.clearValue() - try { - if (windowManager != null && overlayView != null) { - windowManager!!.removeViewImmediate(overlayView) - params = null - } - if(windowManager!=null){ - windowManager = null - } - if(params!=null){ - params = null - } - if (overlayView!=null) { - overlayView = null - } - if (acivOpenClose!=null) { - acivOpenClose = null - } - isShowing = false - } catch (e: Exception) { - e.printStackTrace() - } - } - - private fun releaseDelay(subscribe: Disposable?) { - subscribe?.let { - if (!it.isDisposed) { - it.dispose() - } - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/model/LeftMenuModel.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/model/LeftMenuModel.kt deleted file mode 100644 index 6907442c5d..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/model/LeftMenuModel.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.leftmenu.model - -import com.mogo.och.taxi.passenger.ui.leftmenu.ListAdapter - -data class LeftMenuModel( - val select: Int, - val selected: Int, - var isChecked: Boolean, - val selectListener: ListAdapter.OnTabSelectListener -) \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt deleted file mode 100644 index 10fc150bed..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/VideoActivity.kt +++ /dev/null @@ -1,425 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.video - -import android.content.Context -import android.content.Intent -import android.content.res.Resources -import android.graphics.Color -import android.net.Uri -import android.os.Bundle -import android.os.Looper -import android.view.View -import android.widget.TextView -import androidx.appcompat.app.AppCompatActivity -import androidx.appcompat.widget.AppCompatImageView -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.recyclerview.widget.RecyclerView -import com.mogo.commons.screen.ScreenHelper -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.BarUtils -import com.mogo.och.taxi.passenger.R -import com.mogo.och.taxi.passenger.bean.TaxiPassengerVideoPlay -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.event.FinishActivity -import com.mogo.och.taxi.passenger.ui.leftmenu.LeftMenuOpen -import com.mogo.och.taxi.passenger.ui.leftmenu.OverlayLeftViewUtils -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselLayoutManager -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.taxi.passenger.ui.video.layoutmanage.CenterScrollListener -import com.mogo.och.taxi.passenger.utils.FixMemoryLeak -import com.mogo.och.taxi.passenger.widget.ConsultVideoPlayer -import com.mogo.och.taxi.passenger.widget.indicator.IndicatorView -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorOrientation -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorSlideMode -import com.mogo.och.taxi.passenger.widget.indicator.enums.IndicatorStyle -import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import me.jessyan.autosize.AutoSize -import me.jessyan.autosize.AutoSizeCompat -import org.greenrobot.eventbus.EventBus -import org.greenrobot.eventbus.Subscribe -import org.greenrobot.eventbus.ThreadMode -import rx.Observable -import rx.Observer -import rx.Subscription -import rx.android.schedulers.AndroidSchedulers -import rx.schedulers.Schedulers -import java.util.concurrent.TimeUnit -import kotlin.math.floor - - -class VideoActivity : AppCompatActivity() { - - private var rvVideoPlaylist: RecyclerView? = null - private lateinit var indicatorView: IndicatorView - private lateinit var clContain: ConstraintLayout - private lateinit var acivTitleIcon: AppCompatImageView - private lateinit var tvTitle: TextView - private var subscribe: Subscription? = null - private val TAG = "mulprocessVideoActivity" - - private val arrayListOf = ArrayList() - - - companion object { - const val VIDEOTYPE = "VIDEOTYPE" - const val VIDEOTYPE_CONSULT = 0 - const val VIDEOTYPE_MOIES = 1 - const val VIDEOTYPE_CLOSE = 2 - - const val EVENT_FINISH = 0 - - fun startActivity(context: Context, videoType: Int, sumDis: Int) { - val intent = Intent(context, VideoActivity::class.java) - intent.putExtra(VIDEOTYPE, videoType) - intent.putExtra(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, sumDis) - context.startActivity(intent) - } - } - - private var videotype = VIDEOTYPE_CONSULT - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - EventBus.getDefault().register(this) - setContentView(R.layout.taxi_p_arrived_mogo_consult) - initView() - configPage() - } - - override fun onNewIntent(intent: Intent?) { - super.onNewIntent(intent) - setIntent(intent) - configPage() - } - - private fun configPage() { - FullVideoUtils.dismissOverlayView(true) - releaseOnNewInstance() - when (intent.getIntExtra(VIDEOTYPE, VIDEOTYPE_CONSULT)) { - VIDEOTYPE_CONSULT -> { - videotype = VIDEOTYPE_CONSULT - acivTitleIcon.setImageResource(R.drawable.taxi_p_mogo_consult_title_icon) - tvTitle.text = "蘑菇资讯" - initConsultData() - } - VIDEOTYPE_MOIES -> { - videotype = VIDEOTYPE_MOIES - acivTitleIcon.setImageResource(R.drawable.taxi_p_mogo_movies_title_icon) - tvTitle.text = "影视娱乐" - initMoviesData() - } - } - initListener() - initData() - LeftMenuOpen.registerCallback(LeftMenuOpen.callBack) - } - - private fun initConsultData() { - arrayListOf.clear() - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708596763/全车型混剪增加红旗车队.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969511280/车队.png", - "蘑菇车联覆盖生活的方方面面" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708554279/红旗车队.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969553174/红旗重新排版.png", - "蘑菇车联之红旗车队" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708499497/大运会合作解说版.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969536177/大运会.png", - "蘑菇车联牵手成都大运会" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708409810/20210610重新排版3屏.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969579713/三屏.png", - "多视角体验蘑菇车联自动驾驶" - ) - ) - } - - private fun initMoviesData() { - arrayListOf.clear() - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558672856/小宝宝.mp4", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559345882/1.png", - "小宝宝" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558697055/小猫.mp4", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559367261/2.png", - "小猫" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558730074/星空.mp4", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559406169/4.png", - "星空" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558644708/海浪.mp4", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559384635/3.png", - "星空" - ) - ) - } - - private fun initData() { - val carouselLayoutManager = CarouselLayoutManager(CarouselLayoutManager.HORIZONTAL, true) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener()) - carouselLayoutManager.maxVisibleItems = 1 - indicatorView.notifyDataChanged(arrayListOf.size) - indicatorView.setSlideMode(IndicatorSlideMode.SCALE) - indicatorView.setOrientation(IndicatorOrientation.INDICATOR_HORIZONTAL) - indicatorView.setIndicatorStyle(IndicatorStyle.ROUND_RECT) - indicatorView.setSliderColor( - Color.parseColor("#FFFFFF"), Color.parseColor("#26C5FD"), - Color.parseColor("#26C5FD") - ) - indicatorView.setSliderWidth(9f, 54f) - indicatorView.setSliderHeight(9f) - indicatorView.setSliderGap(36f) - rvVideoPlaylist?.addOnScrollListener(object : CenterScrollListener() { - var prePlayerPosition = 0 - override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { - //播放视频 - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - indicatorView.onPageSelected(centerItemPosition) - if (player is ConsultVideoPlayer) { - if (prePlayerPosition != centerItemPosition) { - if (player.currentState == GSYVideoView.CURRENT_STATE_PAUSE) { - player.onVideoReset() - } - val playerHolder = - carouselLayoutManager.findViewByPosition(prePlayerPosition) - val prePlayer = - playerHolder?.findViewById(R.id.video_item_player) - prePlayer?.onVideoReset() - val taxiPassengerVideoPlay = arrayListOf[centerItemPosition] - setBackageAndPlayNext(taxiPassengerVideoPlay) - } else { - player.onVideoResume(false) - } - } - prePlayerPosition = centerItemPosition - } - - override fun pageStop() { - val (_: Int, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoPause() - } - } - - }) - carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition -> - val fl = adapterPosition - floor(adapterPosition) - var currentIndex = currentPosition - if (fl > 0.5) { - if (currentPosition == 0) { - currentIndex = rvVideoPlaylist?.adapter!!.itemCount - 1 - } else { - currentIndex -= 1 - } - } - indicatorView.onPageScrolled(currentIndex, fl, 0) - } - val recyclerVideoAdapter = RecyclerVideoAdapter(this, arrayListOf, rvVideoPlaylist) - recyclerVideoAdapter.setOnThumbImageClilckListener { - val (_: Int, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoReset() - player.thumbImageViewLayout.visibility = View.VISIBLE - } - rvVideoPlaylist?.smoothScrollToPosition(it) - } - rvVideoPlaylist?.layoutManager = carouselLayoutManager - rvVideoPlaylist?.setHasFixedSize(true) - rvVideoPlaylist?.adapter = recyclerVideoAdapter - } - - private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { - val centerItemPosition: Int = carouselLayoutManager.centerItemPosition - val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition) - val player = playerHolder?.findViewById(R.id.video_item_player) - return Pair(centerItemPosition, player) - } - - private fun initListener() { - } - - private fun initView() { - rvVideoPlaylist = findViewById(R.id.rv_video_playlist) - indicatorView = findViewById(R.id.indicatorView) - clContain = findViewById(R.id.cl_contain) - acivTitleIcon = findViewById(R.id.aciv_title_icon) - tvTitle = findViewById(R.id.tv_mogo_consult) - acivTitleIcon.setOnClickListener { - //finish() - } - } - - - private fun setBackageAndPlayNext(taxiPassengerVideoPlay: TaxiPassengerVideoPlay) { - // 设置背景图片 - } - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - when (videotype) { - VIDEOTYPE_CONSULT -> { - OverlayLeftViewUtils.showOverlayView( - this, - isOpen = false, - checkIndex = OverlayLeftViewUtils.CONSULT - ) - } - VIDEOTYPE_MOIES -> { - OverlayLeftViewUtils.showOverlayView( - this, - isOpen = false, - checkIndex = OverlayLeftViewUtils.MOVIE - ) - } - } - val sumDis = intent.getIntExtra(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS, 0) - FloatingDistanceInfoUtils.showOverlayView(this, sumDis = sumDis) - } - - override fun onResume() { - super.onResume() - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - if (centerItemPosition < 0) { - setBackageAndPlayNext(arrayListOf[0]) - } - player?.let { - if (player.isIfCurrentIsFullscreen) {// 全屏了 - - } else { - when (player.currentState) { - GSYVideoView.CURRENT_STATE_PAUSE -> { - player.onVideoResume(false) - } - GSYVideoView.CURRENT_STATE_PLAYING -> { - } - else -> { - - } - } - } - - } - subscribe = Observable.interval(2, 8, TimeUnit.SECONDS) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Observer { - override fun onCompleted() {} - override fun onError(e: Throwable?) {} - override fun onNext(t: Long?) { - if (!OverlayLeftViewUtils.getStatus()) { - when (videotype) { - VIDEOTYPE_CONSULT -> { - OverlayLeftViewUtils.showOverlayView( - this@VideoActivity, - isOpen = false, - checkIndex = OverlayLeftViewUtils.CONSULT - ) - } - VIDEOTYPE_MOIES -> { - OverlayLeftViewUtils.showOverlayView( - this@VideoActivity, - isOpen = false, - checkIndex = OverlayLeftViewUtils.MOVIE - ) - } - } - } - } - }) - } - - override fun onPause() { - super.onPause() - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (centerItemPosition: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - if (player is ConsultVideoPlayer) { - // 离开应用 暂停视频 - // 关闭 onDetachedFromWindow 会reset - if (player.isIfCurrentIsFullscreen) {// 全屏了 - } else { - player.onVideoPause() - } - } - } - cancleSubscribe() - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun finishActivity(event: FinishActivity) { - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "finishActivity(event)") - cancleSubscribe() - val intent = Intent() - val parse = Uri.parse("mogo://launcher/main/switch2?type=launch") - intent.data = parse - intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP - startActivity(intent) - finish() - } - - override fun onDestroy() { - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "onDestroy()") - super.onDestroy() - EventBus.getDefault().unregister(this) - LeftMenuOpen.unregisterCallback(LeftMenuOpen.callBack) - releaseOnNewInstance() - OverlayLeftViewUtils.dismissOverlayView(false) - FloatingDistanceInfoUtils.dismissOverlayView() - FixMemoryLeak.fixLeak(this) - cancleSubscribe() - } - - private fun cancleSubscribe() { - subscribe?.let { - if (!it.isUnsubscribed) { - it.unsubscribe() - } - } - } - - private fun releaseOnNewInstance() { - if (rvVideoPlaylist != null && rvVideoPlaylist?.layoutManager != null) { - val carouselLayoutManager = rvVideoPlaylist?.layoutManager as CarouselLayoutManager - val (_: Int, player) = getPlayer(carouselLayoutManager) - player?.let { - player.currentPlayer.release() - player.onVideoReset() - } - } - FullVideoUtils.dismissOverlayView(true) - } - - override fun onBackPressed() {} - - override fun getResources(): Resources? { - if (Looper.myLooper() == Looper.getMainLooper()) { - AutoSizeCompat.autoConvertDensityOfGlobal(super.getResources()) - } - return super.getResources() - } -} \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java deleted file mode 100644 index a3b8d863a1..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.mogo.och.taxi.passenger.utils; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import android.text.TextUtils; - -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.eagle.core.data.app.AppConfigInfo; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.commons.utils.MogoAnalyticUtils; -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.DateTimeUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; - -import java.util.HashMap; - -/** - * OCH Taxi埋点工具 - * - * Created on 2022/3/24 - */ -public class TaxiPassengerAnalyticsManager { - - private static final class SingletonHolder { - private static final TaxiPassengerAnalyticsManager INSTANCE = new TaxiPassengerAnalyticsManager(); - } - - public static TaxiPassengerAnalyticsManager getInstance() { - return TaxiPassengerAnalyticsManager.SingletonHolder.INSTANCE; - } - - - - private String mStartAutopilotKey; - private HashMap mStartAutopilotParams = new HashMap<>(); - - private Runnable startAutopilotRunnable = () -> { - // 15s内未开启,上报失败埋点 - triggerStartAutopilotFailureEvent("", "15s后app等待超时"); - }; - - public void triggerStartAutopilotFailureEventByAdas(String failCode, String failMsg){ - removeWaitingCallback(); - triggerStartAutopilotFailureEvent(failCode, failMsg); - } - - private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ - if (mStartAutopilotParams.isEmpty()) return; - - CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg ); - - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() != - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE, failCode); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG, - failMsg); - } - - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT - , CallerAutoPilotStatusListenerManager.INSTANCE.getState() == - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams();//清空参数数据,防止误传 - } - - public void clearStartAutopilotFailureMSG(){ - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE, ""); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG, ""); - } - - private void clearStartAutopilotParams(){ - mStartAutopilotParams.clear(); - } - - private void removeWaitingCallback() { - if (startAutopilotRunnable != null) { - UiThreadHandler.removeCallbacks(startAutopilotRunnable); - } - } - - /** - * 触发'开启自动驾驶'埋点流程 - * 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点 - * @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动) - * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) - */ - public void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, String orderNo) { - mStartAutopilotKey = restart ? - TaxiPassengerConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiPassengerConst.EVENT_KEY_START_SERVICE; - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_SN, sn); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_TIME, dateTime); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_NAME, startName); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_END_NAME, endName); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER, orderNo); - - if (send) { - if (mStartAutopilotParams.isEmpty()) return; - // 开启成功,取消失败定时任务 - clearStartAutopilotFailureMSG(); - removeWaitingCallback(); - mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT, true); - MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); - - clearStartAutopilotParams(); - } else { - UiThreadHandler.postDelayed(startAutopilotRunnable, TaxiPassengerConst.LOOP_PERIOD_15S); - } - } - - /** - * 触发"无法开启自驾已知异常"埋点 - * @param startName - * @param endName - * @param orderNo - */ - public void triggerUnableStartAPReasonEvent(String startName, String endName, String orderNo, - String reason) { - String sn = MoGoAiCloudClientConfig.getInstance().getSn(); - String plateNum = AppConfigInfo.INSTANCE.getPlateNumber(); - String dateTime = DateTimeUtils.getTimeText( - System.currentTimeMillis(), DateTimeUtils.yyyy_MM_dd_HH_mm_ss); - - HashMap params = new HashMap<>(); - - params.put(TaxiPassengerConst.EVENT_PARAM_SN, sn); - params.put(TaxiPassengerConst.EVENT_PARAM_PLATE_NUM, TextUtils.isEmpty(plateNum) ? "" : plateNum); - params.put(TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE, - DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE ? true : false); - params.put(TaxiPassengerConst.EVENT_PARAM_TIME, dateTime); - params.put(TaxiPassengerConst.EVENT_PARAM_START_NAME, startName); - params.put(TaxiPassengerConst.EVENT_PARAM_END_NAME, endName); - params.put(TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER, orderNo); - params.put(TaxiPassengerConst.EVENT_PARAM_UNABLE_START_REASON, reason); - MogoAnalyticUtils.INSTANCE.track(TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON, params); - } -} diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_full.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_full.png deleted file mode 100644 index a70be0cdd8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_full.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_normal.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_normal.png deleted file mode 100644 index b3ceb81fb6..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_change_normal.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_left_flow_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_left_flow_bg.png deleted file mode 100755 index 232b525cc9..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_left_flow_bg.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_select.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_select.png deleted file mode 100644 index efa5c92cff..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_select.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_selected.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_selected.png deleted file mode 100644 index a920f867bf..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_consult_selected.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_select.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_select.png deleted file mode 100644 index f1fcd94d06..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_select.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_selected.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_selected.png deleted file mode 100644 index 8777558ee2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_entertainment_selected.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_select.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_select.png deleted file mode 100644 index 7571b33968..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_select.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_selected.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_selected.png deleted file mode 100644 index 7b309b5815..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_live_selected.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_select.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_select.png deleted file mode 100644 index 42d3500f40..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_select.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_selected.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_selected.png deleted file mode 100644 index 9d8c093a92..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_mogo_overview_selected.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_arrived_close.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_arrived_close.png deleted file mode 100644 index 2d9221c90e..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_arrived_close.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_check_panel_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_check_panel_bg.png deleted file mode 100755 index 49567f10c2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_check_panel_bg.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png deleted file mode 100644 index 7121f26751..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/taxi_p_passenger_start_panel_bg.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml deleted file mode 100644 index c8e2cecfca..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/anmi_flow.xml +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_score_success.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_score_success.xml deleted file mode 100644 index 530c056746..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_score_success.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00004.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00004.png deleted file mode 100755 index f7dd0c6b25..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00004.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00006.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00006.png deleted file mode 100755 index 70108e3707..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00006.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00008.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00008.png deleted file mode 100755 index a0877d0acc..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00008.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00010.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00010.png deleted file mode 100755 index f297f5d342..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00010.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00012.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00012.png deleted file mode 100755 index 68f2afcae2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00012.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00014.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00014.png deleted file mode 100755 index 831402be08..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00014.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00016.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00016.png deleted file mode 100755 index 267f43b0f3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00016.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00018.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00018.png deleted file mode 100755 index 090e0f5956..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00018.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00020.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00020.png deleted file mode 100755 index 79dcb2bd7d..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00020.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00022.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00022.png deleted file mode 100755 index f0bdfebe51..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00022.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00024.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00024.png deleted file mode 100755 index f2849724a9..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00024.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00026.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00026.png deleted file mode 100755 index 61ced03693..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00026.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00028.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00028.png deleted file mode 100755 index 267f43b0f3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00028.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00030.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00030.png deleted file mode 100755 index 6ace3723e0..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00030.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00032.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00032.png deleted file mode 100755 index 7bf472281c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00032.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00034.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00034.png deleted file mode 100755 index b4f6621cf1..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00034.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00036.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00036.png deleted file mode 100755 index c7b712902f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00036.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00038.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00038.png deleted file mode 100755 index 948889745a..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00038.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00040.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00040.png deleted file mode 100755 index 642dc60de2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00040.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00042.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00042.png deleted file mode 100755 index 58fd5e0e7e..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00042.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00044.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00044.png deleted file mode 100755 index 19bcbac261..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00044.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00046.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00046.png deleted file mode 100755 index acd43f4298..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00046.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00048.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00048.png deleted file mode 100755 index 170eb808a3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00048.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00050.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00050.png deleted file mode 100755 index 4be63ceae0..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00050.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00052.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00052.png deleted file mode 100755 index e32c7f0f05..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00052.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00054.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00054.png deleted file mode 100755 index 261498d77c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00054.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00056.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00056.png deleted file mode 100755 index 6e86e9562e..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00056.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00058.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00058.png deleted file mode 100755 index eccea55da7..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00058.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00060.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00060.png deleted file mode 100755 index 84f0a318ec..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00060.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00062.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00062.png deleted file mode 100755 index 638959b769..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00062.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00064.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00064.png deleted file mode 100755 index 6cd7a9c5e3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00064.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00066.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00066.png deleted file mode 100755 index 7c98a6bc11..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00066.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00068.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00068.png deleted file mode 100755 index 1e29bf4ff5..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/hand_00068.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/ic_baseline_arrow.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/ic_baseline_arrow.png deleted file mode 100644 index 54e593579f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/ic_baseline_arrow.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png deleted file mode 100755 index a87ce28353..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00000.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png deleted file mode 100755 index ed4d3febae..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00001.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png deleted file mode 100755 index 978dc8cbea..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00002.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png deleted file mode 100755 index b41c810c2b..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00003.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png deleted file mode 100755 index 15180e4954..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00004.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png deleted file mode 100755 index 128c2b10d5..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00005.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png deleted file mode 100755 index dcb1b8db55..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00006.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png deleted file mode 100755 index d980c36eb3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00007.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png deleted file mode 100755 index 041bb2aca4..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00008.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png deleted file mode 100755 index 4516a22b5c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00009.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png deleted file mode 100755 index e60876958b..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00010.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png deleted file mode 100755 index 330a294670..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00011.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png deleted file mode 100755 index b09f0594f8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00012.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png deleted file mode 100755 index 201cc1c734..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00013.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png deleted file mode 100755 index 020e85e414..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00014.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png deleted file mode 100755 index a6234edea5..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00015.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png deleted file mode 100755 index 2909dba853..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00016.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png deleted file mode 100755 index ae44921498..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00017.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png deleted file mode 100755 index b2d383af4f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00018.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png deleted file mode 100755 index 143aa7cebf..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00019.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png deleted file mode 100755 index cfa12dffeb..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00020.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png deleted file mode 100755 index 504524e687..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00021.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png deleted file mode 100755 index 01d2a11339..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00022.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png deleted file mode 100755 index ef12f3bcc2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00023.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png deleted file mode 100755 index bfd526d29d..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00024.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png deleted file mode 100755 index f71f6f8f67..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00025.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png deleted file mode 100755 index 93b68757d2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00026.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png deleted file mode 100755 index e24cae142d..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00027.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png deleted file mode 100755 index 563899a67c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00028.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png deleted file mode 100755 index eba1e12d7f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00029.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png deleted file mode 100755 index 754efe49f3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00030.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png deleted file mode 100755 index b7a9549bfb..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00031.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png deleted file mode 100755 index fffdf50984..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00032.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png deleted file mode 100755 index 1155c66997..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00033.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png deleted file mode 100755 index 6db7d709b8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00034.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png deleted file mode 100755 index 3935487014..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00035.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png deleted file mode 100755 index 115ebdf8af..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00036.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png deleted file mode 100755 index c98ebf4193..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00037.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png deleted file mode 100755 index c264ceffb7..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00038.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png deleted file mode 100755 index 669efb8d98..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00039.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png deleted file mode 100755 index 2c6e016b9f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00040.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png deleted file mode 100755 index e538dd53cb..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00041.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png deleted file mode 100755 index bc36edd235..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00042.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png deleted file mode 100755 index b29f386a92..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00043.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png deleted file mode 100755 index d736ccb16a..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00044.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png deleted file mode 100755 index 218e22c9a6..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00045.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png deleted file mode 100755 index b200be7006..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00046.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png deleted file mode 100755 index 0a470eea86..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00047.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png deleted file mode 100755 index d0779a8a7e..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00048.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png deleted file mode 100755 index e50740e8f4..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00049.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png deleted file mode 100755 index 53210cf36b..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00050.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png deleted file mode 100755 index 34134d06c2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00051.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png deleted file mode 100755 index 7a5302f935..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00052.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png deleted file mode 100755 index 8eb919b142..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00053.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png deleted file mode 100755 index 14ab151b49..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00054.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png deleted file mode 100755 index f11a308e8a..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00055.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png deleted file mode 100755 index c024ce35fd..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00056.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png deleted file mode 100755 index a976742cf4..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00057.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png deleted file mode 100755 index ff13384b26..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00058.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png deleted file mode 100755 index 5143406284..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00059.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png deleted file mode 100755 index 5bab1626c4..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00060.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png deleted file mode 100755 index 4d0c7e8722..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00061.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png deleted file mode 100755 index 166e930576..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00062.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png deleted file mode 100755 index dd7d56e8a2..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00063.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png deleted file mode 100755 index 17b9be0d8a..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00064.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png deleted file mode 100755 index f49f9d380f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00065.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png deleted file mode 100755 index 69aa04e719..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00066.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png deleted file mode 100755 index 331b058002..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00067.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png deleted file mode 100755 index 6a98bda7ba..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00068.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png deleted file mode 100755 index 5f27ad1be8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00069.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png deleted file mode 100755 index 79d0ac3e8f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00070.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png deleted file mode 100755 index 313a84a454..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00071.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png deleted file mode 100755 index cb1a5e4413..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00072.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png deleted file mode 100755 index 8888c9e9b0..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00073.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png deleted file mode 100755 index 2372d3e02e..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00074.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00075.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00075.png deleted file mode 100755 index 1e0a555772..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00075.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00076.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00076.png deleted file mode 100755 index e14570c663..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00076.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00077.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00077.png deleted file mode 100755 index d0e8ea44b9..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00077.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00078.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00078.png deleted file mode 100755 index 76acdb2656..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00078.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00079.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00079.png deleted file mode 100755 index d6b7f2f763..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00079.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00080.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00080.png deleted file mode 100755 index 23e27dd5fc..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00080.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00081.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00081.png deleted file mode 100755 index ff98b43352..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00081.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00082.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00082.png deleted file mode 100755 index 5d4f9a02b0..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00082.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00083.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00083.png deleted file mode 100755 index f055ccbe7f..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00083.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00084.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00084.png deleted file mode 100755 index 5ab712a882..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00084.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00085.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00085.png deleted file mode 100755 index a22dc3cbf8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00085.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00086.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00086.png deleted file mode 100755 index 5c09770aaf..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00086.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00087.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00087.png deleted file mode 100755 index 87ac76f7e3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00087.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00088.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00088.png deleted file mode 100755 index 9a3f190563..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00088.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00089.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00089.png deleted file mode 100755 index 80f112da1d..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00089.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00090.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00090.png deleted file mode 100755 index 9850e77781..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00090.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00091.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00091.png deleted file mode 100755 index 616b646b62..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00091.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00092.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00092.png deleted file mode 100755 index a43e39ea97..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00092.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00093.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00093.png deleted file mode 100755 index 7778157981..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00093.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00094.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00094.png deleted file mode 100755 index 8c99dbdf76..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00094.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00095.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00095.png deleted file mode 100755 index f14091c81c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00095.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00096.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00096.png deleted file mode 100755 index ed6966a4a8..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00096.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00097.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00097.png deleted file mode 100755 index 96bb2b66dc..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00097.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00098.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00098.png deleted file mode 100755 index b8231a865d..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00098.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00099.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00099.png deleted file mode 100755 index b9bb05078b..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/image_00099.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_passenger_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_passenger_bg.png deleted file mode 100644 index 41378d1b41..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_passenger_bg.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_taxi_passenger_press_bg.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_taxi_passenger_press_bg.png deleted file mode 100644 index 59c45b7c18..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/iv_roma_taxi_passenger_press_bg.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png deleted file mode 100755 index 383fd3ce6a..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00000.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png deleted file mode 100755 index 9017b26f03..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00001.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png deleted file mode 100755 index 485d79cc9c..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00002.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png deleted file mode 100755 index 283b069fcf..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00003.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png deleted file mode 100755 index 9690363efc..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00004.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png deleted file mode 100755 index d066263bce..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00005.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png deleted file mode 100755 index de9763c559..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00006.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png deleted file mode 100755 index bcab58b3a9..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00007.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png deleted file mode 100755 index 9c5f0994d3..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00008.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png deleted file mode 100755 index b543a650cd..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00009.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png deleted file mode 100755 index e51ae88287..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00010.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png deleted file mode 100755 index 426caaa5d6..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00011.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png deleted file mode 100755 index 64cbc675c6..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00012.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png deleted file mode 100755 index 6f272fa759..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/light_00013.png and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/roma_taxi_p_bg_selector.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/roma_taxi_p_bg_selector.xml deleted file mode 100644 index 05c96dc351..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/roma_taxi_p_bg_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_select.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_select.xml deleted file mode 100644 index 6995d42e96..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_select.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_selected.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_selected.xml deleted file mode 100644 index 7ec7d6aeab..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_consult_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_select.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_select.xml deleted file mode 100644 index 1aea2aa656..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_select.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_selected.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_selected.xml deleted file mode 100644 index d4e519b304..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_entertainment_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_select.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_select.xml deleted file mode 100644 index 1c2ff76819..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_select.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_selected.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_selected.xml deleted file mode 100644 index 8ce0bb1be3..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_live_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_select.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_select.xml deleted file mode 100644 index 8555fe032d..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_select.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_selected.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_selected.xml deleted file mode 100644 index 0f7ecd3028..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/shape_size_overview_selected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0000.webp b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0000.webp deleted file mode 100644 index dc6d9e6bcd..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0000.webp and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0090.webp b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0090.webp deleted file mode 100644 index 5bc925da38..0000000000 Binary files a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/tail_ani_0090.webp and /dev/null differ diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml deleted file mode 100644 index 4e47d76e53..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml deleted file mode 100644 index 7fb2bc5d21..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_mogo_consult.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_mogo_consult.xml deleted file mode 100644 index 30c569cd84..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_mogo_consult.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml deleted file mode 100644 index a5533567ba..0000000000 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -