diff --git a/OCH/charter/driver/build.gradle b/OCH/charter/driver/build.gradle index 91540463fb..a49dc26cb7 100644 --- a/OCH/charter/driver/build.gradle +++ b/OCH/charter/driver/build.gradle @@ -62,6 +62,8 @@ dependencies { compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper implementation project(":OCH:common:common") + implementation project(":OCH:common:data") + implementation project(":OCH:common:bridge") compileOnly project(":libraries:mogo-map") androidTestImplementation rootProject.ext.dependencies.androidxjunit diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/CharterDriverProvider.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/CharterDriverProvider.kt index 284fb0dd2c..e64d95db78 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/CharterDriverProvider.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/CharterDriverProvider.kt @@ -1,16 +1,19 @@ package com.magic.mogo.och.charter import android.content.Context +import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.magic.mogo.och.charter.fragment.DriverM1Fragment import com.magic.mogo.och.charter.manager.CharterAnalyticsManager +import com.magic.mogo.och.charter.manager.CharterTrajectoryManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonService import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.ui.autopilot.AutopilotState /** @@ -29,14 +32,22 @@ class CharterDriverProvider : CommonServiceImpl() { fragment = DriverM1Fragment() } OchAutopilotAnalytics.ochEventKey = CharterAnalyticsManager.getInstance() + CharterTrajectoryManager.load() return fragment!! } override fun resetFragment() { + CharterTrajectoryManager.release() fragment = null OchAutopilotAnalytics.ochEventKey = null } + override fun createStartAutopilotView(context: Context?): View? { + return context?.let { + AutopilotState(it) + } + } + override fun init(context: Context) { CallerLogger.d(SceneConstant.M_TAXI + tag, "init") } diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java index 246ab9d57a..b767b0fc7e 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterAnalyticsManager.java @@ -2,7 +2,7 @@ package com.magic.mogo.och.charter.manager; import androidx.annotation.NonNull; -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey; +import com.mogo.och.bridge.autopilot.autopilot.IOchEventKey; public class CharterAnalyticsManager implements IOchEventKey { diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt index b1df9035ef..b63b9da27c 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt @@ -14,22 +14,22 @@ 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.bridge.autopilot.trajectory.ITrajectoryListListener +import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.SoundPoolHelper import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable -import io.reactivex.functions.Function import io.reactivex.schedulers.Schedulers -import mogo_msg.MogoReportMsg.MogoReportMessage import java.util.concurrent.TimeUnit /** * Bus轨迹管理:给MEC下发用于轨迹下载的信息 * Created on 2022/6/23 */ -object CharterTrajectoryManager { +object CharterTrajectoryManager : ITrajectoryListListener { private const val TAG = "CharterTrajectoryManager" private var mAutoPilotLine: AutoPilotLine? = null @@ -37,6 +37,14 @@ object CharterTrajectoryManager { private var mLineName = "" private var mSendReqDisposable: Disposable? = null + fun load(){ + TrajectoryManager.addListener(TAG,this) + } + + fun release(){ + TrajectoryManager.removeListener(TAG) + } + /** * 同步Bus路线信息 */ @@ -54,57 +62,34 @@ object CharterTrajectoryManager { } } - fun onAutopilotGuardian(guardianInfo: MogoReportMessage?, lineId: Long) { - onAutopilotGuardian(guardianInfo) + override fun onDownLoadStart(lineId: Long) { + stopTrajReqLoop() } - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) { - if (guardianInfo == null || !guardianInfo.hasCode()) return - if ("ISYS_INIT_TRAJECTORY_START" == guardianInfo.code) { - // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹开始下载") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - stopTrajReqLoop() - } else if ("ISYS_INIT_TRAJECTORY_SUCCESS" == guardianInfo.code) { - // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载成功") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - stopTrajReqLoop() - } else if ("ISYS_INIT_TRAJECTORY_FAILURE" == guardianInfo.code) { - // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地无对应轨迹") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹"); - } else if ("ISYS_INIT_TRAJECTORY_WARNING" == guardianInfo.code) { - // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地有对应轨迹,认为成功") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功"); - } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT" == guardianInfo.code) { - // 5. 轨迹管理_轨迹下载超时 - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载超时") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - } else if ("EMAP_ATTITUDE_INIT_FAILED" == guardianInfo.getCode()) { - // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 - d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() ssm ready,再次发起下载") - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 当前位置距离轨迹距离大于15m", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) - DriverM1Model.get().getBusOrderResult()?.lineId?.let { - syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!) - } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.OPERATION, - OperationMsg( - System.currentTimeMillis(), "请尽快操作车辆至适当位置掉头!", -1 - ) + override fun onDownLoadSuccess(lineId: Long) { + stopTrajReqLoop() + } + + override fun onDownLoadReady(lineId: Long) { + DriverM1Model.get().getBusOrderResult()?.lineId?.let { + syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!) + } + } + + override fun onDistanceWithTrajectory(lineId: Long) { + super.onDistanceWithTrajectory(lineId) + DriverM1Model.get().getBusOrderResult()?.lineId?.let { + syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!) + } + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.OPERATION, + OperationMsg( + System.currentTimeMillis(), "请尽快操作车辆至适当位置掉头!", -1 ) ) - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot) - } + ) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot) } private fun setupAutoPilotLine() { diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index ce819239d4..f54755fb19 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -35,15 +35,16 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.* import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback +import com.mogo.och.bridge.autopilot.callback.OchAdasStartFailureCallback import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.common.module.manager.autopilot.line.LineManager -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager -import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager -import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager +import com.mogo.och.bridge.device.LightAirconditionDoorManager +import com.mogo.och.bridge.device.LightAirconditionDoorStatusManager +import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors @@ -66,7 +67,7 @@ import com.mogo.och.common.module.manager.stopside.StopSideManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.* import com.mogo.och.common.module.voice.VoiceNotice -import com.mogo.och.data.bean.* +import com.mogo.och.data.bean.LineInfo /** * @author: wangmingjun diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt index e00d218480..89f1e717de 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt @@ -18,16 +18,15 @@ import com.mogo.och.common.module.biz.login.ILoginCallback import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback import com.mogo.och.common.module.manager.stopside.StopSideStatus import com.mogo.och.common.module.manager.stopside.StopSideManager import com.mogo.och.common.module.utils.DateTimeUtil -import mogo_msg.MogoReportMsg /** * @author: wangmingjun @@ -124,10 +123,6 @@ class DriverM1Presenter(view: DriverM1Fragment?) : DriverM1Model.get().pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp() ,context.getString(R.string.charter_last_15_minutes)) } - - override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?, lineId: Long) { - CharterTrajectoryManager.onAutopilotGuardian(guardianInfo,lineId) - } override fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) { DriverM1Model.get().onAutopilotArriveAtStation() diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt index 8a8199efc0..86ee70624a 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/DriverMoFangFunctionView.kt @@ -8,7 +8,7 @@ import com.magic.mogo.och.charter.R import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.common.module.manager.DriverMoFangFunctionManager -import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager +import com.mogo.och.bridge.device.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper import kotlinx.android.synthetic.main.driver_mofang_function_view.view.* diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt index 7d97a941b4..38a7776c8c 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/autopilot/AutopilotStatusViewModel.kt @@ -14,8 +14,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/carstatus/CarStatusViewModel.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/carstatus/CarStatusViewModel.kt index 6257bd4812..af46234758 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/carstatus/CarStatusViewModel.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/view/carstatus/CarStatusViewModel.kt @@ -6,7 +6,7 @@ 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.utilcode.util.ThreadUtils -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager import kotlin.math.abs class CarStatusViewModel: ViewModel(), IMoGoAutopilotStatusListener, diff --git a/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml index 9e068099f2..c0e0c1341b 100644 --- a/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml +++ b/OCH/charter/driver/src/main/res/layout/charter_base_fragment.xml @@ -82,21 +82,21 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_71" - app:layout_constraintEnd_toEndOf="@+id/viewLimitingVelocity" + app:layout_constraintEnd_toEndOf="parent" app:layout_goneMarginEnd="40dp" app:layout_goneMarginTop="@dimen/dp_236" android:visibility="invisible" - app:layout_constraintTop_toBottomOf="@+id/viewLimitingVelocity"/> + app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"/> + android:visibility="invisible"/> @@ -197,7 +197,7 @@ android:layout_width="@dimen/dp_142" android:layout_height="@dimen/dp_142"/> - - if(logininfo.startsWith(timeText)){ - val json = logingInfoJson.replace(timeText,"" ) - val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java) - go2LoginInfo(oldLoginInfo,"缓存获取") + val logingInfoJson = OchSPManager.getString(loginInfoKey) + val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd) + logingInfoJson?.let {logininfo-> + if(logininfo.startsWith(timeText)){ + val json = logingInfoJson.replace(timeText,"" ) + val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java) + go2LoginInfo(oldLoginInfo,"缓存获取") + } } } - } OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback { override fun onSuccess(data: DriverStatusQueryRespBean?) { val map: MutableMap = HashMap() @@ -244,8 +254,7 @@ object LoginModel { @Synchronized private fun go2LoginInfo(data: DriverStatusQueryRespBean?, source: String) { - CallerLogger.d(TAG,"设置源:${source}") - Log.d("登录","设置源:${source}") + d(TAG,"设置源:${source}") data?.let { LoginStatusManager.setLoginInfo(data.data) } @@ -271,7 +280,7 @@ object LoginModel { val loginInfo4Json = GsonUtils.toJson(data) OchSPManager.putString(loginInfoKey,timeText+loginInfo4Json) LoginStatusManager.setOpenOrderType(data.data.servingStatus) - d(SceneConstant.M_TAXI + TAG, "登录信息:$data") + d(TAG, "登录信息:$data") loginSuccess(data) } } @@ -280,7 +289,7 @@ object LoginModel { fun logout() { val location4Login = TaxiLogoutReqBean.Location4Login() if (FunctionBuildConfig.isOffLine) { - CallerLogger.d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}") + d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}") LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) FunctionBuildConfig.isOffLine = false return @@ -308,14 +317,14 @@ object LoginModel { override fun onFail(code: Int, msg: String) { ToastUtilsOch.showWithCodeMessage(code, msg) if(!LoginStatusManager.isLogin()){ - LoginStatusManager.invokeLBusinessTypeChangeDebug(BusinessEnum.None) + LoginStatusManager.invokeLBusinessTypeChangeDebug(Product.NONE) } } }) } fun loginSuccess(data: DriverStatusQueryRespBean?) { - CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}") + d(TAG, "loginSuccess:${LoginStatusManager.isLogin()}") if (LoginStatusManager.isLogin()) { SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone) } else { @@ -336,13 +345,13 @@ object LoginModel { fun loginFail(isLogin: Boolean) { - CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin") + d(TAG, "loginFail:$isLogin") updateLoginLocalStatus(0) } fun gotoOfflineMode() { FunctionBuildConfig.isOffLine = true - CallerLogger.d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}") + d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}") LoginStatusManager.setLoginStatus(LoginStatusEnum.Login) } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt index 9706f1c66b..254316f008 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt @@ -20,6 +20,7 @@ import com.mogo.och.common.module.network.OchCommonSubscribeImpl import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.commons.env.ProjectUtils import com.mogo.och.common.module.manager.cache.OchSPManager +import com.mogo.och.common.module.utils.RxUtils object OchCommonServiceManager { @@ -135,7 +136,6 @@ object OchCommonServiceManager { context: Context, callback: OchCommonServiceCallback? ) { - CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态"); val sn = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { OchSPManager.getSn() @@ -147,8 +147,10 @@ object OchCommonServiceManager { return } if(FunctionBuildConfig.ochdebug){ + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式"); return } + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}"); if (ProjectUtils.isMogo()) { ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus( MoGoAiCloudClientConfig.getInstance().serviceAppId, diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt index 6d820655c6..3038696373 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/debugview/BusinessView.kt @@ -9,8 +9,8 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.och.biz.R -import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.LoginStatusManager import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter @@ -55,14 +55,14 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback viewModel?.setDistanceCallback(this) - actv_business_shuttle.onClick { swtichBusiness(BusinessEnum.Shuttle) } - actv_business_bus.onClick { swtichBusiness(BusinessEnum.Bus) } - actv_business_taxi.onClick { swtichBusiness(BusinessEnum.Taxi) } - actv_business_charter.onClick { swtichBusiness(BusinessEnum.Charter) } + actv_business_shuttle.onClick { swtichBusiness(Product.SHUTTLE) } + actv_business_bus.onClick { swtichBusiness(Product.BUS) } + actv_business_taxi.onClick { swtichBusiness(Product.TAXI) } + actv_business_charter.onClick { swtichBusiness(Product.CHARTER) } actv_debugview.onClick { ToggleDebugView.toggleDebugView.toggle(context) } } - private fun swtichBusiness(businessEnum: BusinessEnum) { + private fun swtichBusiness(businessEnum: Product) { LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum) visibility = GONE } diff --git a/OCH/taxi/driver/.gitignore b/OCH/common/bridge/.gitignore similarity index 100% rename from OCH/taxi/driver/.gitignore rename to OCH/common/bridge/.gitignore diff --git a/OCH/taxi/pcommon/build.gradle b/OCH/common/bridge/build.gradle similarity index 65% rename from OCH/taxi/pcommon/build.gradle rename to OCH/common/bridge/build.gradle index c71131d10d..de95c8a7eb 100644 --- a/OCH/taxi/pcommon/build.gradle +++ b/OCH/common/bridge/build.gradle @@ -29,15 +29,6 @@ android { kotlinOptions { jvmTarget = '1.8' } - - sourceSets { - main { - res.srcDirs = [ - 'src/main/res', - 'src/main/res/ani', - ] - } - } } dependencies { @@ -48,12 +39,23 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.material implementation rootProject.ext.dependencies.rxandroid - implementation rootProject.ext.dependencies.arouter + implementation project(':libraries:mogo-adas-data') + implementation project(':core:mogo-core-data') + implementation project(':foudations:mogo-commons') + implementation project(':OCH:common:common') + implementation project(':OCH:common:data') + + implementation rootProject.ext.dependencies.amapnavi3dmap + + testImplementation project(':OCH:common:bridge') + testImplementation 'junit:junit:4.12' + - api project(":OCH:common:common") if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - api rootProject.ext.dependencies.mogoutils + implementation rootProject.ext.dependencies.mogo_core_function_call + api rootProject.ext.dependencies.mogo_core_function_map }else { - api project(":core:mogo-core-utils") + implementation project(':core:mogo-core-function-call') + api project(':core:function-impl:mogo-core-function-map') } } \ No newline at end of file diff --git a/OCH/taxi/driver/consumer-rules.pro b/OCH/common/bridge/consumer-rules.pro similarity index 100% rename from OCH/taxi/driver/consumer-rules.pro rename to OCH/common/bridge/consumer-rules.pro diff --git a/OCH/taxi/driver/proguard-rules.pro b/OCH/common/bridge/proguard-rules.pro similarity index 100% rename from OCH/taxi/driver/proguard-rules.pro rename to OCH/common/bridge/proguard-rules.pro diff --git a/OCH/taxi/pcommon/src/main/AndroidManifest.xml b/OCH/common/bridge/src/main/AndroidManifest.xml similarity index 70% rename from OCH/taxi/pcommon/src/main/AndroidManifest.xml rename to OCH/common/bridge/src/main/AndroidManifest.xml index c11e143669..dd5f1f5088 100644 --- a/OCH/taxi/pcommon/src/main/AndroidManifest.xml +++ b/OCH/common/bridge/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.mogo.och.bridge"> \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/OCHAdasAbilityManager.java similarity index 97% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/OCHAdasAbilityManager.java index 10135d784e..d3416461e1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/OCHAdasAbilityManager.java +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/OCHAdasAbilityManager.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot; +package com.mogo.och.bridge.autopilot; import android.content.Context; @@ -14,8 +14,8 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.util.ParseVersionUtils; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; +import com.mogo.och.bridge.autopilot.callback.OchAdasStartFailureCallback; +import com.mogo.och.bridge.autopilot.line.LineManager; import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhjt.mogo.adas.data.bean.LaunchConditionData; import com.zhjt.mogo.adas.data.bean.UnableLaunchReason; diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java similarity index 94% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java index 96a2161695..1f77f40952 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchAutopilotStatusListener.java +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchAutopilotStatusListener.java @@ -1,7 +1,7 @@ -package com.mogo.och.common.module.manager.autopilot.autopilot; +package com.mogo.och.bridge.autopilot.autopilot; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation; +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation; import com.zhjt.mogo.adas.data.AdasConstants; import mogo.telematics.pad.MessagePad; diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchEventKey.java b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchEventKey.java similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchEventKey.java rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchEventKey.java index b362130185..ef17c3c7c1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/IOchEventKey.java +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/IOchEventKey.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.autopilot; +package com.mogo.och.bridge.autopilot.autopilot; public interface IOchEventKey { // 无人化taxi event_key_unmanned_taxi_start_service * diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt similarity index 90% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt index 2c74531658..afbffa060d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.autopilot +package com.mogo.och.bridge.autopilot.autopilot import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -8,10 +8,10 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.SessionWithTime -import com.mogo.och.common.module.manager.autopilot.line.LineManager -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager +import com.mogo.och.bridge.autopilot.autopilot.bean.SessionWithTime +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import java.util.concurrent.atomic.AtomicReference @@ -48,7 +48,7 @@ object OchAutoPilotManager { if(sessionInfo==null){ return true }else{ - if(currentTimeMillis-sessionInfo.setTime>=OchAutopilotAnalytics.LOOP_PERIOD_16S){ + if(currentTimeMillis-sessionInfo.setTime>= OchAutopilotAnalytics.LOOP_PERIOD_16S){ clearGlobalSessionId("检测session 自带的时间 ${currentTimeMillis}_${sessionInfo.setTime}_${sessionInfo.sessionId}") return true }else{ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt similarity index 88% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt index 00c858f939..4bb2db0970 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/autopilot/OchAutoPilotStatusListenerManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.autopilot +package com.mogo.och.bridge.autopilot.autopilot import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -13,14 +13,13 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation -import com.mogo.och.common.module.manager.autopilot.line.LineManager -import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.CallerBase import com.zhjt.mogo.adas.common.MessageType import com.zhjt.mogo.adas.data.AdasConstants -import com.zhjt.mogo.adas.data.bean.MogoReport import com.zhjt.mogo.adas.data.bean.ReceivedAck import com.zhjt.mogo.adas.data.bean.ReceivedAck.Status import fsm.Fsm2024 @@ -55,6 +54,12 @@ object OchAutoPilotStatusListenerManager : CallerBase + if (oldValue != newValue) { + LineManager.compareFSMAndOchOrderId(newValue) + } + } + val canStartAutopilotFromFSM:Boolean get() = _canStartAutopilotFromFSM @@ -134,12 +139,7 @@ object OchAutoPilotStatusListenerManager : CallerBase() { private var autopilotId: String by Delegates.observable("") { _, oldValue, newValue -> if (oldValue != newValue) { CallerEagleBaseFunctionCall4OchManager.setOchAutopilotOrderId(newValue) + isFirstStartAutopilot = true M_LISTENERS.forEach { it.value.onAutopilotIdChange(oldValue,newValue) } @@ -167,9 +168,9 @@ object LineManager : CallerBase() { clearGlobalTrajectory(true) CallerEagleBaseFunctionCall4OchManager.updateOrderLine("") } - this._lineInfos = lineInfo + _lineInfos = lineInfo setAutopilotControlParameters() - this._lineInfos?.let { line -> + _lineInfos?.let { line -> if (ProjectUtils.isSaas()) { val sb = StringBuilder() sb.append(line.lineName) @@ -179,7 +180,7 @@ object LineManager : CallerBase() { CallerEagleBaseFunctionCall4OchManager.updateOrderLine(sb.toString()) } } - OchChainLogManager.writeChainLogAutopilot("自驾参数", "线路信息:${contraiInfo}") + OchChainLogManager.writeChainLogAutopilot("自驾参数", "线路信息:$contraiInfo") } fun getStations(): Pair { @@ -193,7 +194,7 @@ object LineManager : CallerBase() { return } } - OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}") + OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:$endStation") } fun getStationsWithLine(function: (start: BusStationBean, end: BusStationBean, lineInfo: LineInfo) -> Unit) { @@ -207,7 +208,7 @@ object LineManager : CallerBase() { } OchChainLogManager.writeChainLog( "异常情况", - "startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}" + "startStation:${startStation}__endStation:${endStation}__lineInfos:$_lineInfos" ) } @@ -224,7 +225,7 @@ object LineManager : CallerBase() { } OchChainLogManager.writeChainLog( "异常情况", - "startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}__contraiInfo:${_contraiInfo}" + "startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}__contraiInfo:$_contraiInfo" ) } @@ -233,7 +234,7 @@ object LineManager : CallerBase() { function.invoke(start) return } - OchChainLogManager.writeChainLog("异常情况", "startStation:${startStation}") + OchChainLogManager.writeChainLog("异常情况", "startStation:$startStation") } fun getLineInfo(function: (lineInfo: LineInfo) -> Unit){ @@ -241,7 +242,7 @@ object LineManager : CallerBase() { function.invoke(line) return } - OchChainLogManager.writeChainLog("异常情况", "lineInfos:${_lineInfos}") + OchChainLogManager.writeChainLog("异常情况", "lineInfos:$_lineInfos") } @@ -271,7 +272,7 @@ object LineManager : CallerBase() { endStationLocation.latitude = end.gcjLat endStationLocation.longitude = end.gcjLon TrajectoryAndDistanceManager.setStationPoint(startStationLocation, endStationLocation, lineInfo.lineId) - OchLocationManager.addGCJ02Listener(TAG,1,mMapLocationListener) + OchLocationManager.addGCJ02Listener(TAG,1, mMapLocationListener) // 恢复启动自驾信息 searchAutopilotState() } @@ -282,7 +283,7 @@ object LineManager : CallerBase() { private fun clearAutopilotControlParameters(){ CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) TrajectoryAndDistanceManager.setStationPoint(null, null, null) - this.autopilotId = "" + autopilotId = "" OchLocationManager.removeGCJ02Listener(TAG) } @@ -433,7 +434,7 @@ object LineManager : CallerBase() { // 启动自动驾驶 fun startAutopilot() { - if(startStation==null|| endStation==null){ + if(startStation ==null|| endStation ==null){ ToastUtils.showShort("未设置起始或终点站点") return } @@ -455,7 +456,7 @@ object LineManager : CallerBase() { OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis()) //1、判断轨迹url是否可用 - if(_contraiInfo==null){ + if(_contraiInfo ==null){ ToastUtils.showLong("无发布轨迹, 请发布后重试") return }else{ @@ -467,7 +468,7 @@ object LineManager : CallerBase() { e( TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand - + "busRoutesResult.csvFileUrl = " + LineManager._contraiInfo!!.csvFileUrl + + "busRoutesResult.csvFileUrl = " + _contraiInfo!!.csvFileUrl ) return } @@ -506,7 +507,7 @@ object LineManager : CallerBase() { M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + - "isRestart = " + LineManager.isFirstStartAutopilot + "isRestart = " + isFirstStartAutopilot ) M_LISTENERS.forEach { @@ -570,4 +571,26 @@ object LineManager : CallerBase() { } } + fun compareFSMAndOchOrderId(autopilotIdFromFsm: String?) { + if(autopilotIdFromFsm == autopilotId){ + // 地盘有和上层一样 不用操作 + }else{ + if(autopilotIdFromFsm.isNullOrEmpty()){ + // 地盘没有 不做操作 + }else{ + // 地盘有但是和och出不一样 + // todo 需要och 重新出发轨迹下载操作 + ToastUtils.showShort("${autopilotIdFromFsm}_${autopilotId}_自动驾驶id不同请排查") + OchChainLogManager.writeChainLogAutopilot("自驾Id","${autopilotIdFromFsm}_${autopilotId}_自动驾驶id不同请排查") +// val initAutopilotControlParameters = initAutopilotControlParameters() +// if (initAutopilotControlParameters!==null&&initAutopilotControlParameters.autoPilotLine!=null +// && contraiInfo!=null +// ) { +// CallerAutoPilotControlManager.sendTrajectoryDownloadReq(initAutopilotControlParameters.autoPilotLine!!, +// contraiInfo!!.source, autopilotId) +// } + } + } + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/location/LocationManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/location/LocationManager.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/location/LocationManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/location/LocationManager.kt index 27fa0eea15..05af79168c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/location/LocationManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/location/LocationManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.location +package com.mogo.och.bridge.autopilot.location import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/ITrajectoryListListener.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/ITrajectoryListListener.kt new file mode 100644 index 0000000000..a0bd1730be --- /dev/null +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/ITrajectoryListListener.kt @@ -0,0 +1,32 @@ +package com.mogo.och.bridge.autopilot.trajectory + +import com.mogo.eagle.core.data.map.MogoLocation + +interface ITrajectoryListListener{ + /** + * @param trajectoryList gcj 坐标轨迹集合 + */ + fun trajectoryCallback(trajectoryList: MutableList){} + + /** + * @param maxDistanceAllPoint 轨迹全长 + */ + fun trajectoryDistanceCallback(maxDistanceAllPoint: Double){} + // 开始下载轨迹 + fun onDownLoadStart(lineId: Long){} + // 下载轨迹成功 + fun onDownLoadSuccess(lineId: Long){} + // 下载轨迹是吧 + fun onDownLoadFail(lineId: Long){} + // 下载轨迹超时 + fun onDownLoadTimeout(lineId: Long){} + // 加载轨迹失败 + fun onLoadFail(lineId: Long){} + // 轨迹不存在 + fun onTrajectoryNotExist(lineId: Long){} + // 底盘已就行 + fun onDownLoadReady(lineId: Long) {} + + // 当前位置距离轨迹大于15m + fun onDistanceWithTrajectory(lineId: Long) {} +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryCache.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryCache.kt similarity index 97% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryCache.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryCache.kt index 8b1528f772..f378627c4d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryCache.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryCache.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.trajectory +package com.mogo.och.bridge.autopilot.trajectory import com.elegant.network.utils.GsonUtil import com.mogo.commons.AbsMogoApplication diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryManager.kt similarity index 59% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryManager.kt index c3f9591659..62a7d85f6b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/TrajectoryManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/autopilot/trajectory/TrajectoryManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.autopilot.trajectory +package com.mogo.och.bridge.autopilot.trajectory import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.map.MogoLocation @@ -9,17 +9,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.writeChainLog -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil +import com.mogo.och.common.module.utils.CallerBase +import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil import com.zhjt.mogo.adas.data.bean.MogoReport import mogo.telematics.pad.MessagePad -import java.util.concurrent.ConcurrentHashMap -object TrajectoryManager : IMoGoPlanningRottingListener { +object TrajectoryManager : CallerBase(),IMoGoPlanningRottingListener { const val TAG = "TrajectoryManager" - private val distanceListeners: ConcurrentHashMap = - ConcurrentHashMap() - private val downLoadSuccessLineIds = mutableListOf() /** @@ -60,7 +57,7 @@ object TrajectoryManager : IMoGoPlanningRottingListener { CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "重复轨迹") return } - this.lineId = globalPathResp.lineId + lineId = globalPathResp.lineId } updateRoutePoints(it) } @@ -88,48 +85,88 @@ object TrajectoryManager : IMoGoPlanningRottingListener { maxDistanceAllPoint += distanceItem } } - distanceListeners.forEach { + M_LISTENERS.forEach { it.value.trajectoryCallback(mRoutePoints) } + M_LISTENERS.forEach { + it.value.trajectoryDistanceCallback(maxDistanceAllPoint) + } } - fun addTrajectoryListListenerr(tag: String, listener: ITrajectoryListListener?) { - if (distanceListeners.containsKey(tag)) { - return - } - if(listener==null){ - distanceListeners.remove(tag) - return - } - distanceListeners[tag] = listener - } - - fun addDownLoadSuccessLine(lineId:Long){ + private fun addDownLoadSuccessLine(lineId:Long){ if(lineId>0){ OchChainLogManager.writeChainLog("轨迹监控", " 轨迹下载成功${lineId}", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY) downLoadSuccessLineIds.add(lineId) } } - fun removeDownLoadSuccessLine(lineId:Long){ + private fun removeDownLoadSuccessLine(lineId:Long){ if(lineId>0&& downLoadSuccessLineIds.contains(lineId)){ downLoadSuccessLineIds.remove(lineId) } } - fun carDownLoadTrajectoryLog(code:String?){ + fun carDownLoadTrajectoryLog(code: String?, lineId: Long){ when (code) { - MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START -> writeTrajectoryLog("轨迹开始下载") - MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS -> writeTrajectoryLog("轨迹下载成功") - MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE -> writeTrajectoryLog("轨迹下载失败,本地无对应轨迹") - MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_WARNING -> writeTrajectoryLog("轨迹下载失败,本地有对应轨迹,认为成功") - MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_TIMEOUT -> writeTrajectoryLog("轨迹下载超时") - MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY -> writeTrajectoryLog("再次发起下载、 ssm ready,再次发起下载") - MogoReport.Code.Error.EMAP.TRA_LOAD_FAILED -> writeTrajectoryLog("onAutopilotGuardian() 加载轨迹文件失败") - MogoReport.Code.Error.EMAP.TRA_NOT_EXIST -> writeTrajectoryLog("onAutopilotGuardian() 无法找到轨迹文件") + MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START -> { + writeTrajectoryLog("轨迹开始下载") + M_LISTENERS.forEach { + it.value.onDownLoadStart(lineId) + } + } + MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS -> { + writeTrajectoryLog("轨迹下载成功") + addDownLoadSuccessLine(lineId) + M_LISTENERS.forEach { + it.value.onDownLoadSuccess(lineId) + } + } + MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE -> { + writeTrajectoryLog("轨迹下载失败,本地无对应轨迹") + // 更新轨迹没有更新lineId 第二次下载失败 删除App成功缓存(概率很低) + removeDownLoadSuccessLine(lineId) + M_LISTENERS.forEach { + it.value.onDownLoadFail(lineId) + } + } + MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_WARNING -> { + writeTrajectoryLog("轨迹下载失败,本地有对应轨迹,认为成功") + M_LISTENERS.forEach { + it.value.onDownLoadSuccess(lineId) + } + } + MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_TIMEOUT -> { + writeTrajectoryLog("轨迹下载超时") + M_LISTENERS.forEach { + it.value.onDownLoadTimeout(lineId) + } + } + MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY -> { + writeTrajectoryLog("再次发起下载、 ssm ready,再次发起下载") + M_LISTENERS.forEach { + it.value.onDownLoadReady(lineId) + } + } + MogoReport.Code.Error.EMAP.TRA_LOAD_FAILED -> { + writeTrajectoryLog("onAutopilotGuardian() 加载轨迹文件失败") + M_LISTENERS.forEach { + it.value.onLoadFail(lineId) + } + } + MogoReport.Code.Error.EMAP.TRA_NOT_EXIST -> { + writeTrajectoryLog("onAutopilotGuardian() 无法找到轨迹文件") + M_LISTENERS.forEach { + it.value.onTrajectoryNotExist(lineId) + } + } + MogoReport.Code.Error.EMAP.ATTITUDE_INIT_FAILED->{ + writeTrajectoryLog("onAutopilotGuardian() 当前位置距离轨迹距离大于15m") + + M_LISTENERS.forEach { + it.value.onDistanceWithTrajectory(lineId) + } + } else -> {} } - - } private fun writeTrajectoryLog(message:String){ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorManager.kt similarity index 92% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorManager.kt index ddfabbd9d6..dafd3bf5d0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorManager.kt @@ -1,7 +1,7 @@ -package com.mogo.och.common.module.manager.device +package com.mogo.och.bridge.device import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import io.reactivex.disposables.Disposable diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorStatusManager.kt similarity index 90% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorStatusManager.kt index b5d7224342..00cd21102f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/LightAirconditionDoorStatusManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/LightAirconditionDoorStatusManager.kt @@ -1,13 +1,13 @@ -package com.mogo.och.common.module.manager.device +package com.mogo.och.bridge.device import chassis.VehicleStateOuterClass import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager -import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.device.data.AirconditionStatus -import com.mogo.och.common.module.manager.device.data.DoorStatus -import com.mogo.och.common.module.manager.device.data.HeaterStatue -import com.mogo.och.common.module.manager.device.data.LightStatus +import com.mogo.och.bridge.device.callback.LightAirconditionDoorCallback +import com.mogo.och.bridge.device.data.AirconditionStatus +import com.mogo.och.bridge.device.data.DoorStatus +import com.mogo.och.bridge.device.data.HeaterStatue +import com.mogo.och.bridge.device.data.LightStatus import java.util.concurrent.ConcurrentHashMap object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { @@ -37,8 +37,8 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { listener.onLightTop1Callback(lightStatus,true) listener.onLightTop2Callback(lightStatus,true) listener.onLightAtmosphereCallback(lightStatus,true) - listener.onAirconditionStatusCallback(heaterStatue.isOpen,airconditionStatus,true) - listener.onHeaterStatusCallback(airconditionStatus.isOpen,heaterStatue,true) + listener.onAirconditionStatusCallback(heaterStatue.isOpen, airconditionStatus,true) + listener.onHeaterStatusCallback(airconditionStatus.isOpen, heaterStatue,true) } fun removeListener(tag: String) { @@ -78,7 +78,7 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { M_LISTENERS.forEach { val tag = it.key val listener = it.value - listener.onAirconditionStatusCallback(heaterState.isOn,airconditionStatus,false) + listener.onAirconditionStatusCallback(heaterState.isOn, airconditionStatus,false) } } if (heaterState.isOn != heaterStatue.isOpen || @@ -89,7 +89,7 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { M_LISTENERS.forEach { val tag = it.key val listener = it.value - listener.onHeaterStatusCallback(airConditionerState.isOn,heaterStatue,false) + listener.onHeaterStatusCallback(airConditionerState.isOn, heaterStatue,false) } } if (states.frontDoorState.isOn != doorStatus.isOpen) { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/TaxiDoorStateManager.kt similarity index 88% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/TaxiDoorStateManager.kt index 053142e944..704ae30c48 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/TaxiDoorStateManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/TaxiDoorStateManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.device +package com.mogo.och.bridge.device import chassis.Chassis import chassis.VehicleStateOuterClass @@ -7,9 +7,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListene import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.manager.device.callback.DoorStateCallback -import com.mogo.och.common.module.manager.device.data.DoorPosition -import com.mogo.och.common.module.manager.device.data.DoorState +import com.mogo.och.bridge.device.callback.DoorStateCallback +import com.mogo.och.bridge.device.data.DoorPosition +import com.mogo.och.bridge.device.data.DoorState object TaxiDoorStateManager : IMoGoChassisDoorStateListener, CallerBase() { @@ -67,9 +67,14 @@ object TaxiDoorStateManager : IMoGoChassisDoorStateListener, override fun onAutopilotSingleDoorState(num: Chassis.DoorNumber, status: Int) { CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "门太变化:${num}--${status}") when (status) { - 0 -> { exchangeEnum(num, DoorState.CLOSE)} - 1 -> {exchangeEnum(num, DoorState.OPEN)} - 2 -> {exchangeEnum(num, DoorState.UNKNOWN)} + 0 -> { exchangeEnum(num, DoorState.CLOSE) + } + 1 -> { + exchangeEnum(num, DoorState.OPEN) + } + 2 -> { + exchangeEnum(num, DoorState.UNKNOWN) + } else -> {} } @@ -118,7 +123,7 @@ object TaxiDoorStateManager : IMoGoChassisDoorStateListener, * @param doorState 车门状态 */ @Synchronized - private fun invokeSingleDoorOpenState(doorPosition: DoorPosition,doorState: DoorState) { + private fun invokeSingleDoorOpenState(doorPosition: DoorPosition, doorState: DoorState) { M_LISTENERS.forEach { val listener = it.value listener.doorStateChangeCallback(doorPosition,doorState) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/DoorStateCallback.kt similarity index 52% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/DoorStateCallback.kt index 04e690690a..ed7f5902f6 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/DoorStateCallback.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/DoorStateCallback.kt @@ -1,7 +1,7 @@ -package com.mogo.och.common.module.manager.device.callback +package com.mogo.och.bridge.device.callback -import com.mogo.och.common.module.manager.device.data.DoorPosition -import com.mogo.och.common.module.manager.device.data.DoorState +import com.mogo.och.bridge.device.data.DoorPosition +import com.mogo.och.bridge.device.data.DoorState interface DoorStateCallback { @@ -15,5 +15,5 @@ interface DoorStateCallback { * @param position 车门位置 * @param state 当前车门状态 */ - fun doorStateChangeCallback(position: DoorPosition,state: DoorState){} + fun doorStateChangeCallback(position: DoorPosition, state: DoorState){} } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/LightAirconditionDoorCallback.kt similarity index 63% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/LightAirconditionDoorCallback.kt index 54406dec6d..e7fa12c8bb 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/callback/LightAirconditionDoorCallback.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/callback/LightAirconditionDoorCallback.kt @@ -1,17 +1,17 @@ -package com.mogo.och.common.module.manager.device.callback +package com.mogo.och.bridge.device.callback -import com.mogo.och.common.module.manager.device.data.AirconditionStatus -import com.mogo.och.common.module.manager.device.data.HeaterStatue -import com.mogo.och.common.module.manager.device.data.LightStatus +import com.mogo.och.bridge.device.data.AirconditionStatus +import com.mogo.och.bridge.device.data.HeaterStatue +import com.mogo.och.bridge.device.data.LightStatus interface LightAirconditionDoorCallback { fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, - isFirst: Boolean) { + isFirst: Boolean) { } fun onHeaterStatusCallback(airconditionIsOpen: Boolean, heaterStatue: HeaterStatue, - isFirst: Boolean) { + isFirst: Boolean) { } fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinErrorDialog.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinErrorDialog.kt similarity index 85% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinErrorDialog.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinErrorDialog.kt index 76b3741ffc..a588f7f450 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinErrorDialog.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinErrorDialog.kt @@ -1,10 +1,10 @@ -package com.mogo.och.common.module.manager.device.checkvin +package com.mogo.och.bridge.device.checkvin import android.content.Context import androidx.lifecycle.LifecycleObserver import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.och.common.module.R +import com.mogo.och.bridge.R import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import kotlinx.android.synthetic.main.common_checkvin_view.actv_see @@ -19,7 +19,9 @@ class CheckVinErrorDialog(context: Context) : BaseFloatDialog(context), Lifecycl setCanceledOnTouchOutside(true) actv_see.onClick { - OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true,EVENT_KEY_INFO_CHECK_VIN) + OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true, + EVENT_KEY_INFO_CHECK_VIN + ) dismiss() } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt similarity index 88% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt index b2540b997b..da8b6f52c0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/checkvin/CheckVinManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/checkvin/CheckVinManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.device.checkvin +package com.mogo.och.bridge.device.checkvin import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager @@ -16,11 +16,11 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener { private val TAG = CheckVinManager::class.java.simpleName init { - BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5,::checkVin,scheduler = Schedulers.io())) + BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5, CheckVinManager::checkVin,scheduler = Schedulers.io())) CallerAutopilotCarConfigListenerManager.addListener(TAG,this) } - private var checkVinErrorDialog:CheckVinErrorDialog?=null + private var checkVinErrorDialog: CheckVinErrorDialog?=null override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) { checkVin() @@ -55,7 +55,7 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener { val topActivity = ActivityUtils.getTopActivity() topActivity?.let { UiThreadHandler.post({ - if(checkVinErrorDialog!=null&&checkVinErrorDialog!!.isShowing){ + if(checkVinErrorDialog !=null&& checkVinErrorDialog!!.isShowing){ return@post } checkVinErrorDialog = CheckVinErrorDialog(it) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/AirconditionStatus.kt similarity index 70% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/AirconditionStatus.kt index 6eca247f1e..0f05cf4d6a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/AirconditionStatus.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/AirconditionStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.device.data +package com.mogo.och.bridge.device.data data class AirconditionStatus( var isOpen: Boolean, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/DoorStatus.kt similarity index 76% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/DoorStatus.kt index 7d2c168f12..3864969cee 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/DoorStatus.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/DoorStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.device.data +package com.mogo.och.bridge.device.data data class DoorStatus(var isOpen: Boolean) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/HeaterStatue.kt similarity index 54% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/HeaterStatue.kt index 753814fd82..7e9dc0802e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/HeaterStatue.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/HeaterStatue.kt @@ -1,3 +1,3 @@ -package com.mogo.och.common.module.manager.device.data +package com.mogo.och.bridge.device.data data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/LightStatus.kt similarity index 68% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/LightStatus.kt index d23adad76b..c59b612345 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/device/data/LightStatus.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/device/data/LightStatus.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.device.data +package com.mogo.och.bridge.device.data data class LightStatus( var isOpenLight1: Boolean, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/DistanceDegree.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/DistanceDegree.kt index 5c335f7757..6121638ef5 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/DistanceDegree.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/DistanceDegree.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distance +package com.mogo.och.bridge.distance data class DistanceDegree(var distance: Float, var degree: Double?, var isNext: Boolean?) : Comparable { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/IDistanceListener.kt similarity index 95% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/IDistanceListener.kt index 977db15d01..d59cf6d1eb 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/IDistanceListener.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/IDistanceListener.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distance +package com.mogo.och.bridge.distance import com.mogo.eagle.core.data.map.MogoLocation diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/StationAndIndex.kt similarity index 89% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/StationAndIndex.kt index 3ae219b294..c6482f7dd9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/StationAndIndex.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/StationAndIndex.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distance +package com.mogo.och.bridge.distance import com.mogo.eagle.core.data.map.MogoLocation diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/TrajectoryAndDistanceManager.kt similarity index 98% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/TrajectoryAndDistanceManager.kt index 1a81404c10..abac76254c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/distance/TrajectoryAndDistanceManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/distance/TrajectoryAndDistanceManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.manager.distance +package com.mogo.och.bridge.distance import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.map.MogoLocation @@ -11,12 +11,12 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.LocationUtils import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager -import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryCache +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.autopilot.location.OchLocationManager +import com.mogo.och.bridge.autopilot.trajectory.TrajectoryCache import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil +import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil import io.reactivex.schedulers.Schedulers import mogo.telematics.pad.MessagePad import java.util.concurrent.ConcurrentHashMap diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotState.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt similarity index 95% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotState.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt index 5495ba79b8..937f694c45 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotState.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotState.kt @@ -1,25 +1,20 @@ -package com.mogo.och.common.module.wigets.autopilot +package com.mogo.och.bridge.ui.autopilot -import android.animation.Animator -import android.animation.Animator.AnimatorListener import android.animation.AnimatorSet import android.animation.ObjectAnimator -import android.animation.ValueAnimator import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import android.view.animation.LinearInterpolator import androidx.annotation.DrawableRes -import androidx.annotation.IntegerRes import androidx.constraintlayout.widget.ConstraintLayout 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.util.UiThreadHandler -import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.R +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener import com.mogo.och.common.module.utils.BigFrameAnimatorContainer import com.mogo.och.common.module.utils.ResourcesUtils import kotlinx.android.synthetic.main.common_autopilot_view.view.aciv_autopilot_running_ani @@ -47,12 +42,12 @@ class AutopilotState @JvmOverloads constructor( private fun initView() { LayoutInflater.from(context).inflate(R.layout.common_autopilot_view, this, true) autopilotStateAnimator = BigFrameAnimatorContainer(R.array.in_auto, 31, aciv_autopilot_running_ani) - autopilotLoadingAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "rotation", 0f, 360f); + autopilotLoadingAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "rotation", 0f, 360f) autopilotLoadingAnimator.interpolator = LinearInterpolator() autopilotLoadingAnimator.repeatCount = -1 //无限循环 autopilotLoadingAnimator.duration = 2000 //无限循环 - autopilotChangeStateAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "alpha", 1f, 0f,1f); + autopilotChangeStateAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "alpha", 1f, 0f,1f) autopilotChangeStateAnimator.interpolator = LinearInterpolator() autopilotChangeStateAnimator.duration = 300 onClick { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotStateModel.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotStateModel.kt similarity index 84% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotStateModel.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotStateModel.kt index 3b7fc9b9ff..0c8225b7a9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/autopilot/AutopilotStateModel.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/autopilot/AutopilotStateModel.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.autopilot +package com.mogo.och.bridge.ui.autopilot import androidx.lifecycle.ViewModel import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -7,10 +7,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.debug.autopilot.AutopilotStateDebug import com.mogo.och.common.module.debug.autopilot.IOchDebugAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.manager.autopilot.line.ILineCallback -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.line.ILineCallback +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager @@ -23,12 +23,12 @@ import java.util.concurrent.atomic.AtomicBoolean * @description BadCase录包管理页面 * @since: 2022/12/15 */ -class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCallback, +class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCallback, IOchDebugAutopilotStatusListener, IBeautifyModeCallback { private val TAG = AutopilotStateModel::class.java.simpleName - private var viewCallback:AutopilotStateCallback?=null + private var viewCallback: AutopilotStateCallback? = null private val isPalyStartAni = AtomicBoolean(false) @@ -44,39 +44,42 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall BeautifyManager.setStatusChangeListener(TAG,null) } - fun setViewCallback(viewCallback:AutopilotStateCallback){ + fun setViewCallback(viewCallback: AutopilotStateCallback) { this.viewCallback = viewCallback - AutopilotStateDebug.addListener(TAG,this) - OchAutoPilotStatusListenerManager.addListener(TAG,this) - LineManager.addListener(TAG,this) + AutopilotStateDebug.addListener(TAG, this) + OchAutoPilotStatusListenerManager.addListener(TAG, this) + LineManager.addListener(TAG, this) BeautifyManager.setStatusChangeListener(TAG,this) } override fun debugStatusChange(debugStatus: Boolean) { super.debugStatusChange(debugStatus) - if(debugStatus){ + if (debugStatus) { OchAutoPilotStatusListenerManager.removeListener(TAG) LineManager.removeListener(TAG) - }else{ - OchAutoPilotStatusListenerManager.addListener(TAG,this) - LineManager.addListener(TAG,this) + } else { + OchAutoPilotStatusListenerManager.addListener(TAG, this) + LineManager.addListener(TAG, this) } } override fun debugDispatchState(state: Int?) { super.debugDispatchState(state) when (state) { - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE-> {// 不可用 不可启动自驾 + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可用 不可启动自驾 this.viewCallback?.autopilotDisable() } - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE-> { + + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { this.viewCallback?.canStartAutopilot() } - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING-> {// 自驾中 + + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {// 自驾中 this.viewCallback?.stopAutopilotAnimation() this.viewCallback?.inAutopilot() } - IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING-> {// 平行驾驶中 + + IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {// 平行驾驶中 this.viewCallback?.stopAutopilotAnimation() this.viewCallback?.inRemoteDriver() } @@ -84,17 +87,17 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall } override fun onAutopilotStatusResponse(state: Int) { - OchChainLogManager.writeChainLog("自驾信息","自驾状态变化:${state}") + OchChainLogManager.writeChainLog("自驾信息", "自驾状态变化:${state}") autopilotStateChange() } override fun canStartAutopilot(canStart: Boolean) { - OchChainLogManager.writeChainLog("自驾信息","能否启动自驾:${canStart}") + OchChainLogManager.writeChainLog("自驾信息", "能否启动自驾:${canStart}") autopilotStateChange() } override fun onFsmCanStartAutopilot(can: Boolean) { - OchChainLogManager.writeChainLog("自驾信息","FSM能否启动自驾:${can}") + OchChainLogManager.writeChainLog("自驾信息", "FSM能否启动自驾:${can}") autopilotStateChange() } @@ -224,13 +227,13 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall } fun startAutopilot() { - OchChainLogManager.writeChainLog("自驾信息","启动自驾") - if(AutopilotStateDebug.debugStatus){ + OchChainLogManager.writeChainLog("自驾信息", "启动自驾") + if (AutopilotStateDebug.debugStatus) { sendStartAutopilotSuccess() RxUtils.createSubscribe(5_000) { startAutopilotFail() } - }else { + } else { LineManager.startAutopilot() } } @@ -247,19 +250,22 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall } override fun startAutopilotTimeOut() { - OchChainLogManager.writeChainLog("自驾信息","启动自驾超时失败") - if(OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + OchChainLogManager.writeChainLog("自驾信息", "启动自驾超时失败") + if (OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { autopilotStateChange() - }else { + } else { startAutopilotFail() } } override fun startAutopilotFailure(startFailedCode: String?, startFailedMessage: String?) { - OchChainLogManager.writeChainLog("自驾信息","底盘强制失败原因:${startFailedCode}_${startFailedMessage}") - if(OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ + OchChainLogManager.writeChainLog( + "自驾信息", + "底盘强制失败原因:${startFailedCode}_${startFailedMessage}" + ) + if (OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { autopilotStateChange() - }else { + } else { startAutopilotFail() } } @@ -277,27 +283,32 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall this.isPalyStartAni.set(false) UiThreadHandler.postDelayed({ autopilotStateChange() - },3000,UiThreadHandler.MODE.QUEUE) + }, 3000, UiThreadHandler.MODE.QUEUE) } } - interface AutopilotStateCallback{ + interface AutopilotStateCallback { //开始动画 fun startAutopilotAnimation() + //结束动画 fun stopAutopilotAnimation() // 进入自动驾驶 fun inAutopilot() + // 自动驾驶不可用 fun autopilotDisable() + // 可用启动自驾 fun canStartAutopilot() + // 进入平行驾驶 fun inRemoteDriver() // 启动自驾成功 fun startAutopilotSuccess() + // 启动自驾失败 fun startAutopilotFail() } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineView.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineView.kt similarity index 93% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineView.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineView.kt index 7515dcdc06..51e2497617 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineView.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.map.drawline +package com.mogo.och.bridge.ui.drawline import android.content.Context import android.util.AttributeSet @@ -8,8 +8,8 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.R +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.utils.ResourcesUtils import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineViewModel.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineViewModel.kt similarity index 84% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineViewModel.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineViewModel.kt index d16d17d0ae..0ae43099a4 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/drawline/LineViewModel.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/drawline/LineViewModel.kt @@ -1,10 +1,10 @@ -package com.mogo.och.common.module.wigets.map.drawline +package com.mogo.och.bridge.ui.drawline import androidx.annotation.DrawableRes import androidx.lifecycle.ViewModel import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.autopilot.line.ILineCallback -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.ILineCallback +import com.mogo.och.bridge.autopilot.line.LineManager class LineViewModel : ViewModel(), ILineCallback { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/IMapDirectionView.java b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/IMapDirectionView.java similarity index 84% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/IMapDirectionView.java rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/IMapDirectionView.java index 114957dd67..49d9a9d194 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/IMapDirectionView.java +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/IMapDirectionView.java @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.mapdirectionview; +package com.mogo.och.bridge.ui.mapdirectionview; /** * @author xiaoyuzhou diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionView.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionView.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionView.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionView.kt index 42ba30dda7..bb1e6a7c93 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionView.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionView.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.wigets.mapdirectionview +package com.mogo.och.bridge.ui.mapdirectionview import android.content.Context import android.os.Bundle @@ -28,7 +28,7 @@ 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.UiThreadHandler import com.mogo.och.common.module.R -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.shuttle.passenger.ui.mapdirectionview.MapDirectionViewModel import me.jessyan.autosize.utils.AutoSizeUtils diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionViewModel.kt similarity index 92% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionViewModel.kt index e21fb838d2..07cc42d88f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/mapdirectionview/MapDirectionViewModel.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/ui/mapdirectionview/MapDirectionViewModel.kt @@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.manager.distance.ITrajectoryListener -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.bridge.distance.ITrajectoryListener +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager class MapDirectionViewModel: ViewModel(), ITrajectoryListener { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt similarity index 99% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt rename to OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt index dfca958168..78ac9a26e2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/utils/CoordinateCalculateRouteUtil.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.utils +package com.mogo.och.bridge.utils import android.content.Context import android.location.Location @@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils -import com.mogo.och.common.module.manager.distance.DistanceDegree +import com.mogo.och.bridge.distance.DistanceDegree import mogo.telematics.pad.MessagePad import java.util.TreeMap import kotlin.math.acos @@ -752,8 +752,8 @@ object CoordinateCalculateRouteUtil { // 最近点中包含上次计算的点和上次计算的最近的一个点 if(distanceMap.containsValue(preIndex)&&distanceMap.containsValue(preIndex+1)&&type==1){ - var preIndexDistance:DistanceDegree?=null - var preIndexNextDistance:DistanceDegree?=null + var preIndexDistance: com.mogo.och.bridge.distance.DistanceDegree?=null + var preIndexNextDistance: com.mogo.och.bridge.distance.DistanceDegree?=null distanceMap.iterator().forEach { en -> val key = en.key val value = en.value diff --git a/OCH/common/common/src/main/res/layout/common_autopilot_view.xml b/OCH/common/bridge/src/main/res/layout/common_autopilot_view.xml similarity index 100% rename from OCH/common/common/src/main/res/layout/common_autopilot_view.xml rename to OCH/common/bridge/src/main/res/layout/common_autopilot_view.xml diff --git a/OCH/common/common/src/main/res/layout/common_checkvin_view.xml b/OCH/common/bridge/src/main/res/layout/common_checkvin_view.xml similarity index 100% rename from OCH/common/common/src/main/res/layout/common_checkvin_view.xml rename to OCH/common/bridge/src/main/res/layout/common_checkvin_view.xml diff --git a/OCH/common/common/src/main/res/layout/common_line_view.xml b/OCH/common/bridge/src/main/res/layout/common_line_view.xml similarity index 100% rename from OCH/common/common/src/main/res/layout/common_line_view.xml rename to OCH/common/bridge/src/main/res/layout/common_line_view.xml diff --git a/OCH/common/bridge/src/test/java/com/mogo/och/bridge/MapUnitTest.kt b/OCH/common/bridge/src/test/java/com/mogo/och/bridge/MapUnitTest.kt new file mode 100644 index 0000000000..916b56e73a --- /dev/null +++ b/OCH/common/bridge/src/test/java/com/mogo/och/bridge/MapUnitTest.kt @@ -0,0 +1,35 @@ +package com.mogo.och.bridge + +import com.amap.api.maps.model.LatLng +import com.google.gson.reflect.TypeToken +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.utilcode.util.CoordinateTransform +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager +import org.junit.Test + +class MapUnitTest { + + @Test + fun distanceWithLine(){ + val trajectory = "[{\"longitude\": 112.57772263629191,\"latitude\": 26.820325512385274},{\"longitude\": 112.57733952292816,\"latitude\": 26.820086860498055},{\"longitude\": 112.57713187192141,\"latitude\": 26.819922535836973},{\"longitude\": 112.57687967215642,\"latitude\": 26.819757579900877},{\"longitude\": 112.57667290445619,\"latitude\": 26.819600692538735},{\"longitude\": 112.57600316737123,\"latitude\": 26.819207067510625},{\"longitude\": 112.57561035288818,\"latitude\": 26.81900279871554},{\"longitude\": 112.57558037336332,\"latitude\": 26.818966108431482},{\"longitude\": 112.57559098043983,\"latitude\": 26.81892857807131},{\"longitude\": 112.57563832555716,\"latitude\": 26.818914326240712},{\"longitude\": 112.5757263009867,\"latitude\": 26.818938218858673},{\"longitude\": 112.5760904817954,\"latitude\": 26.819123661927083},{\"longitude\": 112.57710749410802,\"latitude\": 26.819729688873934},{\"longitude\": 112.5781189448959,\"latitude\": 26.820349534555618},{\"longitude\": 112.57880950115879,\"latitude\": 26.82077191558511},{\"longitude\": 112.57891627406968,\"latitude\": 26.820859317924043},{\"longitude\": 112.57899124671509,\"latitude\": 26.820952771743375},{\"longitude\": 112.57902679239179,\"latitude\": 26.82105955898617},{\"longitude\": 112.5789976321119,\"latitude\": 26.821174514978136},{\"longitude\": 112.578555064057,\"latitude\": 26.821797859429427},{\"longitude\": 112.57795642245695,\"latitude\": 26.822651023971133},{\"longitude\": 112.57733398244369,\"latitude\": 26.823600617560405},{\"longitude\": 112.57677698354983,\"latitude\": 26.824516415313433},{\"longitude\": 112.57624233641295,\"latitude\": 26.825455697778107},{\"longitude\": 112.57572875484072,\"latitude\": 26.826426121249938},{\"longitude\": 112.57529684590179,\"latitude\": 26.82731548434467},{\"longitude\": 112.57487816185596,\"latitude\": 26.82823230612025},{\"longitude\": 112.57463521393927,\"latitude\": 26.828711441576548},{\"longitude\": 112.57445099019914,\"latitude\": 26.829153818846464},{\"longitude\": 112.57406353796681,\"latitude\": 26.830165910173097},{\"longitude\": 112.57371302449874,\"latitude\": 26.83118853798091},{\"longitude\": 112.57338387275718,\"latitude\": 26.832247994256267},{\"longitude\": 112.57307958518875,\"latitude\": 26.833370768025308},{\"longitude\": 112.572834054213,\"latitude\": 26.83439802847452},{\"longitude\": 112.5726240938361,\"latitude\": 26.835436070947082},{\"longitude\": 112.57244067196883,\"latitude\": 26.83653646301533},{\"longitude\": 112.57229840576085,\"latitude\": 26.837591814988336},{\"longitude\": 112.57219224700401,\"latitude\": 26.83866241432575},{\"longitude\": 112.57208269994098,\"latitude\": 26.839687671321613},{\"longitude\": 112.57196832043626,\"latitude\": 26.840657505753878},{\"longitude\": 112.57183107427981,\"latitude\": 26.84163940384966},{\"longitude\": 112.57167950832878,\"latitude\": 26.842619338785447},{\"longitude\": 112.57151899030735,\"latitude\": 26.84355752405859},{\"longitude\": 112.57133064671739,\"latitude\": 26.84458007352469},{\"longitude\": 112.57110517173845,\"latitude\": 26.84569641611358},{\"longitude\": 112.57087545672542,\"latitude\": 26.846714804989112},{\"longitude\": 112.57063274366729,\"latitude\": 26.847725291109366},{\"longitude\": 112.57035230745373,\"latitude\": 26.848831468150028},{\"longitude\": 112.57005107335495,\"latitude\": 26.850008806882695},{\"longitude\": 112.5697934329309,\"latitude\": 26.851078499034774},{\"longitude\": 112.56952126531716,\"latitude\": 26.852085033298675},{\"longitude\": 112.56925385510193,\"latitude\": 26.853129564440273},{\"longitude\": 112.56899055077214,\"latitude\": 26.854169635736156},{\"longitude\": 112.56873836559927,\"latitude\": 26.855166275733453},{\"longitude\": 112.5684541330425,\"latitude\": 26.856277134305266},{\"longitude\": 112.56820124728208,\"latitude\": 26.857425874261235},{\"longitude\": 112.5680109279962,\"latitude\": 26.858409844914863},{\"longitude\": 112.5678627931869,\"latitude\": 26.859355934968004},{\"longitude\": 112.56773433742133,\"latitude\": 26.860385951422927},{\"longitude\": 112.56762980043118,\"latitude\": 26.861493391573035},{\"longitude\": 112.56756490747725,\"latitude\": 26.86257607810979},{\"longitude\": 112.56753533982277,\"latitude\": 26.86373469925572},{\"longitude\": 112.56754895675328,\"latitude\": 26.864817185301575},{\"longitude\": 112.56758307888657,\"latitude\": 26.865847160718477},{\"longitude\": 112.56762731433868,\"latitude\": 26.86711946545191},{\"longitude\": 112.56766684892891,\"latitude\": 26.868319641814267},{\"longitude\": 112.56769897930359,\"latitude\": 26.86936239451234},{\"longitude\": 112.56773981647314,\"latitude\": 26.870450862240844},{\"longitude\": 112.56778419400631,\"latitude\": 26.871696138656716},{\"longitude\": 112.56782685460598,\"latitude\": 26.872276153580753},{\"longitude\": 112.56789777230162,\"latitude\": 26.87281429005142},{\"longitude\": 112.56800242632866,\"latitude\": 26.87337009061124},{\"longitude\": 112.56811271678804,\"latitude\": 26.873808867065463},{\"longitude\": 112.568291993152,\"latitude\": 26.874421884078924},{\"longitude\": 112.56846704929232,\"latitude\": 26.87488405491067},{\"longitude\": 112.56869634262367,\"latitude\": 26.87542008503841},{\"longitude\": 112.56896049990331,\"latitude\": 26.875948819391375},{\"longitude\": 112.56925249751414,\"latitude\": 26.87646116970037},{\"longitude\": 112.56956700289011,\"latitude\": 26.8769447572142},{\"longitude\": 112.56989914660946,\"latitude\": 26.877395979702843},{\"longitude\": 112.57027260460708,\"latitude\": 26.877859648801568},{\"longitude\": 112.57098894427915,\"latitude\": 26.878664247706066},{\"longitude\": 112.57126442805652,\"latitude\": 26.87899598188578},{\"longitude\": 112.57160829718538,\"latitude\": 26.87945564329532},{\"longitude\": 112.57216252059992,\"latitude\": 26.88038117364182},{\"longitude\": 112.57241764199154,\"latitude\": 26.880900596583857},{\"longitude\": 112.57259927098444,\"latitude\": 26.881330561822715},{\"longitude\": 112.57280424282287,\"latitude\": 26.881922521716476},{\"longitude\": 112.57294742360097,\"latitude\": 26.8824512874619},{\"longitude\": 112.57305757966559,\"latitude\": 26.8830138917276},{\"longitude\": 112.57313388300817,\"latitude\": 26.88360739818577},{\"longitude\": 112.57317430439731,\"latitude\": 26.884731612696353},{\"longitude\": 112.57319235439246,\"latitude\": 26.885953683698922},{\"longitude\": 112.57320731756178,\"latitude\": 26.887107100581485},{\"longitude\": 112.57322224838643,\"latitude\": 26.88819625521858},{\"longitude\": 112.57323291894362,\"latitude\": 26.88917081837399},{\"longitude\": 112.57324729869111,\"latitude\": 26.890161389324707},{\"longitude\": 112.57326116800273,\"latitude\": 26.89123952388697},{\"longitude\": 112.57327433068929,\"latitude\": 26.89225244212013},{\"longitude\": 112.5732909635451,\"latitude\": 26.893386941944204},{\"longitude\": 112.57330605502305,\"latitude\": 26.894564402445766},{\"longitude\": 112.57331916719527,\"latitude\": 26.895756960489745},{\"longitude\": 112.57329858435462,\"latitude\": 26.89693388431065},{\"longitude\": 112.57324698305418,\"latitude\": 26.898028857659792},{\"longitude\": 112.57319171668158,\"latitude\": 26.8990588250119},{\"longitude\": 112.57314083346539,\"latitude\": 26.90003216219406},{\"longitude\": 112.57308903159071,\"latitude\": 26.900982522153537},{\"longitude\": 112.57306533719523,\"latitude\": 26.901433105371172},{\"longitude\": 112.57308213757469,\"latitude\": 26.90196652783364},{\"longitude\": 112.5730349779171,\"latitude\": 26.902991601760412},{\"longitude\": 112.57298079301792,\"latitude\": 26.9040641167899},{\"longitude\": 112.57292622754801,\"latitude\": 26.905121206439922},{\"longitude\": 112.57290202419351,\"latitude\": 26.90567325452591},{\"longitude\": 112.57292602660397,\"latitude\": 26.906095263476384},{\"longitude\": 112.57299859001606,\"latitude\": 26.906568446270473}]" + val list = GsonUtils.fromJson>( + trajectory, + object : TypeToken?>() {}.type + ) + val mutableListOf = mutableListOf() + list.forEach { + val mogoLocation = MogoLocation() + + val wgS84ToGCJ02 = CoordinateTransform.WGS84ToGCJ02(it.longitude, it.latitude) + mogoLocation.longitude = wgS84ToGCJ02[0] + mogoLocation.latitude = wgS84ToGCJ02[1] + mutableListOf.add(mogoLocation) + } + val mogoLocation = MogoLocation() + mogoLocation.latitude = 26.81621974773846 + mogoLocation.longitude = 112.58256523642582 + mogoLocation.heading = 54.70416759597498 + TrajectoryAndDistanceManager.distanceWithTrajectory(mutableListOf,mogoLocation) + } +} \ No newline at end of file diff --git a/OCH/common/common/build.gradle b/OCH/common/common/build.gradle index f4659eaf17..b2bf5d7a58 100644 --- a/OCH/common/common/build.gradle +++ b/OCH/common/common/build.gradle @@ -73,7 +73,6 @@ dependencies { implementation rootProject.ext.dependencies.litezxing api rootProject.ext.dependencies.flexbox - api project(":OCH:common:data") api rootProject.ext.dependencies.lottie if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index e33aff3eed..c255209fb5 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -33,8 +33,9 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.debug.location.MogoLocationExit -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil +//import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager +//import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil +//import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.view.DebugFloatWindow import com.zhjt.mogo.adas.data.bean.AutopilotStatistics import mogo.telematics.pad.MessagePad @@ -214,16 +215,16 @@ object DebugDataDispatch { } fun setStation(startLon:Double,startLat:Double,endLon:Double,endLat:Double,lineID:Long){ - if(startLon<0||startLat<0||endLon<0||endLat<0||lineID<0){ - TrajectoryAndDistanceManager.setStationPoint(null,null,-1) - } - val startLocation = MogoLocation() - startLocation.longitude = startLon - startLocation.latitude = startLat - val endLocation = MogoLocation() - endLocation.longitude = endLon - endLocation.latitude = endLat - TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineID) +// if(startLon<0||startLat<0||endLon<0||endLat<0||lineID<0){ +// TrajectoryAndDistanceManager.setStationPoint(null,null,-1) +// } +// val startLocation = MogoLocation() +// startLocation.longitude = startLon +// startLocation.latitude = startLat +// val endLocation = MogoLocation() +// endLocation.longitude = endLon +// endLocation.latitude = endLat +// TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineID) } fun getLocaitonByLog(path:String) { @@ -290,11 +291,11 @@ object DebugDataDispatch { val mogoSecondLocation = MogoLocation() mogoSecondLocation.latitude = list[1].latitude mogoSecondLocation.longitude = list[1].longitude - val angle = CoordinateCalculateRouteUtil.getHeadingAngle( - mogoLocation, - mogoSecondLocation - ) - mogoLocation.heading = angle +// val angle = CoordinateCalculateRouteUtil.getHeadingAngle( +// mogoLocation, +// mogoSecondLocation +// ) +// mogoLocation.heading = angle CallerChassisLocationGCJ02ListenerManager.invokeChassisLocationGCJ02( mogoLocation, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt index b2f90d1d35..70693262c0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt @@ -3,10 +3,10 @@ package com.mogo.och.common.module.biz.lansocket import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener 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.Product import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager @@ -126,15 +126,16 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase { - LoginStatusManager.setBusinessType(BusinessEnum.None.code) + LoginStatusManager.setBusinessType(Product.NONE.code) CallerLogger.d(TAG, "乘客屏 收到消息 司机屏没有登录:${LoginStatusEnum.Logout}") return LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) } - BusinessType.bus -> LoginStatusManager.setBusinessType(BusinessEnum.Bus.code) - BusinessType.shuttle -> LoginStatusManager.setBusinessType(BusinessEnum.Shuttle.code) - BusinessType.charter -> LoginStatusManager.setBusinessType(BusinessEnum.Charter.code) - BusinessType.taxi -> LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code) - BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code) + BusinessType.bus -> LoginStatusManager.setBusinessType(Product.BUS.code) + BusinessType.shuttle -> LoginStatusManager.setBusinessType(Product.SHUTTLE.code) + BusinessType.charter -> LoginStatusManager.setBusinessType(Product.CHARTER.code) + BusinessType.taxi -> LoginStatusManager.setBusinessType(Product.TAXI.code) + BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(Product.TAXI.code) + BusinessType.scheduled ->LoginStatusManager.setBusinessType(Product.SCHEDULED.code) } status.append(", 切换后:${LoginStatusManager.getBusInessType().name}>") LoginStatusManager.changeStatus(status.toString()) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt deleted file mode 100644 index 420c9bbc9c..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.mogo.och.common.module.biz.login - -/** - * Created on 2022/08/19 - * - * - * 0 初始状态, - * 10 已登录, - * 20 已登出, - */ -enum class BusinessEnum(val code: Int) { - None( 0 ), - Taxi( 9), - Bus( 10), - Shuttle( 11), - Charter( 13),; - - companion object { - @JvmStatic - fun valueOf(code: Int): BusinessEnum { - for (value in values()) { - if (value.code == code) { - return value - } - } - return None - } - } -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java index c6e380d262..7a6305e6c3 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java @@ -1,6 +1,7 @@ package com.mogo.och.common.module.biz.login; import com.mogo.eagle.core.data.enums.Carmodel; +import com.mogo.eagle.core.utilcode.mogo.Product; public interface ILoginCallback { @@ -8,11 +9,11 @@ public interface ILoginCallback { default void onCarModelChange(Carmodel currentStatus){} - default void onBusinessChange(BusinessEnum businessEnum){} + default void onBusinessChange(Product businessEnum){} default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){} - default void onBusinessChangeDebug(BusinessEnum businessEnum){} + default void onBusinessChangeDebug(Product businessEnum){} default void onLoginErrorInfo(int code,String msg){} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java index beafe04099..6a927c1608 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java @@ -11,8 +11,13 @@ public class LoginInfo { private String sn; private String plateNumber;//车牌号 private String phone;//手机号 - private Integer lineId;//线路id - private Integer taskId;//任务id + private Long lineId;//线路id + private Long taskId;//任务id + private Long siteId;//站点id 包车使用 + private Long currentSite;//当前站点 接驳、公交、班车使用 + private Boolean leaving;// 当前站点是否出发 + private Long shiftsId;//模板id + private Long taskDate;// 任务或模板的日期 private String vin;//车辆唯一识别码 private String cityCode;//城市编码 private String brand;//东风 @@ -24,6 +29,8 @@ public class LoginInfo { private long tenantId;//租户id: private long driverId; + private long businessStatus;//????? + public int getDriverStatus() { return driverStatus; } @@ -72,22 +79,6 @@ public class LoginInfo { this.phone = phone; } - public Integer getLineId() { - return lineId; - } - - public void setLineId(Integer lineId) { - this.lineId = lineId; - } - - public Integer getTaskId() { - return taskId; - } - - public void setTaskId(Integer taskId) { - this.taskId = taskId; - } - public int getServingStatus() { return servingStatus; } @@ -160,6 +151,73 @@ public class LoginInfo { this.driverId = driverId; } + + public long getBusinessStatus() { + return businessStatus; + } + + public void setBusinessStatus(long businessStatus) { + this.businessStatus = businessStatus; + } + + public Long getCurrentSite() { + return currentSite; + } + + public void setCurrentSite(Long currentSite) { + this.currentSite = currentSite; + } + + public Boolean getLeaving() { + return leaving; + } + + public void setLeaving(Boolean leaving) { + this.leaving = leaving; + } + + + + public Long getTaskDate() { + return taskDate; + } + + public void setTaskDate(Long taskDate) { + this.taskDate = taskDate; + } + + public Long getLineId() { + return lineId; + } + + public void setLineId(Long lineId) { + this.lineId = lineId; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Long getSiteId() { + return siteId; + } + + public void setSiteId(Long siteId) { + this.siteId = siteId; + } + + public Long getShiftsId() { + return shiftsId; + } + + public void setShiftsId(Long shiftsId) { + this.shiftsId = shiftsId; + } + @Override public String toString() { return "LoginInfo{" + @@ -173,6 +231,7 @@ public class LoginInfo { ", phone='" + phone + '\'' + ", lineId=" + lineId + ", taskId=" + taskId + + ", siteId=" + siteId + ", vin='" + vin + '\'' + ", cityCode='" + cityCode + '\'' + ", brand='" + brand + '\'' + @@ -180,6 +239,7 @@ public class LoginInfo { ", photos='" + photos + '\'' + ", tenantId=" + tenantId + ", driverId=" + driverId + + ", businessStatus=" + businessStatus + '}'; } @@ -189,30 +249,7 @@ public class LoginInfo { if (o == null || getClass() != o.getClass()) return false; LoginInfo loginInfo = (LoginInfo) o; - - if (driverStatus != loginInfo.driverStatus) return false; - if (servingStatus != loginInfo.servingStatus) return false; - if (businessType != loginInfo.businessType) return false; - if (purpose != loginInfo.purpose) return false; - if (tenantId != loginInfo.tenantId) return false; - if (driverId != loginInfo.driverId) return false; - if (!Objects.equals(orderNo, loginInfo.orderNo)) - return false; - if (!Objects.equals(sn, loginInfo.sn)) return false; - if (!Objects.equals(plateNumber, loginInfo.plateNumber)) - return false; - if (!Objects.equals(phone, loginInfo.phone)) return false; - if (!Objects.equals(lineId, loginInfo.lineId)) - return false; - if (!Objects.equals(taskId, loginInfo.taskId)) - return false; - if (!Objects.equals(vin, loginInfo.vin)) return false; - if (!Objects.equals(cityCode, loginInfo.cityCode)) - return false; - if (!Objects.equals(brand, loginInfo.brand)) return false; - if (!Objects.equals(carModel, loginInfo.carModel)) - return false; - return Objects.equals(photos, loginInfo.photos); + return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && Objects.equals(orderNo, loginInfo.orderNo) && Objects.equals(sn, loginInfo.sn) && Objects.equals(plateNumber, loginInfo.plateNumber) && Objects.equals(phone, loginInfo.phone) && Objects.equals(lineId, loginInfo.lineId) && Objects.equals(taskId, loginInfo.taskId) && Objects.equals(siteId, loginInfo.siteId) && Objects.equals(vin, loginInfo.vin) && Objects.equals(cityCode, loginInfo.cityCode) && Objects.equals(brand, loginInfo.brand) && Objects.equals(carModel, loginInfo.carModel) && Objects.equals(photos, loginInfo.photos); } @Override @@ -220,20 +257,22 @@ public class LoginInfo { int result = driverStatus; result = 31 * result + servingStatus; result = 31 * result + businessType; - result = 31 * result + (int)tenantId; - result = 31 * result + (int)driverId; - result = 31 * result + (orderNo != null ? orderNo.hashCode() : 0); + result = 31 * result + Objects.hashCode(orderNo); result = 31 * result + purpose; - result = 31 * result + (sn != null ? sn.hashCode() : 0); - result = 31 * result + (plateNumber != null ? plateNumber.hashCode() : 0); - result = 31 * result + (phone != null ? phone.hashCode() : 0); - result = 31 * result + (lineId != null ? lineId.hashCode() : 0); - result = 31 * result + (taskId != null ? taskId.hashCode() : 0); - result = 31 * result + (vin != null ? vin.hashCode() : 0); - result = 31 * result + (cityCode != null ? cityCode.hashCode() : 0); - result = 31 * result + (brand != null ? brand.hashCode() : 0); - result = 31 * result + (carModel != null ? carModel.hashCode() : 0); - result = 31 * result + (photos != null ? photos.hashCode() : 0); + result = 31 * result + Objects.hashCode(sn); + result = 31 * result + Objects.hashCode(plateNumber); + result = 31 * result + Objects.hashCode(phone); + result = 31 * result + Objects.hashCode(lineId); + result = 31 * result + Objects.hashCode(taskId); + result = 31 * result + Objects.hashCode(siteId); + result = 31 * result + Objects.hashCode(vin); + result = 31 * result + Objects.hashCode(cityCode); + result = 31 * result + Objects.hashCode(brand); + result = 31 * result + Objects.hashCode(carModel); + result = 31 * result + Objects.hashCode(photos); + result = 31 * result + Long.hashCode(tenantId); + result = 31 * result + Long.hashCode(driverId); + result = 31 * result + Long.hashCode(businessStatus); return result; } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt index 80420625e9..26a38ae9b1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt @@ -1,6 +1,7 @@ package com.mogo.och.common.module.biz.login import com.mogo.eagle.core.data.enums.Carmodel +import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.och.common.module.biz.provider.CommonService import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.EnvType @@ -20,7 +21,7 @@ interface LoginService :CommonService { fun setLoginStatus(status: Int) fun setBusinessType(type: Int) - fun getBusinessType():BusinessEnum + fun getBusinessType(): Product fun queryLoginStatusByNet(readCatche:Boolean=false) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt index 5a34579154..ed65bed05d 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt @@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.Carmodel +import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.manager.loop.BizLoopManager @@ -74,11 +75,11 @@ object LoginStatusManager : CallerBase() { loginService?.setBusinessType(type) } - fun getBusInessType():BusinessEnum{ + fun getBusInessType():Product{ loginService?.let { return it.getBusinessType() } - return BusinessEnum.None + return Product.NONE } @JvmStatic @@ -153,13 +154,13 @@ object LoginStatusManager : CallerBase() { } } - fun invokeLBusinessTypeChange(currentStatus: BusinessEnum) { + fun invokeLBusinessTypeChange(currentStatus: Product) { M_LISTENERS.forEach { val listener = it.value listener.onBusinessChange(currentStatus) } } - fun invokeLBusinessTypeChangeDebug(currentStatus: BusinessEnum) { + fun invokeLBusinessTypeChangeDebug(currentStatus: Product) { M_LISTENERS.forEach { val listener = it.value listener.onBusinessChangeDebug(currentStatus) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt index db9dd2de76..742525ced1 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt @@ -4,7 +4,6 @@ import android.content.Context import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.template.IProvider -import com.mogo.och.common.module.wigets.autopilot.AutopilotState interface CommonService : IProvider { @@ -20,10 +19,6 @@ interface CommonService : IProvider { fun createOchBindQRCodeView(context: Context?):View?{return null} - fun createStartAutopilotView(context: Context?):View?{ - return context?.let { - AutopilotState(it) - } - } + fun createStartAutopilotView(context: Context?):View?{return null} } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/exception/InitException.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/exception/InitException.java new file mode 100644 index 0000000000..7703562631 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/exception/InitException.java @@ -0,0 +1,7 @@ +package com.mogo.och.common.module.exception; + +public class InitException extends RuntimeException { + public InitException(String detailMessage) { + super(detailMessage); + } +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/bean/SessionWithTime.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/bean/SessionWithTime.kt deleted file mode 100644 index 7a3e97167f..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/autopilot/bean/SessionWithTime.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.mogo.och.common.module.manager.autopilot.autopilot.bean - -data class SessionWithTime(val sessionId:Long,val setTime:Long) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/ITrajectoryListListener.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/ITrajectoryListListener.kt deleted file mode 100644 index 71457956bf..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/trajectory/ITrajectoryListListener.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.common.module.manager.autopilot.trajectory - -import com.mogo.eagle.core.data.map.MogoLocation - -interface ITrajectoryListListener{ - /** - * @param routeArrivied 已经走过的坐标 - * @param routeArriving 没有走过的坐标 - * @param location 车的坐标 - * @return - */ - fun trajectoryCallback( - trajectoryList: MutableList, - ) -} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java new file mode 100644 index 0000000000..079c8c9490 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java @@ -0,0 +1,6 @@ +package com.mogo.och.common.module.manager.cache; + + +public interface ISpCallback { + default void snChange(){} +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt index 75316bb287..000c7fcc7a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt @@ -1,8 +1,32 @@ package com.mogo.och.common.module.manager.cache import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.common.module.utils.CallerBase +import kotlin.properties.Delegates -object OchSPManager { +object OchSPManager : IMoGoCloudListener, CallerBase() { + + const val TAG = "${M_OCHCOMMON}OchSPManager" + + private var ochSN: String by Delegates.observable("") { _, oldValue, newValue -> + if (oldValue != newValue) { + M_LISTENERS.forEach { + it.value.snChange() + } + } + } + private var ochToken:String by Delegates.observable("") { _, oldValue, newValue -> + if (oldValue != newValue) { + } + } + + init { + CallerCloudListenerManager.addListener(TAG,this) + } @JvmStatic fun getSn(): String? { @@ -22,4 +46,18 @@ object OchSPManager { return SharedPrefsMgr.getInstance().getString(key,default) } + override fun tokenGot(token: String, sn: String) { + CallerLogger.d(TAG,"获取token和sn:$sn") + this.ochSN = sn + this.ochToken = token + } + + override fun doSomeAfterAddListener(tag: String, listener: ISpCallback) { + super.doSomeAfterAddListener(tag, listener) + if(ochSN.isNotEmpty()){ + M_LISTENERS.forEach { + it.value.snChange() + } + } + } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index c20378752b..151424c21f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -64,6 +64,10 @@ object OchChainLogManager { const val EVENT_KEY_INFO_MAP = "analytics_event_och_map" + // 轨迹方面的日志 + fun writeChainLogTrajectory(title: String, info: String) { + writeChainLog(title, info, true, EVENT_KEY_INFE_WITH_TRAJECTORY) + } fun writeChainLogMap(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_MAP) @@ -72,9 +76,11 @@ object OchChainLogManager { fun writeChainLogDb(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_DB) } + fun writeChainLogBluetooth(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_BLUETOOTH) } + fun writeChainLogWriteOff(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_WRITEOFF) } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt index bbc1de9de4..3eb351e1a6 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/scnner/ScannerManager.kt @@ -230,7 +230,6 @@ object ScannerManager : IOchLanPassengerStatusListener { } override fun onDriverConnectChangeListener(isConnect: Boolean) { - super.onDriverConnectChangeListener(isConnect) if (isConnect) { sendScannerState() } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt index bd37153d84..c57b103e4c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/socket/lan/bean/DataBean.kt @@ -82,7 +82,8 @@ data class WriteOffDetialMsg( val phone: String?=null,// 手机号码 val ticketSize: Int?=null,// 票上几个人 val ticketName: String?=null,// 票的名称 - val typeBiz: String?=null,//bus shuttle + val typeBiz: Int?=null,// + val shiftsId:Long?=null,// 班车 任务id val pipe:String?=null,// 渠道ehsafety mogogosafety val startStationId:Long?=null,// 开始站点名称 val tenantId:Long?=null// 租户id @@ -145,7 +146,8 @@ enum class BusinessType { shuttle, charter, taxi, - taxiunmanned + taxiunmanned, + scheduled, } enum class ProjectType { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt index 9fb386dd51..431254d136 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FlavorUtils.kt @@ -6,8 +6,8 @@ import com.mogo.commons.env.ProjectUtils import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.eagle.core.utilcode.util.AppUtils -import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.EnvType import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType @@ -21,8 +21,8 @@ object FlavorUtils { var projectType: ProjectType? = null var envType: EnvType? = null - - fun getInfo():String{ + + fun getInfo(): String { val info = StringBuilder() when (ProjectUtils.getProjectType()) { @@ -61,9 +61,9 @@ object FlavorUtils { info.append(" qa ") } } - if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { info.append(" Driver") - }else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + } else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { info.append(" Passenger") } @@ -72,33 +72,40 @@ object FlavorUtils { return info.toString() } - fun getBusinessInfo(businessType: Int):String { - val businessEnum = BusinessEnum.valueOf(businessType) + fun getBusinessInfo(businessType: Int): String { + val businessEnum = Product.valueOf(businessType) FunctionBuildConfig.supportBusiness.forEach { when (it) { "shuttle" -> { - val isSupply = businessEnum == BusinessEnum.Shuttle + val isSupply = businessEnum == Product.SHUTTLE if (isSupply) { return "" } } "bus" -> { - val isSupply = businessEnum == BusinessEnum.Bus + val isSupply = businessEnum == Product.BUS if (isSupply) { return "" } } "taxi" -> { - val isSupply = businessEnum == BusinessEnum.Taxi + val isSupply = businessEnum == Product.TAXI if (isSupply) { return "" } } "charter" -> { - val isSupply = businessEnum == BusinessEnum.Charter + val isSupply = businessEnum == Product.CHARTER + if (isSupply) { + return "" + } + } + + "scheduled" -> { + val isSupply = businessEnum == Product.SCHEDULED if (isSupply) { return "" } @@ -110,17 +117,18 @@ object FlavorUtils { val reason = StringBuilder() reason.append("业务异常<当前支持:") FunctionBuildConfig.supportBusiness.forEachIndexed { index, s -> - if(index==FunctionBuildConfig.supportBusiness.size-1){ + if (index == FunctionBuildConfig.supportBusiness.size - 1) { reason.append(s) - }else{ + } else { reason.append("${s},") } } when (businessEnum) { - BusinessEnum.Taxi -> reason.append(" 后台配置:taxi>") - BusinessEnum.Bus -> reason.append(" 后台配置:bus>") - BusinessEnum.Shuttle -> reason.append(" 后台配置:shuttle>") - BusinessEnum.Charter -> reason.append(" 后台配置:charter>") + Product.TAXI -> reason.append(" 后台配置:taxi>") + Product.BUS -> reason.append(" 后台配置:bus>") + Product.SHUTTLE -> reason.append(" 后台配置:shuttle>") + Product.CHARTER -> reason.append(" 后台配置:charter>") + Product.SCHEDULED -> reason.append(" 后台配置:scheduled>") else -> { reason.clear() reason.append("后台未配置业务模式,请联系运营人员为该车配置") @@ -132,32 +140,37 @@ object FlavorUtils { fun getEnvCheck() { businessType = when (AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)) { - AppIdentityModeUtils.Product.BUS -> { + Product.BUS -> { BusinessType.bus } - AppIdentityModeUtils.Product.TAXI -> { + Product.TAXI -> { BusinessType.taxi } - AppIdentityModeUtils.Product.SWEEPER -> { + Product.SWEEPER -> { BusinessType.none } - AppIdentityModeUtils.Product.SHUTTLE -> { + Product.SHUTTLE -> { BusinessType.shuttle } - AppIdentityModeUtils.Product.CHARTER -> { + Product.CHARTER -> { BusinessType.charter } + Product.SCHEDULED -> { + BusinessType.scheduled + } + + else -> { BusinessType.none } } - if(vehicleType==null||projectType==null||envType==null) { + if (vehicleType == null || projectType == null || envType == null) { vehicleType = if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { VehicleType.T1T2 @@ -198,10 +211,12 @@ object FlavorUtils { } } - fun checkAllEnv( projectType: ProjectType, - envType: EnvType, - vehicleType: VehicleType, - businessType: BusinessType):String{ + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): String { val reason = StringBuilder() @@ -211,11 +226,11 @@ object FlavorUtils { Project.MOGO -> projectType == ProjectType.mogo Project.YANTAI -> projectType == ProjectType.yantai } - if(!isProjectSupply){ + if (!isProjectSupply) { reason.append("项目异常<当前:${ProjectUtils.getProjectType().name}, 后台配置:${projectType.name}> ") } - val currentVehicle:String + val currentVehicle: String val vehicleTypeSupply = if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { currentVehicle = VehicleType.T1T2.name @@ -233,11 +248,11 @@ object FlavorUtils { currentVehicle = VehicleType.C1.name vehicleType == VehicleType.C1 } - if(!vehicleTypeSupply){ + if (!vehicleTypeSupply) { reason.append("车型异常<当前:${currentVehicle}, 后台配置:${vehicleType.name}> ") } - val currentenvType:String + val currentenvType: String val envTypeSupply = when (DebugConfig.getNetMode()) { 2 -> { currentenvType = EnvType.qa.name @@ -259,19 +274,19 @@ object FlavorUtils { envType == EnvType.qa } } - if(!envTypeSupply){ + if (!envTypeSupply) { reason.append("环境异常<当前:${currentenvType} 后台配置:${envType.name}> ") } val businessTypeSupply = checkBusinessMine(businessType) - if(!businessTypeSupply){ + if (!businessTypeSupply) { reason.append("业务异常<当前支持:") FunctionBuildConfig.supportBusiness.forEachIndexed { index, s -> - if(index==FunctionBuildConfig.supportBusiness.size-1){ + if (index == FunctionBuildConfig.supportBusiness.size - 1) { reason.append(s) - }else{ + } else { reason.append("${s},") } } @@ -281,8 +296,8 @@ object FlavorUtils { return reason.toString() } - fun checkBusinessMine(businessType: BusinessType) :Boolean{ - if(businessType==BusinessType.none){ + fun checkBusinessMine(businessType: BusinessType): Boolean { + if (businessType == BusinessType.none) { return true } FunctionBuildConfig.supportBusiness.forEach { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt index 687072599c..69aa07f182 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/utils/FrameAnimatorContainer.kt @@ -143,12 +143,12 @@ class FrameAnimatorContainer (resId: Int, mHandler?.removeCallbacksAndMessages(null) val runnable: Runnable = object : Runnable { override fun run() { - Logger.d(TAG, "runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") + //Logger.d(TAG, "runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") val imageView = mSoftReferenceImageView!!.get() if (!mShouldRun || imageView == null) { mIsRunning = false mOnAnimationStoppedListener?.AnimationStopped() - Logger.d(TAG, "结束动画1") + //Logger.d(TAG, "结束动画1") return } mIsRunning = true @@ -158,13 +158,13 @@ class FrameAnimatorContainer (resId: Int, if (!mShouldRun || imageView == null) { mIsRunning = false mOnAnimationStoppedListener?.AnimationStopped() - Logger.d(TAG, "结束动画2") + //Logger.d(TAG, "结束动画2") return } mHandler?.postDelayed(this, mDelayMillis.toLong()) if (mBitmap != null) { // so Build.VERSION.SDK_INT >= 11 ThreadUtils.getFixedPool(1).submit { - Logger.d(TAG, "decodeResource Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") + //Logger.d(TAG, "decodeResource Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") var bitmap: Bitmap? = null try { bitmap = BitmapFactory.decodeResource( @@ -176,7 +176,7 @@ class FrameAnimatorContainer (resId: Int, e.printStackTrace() } ThreadUtils.runOnUiThread({ - Logger.d(TAG, "setImageBitmap Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") + //Logger.d(TAG, "setImageBitmap Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}") if (bitmap != null) { imageView.setImageBitmap(bitmap) } else { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/biz/OperationalInfoGatewayView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/biz/OperationalInfoGatewayView.kt index c548b06851..05224d7997 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/biz/OperationalInfoGatewayView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/biz/OperationalInfoGatewayView.kt @@ -4,11 +4,10 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.och.common.module.R import com.mogo.och.common.module.utils.ResourcesUtils -import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head -import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title +import kotlinx.android.synthetic.main.common_biz_board.view.iv_toolkit_item_head +import kotlinx.android.synthetic.main.common_biz_board.view.iv_toolkit_item_title /** * @@ -28,7 +27,7 @@ class OperationalInfoGatewayView : ConstraintLayout { ) private fun initView() { - LayoutInflater.from(context).inflate(R.layout.common_line_view, this, true) + LayoutInflater.from(context).inflate(R.layout.common_biz_board, this, true) iv_toolkit_item_head.setImageResource(R.drawable.common_biz_operation) iv_toolkit_item_title.text = ResourcesUtils.getString(R.string.common_operation) } diff --git a/OCH/common/common/src/main/res/layout/common_biz_board.xml b/OCH/common/common/src/main/res/layout/common_biz_board.xml new file mode 100644 index 0000000000..bbbb20d3a2 --- /dev/null +++ b/OCH/common/common/src/main/res/layout/common_biz_board.xml @@ -0,0 +1,36 @@ + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt b/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt index 28081667e4..d0d1ba1721 100644 --- a/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt +++ b/OCH/common/common/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt @@ -1,13 +1,10 @@ package com.mogo.och.common.module -import com.amap.api.maps.model.LatLng import com.google.gson.reflect.TypeToken -import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.util.CoordinateTransform import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.och.common.module.debug.location.MogoLocationExit -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType @@ -92,28 +89,6 @@ class ExampleUnitTest { } - @Test - fun distanceWithLine(){ - val trajectory = "[{\"longitude\": 112.57772263629191,\"latitude\": 26.820325512385274},{\"longitude\": 112.57733952292816,\"latitude\": 26.820086860498055},{\"longitude\": 112.57713187192141,\"latitude\": 26.819922535836973},{\"longitude\": 112.57687967215642,\"latitude\": 26.819757579900877},{\"longitude\": 112.57667290445619,\"latitude\": 26.819600692538735},{\"longitude\": 112.57600316737123,\"latitude\": 26.819207067510625},{\"longitude\": 112.57561035288818,\"latitude\": 26.81900279871554},{\"longitude\": 112.57558037336332,\"latitude\": 26.818966108431482},{\"longitude\": 112.57559098043983,\"latitude\": 26.81892857807131},{\"longitude\": 112.57563832555716,\"latitude\": 26.818914326240712},{\"longitude\": 112.5757263009867,\"latitude\": 26.818938218858673},{\"longitude\": 112.5760904817954,\"latitude\": 26.819123661927083},{\"longitude\": 112.57710749410802,\"latitude\": 26.819729688873934},{\"longitude\": 112.5781189448959,\"latitude\": 26.820349534555618},{\"longitude\": 112.57880950115879,\"latitude\": 26.82077191558511},{\"longitude\": 112.57891627406968,\"latitude\": 26.820859317924043},{\"longitude\": 112.57899124671509,\"latitude\": 26.820952771743375},{\"longitude\": 112.57902679239179,\"latitude\": 26.82105955898617},{\"longitude\": 112.5789976321119,\"latitude\": 26.821174514978136},{\"longitude\": 112.578555064057,\"latitude\": 26.821797859429427},{\"longitude\": 112.57795642245695,\"latitude\": 26.822651023971133},{\"longitude\": 112.57733398244369,\"latitude\": 26.823600617560405},{\"longitude\": 112.57677698354983,\"latitude\": 26.824516415313433},{\"longitude\": 112.57624233641295,\"latitude\": 26.825455697778107},{\"longitude\": 112.57572875484072,\"latitude\": 26.826426121249938},{\"longitude\": 112.57529684590179,\"latitude\": 26.82731548434467},{\"longitude\": 112.57487816185596,\"latitude\": 26.82823230612025},{\"longitude\": 112.57463521393927,\"latitude\": 26.828711441576548},{\"longitude\": 112.57445099019914,\"latitude\": 26.829153818846464},{\"longitude\": 112.57406353796681,\"latitude\": 26.830165910173097},{\"longitude\": 112.57371302449874,\"latitude\": 26.83118853798091},{\"longitude\": 112.57338387275718,\"latitude\": 26.832247994256267},{\"longitude\": 112.57307958518875,\"latitude\": 26.833370768025308},{\"longitude\": 112.572834054213,\"latitude\": 26.83439802847452},{\"longitude\": 112.5726240938361,\"latitude\": 26.835436070947082},{\"longitude\": 112.57244067196883,\"latitude\": 26.83653646301533},{\"longitude\": 112.57229840576085,\"latitude\": 26.837591814988336},{\"longitude\": 112.57219224700401,\"latitude\": 26.83866241432575},{\"longitude\": 112.57208269994098,\"latitude\": 26.839687671321613},{\"longitude\": 112.57196832043626,\"latitude\": 26.840657505753878},{\"longitude\": 112.57183107427981,\"latitude\": 26.84163940384966},{\"longitude\": 112.57167950832878,\"latitude\": 26.842619338785447},{\"longitude\": 112.57151899030735,\"latitude\": 26.84355752405859},{\"longitude\": 112.57133064671739,\"latitude\": 26.84458007352469},{\"longitude\": 112.57110517173845,\"latitude\": 26.84569641611358},{\"longitude\": 112.57087545672542,\"latitude\": 26.846714804989112},{\"longitude\": 112.57063274366729,\"latitude\": 26.847725291109366},{\"longitude\": 112.57035230745373,\"latitude\": 26.848831468150028},{\"longitude\": 112.57005107335495,\"latitude\": 26.850008806882695},{\"longitude\": 112.5697934329309,\"latitude\": 26.851078499034774},{\"longitude\": 112.56952126531716,\"latitude\": 26.852085033298675},{\"longitude\": 112.56925385510193,\"latitude\": 26.853129564440273},{\"longitude\": 112.56899055077214,\"latitude\": 26.854169635736156},{\"longitude\": 112.56873836559927,\"latitude\": 26.855166275733453},{\"longitude\": 112.5684541330425,\"latitude\": 26.856277134305266},{\"longitude\": 112.56820124728208,\"latitude\": 26.857425874261235},{\"longitude\": 112.5680109279962,\"latitude\": 26.858409844914863},{\"longitude\": 112.5678627931869,\"latitude\": 26.859355934968004},{\"longitude\": 112.56773433742133,\"latitude\": 26.860385951422927},{\"longitude\": 112.56762980043118,\"latitude\": 26.861493391573035},{\"longitude\": 112.56756490747725,\"latitude\": 26.86257607810979},{\"longitude\": 112.56753533982277,\"latitude\": 26.86373469925572},{\"longitude\": 112.56754895675328,\"latitude\": 26.864817185301575},{\"longitude\": 112.56758307888657,\"latitude\": 26.865847160718477},{\"longitude\": 112.56762731433868,\"latitude\": 26.86711946545191},{\"longitude\": 112.56766684892891,\"latitude\": 26.868319641814267},{\"longitude\": 112.56769897930359,\"latitude\": 26.86936239451234},{\"longitude\": 112.56773981647314,\"latitude\": 26.870450862240844},{\"longitude\": 112.56778419400631,\"latitude\": 26.871696138656716},{\"longitude\": 112.56782685460598,\"latitude\": 26.872276153580753},{\"longitude\": 112.56789777230162,\"latitude\": 26.87281429005142},{\"longitude\": 112.56800242632866,\"latitude\": 26.87337009061124},{\"longitude\": 112.56811271678804,\"latitude\": 26.873808867065463},{\"longitude\": 112.568291993152,\"latitude\": 26.874421884078924},{\"longitude\": 112.56846704929232,\"latitude\": 26.87488405491067},{\"longitude\": 112.56869634262367,\"latitude\": 26.87542008503841},{\"longitude\": 112.56896049990331,\"latitude\": 26.875948819391375},{\"longitude\": 112.56925249751414,\"latitude\": 26.87646116970037},{\"longitude\": 112.56956700289011,\"latitude\": 26.8769447572142},{\"longitude\": 112.56989914660946,\"latitude\": 26.877395979702843},{\"longitude\": 112.57027260460708,\"latitude\": 26.877859648801568},{\"longitude\": 112.57098894427915,\"latitude\": 26.878664247706066},{\"longitude\": 112.57126442805652,\"latitude\": 26.87899598188578},{\"longitude\": 112.57160829718538,\"latitude\": 26.87945564329532},{\"longitude\": 112.57216252059992,\"latitude\": 26.88038117364182},{\"longitude\": 112.57241764199154,\"latitude\": 26.880900596583857},{\"longitude\": 112.57259927098444,\"latitude\": 26.881330561822715},{\"longitude\": 112.57280424282287,\"latitude\": 26.881922521716476},{\"longitude\": 112.57294742360097,\"latitude\": 26.8824512874619},{\"longitude\": 112.57305757966559,\"latitude\": 26.8830138917276},{\"longitude\": 112.57313388300817,\"latitude\": 26.88360739818577},{\"longitude\": 112.57317430439731,\"latitude\": 26.884731612696353},{\"longitude\": 112.57319235439246,\"latitude\": 26.885953683698922},{\"longitude\": 112.57320731756178,\"latitude\": 26.887107100581485},{\"longitude\": 112.57322224838643,\"latitude\": 26.88819625521858},{\"longitude\": 112.57323291894362,\"latitude\": 26.88917081837399},{\"longitude\": 112.57324729869111,\"latitude\": 26.890161389324707},{\"longitude\": 112.57326116800273,\"latitude\": 26.89123952388697},{\"longitude\": 112.57327433068929,\"latitude\": 26.89225244212013},{\"longitude\": 112.5732909635451,\"latitude\": 26.893386941944204},{\"longitude\": 112.57330605502305,\"latitude\": 26.894564402445766},{\"longitude\": 112.57331916719527,\"latitude\": 26.895756960489745},{\"longitude\": 112.57329858435462,\"latitude\": 26.89693388431065},{\"longitude\": 112.57324698305418,\"latitude\": 26.898028857659792},{\"longitude\": 112.57319171668158,\"latitude\": 26.8990588250119},{\"longitude\": 112.57314083346539,\"latitude\": 26.90003216219406},{\"longitude\": 112.57308903159071,\"latitude\": 26.900982522153537},{\"longitude\": 112.57306533719523,\"latitude\": 26.901433105371172},{\"longitude\": 112.57308213757469,\"latitude\": 26.90196652783364},{\"longitude\": 112.5730349779171,\"latitude\": 26.902991601760412},{\"longitude\": 112.57298079301792,\"latitude\": 26.9040641167899},{\"longitude\": 112.57292622754801,\"latitude\": 26.905121206439922},{\"longitude\": 112.57290202419351,\"latitude\": 26.90567325452591},{\"longitude\": 112.57292602660397,\"latitude\": 26.906095263476384},{\"longitude\": 112.57299859001606,\"latitude\": 26.906568446270473}]" - val list = GsonUtils.fromJson>( - trajectory, - object : TypeToken?>() {}.type - ) - val mutableListOf = mutableListOf() - list.forEach { - val mogoLocation = MogoLocation() - - val wgS84ToGCJ02 = CoordinateTransform.WGS84ToGCJ02(it.longitude, it.latitude) - mogoLocation.longitude = wgS84ToGCJ02[0] - mogoLocation.latitude = wgS84ToGCJ02[1] - mutableListOf.add(mogoLocation) - } - val mogoLocation = MogoLocation() - mogoLocation.latitude = 26.81621974773846 - mogoLocation.longitude = 112.58256523642582 - mogoLocation.heading = 54.70416759597498 - TrajectoryAndDistanceManager.distanceWithTrajectory(mutableListOf,mogoLocation) - } @Test fun testLanSocketManager(){ diff --git a/OCH/common/data/build.gradle b/OCH/common/data/build.gradle index c106019e8c..4a6477c295 100644 --- a/OCH/common/data/build.gradle +++ b/OCH/common/data/build.gradle @@ -39,6 +39,9 @@ dependencies { implementation rootProject.ext.dependencies.material implementation rootProject.ext.dependencies.rxandroid + implementation rootProject.ext.dependencies.androidxroomruntime + implementation project(":OCH:common:common") + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoutils api rootProject.ext.dependencies.mogo_core_data diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/ContrailDataBean.kt similarity index 58% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/bean/ContrailDataBean.kt index 970e564282..2b1ad6d3eb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/ContrailDataBean.kt @@ -1,18 +1,13 @@ -package com.mogo.och.weaknet.repository.db.bean +package com.mogo.och.data.db.bean import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager -import com.mogo.och.common.module.manager.autopilot.line.LineManager -import com.mogo.och.data.bean.ContraiInfo -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager /** * 启动自驾使用的轨迹信息 */ -@Entity(tableName = ContrailDataBean.ContrailDataTable) +@Entity(tableName = ContrailDataBean.tableName) data class ContrailDataBean( @PrimaryKey(autoGenerate = true) var id: Int = 0, @@ -61,18 +56,7 @@ data class ContrailDataBean( ) { companion object { - const val ContrailDataTable: String = "contrail_data_table" - - fun save2Common(contrail:ContrailDataBean?) { - contrail?.apply { - if (lineId == null || lineId!! < 0L||csvFileUrl.isNullOrEmpty()||csvFileMd5.isNullOrEmpty()||txtFileUrl.isNullOrEmpty()||txtFileMd5.isNullOrEmpty()) { - ToastUtils.showLong("请设置轨迹信息") - OchChainLogManager.writeChainLogAutopilot("轨迹错误",this.toString()) - return - } - LineManager.setContraiInfo(ContraiInfo(lineId!!,csvFileUrl!!,csvFileMd5!!,txtFileUrl!!,txtFileMd5!!,contrailSaveTime!!)) - } - } + const val tableName: String = "contrail_data_table" } override fun toString(): String { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/LineDataBean.kt similarity index 91% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/bean/LineDataBean.kt index d2b7d38eb4..f2398be509 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/LineDataBean.kt @@ -1,11 +1,11 @@ -package com.mogo.och.weaknet.repository.db.bean +package com.mogo.och.data.db.bean import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey import com.google.gson.annotations.SerializedName -@Entity(tableName = LineDataBean.lineDataTable) +@Entity(tableName = LineDataBean.tableName) data class LineDataBean( @PrimaryKey(autoGenerate = true) @@ -38,7 +38,7 @@ data class LineDataBean( val linegetTime: Long = System.currentTimeMillis(), ) { companion object { - const val lineDataTable: String = "line_data_table" + const val tableName: String = "line_data_table" } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/SiteDataBean.kt similarity index 95% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/bean/SiteDataBean.kt index 6ffbbd4de1..94cdb8b481 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/bean/SiteDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.repository.db.bean +package com.mogo.och.data.db.bean import androidx.room.ColumnInfo import androidx.room.Entity @@ -6,7 +6,7 @@ import androidx.room.Ignore import androidx.room.PrimaryKey import com.mogo.och.data.bean.SiteIntroduce -@Entity(tableName = SiteDataBean.siteDataTable) +@Entity(tableName = SiteDataBean.tableName) data class SiteDataBean( @PrimaryKey(autoGenerate = true) var id: Int = 0, @@ -91,7 +91,7 @@ data class SiteDataBean( var videoList:MutableList?=null ) { companion object { - const val siteDataTable = "site_data_table" + const val tableName = "site_data_table" const val mediaTypeVideo = 1 } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/ContrailDataDao.kt similarity index 56% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/dao/ContrailDataDao.kt index 63a94fff6e..856b10ef58 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/ContrailDataDao.kt @@ -1,10 +1,10 @@ -package com.mogo.och.weaknet.repository.db.dao +package com.mogo.och.data.db.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.data.db.bean.ContrailDataBean @Dao interface ContrailDataDao { @@ -13,16 +13,20 @@ interface ContrailDataDao { @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(vararg contrailDataBean: ContrailDataBean) + @Query("UPDATE ${ContrailDataBean.tableName} SET csv_file_url = :csv_file_url ,csv_file_md5 = :csv_file_md5 ,txt_file_url = :txt_file_url " + + ",txt_file_md5 = :txt_file_md5 ,contrail_save_time = :contrail_save_time,md5 = :md5 WHERE id = :id") + fun update(csv_file_url: String,csv_file_md5: String,txt_file_url: String,txt_file_md5: String,contrail_save_time: Long,md5: String,id:Int) + // 线路删除时同步删除所属轨迹信息 - @Query("DELETE FROM ${ContrailDataBean.ContrailDataTable} WHERE line_id = :lineId") + @Query("DELETE FROM ${ContrailDataBean.tableName} WHERE line_id = :lineId") fun deleteByLineId(lineId: Long) //查询线路对应的轨迹信息 - @Query("SELECT * FROM ${ContrailDataBean.ContrailDataTable} WHERE line_id = :lineId") + @Query("SELECT * FROM ${ContrailDataBean.tableName} WHERE line_id = :lineId") fun queryContrailByLineId(lineId:Long): List? //查询线路对应的轨迹信息 - @Query("SELECT * FROM ${ContrailDataBean.ContrailDataTable} WHERE md5 = :md5") + @Query("SELECT * FROM ${ContrailDataBean.tableName} WHERE md5 = :md5") fun queryContrailByMd5(md5:String): List? //查询线路对应的轨迹信息 只要一个结果 @@ -35,4 +39,6 @@ interface ContrailDataDao { } } + + } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/LineDataDao.kt similarity index 59% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/dao/LineDataDao.kt index d34d6a988a..6a673a9e7e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/LineDataDao.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.repository.db.dao +package com.mogo.och.data.db.dao import androidx.room.Dao import androidx.room.Delete @@ -6,7 +6,7 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import io.reactivex.Observable @Dao @@ -19,24 +19,27 @@ interface LineDataDao { @Delete fun delete(vararg lineDataBean: LineDataBean) + @Query("UPDATE ${LineDataBean.tableName} SET line_name = :lineName ,end_station_name = :endStationName WHERE id = :id") + fun updateInfo(lineName: String?, endStationName: String?, id: Long) + // 删除过时数据 - @Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime") + @Query("DELETE FROM ${LineDataBean.tableName} WHERE line_get_time < :zeroTime") fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int //删除非昨天添加的数据 - @Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime") + @Query("DELETE FROM ${LineDataBean.tableName} WHERE line_get_time < :zeroTime") fun deleteWeltData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Int //查询当天插入的所有数据 - @Query("SELECT * FROM ${LineDataBean.lineDataTable} WHERE line_get_time > :zeroTime") + @Query("SELECT * FROM ${LineDataBean.tableName} WHERE line_get_time > :zeroTime") fun loadDataRx(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Observable?> //查询当天插入的所有数据 - @Query("SELECT * FROM ${LineDataBean.lineDataTable} WHERE line_get_time > :zeroTime") + @Query("SELECT * FROM ${LineDataBean.tableName} WHERE line_get_time > :zeroTime") fun loadData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): List? - @Query("SELECT * FROM ${LineDataBean.lineDataTable} WHERE line_id = :lineId") + @Query("SELECT * FROM ${LineDataBean.tableName} WHERE line_id = :lineId") fun queryByLineId(lineId: Int) : List? } diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/SiteDataDao.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/SiteDataDao.kt new file mode 100644 index 0000000000..83cd5c2df9 --- /dev/null +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/dao/SiteDataDao.kt @@ -0,0 +1,59 @@ +package com.mogo.och.data.db.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.mogo.och.data.db.bean.SiteDataBean + +@Dao +interface SiteDataDao { + //插入数据 + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insert(vararg lineDataBean: SiteDataBean) + + @Delete() + fun deleteById(vararg siteDataBean: SiteDataBean) + + @Query("UPDATE ${SiteDataBean.tableName} SET site_id = :site_id ,line_id = :lineId,name = :name,name_kr = :nameKr,seq = :seq," + + "gcj_lon = :gcjLon,gcj_lat = :gcjLat,lon = :lon,lat = :lat,introduction = :introduction," + + "is_play_tts = :isPlayTts,md5 = :md5,videoList = :videoListDB WHERE id = :id") + fun updateInfo(site_id: Long?, lineId: Long?, name: String?,nameKr:String?,seq:Int?, + gcjLon:Double?, gcjLat:Double?,lon:Double?,lat:Double?,introduction:String?, + isPlayTts:Boolean?,md5:String?,videoListDB:String?,id:Int + ) + + + // 线路删除时同步删除所属站点 + @Query("DELETE FROM ${SiteDataBean.tableName} WHERE line_id = :lineId") + fun deleteByLineId(lineId: Long) + + //查询线路对应的轨迹信息 + @Query("SELECT * FROM ${SiteDataBean.tableName} WHERE md5 = :md5") + fun querySitesByMd5(md5:String): List? + + //查询线路对应的轨迹信息 + @Query("SELECT * FROM ${SiteDataBean.tableName}") + fun queryAllSites(): List? + + + @Query("SELECT * FROM ${SiteDataBean.tableName} WHERE line_id = :lineId and site_id = :siteId") + fun querySitesByLineIdAndSiteId(lineId: Long,siteId:Long):List? + + @Query("SELECT * FROM ${SiteDataBean.tableName} WHERE line_id = :lineId") + fun querySitesByLineId(lineId: Long):List? + + @Query("SELECT * FROM ${SiteDataBean.tableName} GROUP by md5 HAVING count(1) > 1") + fun checkData():List? + + fun querySiteByLineIdAndSiteId(lineId: Long,siteId:Long): SiteDataBean?{ + val queryContrailByLineId = querySitesByLineIdAndSiteId(lineId,siteId) + return if(queryContrailByLineId.isNullOrEmpty()){ + null + }else{ + queryContrailByLineId.first() + } + } + +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/exception/DbException.kt similarity index 69% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/db/exception/DbException.kt index 82958f81a1..2ee4abcf3c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/exception/DbException.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.repository.db.exception +package com.mogo.och.data.db.exception class DbException: RuntimeException { constructor() : super() diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseContraiDb.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseContraiDb.kt new file mode 100644 index 0000000000..b7bf96debd --- /dev/null +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseContraiDb.kt @@ -0,0 +1,63 @@ +package com.mogo.och.data.db.repository + +import com.mogo.eagle.core.network.utils.digest.DigestUtils +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.db.bean.ContrailDataBean +import com.mogo.och.data.db.dao.ContrailDataDao + +abstract class BaseContraiDb { + + open var contrailDao: ContrailDataDao?=null + + fun addOrUpdate(contrailDatalist:List){ + val runnable = Runnable { + // 校验数据个数 + contrailDao?.let { contrailDao-> + contrailDatalist.forEach { + val md5Source = it.toString() + val md5Hex = DigestUtils.md5Hex(md5Source) + val queryContrailByMd5 = contrailDao.queryContrailByMd5(md5Hex) + if(queryContrailByMd5.isNullOrEmpty()){// 没有值或者值有变化 + val needUpdate = contrailDao.queryContrailByLineIdOne(it.lineId!!) + it.md5 = md5Hex + if(needUpdate!=null){// 更新 + it.id = needUpdate.id + contrailDao.update(it.csvFileUrl?:"",it.csvFileMd5?:"",it.txtFileUrl?:"",it.txtFileMd5?:"",System.currentTimeMillis(),md5Hex,needUpdate.id) + }else{// 插入新的 + contrailDao.insert(it) + } + } + } + } + } + BizLoopManager.runInIoThread(runnable) + } + + fun deleteByLineId(lineId: Long) { + contrailDao?.deleteByLineId(lineId) + } + + fun queryAutopilotInfoByLineid(lineId: Long): ContrailDataBean? { + return contrailDao?.queryContrailByLineIdOne(lineId) + } + + fun saveRunningInfo( + lineId: Int, + csvFileMd5: String?, + csvFileUrl: String?, + txtFileUrl: String?, + txtFileMd5: String?, + contrailSaveTime: Long + ) { + val runningLine = ContrailDataBean( + lineId = lineId.toLong(), + csvFileUrl = csvFileUrl, + csvFileMd5 = csvFileMd5, + txtFileUrl = txtFileUrl, + txtFileMd5 = txtFileMd5, + contrailSaveTime = contrailSaveTime + ) + addOrUpdate(mutableListOf(runningLine)) + } + +} \ No newline at end of file diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseLineDb.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseLineDb.kt new file mode 100644 index 0000000000..3baa77928b --- /dev/null +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseLineDb.kt @@ -0,0 +1,128 @@ +package com.mogo.och.data.db.repository + +import androidx.room.Transaction +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.db.bean.LineDataBean +import com.mogo.och.data.db.dao.LineDataDao +import io.reactivex.Observable + +abstract class BaseLineDb { + + open var lineDao: LineDataDao?=null + + + fun cleanWeltData(){ + lineDao?.deleteWeltData() + } + + fun queryCanUserLine(): List? { + return lineDao?.loadData() + } + + /** + * 读取可用线路 + */ + fun queryCanUseLineRx(): Observable?>? { + return lineDao?.loadDataRx() + } + + /** + * 后台line 删除 需要连带着把轨迹信息、站点信息和任务信息删除 + */ + abstract fun deleteSitesTaskAndContraiDb(lineId:Long) + + fun checkAndUpdate(serverDatalist:List){ + val runable = object :Runnable{ + @Transaction + override fun run() { + // 校验数据个数 + lineDao?.let { lineDao-> + val loadData = lineDao.loadData() + if(loadData.isNullOrEmpty()){ + // 插入新的值 + lineDao.insert(*serverDatalist.toTypedArray()) + // TODO: Ui展示需要动态刷新UI去 + return + } + // 后台新增数据 + val needAddDatas = serverDatalist-loadData + // 后台没有本地数据库有的未分配线路 + val needMinusDatas = loadData-serverDatalist + + // TODO: Ui展示需要动态刷新UI去 + + if (needAddDatas.isNotEmpty()) { + // 新增线路 + lineDao.insert(*needAddDatas.toTypedArray()) + } + if (needMinusDatas.isNotEmpty()) { + // 删除线路 + lineDao.delete(*needMinusDatas.toTypedArray()) + needMinusDatas.forEach { minusLine-> + minusLine.lineId?.let { lineId-> + // 删除线路对应的站点 + + deleteSitesTaskAndContraiDb(lineId) + + } + } + } + + // 交集 服务器端 + val needUpdateByMd5 = serverDatalist-needAddDatas + // 交集 本地数据库 + val oldDataList = loadData-needMinusDatas + + val needDelete = mutableListOf() + val needUpDate = mutableListOf() + + needUpdateByMd5.forEach { + val oldList = oldDataList.filter { local -> local.lineId == it.lineId } + if(oldList.isNotEmpty()){ + oldList.forEachIndexed { index, lineBean -> + if(index==0){ + if (lineBean.lineName == it.lineName && lineBean.endStationName == it.endStationName) { + // 数据没有变化 + }else{ + it.id = lineBean.id + needUpDate.add(it) + } + }else{ + // 站点多了 需要删除 + needDelete.add(lineBean) + } + } + } + } + lineDao.delete(*needDelete.toTypedArray()) + + needUpDate.forEach { updateItem-> + // 跟新数据 + lineDao.updateInfo(updateItem.lineName,updateItem.endStationName,updateItem.id) + } + } + } + } + + BizLoopManager.runInIoThread(runable) + } + + fun deleteObsoleteData(){ + lineDao?.deleteObsoleteData()?.let { + OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}") + } + } + + /** + * 没有线路就插入线路 + */ + fun saveRunningInfo(lineId: Int, lineName: String?, endStationName: String?) { + val queryByLineId = lineDao?.queryByLineId(lineId) + if(queryByLineId.isNullOrEmpty()){ + lineDao?.insert(LineDataBean(lineId = lineId.toLong(), lineName = lineName, endStationName = endStationName)) + } + } + + +} \ No newline at end of file diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseSiteDb.kt b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseSiteDb.kt new file mode 100644 index 0000000000..155baf126c --- /dev/null +++ b/OCH/common/data/src/main/java/com/mogo/och/data/db/repository/BaseSiteDb.kt @@ -0,0 +1,120 @@ +package com.mogo.och.data.db.repository + +import androidx.room.Transaction +import com.mogo.eagle.core.network.utils.digest.DigestUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.TAG +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.db.bean.SiteDataBean +import com.mogo.och.data.db.dao.SiteDataDao + +open class BaseSiteDb { + + open var siteDataDao: SiteDataDao? = null + + fun addOrUpdate(serverDataList: List) { + val runnable = object :Runnable { + @Transaction + override fun run() { + siteDataDao?.let { siteDataDao -> + val localAllSites = siteDataDao.queryAllSites() + if (localAllSites.isNullOrEmpty()) { + // 插入新数据 + siteDataDao.insert(*serverDataList.toTypedArray()) + return + } + // 后台新增数据 + val needAddDatas = serverDataList-localAllSites + // 后台没有本地数据库有的未分配线路 + val needMinusDatas = localAllSites - serverDataList + + if (needAddDatas.isNotEmpty()) { + // 新增线路 + needAddDatas.forEach { + val md5Source = it.toString() + val md5Hex = DigestUtils.md5Hex(md5Source) + it.md5 = md5Hex + } + // 新增插入新数据 + siteDataDao.insert(*needAddDatas.toTypedArray()) + } + + if (needMinusDatas.isNotEmpty()) { + // 删除线路 + siteDataDao.deleteById(*needMinusDatas.toTypedArray()) + } + + // 交集 服务器端 + val needUpdateByMd5 = serverDataList-needAddDatas + // 交集 本地数据库 + val oldDataList = localAllSites-needMinusDatas + + val needDelete = mutableListOf() + val needUpDate = mutableListOf() + + + needUpdateByMd5.forEach { + val md5Source = it.toString() + val md5Hex = DigestUtils.md5Hex(md5Source) + val oldList = + oldDataList.filter { local -> local.siteId == it.siteId && local.lineId == it.lineId } + if(oldList.isNotEmpty()){ + oldList.forEachIndexed { index, siteDataBean -> + if(index==0){ + if (siteDataBean.md5 == md5Hex) { + // 数据没有变化 + }else{ + it.id = siteDataBean.id + it.md5 = md5Hex + needUpDate.add(it) + + } + }else{ + needDelete.add(siteDataBean) + + } + } + } + } + needUpDate.forEach {updateDateItem-> + siteDataDao.updateInfo(updateDateItem.siteId,updateDateItem.lineId,updateDateItem.name,updateDateItem.nameKr, + updateDateItem.seq,updateDateItem.gcjLon,updateDateItem.gcjLat,updateDateItem.lon,updateDateItem.lat, + updateDateItem.introduction,updateDateItem.isPlayTts,updateDateItem.md5,updateDateItem.videoListDB,updateDateItem.id) + } + siteDataDao.deleteById(*needDelete.toTypedArray()) + checkData() + } + } + + } + BizLoopManager.runInIoThread(runnable) + } + + fun checkData() { + CallerLogger.d(TAG,"检测站点数据") + siteDataDao?.checkData()?.let { list -> + list.forEach { + siteDataDao?.deleteById(it) + } + if (list.isNotEmpty()) { + OchChainLogManager.writeChainLogDb("数据检测", "有重复数据${list}") + checkData() + } + } + } + + fun deleteByLineId(lineId: Long) { + siteDataDao?.deleteByLineId(lineId) + } + + fun querySiteByLineId(lineId:Long):List?{ + siteDataDao?.let { siteDataDao-> + return siteDataDao.querySitesByLineId(lineId) + } + return null + } + + + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/TaxiOrderStatusEnum.kt b/OCH/common/data/src/main/java/com/mogo/och/data/taxi/TaxiOrderStatusEnum.kt similarity index 96% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/TaxiOrderStatusEnum.kt rename to OCH/common/data/src/main/java/com/mogo/och/data/taxi/TaxiOrderStatusEnum.kt index 3cc82e47de..e676042207 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/order/TaxiOrderStatusEnum.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/taxi/TaxiOrderStatusEnum.kt @@ -1,4 +1,4 @@ -package com.mogo.och.common.module.biz.order +package com.mogo.och.data.taxi /** * Created on 2021/12/7 diff --git a/OCH/facade/build.gradle b/OCH/facade/build.gradle index 0094d2ec71..3daccbaaa9 100644 --- a/OCH/facade/build.gradle +++ b/OCH/facade/build.gradle @@ -60,6 +60,7 @@ dependencies { implementation rootProject.ext.dependencies.material implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.arouter + implementation project(':OCH:common:bridge') kapt rootProject.ext.dependencies.aroutercompiler apply from: "./script/och.gradle" diff --git a/OCH/facade/script/och.gradle b/OCH/facade/script/och.gradle index a9b2e0736e..c49beba858 100644 --- a/OCH/facade/script/och.gradle +++ b/OCH/facade/script/och.gradle @@ -26,23 +26,20 @@ project.dependencies { } else if (isCurrentPassenger("B2")) { implementation project.project(':OCH:shuttle:passenger_weaknet') } else if (isCurrentDriver("T1T2")) { -// implementation project.project(':OCH:taxi:driver') implementation project.project(':OCH:taxi:unmanned-driver') } else if (isCurrentPassenger("T1T2")) { implementation project.project(':OCH:taxi:unmanned-passenger') -// implementation project.project(':OCH:taxi:passenger') } else if (isCurrentDriver("ALL")) { implementation project.project(':OCH:offline:driver') implementation project.project(':OCH:taxi:unmanned-driver') -// implementation project.project(':OCH:taxi:driver') implementation project.project(':OCH:charter:driver') implementation project.project(':OCH:sweeper:driver') + implementation project.project(':OCH:shuttle:driver_weaknet') } else if (isCurrentPassenger("ALL")) { implementation project.project(':OCH:taxi:unmanned-passenger') -// implementation project.project(':OCH:taxi:passenger') implementation project.project(':OCH:charter:passenger') implementation project.project(':OCH:shuttle:passenger_weaknet') - implementation project.project(':OCH:shuttle:driver_weaknet') + } else { implementation project.project(':OCH:offline:driver') implementation project.project(':OCH:charter:driver') diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt index eda61eeabd..861b870117 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt @@ -6,10 +6,10 @@ import androidx.fragment.app.FragmentActivity import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.bridge.device.checkvin.CheckVinManager import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.device.checkvin.CheckVinManager import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.facade.constant.FacadeConst diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index bc77c249fd..457b3e288a 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -21,6 +21,7 @@ import com.mogo.eagle.core.function.hmi.ui.setting.SopView import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.Product 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.util.AppUtils @@ -28,10 +29,7 @@ import com.mogo.eagle.core.utilcode.util.DeviceUtils import com.mogo.eagle.core.utilcode.util.ProcessUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.eagle.core.utilcode.util.Utils import com.mogo.eagle.core.utilcode.util.VolumeUtils -import com.mogo.och.biz.R -import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.ILoginCallback import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager @@ -115,36 +113,28 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { OchChainLogManager.writeChainLog("音量设置后","最大声音量:${maxVolume}------当前音量:${volumeafter}----目的音量:${tartgetVolume}") } } - if (AppIdentityModeUtils.isBusDriver(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER_WEAKNET) - } else if (AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER_WEAKNET) - } else if (AppIdentityModeUtils.isCharterDriver(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER) - } else if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) { -// return if (ProjectUtils.isMogo()) { -// getFragmentByServeName(OchCommonConst.TAXI_DRIVER) -// } else if (ProjectUtils.isSaas()) { + if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) + ||AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode) + ||AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.SHUTTLE_DRIVER_WEAKNET) + }else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + return getFragmentByServeName(OchCommonConst.SHUTTLE_PASSENGER_WEAKNET) + } + } else if(AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + return getFragmentByServeName(OchCommonConst.CHARTER_DRIVER) + }else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + return getFragmentByServeName(OchCommonConst.CHARTER_PASSENGER) + } + } else if(AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { return getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_DRIVER) -// } else { -// getFragmentByServeName(OchCommonConst.TAXI_DRIVER) -// } - } else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { + }else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){ + return getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_PASSENGER) + } + } else if(AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)){ return getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER) - } else if (AppIdentityModeUtils.isBusPassenger(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.SHUTTLE_PASSENGER_WEAKNET) - } else if (AppIdentityModeUtils.isShuttlePassenger(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.SHUTTLE_PASSENGER_WEAKNET) - } else if (AppIdentityModeUtils.isCharterPassenger(FunctionBuildConfig.appIdentityMode)) { - return getFragmentByServeName(OchCommonConst.CHARTER_PASSENGER) - } else if (AppIdentityModeUtils.isTaxiPassenger(FunctionBuildConfig.appIdentityMode)) { -// return if (ProjectUtils.isMogo()) { -// getFragmentByServeName(OchCommonConst.TAXI_PASSENGER) -// } else if (ProjectUtils.isSaas()) { - return getFragmentByServeName(OchCommonConst.TAXI_UNMANNED_PASSENGER) -// } else { -// getFragmentByServeName(OchCommonConst.TAXI_PASSENGER) -// } } return LoginStatusManager.getFragment() } @@ -188,22 +178,25 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { } } - override fun onBusinessChange(businessEnum: BusinessEnum) { + override fun onBusinessChange(businessEnum: Product) { super.onBusinessChange(businessEnum) val (_, identity, model) = AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) when (businessEnum) { - BusinessEnum.None -> {} - BusinessEnum.Taxi -> FunctionBuildConfig.appIdentityMode = + Product.NONE -> {} + Product.TAXI -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}" - BusinessEnum.Bus -> FunctionBuildConfig.appIdentityMode = + Product.BUS -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.BUS}_${identity}_${model}" - BusinessEnum.Shuttle -> FunctionBuildConfig.appIdentityMode = + Product.SHUTTLE -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}" - BusinessEnum.Charter -> FunctionBuildConfig.appIdentityMode = + Product.CHARTER -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.CHARTER}_${identity}_${model}" + + Product.SCHEDULED -> FunctionBuildConfig.appIdentityMode = + "${AppIdentityModeUtils.SCHEDULED}_${identity}_${model}" } CallerDevaToolsManager.updateAppChannel() // 加入启动统计 @@ -214,8 +207,8 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { MogoAnalyticUtils.track("app_start_time", mStartParams) } - override fun onBusinessChangeDebug(businessEnum: BusinessEnum) { - if (businessEnum == BusinessEnum.None) { + override fun onBusinessChangeDebug(businessEnum: Product) { + if (businessEnum == Product.NONE) { CallerHmiManager.hideToolsView() ToggleDebugView.toggleDebugView.dismiss() SopView.sopView.dismiss() @@ -233,7 +226,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { } else { onBusinessChange(businessEnum) FunctionBuildConfig.ochdebug = true - CallerLogger.d(TAG, "denbug模式进入${LoginStatusEnum.Login}") + d(TAG, "denbug模式进入${LoginStatusEnum.Login}") LoginStatusManager.setLoginStatus(LoginStatusEnum.Login) val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager val fragment = getFragment() @@ -249,7 +242,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { } private fun injectStatusBar() { - activity?.let { it -> + activity?.let { val decorView = it.window.decorView as? FrameLayout ?: return val contentView = (decorView.findViewById(android.R.id.content) as? ViewGroup)?.getChildAt(0) @@ -258,9 +251,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { decorView.clipToPadding = false var statusBarView = decorView.findViewWithTag("status_bar") val statusBar = _commonService?.getStatusBarView(it) - if(statusBarView==null){ - - }else{ + if(statusBarView!=null){ if(statusBar == statusBarView||statusBar==null){ return }else{ @@ -280,14 +271,14 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { return } } - CallerLogger.d(TAG, "添加statusBar---${_commonService}") + d(TAG, "添加statusBar---${_commonService}") decorView.addView(statusBarView, statusBarLP) } } private fun removeStatusBar() { activity?.let { - CallerLogger.d(TAG, "移除statusBar") + d(TAG, "移除statusBar") val decorView = it.window.decorView as? FrameLayout ?: return val statusBar = decorView.findViewWithTag("status_bar") statusBar?.let { view -> diff --git a/OCH/offline/driver/build.gradle b/OCH/offline/driver/build.gradle index 72d90e458e..4cce5afb48 100644 --- a/OCH/offline/driver/build.gradle +++ b/OCH/offline/driver/build.gradle @@ -51,6 +51,7 @@ dependencies { implementation rootProject.ext.dependencies.kotlinstdlib implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter + implementation project(':OCH:common:bridge') kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ShuttleDriverProvider.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ShuttleDriverProvider.kt index 2620eea1dd..1789a93fd2 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ShuttleDriverProvider.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ShuttleDriverProvider.kt @@ -1,6 +1,7 @@ package com.mogo.och.offline import android.content.Context +import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d @@ -8,8 +9,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.och.offline.fragment.ShuttleFragment import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.ui.autopilot.AutopilotState import com.mogo.och.offline.util.BusAnalyticsManager +import com.mogo.och.offline.util.OffLineTrajectoryManager /** * 网约车小巴业务实现入口 @@ -31,12 +34,20 @@ class ShuttleDriverProvider : CommonServiceImpl() { busFragment = ShuttleFragment() } OchAutopilotAnalytics.ochEventKey = BusAnalyticsManager.getInstance() + OffLineTrajectoryManager.load() return busFragment!! } override fun resetFragment() { OchAutopilotAnalytics.ochEventKey = null + OffLineTrajectoryManager.release() busFragment = null } + override fun createStartAutopilotView(context: Context?): View? { + return context?.let { + AutopilotState(it) + } + } + } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java index 7414400a0d..07cecc8a4b 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java @@ -20,14 +20,20 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.util.StringUtils; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager; +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager; +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager; +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics; +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation; +import com.mogo.och.bridge.autopilot.callback.OchAdasStartFailureCallback; +import com.mogo.och.bridge.autopilot.line.LineManager; +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager; import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction; import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; import com.mogo.och.common.module.manager.socket.lan.LedScreenManager; import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType; import com.mogo.och.common.module.voice.VoiceNotice; +import com.mogo.och.data.bean.ContraiInfo; +import com.mogo.och.data.bean.LineInfo; import com.mogo.och.offline.R; import com.mogo.och.offline.callback.IBusADASStatusCallback; import com.mogo.och.offline.util.ShuttleVoiceManager; @@ -36,7 +42,6 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg; import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType; import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg; import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation; import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; import com.mogo.och.common.module.utils.OCHThreadPoolManager; import com.mogo.och.data.bean.BusStationBean; @@ -55,11 +60,9 @@ import com.mogo.och.offline.callback.IBusControllerStatusCallback; import com.mogo.och.offline.callback.IRefreshBusStationsCallback; import com.mogo.och.offline.callback.ISlidePannelHideCallback; import com.mogo.och.offline.constant.BusConst; -import com.mogo.och.offline.util.BusTrajectoryManager; +import com.mogo.och.offline.util.OffLineTrajectoryManager; import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; @@ -72,6 +75,7 @@ import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import io.reactivex.exceptions.UndeliverableException; @@ -314,8 +318,11 @@ public class OrderModel { if (!StringUtils.isEmpty(cacheData)) { BusTransferData data = GsonUtils.fromJson(cacheData, BusTransferData.class); - getCacheRouteSuccess(data.getRoutesResult()); + BusRoutesResult routesResult = data.getRoutesResult(); + getCacheRouteSuccess(routesResult); }else { + LineManager.INSTANCE.setContraiInfo(null); + LineManager.setLineInfo(null); if (refreshBusStationsCallback != null) { refreshBusStationsCallback.updateEmptyUi(); } @@ -540,17 +547,12 @@ public class OrderModel { //3、距离轨迹15m计算 String resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long) busRoutesResult.getLineId()); if (TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)) { - MogoLocation nextStationPoint = new MogoLocation(); + BusStationBean nextStation = new BusStationBean(); if (backgroundCurrentStationIndex < stationList.size() - 1) { - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); - nextStationPoint.setLongitude(nextStation.getGcjLon()); - nextStationPoint.setLatitude(nextStation.getGcjLat()); + nextStation = stationList.get(backgroundCurrentStationIndex + 1); } BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); - MogoLocation currentStationPoint = new MogoLocation(); - currentStationPoint.setLongitude(busStationBean.getGcjLon()); - currentStationPoint.setLatitude(busStationBean.getGcjLat()); - setTrajectoryStation(currentStationPoint, nextStationPoint, (long) busRoutesResult.getLineId()); + setTrajectoryStation(busStationBean, nextStation, (long) busRoutesResult.getLineId()); resion = TrajectoryAndDistanceManager.INSTANCE.canStartAutopilot((long) busRoutesResult.getLineId()); } if (!StringUtils.isEmpty(resion)) { @@ -686,13 +688,11 @@ public class OrderModel { } String nextStationName = ""; String nextStationNameKr = ""; - MogoLocation nextStationPoint = new MogoLocation(); + BusStationBean nextStation = new BusStationBean(); if (backgroundCurrentStationIndex < stationList.size() - 1) { - BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); + nextStation = stationList.get(backgroundCurrentStationIndex + 1); nextStationName = nextStation.getName(); nextStationNameKr = nextStation.getNameKr(); - nextStationPoint.setLongitude(nextStation.getGcjLon()); - nextStationPoint.setLatitude(nextStation.getGcjLat()); } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; @@ -705,10 +705,7 @@ public class OrderModel { finalNextStationName, finalNextStationNameKr); BusStationBean busStationBean = stationList.get(backgroundCurrentStationIndex); - MogoLocation currentStationPoint = new MogoLocation(); - currentStationPoint.setLongitude(busStationBean.getGcjLon()); - currentStationPoint.setLatitude(busStationBean.getGcjLat()); - setTrajectoryStation(currentStationPoint, nextStationPoint, (long) busRoutesResult.getLineId()); + setTrajectoryStation(busStationBean, nextStation, (long) busRoutesResult.getLineId()); String changeInfo = "taskId:" + busRoutesResult.getTaskId() + "--lineId:" + busRoutesResult.getLineId() + "--currentStationName:" + currentStationName + "--finalNextStationName:" + finalNextStationName; @@ -760,6 +757,13 @@ public class OrderModel { */ private void updateBusStatus(BusRoutesResult result) { if (result == null) return; + LineManager.INSTANCE.setContraiInfo(new ContraiInfo(result.getLineId(),result.csvFileUrl,result.csvFileMd5,result.txtFileUrl,result.txtFileMd5,result.contrailSaveTime,null,null,1)); + HashMap map = new HashMap(); + String taskInfo = DateTimeUtil.formatLongToString( + result.getTaskTime(), DateTimeUtil.HH_mm + ); + map.put("taskInfo",taskInfo); + LineManager.setLineInfo(new LineInfo(result.getLineId(),result.getName(),map,result.getTaskId()+"")); busRoutesResult = result; stationList.clear(); stationList.addAll(result.getSites()); @@ -831,7 +835,7 @@ public class OrderModel { updateBusTaskStatus(stationList); //需放在currentStationIndex赋值之后 - BusTrajectoryManager.getInstance().syncTrajectoryInfo(); + OffLineTrajectoryManager.INSTANCE.syncTrajectoryInfo(); } private void beforeTaskTips() { @@ -1114,8 +1118,17 @@ public class OrderModel { return parameters; } - public void setTrajectoryStation(MogoLocation startStation, MogoLocation endStation, Long lineId) { - TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation, endStation, lineId); + public void setTrajectoryStation(BusStationBean startStation, BusStationBean endStation, Long lineId) { + + LineManager.INSTANCE.setStartAndEndStation(startStation,endStation); + + MogoLocation startStationMogoLocation = new MogoLocation(); + startStationMogoLocation.setLongitude(startStation.getGcjLon()); + startStationMogoLocation.setLatitude(startStation.getGcjLat()); + MogoLocation endStationMogoLocation = new MogoLocation(); + endStationMogoLocation.setLongitude(endStation.getGcjLon()); + endStationMogoLocation.setLatitude(endStation.getGcjLat()); + TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStationMogoLocation, endStationMogoLocation, lineId); } } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java index a7b1a0118f..87640b5fdd 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusPresenter.java @@ -16,10 +16,11 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager; +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener; +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager; +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation; import com.mogo.och.common.module.biz.login.LoginStatusEnum; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation; -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.offline.callback.IBusADASStatusCallback; import com.mogo.och.offline.callback.IBusControllerStatusCallback; @@ -28,16 +29,14 @@ import com.mogo.och.offline.callback.ISlidePannelHideCallback; import com.mogo.och.offline.fragment.ShuttleFragment; import com.mogo.och.offline.model.BusLineModel; import com.mogo.och.offline.model.OrderModel; -import com.mogo.och.offline.util.BusTrajectoryManager; +import com.mogo.och.offline.util.OffLineTrajectoryManager; import com.mogo.och.common.module.biz.login.ILoginCallback; import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import java.util.ArrayList; import java.util.List; -import mogo_msg.MogoReportMsg; /** * 网约车小巴 @@ -286,11 +285,6 @@ public class BusPresenter extends Presenter } - @Override - public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId); - } - @Override public void onStatusChange(LoginStatusEnum currentStatus) { CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); @@ -300,8 +294,7 @@ public class BusPresenter extends Presenter BusLineModel.startLoopAllLine(); }else { BusLineModel.stopLoopAllLine(); - BusTrajectoryManager.getInstance().stopTrajReqLoop(); - BusTrajectoryManager.getInstance().stopTrajReqLoop(); + OffLineTrajectoryManager.INSTANCE.stopTrajReqLoop(); clearBusStationsMarkers(); if(mView!=null) { mView.hideSlidePanel(); diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusAnalyticsManager.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusAnalyticsManager.java index 227088b931..ca5882302c 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusAnalyticsManager.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusAnalyticsManager.java @@ -3,7 +3,8 @@ package com.mogo.och.offline.util; import androidx.annotation.NonNull; -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey; +import com.mogo.och.bridge.autopilot.autopilot.IOchEventKey; + /** * OCH Bus埋点工具 diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusTrajectoryManager.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusTrajectoryManager.java deleted file mode 100644 index 52bd51fd8c..0000000000 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/BusTrajectoryManager.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.mogo.och.offline.util; - -import androidx.annotation.Nullable; - -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.offline.constant.BusConst; -import com.mogo.och.offline.model.OrderModel; -import com.mogo.och.common.module.biz.login.LoginStatusManager; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import mogo_msg.MogoReportMsg; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -/** - * Bus轨迹管理:给MEC下发用于轨迹下载的信息 - * Created on 2022/6/23 - */ -public class BusTrajectoryManager { - private static final String TAG = BusTrajectoryManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager(); - } - - public static BusTrajectoryManager getInstance() { - return BusTrajectoryManager.SingletonHolder.INSTANCE; - } - - private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null; - private Disposable mSendReqDisposable = null; - - public BusTrajectoryManager() { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "", - "", "", "", "", 0, "", - "", "", "", "", 0); - } - - /** - * 同步Bus路线信息 - */ - public void syncTrajectoryInfo() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (LoginStatusManager.isLogin() && routesResult != null - && OrderModel.getInstance().getCurrentStationIndex() == 0 - && !OrderModel.getInstance().isGoingToNextStation()) { - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start."); - startTrajReqLoop(); - } else { - // 无路线信息or当前未在始发站 - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); - stopTrajReqLoop(); - } - } - - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { - onAutopilotGuardian(guardianInfo); - } - - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - if (guardianInfo == null || !guardianInfo.hasCode()) return; - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) { - // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) { - // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) { - // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) { - // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) { - // 5. 轨迹管理_轨迹下载超时 - } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) { - // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 - syncTrajectoryInfo(); - } - } - - private void setupAutoPilotLine() { - BusRoutesResult routesResult = OrderModel.getInstance().getBusRoutesResult(); - if (routesResult == null) { - CallerLogger.e(M_BUS + TAG, - "setupAutoPilotLine(): routesResult is null."); - return; - } else { - if (mAutoPilotLine == null) { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine( - routesResult.getLineId(), routesResult.getName(), - routesResult.csvFileUrl, routesResult.csvFileMd5, - routesResult.txtFileUrl, routesResult.txtFileMd5, - routesResult.contrailSaveTime, routesResult.carModel, - routesResult.csvFileUrlDPQP, routesResult.csvFileMd5DPQP, - routesResult.txtFileUrlDPQP, routesResult.txtFileMd5DPQP, - routesResult.contrailSaveTimeDPQP); - } else { - mAutoPilotLine.setLineId(routesResult.getLineId()); - mAutoPilotLine.setLineName(routesResult.getName()); - mAutoPilotLine.setTrajUrl(routesResult.csvFileUrl==null?"":routesResult.csvFileUrl); - mAutoPilotLine.setTrajMd5(routesResult.csvFileMd5==null?"":routesResult.csvFileMd5); - mAutoPilotLine.setStopUrl(routesResult.txtFileUrl==null?"":routesResult.txtFileUrl); - mAutoPilotLine.setStopMd5(routesResult.txtFileMd5==null?"":routesResult.txtFileMd5); - mAutoPilotLine.setTimestamp(routesResult.contrailSaveTime); - mAutoPilotLine.setVehicleModel(routesResult.carModel==null?"":routesResult.carModel); - } - } - } - - private void clearAutoPilotLine() { - if (mAutoPilotLine == null) return; - mAutoPilotLine.setLineId(-1); - mAutoPilotLine.setLineName(""); - mAutoPilotLine.setTrajUrl(""); - mAutoPilotLine.setTrajMd5(""); - mAutoPilotLine.setStopUrl(""); - mAutoPilotLine.setStopMd5(""); - mAutoPilotLine.setTimestamp(0); - mAutoPilotLine.setVehicleModel(""); - mAutoPilotLine.setTrajUrl_dpqp(""); - mAutoPilotLine.setTrajMd5_dpqp(""); - mAutoPilotLine.setStopUrl_dpqp(""); - mAutoPilotLine.setStopMd5_dpqp(""); - mAutoPilotLine.setTimestamp_dpqp(0); - } - - private void startTrajReqLoop() { - if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { - return; - } - CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()"); - setupAutoPilotLine(); - mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> { - if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { - stopTrajReqLoop(); - return; - } - CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); - sendTrajectoryReq(); - }); - } - - public void stopTrajReqLoop() { - if (mSendReqDisposable != null) { - CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()"); - mSendReqDisposable.dispose(); - mSendReqDisposable = null; - clearAutoPilotLine(); - } - } - - private void sendTrajectoryReq() { - if (mAutoPilotLine == null) { - CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); - return; - } - OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine); - CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutoPilotLine)); - } -} diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/OffLineTrajectoryManager.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/OffLineTrajectoryManager.kt new file mode 100644 index 0000000000..9e508e2f74 --- /dev/null +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/util/OffLineTrajectoryManager.kt @@ -0,0 +1,141 @@ +package com.mogo.och.offline.util + +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.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.GsonUtils +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager +import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.writeChainLog +import com.mogo.och.offline.constant.BusConst +import com.mogo.och.offline.model.OrderModel +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.functions.Function +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +/** + * Bus轨迹管理:给MEC下发用于轨迹下载的信息 + * Created on 2022/6/23 + */ +object OffLineTrajectoryManager : com.mogo.och.bridge.autopilot.trajectory.ITrajectoryListListener { + + private var mAutopilotControlParameters: AutopilotControlParameters? = null + private var mSendReqDisposable: Disposable? = null + + private val TAG: String = OffLineTrajectoryManager::class.java.simpleName + + init { + + } + + fun load(){ + TrajectoryManager.addListener(TAG,this) + } + + fun release(){ + TrajectoryManager.removeListener(TAG) + } + + /** + * 同步Bus路线信息 + */ + fun syncTrajectoryInfo() { + val routesResult = OrderModel.getInstance().busRoutesResult + if (isLogin() && routesResult != null && OrderModel.getInstance().currentStationIndex == 0 && !OrderModel.getInstance().isGoingToNextStation) { + d(SceneConstant.M_BUS + TAG, "syncTrajectoryInfo() start.") + startTrajReqLoop() + } else { + // 无路线信息or当前未在始发站 + d(SceneConstant.M_BUS + TAG, "syncTrajectoryInfo() stop.") + stopTrajReqLoop() + } + } + + override fun onDownLoadStart(lineId: Long) { + stopTrajReqLoop() + } + + override fun onDownLoadSuccess(lineId: Long) { + stopTrajReqLoop() + } + + override fun onDownLoadReady(lineId: Long) { + // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 + syncTrajectoryInfo() + } + + private fun setupAutoPilotLine() { + val routesResult = OrderModel.getInstance().busRoutesResult + if (routesResult == null) { + e( + SceneConstant.M_BUS + TAG, + "setupAutoPilotLine(): routesResult is null." + ) + return + } else { + mAutopilotControlParameters = LineManager.initAutopilotControlParameters() + } + } + + private fun clearAutoPilotLine() { + if (mAutopilotControlParameters == null) return + mAutopilotControlParameters = null + } + + private fun startTrajReqLoop() { + if (mSendReqDisposable != null && !mSendReqDisposable!!.isDisposed) { + return + } + d(SceneConstant.M_BUS + TAG, "startTrajReqLoop()") + setupAutoPilotLine() + mSendReqDisposable = Observable.interval( + BusConst.LOOP_DELAY, + BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS + ) + .map((Function { aLong: Long -> aLong + 1 })) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { aLong: Long -> + if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { + stopTrajReqLoop() + return@subscribe + } + d(SceneConstant.M_BUS + TAG, "loop sendTrajectoryReq: $aLong") + sendTrajectoryReq() + } + } + + fun stopTrajReqLoop() { + if (mSendReqDisposable != null) { + d(SceneConstant.M_BUS + TAG, "stopTrajReqLoop()") + mSendReqDisposable!!.dispose() + mSendReqDisposable = null + clearAutoPilotLine() + } + } + + private fun sendTrajectoryReq() { + if (mAutopilotControlParameters == null||mAutopilotControlParameters!!.autoPilotLine==null) { + e(SceneConstant.M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!") + return + } + writeChainLog( + "轨迹监控", + "sendTrajectoryReq() 下发轨迹 轨迹id" + mAutopilotControlParameters!!.autoPilotLine!!.lineId, + true, + OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY + ) + CallerAutoPilotControlManager.sendTrajectoryDownloadReq(mAutopilotControlParameters!!.autoPilotLine!!,0,mAutopilotControlParameters!!.orderId) + d( + SceneConstant.M_BUS + TAG, "sendTrajectoryReq(): " + + GsonUtils.toJson(mAutopilotControlParameters) + ) + } +} diff --git a/OCH/shuttle/driver_weaknet/build.gradle b/OCH/shuttle/driver_weaknet/build.gradle index efe2c8b90d..79b33674e6 100644 --- a/OCH/shuttle/driver_weaknet/build.gradle +++ b/OCH/shuttle/driver_weaknet/build.gradle @@ -49,6 +49,7 @@ android { dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation project(':OCH:common:bridge') testImplementation 'junit:junit:4.12' testImplementation project(path: ':OCH:shuttle:driver_weaknet') diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.repository.db.MyDataBase/6.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.repository.db.MyDataBase/6.json new file mode 100644 index 0000000000..90b5eed5db --- /dev/null +++ b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.repository.db.MyDataBase/6.json @@ -0,0 +1,751 @@ +{ + "formatVersion": 1, + "database": { + "version": 6, + "identityHash": "1d1af100293dd1557307b49359621a5f", + "entities": [ + { + "tableName": "contrail_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `csv_file_url` TEXT, `csv_file_md5` TEXT, `txt_file_url` TEXT, `txt_file_md5` TEXT, `contrail_save_time` INTEGER, `md5` TEXT)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "csvFileUrl", + "columnName": "csv_file_url", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "csvFileMd5", + "columnName": "csv_file_md5", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "txtFileUrl", + "columnName": "txt_file_url", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "txtFileMd5", + "columnName": "txt_file_md5", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "contrailSaveTime", + "columnName": "contrail_save_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "md5", + "columnName": "md5", + "affinity": "TEXT", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_contrail_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + }, + { + "name": "index_contrail_data_table_md5", + "unique": false, + "columnNames": [ + "md5" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_md5` ON `${TABLE_NAME}` (`md5`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "line_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `line_name` TEXT, `end_station_name` TEXT, `line_get_time` INTEGER NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "line_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "endStationName", + "columnName": "end_station_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "linegetTime", + "columnName": "line_get_time", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_line_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_line_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "site_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `site_id` INTEGER, `line_id` INTEGER, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `introduction` TEXT, `is_play_tts` INTEGER, `md5` TEXT, `videoList` TEXT)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "nameKr", + "columnName": "name_kr", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "gcjLon", + "columnName": "gcj_lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "gcjLat", + "columnName": "gcj_lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lon", + "columnName": "lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lat", + "columnName": "lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "introduction", + "columnName": "introduction", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "isPlayTts", + "columnName": "is_play_tts", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "md5", + "columnName": "md5", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "videoListDB", + "columnName": "videoList", + "affinity": "TEXT", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_site_data_table_site_id", + "unique": false, + "columnNames": [ + "site_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_site_id` ON `${TABLE_NAME}` (`site_id`)" + }, + { + "name": "index_site_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "task_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskDate", + "columnName": "task_data", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskStartTime", + "columnName": "task_start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "startTime", + "columnName": "start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "endtime", + "columnName": "end_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskgetTime", + "columnName": "task_get_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "status", + "columnName": "status", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_task_data_table_task_id", + "unique": false, + "columnNames": [ + "task_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_task_id` ON `${TABLE_NAME}` (`task_id`)" + }, + { + "name": "index_task_data_table_line_id", + "unique": false, + "columnNames": [ + "line_id" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "used_task_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL, `videoList` TEXT)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "line_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "nameKr", + "columnName": "name_kr", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "gcjLon", + "columnName": "gcj_lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "gcjLat", + "columnName": "gcj_lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lon", + "columnName": "lon", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "lat", + "columnName": "lat", + "affinity": "REAL", + "notNull": false + }, + { + "fieldPath": "drivingStatus", + "columnName": "driving_status", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "leaving", + "columnName": "leaving", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "arrivedTime", + "columnName": "arrived_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "leaveTime", + "columnName": "leave_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "introduction", + "columnName": "introduction", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "isPlayTts", + "columnName": "is_play_tts", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "videoList", + "columnName": "videoList", + "affinity": "TEXT", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "event_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `task_date` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `driver_id` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `msg_id` TEXT, `update_time` INTEGER)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "eventType", + "columnName": "event_type", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "lineId", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskDate", + "columnName": "task_date", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineName", + "columnName": "lineName", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskStartTime", + "columnName": "task_start_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "businessTime", + "columnName": "business_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "writeVersion", + "columnName": "write_version", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "seq", + "columnName": "seq", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "driverId", + "columnName": "driver_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "updateStatus", + "columnName": "update_status", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "msgId", + "columnName": "msg_id", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "upDateTime", + "columnName": "update_time", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_event_data_table_event_save_time", + "unique": false, + "columnNames": [ + "event_save_time" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_event_data_table_event_save_time` ON `${TABLE_NAME}` (`event_save_time`)" + } + ], + "foreignKeys": [] + }, + { + "tableName": "writeoff_data_table", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `task_date` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "msgId", + "columnName": "msg_id", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "expiryTime", + "columnName": "expiry_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "bookingTime", + "columnName": "booking_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "type", + "columnName": "type", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskId", + "columnName": "task_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "taskDate", + "columnName": "task_date", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "lineId", + "columnName": "line_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "siteId", + "columnName": "site_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "driverId", + "columnName": "driver_id", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "availableTimes", + "columnName": "available_times", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "orderNo", + "columnName": "order_no", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "uid", + "columnName": "uid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "phone", + "columnName": "seq", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "businessTime", + "columnName": "business_time", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "ticketSize", + "columnName": "tick_size", + "affinity": "INTEGER", + "notNull": false + }, + { + "fieldPath": "ticketName", + "columnName": "tick_name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "updateStatus", + "columnName": "update_status", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "upDateTime", + "columnName": "update_time", + "affinity": "INTEGER", + "notNull": false + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [ + { + "name": "index_writeoff_data_table_event_save_time", + "unique": false, + "columnNames": [ + "event_save_time" + ], + "orders": [], + "createSql": "CREATE INDEX IF NOT EXISTS `index_writeoff_data_table_event_save_time` ON `${TABLE_NAME}` (`event_save_time`)" + } + ], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1d1af100293dd1557307b49359621a5f')" + ] + } +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 7469c5c8b9..c1a622a3e4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -7,10 +7,12 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.config.FunctionBuildConfig 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.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics +import com.mogo.och.bridge.ui.autopilot.AutopilotState import com.mogo.och.common.module.manager.scnner.ScannerClientManager import com.mogo.och.weaknet.repository.db.repository.EventDb import com.mogo.och.weaknet.repository.db.repository.LineDb @@ -23,6 +25,7 @@ import com.mogo.och.weaknet.repository.db.repository.WriteOffDb import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView import com.mogo.och.weaknet.ui.qr.QrOpenView import com.mogo.och.weaknet.util.BusAnalyticsManager +import com.mogo.och.weaknet.util.BusTrajectoryManager /** * 网约车小巴业务实现入口 @@ -32,11 +35,11 @@ import com.mogo.och.weaknet.util.BusAnalyticsManager @Route(path = OchCommonConst.SHUTTLE_DRIVER_WEAKNET) class ShuttleDriverProvider : CommonServiceImpl() { - private val TAG = ShuttleDriverProvider::class.java.simpleName + private val TAG = M_BUS+ShuttleDriverProvider::class.java.simpleName private var busFragment: ShuttleFragment? = null override fun init(context: Context) { - d(SceneConstant.M_TAXI + TAG, "init") + d(TAG, "init") ThreadUtils.getIoPool().submit { LineDb.deleteObsoleteData() TaskDb.deleteObsoleteData() @@ -47,24 +50,29 @@ class ShuttleDriverProvider : CommonServiceImpl() { } override fun getFragment(): Fragment { + d(TAG, "getFragment") if (busFragment == null) { busFragment = ShuttleFragment() } OchAutopilotAnalytics.ochEventKey = BusAnalyticsManager LineModel.init() ScannerClientManager.load() + BusTrajectoryManager.load() return busFragment!! } override fun resetFragment() { + d(TAG, "resetFragment") busFragment = null OchAutopilotAnalytics.ochEventKey = null LineModel.release() ScannerClientManager.release() + BusTrajectoryManager.release() RepositoryManager.release() } override fun createOchBusinessView(context: Context?): View? { + d(TAG, "createOchBusinessView") return context?.let { SwitchBizView(it) } @@ -78,4 +86,10 @@ class ShuttleDriverProvider : CommonServiceImpl() { QrOpenView(it) } } + + override fun createStartAutopilotView(context: Context?): View? { + return context?.let { + AutopilotState(it) + } + } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/action/TaskUsedAction.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/action/TaskUsedAction.kt index 2012f2285c..a705d1e6ed 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/action/TaskUsedAction.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/action/TaskUsedAction.kt @@ -11,7 +11,7 @@ import com.mogo.och.weaknet.repository.RepositoryManager class TaskUsedAction() : IOchOnMessageListener { - private val tag = "OperateAction" + private val tag = M_BUS + "OperateAction" override fun target(): Class { @@ -19,7 +19,7 @@ class TaskUsedAction() : } override fun onMsgReceived(obj: TaskUsedMsg?) { - i(M_BUS + tag, "onMsgReceived = $obj") + i(tag, "onMsgReceived = $obj") obj?.apply { if (LoginStatusManager.getLoginInfo()?.businessType==businessType &&RepositoryManager.supportDb()) { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/request/ShuttleEventRequest.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/request/ShuttleEventRequest.kt index ab37358544..8de335317b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/request/ShuttleEventRequest.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/request/ShuttleEventRequest.kt @@ -1,9 +1,11 @@ package com.mogo.och.weaknet.bean.request import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.network.utils.digest.DigestUtils +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.device.checkvin.CheckVinManager +import com.mogo.och.bridge.device.checkvin.CheckVinManager import com.mogo.och.weaknet.repository.db.bean.EventDataBean import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean @@ -20,16 +22,28 @@ data class ShuttleEventRequest(val requestId: String, val sn: String,val vin:Str val eventList4Request = mutableListOf() var tempEvent: Event?=null waitUpdateEvent?.forEach { - tempEvent = Event(it.eventType, - EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId,it.msgId) - ) + tempEvent = if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + Event(it.eventType, + EventData(0,it.taskId,it.taskDate,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId,it.msgId) + ) + }else{ + Event(it.eventType, + EventData(it.taskId,0,it.taskDate,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId,it.msgId) + ) + } eventList4Request.add(tempEvent!!) } waitUpdateWriteOffEvent?.forEach { - tempEvent = Event("WriteOff", - WriteOffEventData(it.msgId,it.taskId,it.siteId,it.driverId,it.orderNo,it.businessTime,it.businessTime) - ) + tempEvent = if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + Event("WriteOff", + WriteOffEventData(it.msgId, 0,it.taskId,it.taskDate ,it.siteId, it.driverId, it.orderNo, it.businessTime, it.businessTime) + ) + }else{ + Event("WriteOff", + WriteOffEventData(it.msgId, it.taskId,0,0, it.siteId, it.driverId, it.orderNo, it.businessTime, it.businessTime) + ) + } eventList4Request.add(tempEvent!!) } eventList4Request.sortBy { it.eventData.businessTime } @@ -46,6 +60,8 @@ open class EventDataBase(val msgtype:String,var businessTime: Long?) data class EventData( var taskId: Long?, + var shiftsId: Long?, + var taskDate: Long?, var businessTimeout: Long?, var writeVersion: Long?, var siteId: Long?, @@ -57,6 +73,8 @@ data class EventData( data class WriteOffEventData( var msgId: String?, var taskId: Long?, + var shiftsId: Long?, + var taskDate: Long?, var siteId: Long?, var driverId: Long?, var orderNo: String?, diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt index f3ba690a50..fc98509b6b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/BusRoutesResponse.kt @@ -3,7 +3,7 @@ package com.mogo.och.weaknet.bean.response import com.google.gson.reflect.TypeToken import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.LineInfo diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt index 190deefc95..32f1658328 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/response/CarExecutableTaskResponse.kt @@ -3,9 +3,9 @@ package com.mogo.och.weaknet.bean.response import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.och.data.bean.SiteIntroduce -import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.data.db.bean.ContrailDataBean +import com.mogo.och.data.db.bean.LineDataBean +import com.mogo.och.data.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.repository.ContraiDb import com.mogo.och.weaknet.repository.db.repository.LineDb diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java index a03a36f56e..aa42f23af9 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java @@ -1,18 +1,15 @@ package com.mogo.och.weaknet.callback; -import com.mogo.och.weaknet.repository.db.bean.LineDataBean; -import com.mogo.och.weaknet.repository.db.bean.TaskDataBean; - -import java.util.List; - /** * @author: wangmingjun * @date: 2022/2/9 */ public interface IBusLinesCallback { + default void onChangeLineIdSuccess(){} default void onRefreshSuccess(long currentTimeStamp){} + default void onRefreshSuccessWIthData(){} default void onChangeLineIdFail(){} @@ -23,11 +20,10 @@ public interface IBusLinesCallback { default void onLeaveStaionSuccess(){} - default void onLeaveStaionFail(){} - default void onArriveStationSuccess(){} default void onCompleteTask(){} + default void onCompleteTaskFail(){} default void onEndTaskByOther(long taskId,String plateNumber){} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt index a0f7df044d..531efe9191 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/constant/BusConst.kt @@ -25,6 +25,12 @@ class BusConst { const val SEND_OUTVOICE_DISTANCES_TARTSTATIONE = 15 + // 恢复数据时 等待同步基础数据等待2s + const val waitSysAllData = 2_000L + + // 最多等待5次 + const val waitCount= 5 + //起点UUID const val BUS_START_MAP_MAKER = "bus_start_map_maker"; //终点UUID diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index f51e91ffd8..97a018c811 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -2,6 +2,8 @@ package com.mogo.och.weaknet.model import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager @@ -27,6 +29,8 @@ object EventModel { private var eventUpdateInfo: Disposable? = null + const val TAG = "${M_BUS}EventModel" + fun load(){ if (RepositoryManager.supportDb() || RepositoryManager.supportWriteOffDb()) { @@ -38,6 +42,7 @@ object EventModel { } fun release(){ + isUpdating.set(false) RxUtils.disposeSubscribe(eventUpdateInfo) } @@ -56,7 +61,8 @@ object EventModel { private fun updateEvent(){ if(isUpdating.get()){ - OchChainLogManager.writeChainLogDb("上报event","正在上传 等待下一次轮训 ${Thread.currentThread().name}") + d(TAG,"上报event-正在上传 等待下一次轮训 ") + OchChainLogManager.writeChainLogDb("上报event","正在上传 等待下一次轮训") return } isUpdating.set(true) @@ -65,7 +71,8 @@ object EventModel { val waitUpdateLineEvent = EventDb.queryWaitUpdateEvent() val waitUpdateWriteOffEvent = WriteOffDb.queryWaitUpdateEvent() if (waitUpdateLineEvent.isNullOrEmpty() && waitUpdateWriteOffEvent.isNullOrEmpty()) { - OchChainLogManager.writeChainLogDb("上报event","没有数据需要上报${Thread.currentThread().name}") + d(TAG,"上报event-没有数据需要上报 ") + OchChainLogManager.writeChainLogDb("上报event","没有数据需要上报") isUpdating.set(false) createDefault.onNext(isUpdating.get()) RxUtils.disposeSubscribe(eventUpdateInfo) @@ -74,11 +81,13 @@ object EventModel { } return@submit } - OchChainLogManager.writeChainLogDb("上报event","开始上报:${Thread.currentThread().name}") + d(TAG,"上报event-开始上报 ") + OchChainLogManager.writeChainLogDb("上报event","开始上") val transformDb2Net = ShuttleEventRequest.transformDb2Net(waitUpdateLineEvent,waitUpdateWriteOffEvent) RepositoryManager.reportCabinEvent(AbsMogoApplication.getApp()!!,transformDb2Net,object :OchCommonServiceCallback{ override fun onSuccess(data: BaseData?) { - OchChainLogManager.writeChainLogDb("上报event成功","$transformDb2Net ${Thread.currentThread().name}") + d(TAG,"上报event-上报event成功 $transformDb2Net ") + OchChainLogManager.writeChainLogDb("上报event成功","$transformDb2Net") waitUpdateLineEvent?.let {lineEvents-> lineEvents.forEach { @@ -119,7 +128,8 @@ object EventModel { override fun onFail(code: Int, msg: String?) { isUpdating.set(false) createDefault.onNext(isUpdating.get()) - OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net ${Thread.currentThread().name}") + d(TAG,"上报event-上报event失败 $transformDb2Net code:$code msg:$msg ") + OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net ") RxUtils.disposeSubscribe(eventUpdateInfo) eventUpdateInfo = RxUtils.createSubscribe(10*1000) { updateEvent() @@ -129,7 +139,8 @@ object EventModel { override fun onError() { isUpdating.set(false) createDefault.onNext(isUpdating.get()) - OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net ${Thread.currentThread().name}") + d(TAG,"上报event-上报event失败 $transformDb2Net ") + OchChainLogManager.writeChainLogDb("上报event失败","$transformDb2Net") RxUtils.disposeSubscribe(eventUpdateInfo) eventUpdateInfo = RxUtils.createSubscribe(10*1000) { updateEvent() diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index 7c50279532..12f8725be4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -11,13 +11,12 @@ import com.mogo.eagle.core.data.v2x.Point import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.datacenter.CallerDataCenterBizListener import com.mogo.eagle.core.network.utils.digest.DigestUtils -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.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.socket.lan.LanSocketManager @@ -31,7 +30,7 @@ import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.model.OrderModel.isGoingToNextStation -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.repository.EventDb @@ -56,7 +55,7 @@ object LineModel { private val mBusLinesCallbackMap: MutableMap = ConcurrentHashMap() - const val TAG = "BusLineModel" + const val TAG = "${M_BUS}BusLineModel" private val context = AbsMogoApplication.getApp() @@ -83,7 +82,7 @@ object LineModel { @JvmStatic fun init() { - CallerLogger.d(TAG,"init") + d(TAG,"init") mContext = AbsMogoApplication.getApp() EventModel.load() queryCarExecutableTaskList(true) @@ -92,8 +91,9 @@ object LineModel { @JvmStatic @Synchronized fun release() { - CallerLogger.d(TAG,"release") + d(TAG,"release") mContext = null + isRequesting.set(false) EventModel.release() mBusLinesCallbackMap.clear() RxUtils.disposeSubscribe(queryCarInfo) @@ -119,7 +119,7 @@ object LineModel { */ private fun queryCarExecutableTaskList(isBackground:Boolean) { if(isRequesting.get()){ - CallerLogger.d(TAG,"正在同步请稍等") + d(TAG,"正在同步请稍等") val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(EXECUTABLECHANGETIME, 0) mBusLinesCallbackMap.forEach { callback -> callback.value.onRefreshSuccess(lastUpdateTime) @@ -127,12 +127,12 @@ object LineModel { return } isRequesting.set(true) - CallerLogger.d(TAG,"开始同步数据") + d(TAG,"开始同步数据") RepositoryManager.queryCarExecutableTaskList( object : OchCommonServiceCallback { override fun onSuccess(data: CarExecutableTaskResponse) { isRequesting.set(false) - CallerLogger.d(TAG,"同步数据成功") + d(TAG,"同步数据成功") RxUtils.disposeSubscribe(queryCarInfo) queryCarInfo = RxUtils.createSubscribe(60_000) { queryCarExecutableTaskList(true) @@ -160,7 +160,7 @@ object LineModel { ) val startTime = System.currentTimeMillis() CarExecutableTaskResponse.save2Db(data) - CallerLogger.d(TAG,"更新数据耗时${System.currentTimeMillis()-startTime}___${Thread.currentThread().name}") + d(TAG,"更新数据耗时${System.currentTimeMillis()-startTime}") RxUtils.createSubscribe(800) { // 等待写入数据库 mBusLinesCallbackMap.forEach { callback -> @@ -171,7 +171,7 @@ object LineModel { override fun onError() { isRequesting.set(false) - CallerLogger.d(TAG,"同步数据失败 onError") + d(TAG,"同步数据失败 onError") RxUtils.disposeSubscribe(queryCarInfo) queryCarInfo = RxUtils.createSubscribe(60_000) { queryCarExecutableTaskList(true) @@ -187,7 +187,7 @@ object LineModel { override fun onFail(code: Int, failMsg: String) { isRequesting.set(false) - CallerLogger.d(TAG,"同步数据失败 onFail") + d(TAG,"同步数据失败 onFail") RxUtils.disposeSubscribe(queryCarInfo) queryCarInfo = RxUtils.createSubscribe(60_000) { queryCarExecutableTaskList(true) @@ -204,23 +204,6 @@ object LineModel { }) } - /** - * 查询可用线路 - */ - @JvmStatic - fun queryBusLines() { - - } - - /** - * 通过线路id 查询线路排班表 - * @param lineId 线路ID - */ - @JvmStatic - fun queryBusLineTasksById(lineId: Long) { - - } - /** * 开始任务 */ @@ -228,7 +211,7 @@ object LineModel { fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) { RxUtils.disposeSubscribe(startTaskDisposable) line.getLineIdAndName { lineId, lineName -> - task.getLineIdAndName { taskId, taskTime -> + task.getLineIdAndName { taskId, taskTime,taskDate -> RepositoryManager.startTask(taskId, lineId, taskTime, lineName) ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) @@ -264,7 +247,7 @@ object LineModel { override fun onNext(data: Boolean) { d(TAG, "commitSwitchLineId onNext ${data}") if (data) { - EventDb.saveEventTaskStart(taskId, lineId, taskTime, lineName) + EventDb.saveEventTaskStart(taskId, lineId, taskTime, lineName,taskDate) OrderModel.queryBusRoutes() BizLoopManager.runInIoThread{ val querySiteByLineId = SiteDb.querySiteByLineId(lineId) @@ -419,11 +402,11 @@ object LineModel { val (startStation, _) = LineManager.getStations() if (startStation!=null&&startStation.isLeaving) { OrderModel.startBeautificationMode() - d(M_BUS + TAG, "美化模式-ignore:置为true(每次滑动出发)") + d(TAG, "美化模式-ignore:置为true(每次滑动出发)") } else if (startStationIndex > 0 && startStationIndex < stationList!!.size - 1) { //美化模式下 中间站点到站 引导线要一直绘制,所以此处不出强制绘制不传false CallerAutoPilotControlManager.setIPCDemoMode(false) - d(M_BUS + TAG, "美化模式-ignore:false(到达中间站)") + d(TAG, "美化模式-ignore:false(到达中间站)") } else { OrderModel.closeBeautificationMode() } @@ -431,7 +414,7 @@ object LineModel { } fun callEyeMap(index:Int){ - CallerLogger.d(TAG,"执行${index} callEyeMap${stationList?.size}") + d(TAG,"执行${index} callEyeMap${stationList?.size}") if(stationList.isNullOrEmpty()){ val ochInfo = OchInfo(1, mutableListOf()) ochInfo.siteMarkerList = mutableListOf() @@ -476,7 +459,7 @@ object LineModel { fun endTaskByOther(taskId: Long,plateNumber:String) { if(LoginStatusManager.getLoginInfo()?.plateNumber==plateNumber){ - CallerLogger.d(TAG,"当前车辆消耗任务") + d(TAG,"当前车辆消耗任务") return } RepositoryManager.endTaskByOther(taskId) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index d21e4be28e..d3af694c21 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -15,12 +15,12 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation -import com.mogo.och.common.module.manager.autopilot.line.ILineCallback -import com.mogo.och.common.module.manager.autopilot.line.LineManager -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation +import com.mogo.och.bridge.autopilot.line.ILineCallback +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo @@ -30,7 +30,6 @@ import com.mogo.och.common.module.manager.transform.OchTransform import com.mogo.och.common.module.manager.transform.OchTransformDispatch import com.mogo.och.common.module.map.MapMakerManager import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.common.module.utils.OCHThreadPoolManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.RxUtils @@ -45,7 +44,6 @@ import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers -import mogo_msg.MogoReportMsg.MogoReportMessage /** * @author congtaowang @@ -56,7 +54,7 @@ import mogo_msg.MogoReportMsg.MogoReportMessage */ @SuppressLint("StaticFieldLeak") object OrderModel { - private val TAG: String = OrderModel::class.java.simpleName + private val TAG: String = M_BUS+OrderModel::class.java.simpleName private var mContext: Context? = null @@ -105,16 +103,10 @@ object OrderModel { private val ochAutopilotStatusListener = object : IOchAutopilotStatusListener{ override fun onAutopilotArriveAtStation(arrivedStation: ArrivedStation?) { - e(M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive") + e(TAG, "行程日志-onAutopilotArriveAtStation arrive") onArriveAt(arrivedStation, "底盘触发进站") } - - override fun onAutopilotGuardian(guardianInfo: MogoReportMessage, lineId: Long) { - BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo, lineId) - } - - } private val ochTransform = object : OchTransformDispatch { @@ -130,7 +122,7 @@ object OrderModel { //是否到站的围栏判断 离站状态并且自动驾驶还未触发到站 if (isGoingToNextStation && !isArrivedStation) { OCHThreadPoolManager.getsInstance().locationExecute { - onArriveAt(null, "兜底:根据定位计算到站") + onArriveAt(null, "兜底:距离站点15m内 每秒钟向底盘查询是否到站 底盘返回") } } } @@ -170,20 +162,21 @@ object OrderModel { */ @JvmStatic fun queryBusRoutes() { - d(M_BUS + TAG, "查询小巴路线") + d(TAG, "查询小巴路线") RepositoryManager.loadCurrentTaskInfo() ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(object : Observer { override fun onSubscribe(d: Disposable) { - d(TAG, "onSubscribe") + d(TAG, "queryBusRoutes onSubscribe") } override fun onError(e: Throwable) { e.printStackTrace() - d(TAG, "onError${e.printStackTrace()}") + d(TAG, "queryBusRoutes onError${e.printStackTrace()}") + e.printStackTrace() LineModel.haveNoRunningTask() - d(M_BUS + TAG, "获取到小巴路线数据:空 ") + d(TAG, "queryBusRoutes 获取到小巴路线数据:空 ") LineManager.setLineInfo(null) updateBusStatus() closeBeautificationMode() @@ -191,7 +184,7 @@ object OrderModel { } override fun onComplete() { - d(TAG, "onComplete") + d(TAG, "queryBusRoutes onComplete") } override fun onNext(data: Boolean) { @@ -200,7 +193,7 @@ object OrderModel { updateBusStatus() }else{ LineModel.haveNoRunningTask() - d(M_BUS + TAG, "获取到小巴路线数据:空 ") + d(TAG, "queryBusRoutes 获取到小巴路线数据:空 ") LineManager.setLineInfo(null) updateBusStatus() closeBeautificationMode() @@ -217,7 +210,7 @@ object OrderModel { @JvmStatic fun completeTask() { OCHThreadPoolManager.getsInstance().execute { - d(M_BUS + TAG, "结束当前路线abortTask") + d(TAG, "结束当前路线abortTask") removeTipRunnables() LineModel.endTask() @@ -250,7 +243,7 @@ object OrderModel { FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false //是否强制绘制引导线 CallerAutoPilotControlManager.setIgnoreConditionDraw(false) // 同步给乘客屏 CallerAutoPilotControlManager.setIPCDemoMode(false) //是否自动启动自驾 - d(M_BUS + TAG, "美化模式-ignore:置为false") + d(TAG, "美化模式-ignore:置为false") } } @@ -274,7 +267,9 @@ object OrderModel { startStation.siteId.toLong(), task.taskId?:0L, task.lineId?:0L, - task.taskStartTime?:System.currentTimeMillis()) + task.taskStartTime?:System.currentTimeMillis(), + task.taskDate?:0L + ) ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(object : Observer { @@ -367,7 +362,7 @@ object OrderModel { ThirdDeviceData.sendTaskDetailsToClients() //需放在currentStationIndex赋值之后 - BusTrajectoryManager.getInstance().syncTrajectoryInfo() + BusTrajectoryManager.syncTrajectoryInfo() } } @@ -431,7 +426,7 @@ object OrderModel { @JvmStatic fun onArriveAt(data: ArrivedStation?, type: String) { if (LineManager.getStations().second==null) { - e(M_BUS + TAG, "行程日志-到站异常,取消后续操作结束") + e(TAG, "行程日志-到站异常,取消后续操作结束") OchChainLogManager.writeChainLog("shuttle弱网","$type 行程日志-到站异常,取消后续操作结束") return } @@ -523,7 +518,7 @@ object OrderModel { OchChainLogManager.writeChainLog("错误","${e.message}") } MapMakerManager.removeAllMapMarkerByOwner(TAG) - BusTrajectoryManager.getInstance().stopTrajReqLoop(); + BusTrajectoryManager.stopTrajReqLoop(); LoginStatusManager.loginOut() } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt index cf6986c4f7..44c56f12bf 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt @@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction @@ -26,7 +26,7 @@ import com.mogo.och.weaknet.util.ShuttleVoiceManager object ThirdDeviceData { - const val TAG = "ThirdDeviceData" + const val TAG = M_BUS+"ThirdDeviceData" @JvmStatic val busRoutesResult: BusRoutesResult = BusRoutesResult() @@ -136,7 +136,7 @@ object ThirdDeviceData { if (LineManager.lineInfos == null || LineModel.currentTask == null || LineModel.stationList.isNullOrEmpty()) { val data = BusTransferData(if (LoginStatusManager.isLogin()) 1 else 0, null) val msg = TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle) - d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) + d(TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) LanSocketManager.sendMsgToClient(msg) } else { LineManager.getLineInfo {lineInfo -> @@ -148,7 +148,7 @@ object ThirdDeviceData { busRoutesResult.writeVersion = System.currentTimeMillis() val data = BusTransferData(if (LoginStatusManager.isLogin()) 1 else 0, busRoutesResult) val msg = TaskDetailsMsg(GsonUtils.toJson(data), BusinessType.shuttle) - d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) + d(TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)) LanSocketManager.sendMsgToClient(msg) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt index ff3893c434..51ad5a56f2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt @@ -11,8 +11,9 @@ 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.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo @@ -40,7 +41,7 @@ import io.reactivex.schedulers.Schedulers object TicketModel { - private const val TAG = "TicketModel" + private const val TAG = M_BUS+"TicketModel" private const val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT" @@ -64,7 +65,7 @@ object TicketModel { override fun onMsgReceived(passenger: WriteOffPassenger?) { //进行播报 - i(SceneConstant.M_BUS + TAG, "后台socket 核验:passenger = " + GsonUtil.jsonFromObject(passenger)) + i(TAG, "后台socket 核验:passenger = " + GsonUtil.jsonFromObject(passenger)) if(passenger==null||passenger.passengerSize==0){ return } @@ -133,10 +134,7 @@ object TicketModel { override fun onNext(count: Int) { emitterMain?.onNext(Pair(firstStation.siteId, count)) - d( - SceneConstant.M_BUS + TAG, - "${firstStation.name}核销人数:${count}" - ) + d(TAG, "${firstStation.name}核销人数:${count}") OchChainLogManager.writeChainLog( "核销人数", "任务:${currentTask.taskId} 站点:${firstStation.siteId}_${firstStation.name}" @@ -151,7 +149,7 @@ object TicketModel { } emitterMain?.onNext(Pair(0,0)) - d(SceneConstant.M_BUS + TAG, "线路或者站点未空") + d(TAG, "线路或者站点为空") } @@ -176,7 +174,7 @@ object TicketModel { override fun onError(e: Throwable) { d(TAG, "receiveWrteOffDefailtInfo onError${e.printStackTrace()}") if (e is DataException) { - CallerLogger.d(M_BUS_P + TAG, "核销失败 ${e.code}-----${e.msg}") + d(TAG, "核销失败 ${e.code}-----${e.msg}") parseData(e.code,e.msg?:"",writeOffDetialMsg.phone?:"",writeOffDetialMsg.orderNo?:"") } } @@ -205,13 +203,15 @@ object TicketModel { */ private fun parseData(code:Int,msg:String,phone: String,orderNo: String){ when (code) { - 6002 -> sendMessage2Driver("同一订单核销间隔时间需大于2分钟", phone,6002,orderNo) 1009 -> sendMessage2Driver("车票所选乘车日期非今日", phone,1009,orderNo) 1005 -> sendMessage2Driver("车辆未登录、或没有任务", phone,1005,orderNo) 1006 -> sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合", phone,1006,orderNo) 1008 -> sendMessage2Driver("车票剩余可用次数为0", phone,99,orderNo) 6001 -> sendMessage2Driver("二维码已过期", phone,6001,orderNo) + 6002 -> sendMessage2Driver("同一订单核销间隔时间需大于2分钟", phone,6002,orderNo) 6003 -> sendMessage2Driver("车票站点信息与当前车辆执行任务的站点信息不符合", phone,6003,orderNo) + 6004 -> sendMessage2Driver("车辆未执行任务", phone,6004,orderNo) + 6005 -> sendMessage2Driver("车票站点信息与当前车辆执行任务信息不符合", phone,6005,orderNo) 1012 -> sendMessage2Driver("当前用户下单路线非当前的车辆所属公司", phone,1012,orderNo) else -> { try { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt index a289e4aacc..994fb39b28 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/RepositoryManager.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.data.BaseData 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 +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg import com.mogo.och.common.module.network.OchCommonServiceCallback @@ -15,7 +16,7 @@ import com.mogo.och.weaknet.bean.WriteOffPassenger import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.repository.db.MyDataBase -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.repository.EventDb import com.mogo.och.weaknet.repository.line.ILineRepository @@ -29,7 +30,7 @@ import io.reactivex.Observable object RepositoryManager { - private val TAG = "RepositoryManager" + private val TAG = "${M_BUS}RepositoryManager" private var lineRepository: ILineRepository?=null get() { if(field==null){ @@ -38,6 +39,9 @@ object RepositoryManager { if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { field = WeaknetRepository() CallerLogger.d(TAG,"saas shuttle 支持db") + }else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + field = WeaknetRepository() + CallerLogger.d(TAG,"saas scheduled 支持db") }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { field = WeaknetRepository() CallerLogger.d(TAG,"saas bus 支持db") @@ -75,7 +79,10 @@ object RepositoryManager { if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { field = WriteOffCacheRepository() CallerLogger.d(TAG,"saas shuttle 核销缓存") - }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + }else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + field = WriteOffCacheRepository() + CallerLogger.d(TAG,"saas sceduletd 核销缓存") + }else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { field = WriteOffCacheRepository() CallerLogger.d(TAG,"saas bus 核销缓存") } @@ -115,9 +122,10 @@ object RepositoryManager { return lineRepository?.startTask(taskId,lineId,taskTime,lineName) } - fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long + fun leaveStation( + seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime: Long, taskDate: Long ): Observable?{ - return lineRepository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime) + return lineRepository?.leaveStation(seq,siteId,taskId,lineId,taskStartTime,taskDate) } fun arriveStation(seq: Int, siteId: Long, taskId: Long): Observable?{ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt index 2cfc7e93b6..6159750a02 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt @@ -13,17 +13,17 @@ import com.mogo.commons.env.ProjectUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.FileUtils -import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.data.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.bean.EventDataBean -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.data.db.bean.LineDataBean +import com.mogo.och.data.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean -import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao +import com.mogo.och.data.db.dao.ContrailDataDao import com.mogo.och.weaknet.repository.db.dao.EventDataDao -import com.mogo.och.weaknet.repository.db.dao.LineDataDao -import com.mogo.och.weaknet.repository.db.dao.SiteDataDao +import com.mogo.och.data.db.dao.LineDataDao +import com.mogo.och.data.db.dao.SiteDataDao import com.mogo.och.weaknet.repository.db.dao.TaskDataDao import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao import com.mogo.och.weaknet.repository.db.dao.WriteOffDataDao @@ -33,7 +33,7 @@ import java.io.File //entities指定该数据库有哪些表,多张表就逗号分隔 //version指定数据库版本号,升级时需要用到 //数据库继承自RoomDatabase -@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class, WriteOffDataBean::class], version = 5) +@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class, WriteOffDataBean::class], version = 6) abstract class MyDataBase : RoomDatabase() { override fun getOpenHelper(): SupportSQLiteOpenHelper { @@ -65,29 +65,37 @@ abstract class MyDataBase : RoomDatabase() { companion object { private val MIGRATION_1_2 = object : Migration(1, 2) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("ALTER TABLE ${EventDataBean.evnetDataTable} ADD COLUMN driver_id INTEGER"); + database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN driver_id INTEGER"); } } private val MIGRATION_2_3 = object : Migration(2, 3) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("ALTER TABLE ${SiteDataBean.siteDataTable} ADD COLUMN videoList TEXT"); - database.execSQL("ALTER TABLE ${TaskSiteDataBean.usedTaskDataTable} ADD COLUMN videoList TEXT"); + database.execSQL("ALTER TABLE ${SiteDataBean.tableName} ADD COLUMN videoList TEXT"); + database.execSQL("ALTER TABLE ${TaskSiteDataBean.tableName} ADD COLUMN videoList TEXT"); } } private val MIGRATION_3_4 = object : Migration(3, 4) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("ALTER TABLE ${EventDataBean.evnetDataTable} ADD COLUMN msg_id TEXT") - database.execSQL("ALTER TABLE ${EventDataBean.evnetDataTable} ADD COLUMN update_time INTEGER") + database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN msg_id TEXT") + database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN update_time INTEGER") } } private val MIGRATION_4_5 = object : Migration(4, 5) { override fun migrate(database: SupportSQLiteDatabase) { - database.execSQL("CREATE TABLE IF NOT EXISTS `${WriteOffDataBean.writeoffDataTable}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)") + database.execSQL("CREATE TABLE IF NOT EXISTS `${WriteOffDataBean.tableName}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `msg_id` TEXT, `expiry_time` INTEGER, `booking_time` INTEGER, `type` INTEGER, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `driver_id` INTEGER, `available_times` INTEGER, `order_no` TEXT, `uid` TEXT, `seq` TEXT, `business_time` INTEGER, `tick_size` INTEGER, `tick_name` TEXT, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL, `update_time` INTEGER)") database.execSQL("CREATE INDEX `index_writeoff_data_table_event_save_time` ON `writeoff_data_table` (`event_save_time`)") } } + private val MIGRATION_5_6 = object : Migration(5, 6) { + override fun migrate(database: SupportSQLiteDatabase) { + database.execSQL("ALTER TABLE ${EventDataBean.tableName} ADD COLUMN task_date INTEGER") + database.execSQL("ALTER TABLE ${WriteOffDataBean.tableName} ADD COLUMN task_date INTEGER") + } + } + + fun getDBName():MyDataBase{ val roomName = when (ProjectUtils.getProjectType()) { Project.SAAS -> { @@ -95,6 +103,8 @@ abstract class MyDataBase : RoomDatabase() { "shuttle_db" }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { "saas_bus_db" + }else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + "saas_scheduled_db" }else{ FunctionBuildConfig.appIdentityMode } @@ -113,13 +123,25 @@ abstract class MyDataBase : RoomDatabase() { FileUtils.createOrExistsDir(ROOT_PATH) - return Room.databaseBuilder( - AbsMogoApplication.getApp()!!.applicationContext, MyDataBase::class.java, ROOT_PATH+roomName + val dbFile = AbsMogoApplication.getApp().getDatabasePath(roomName) + + val oldDbFile = File(ROOT_PATH) + oldDbFile.listFiles()?.forEach { + FileUtils.moveFile(it,File(dbFile.parent+File.separator+it.name),null) + } + + FileUtils.deleteFilesInDir(ROOT_PATH) + + return Room.databaseBuilder( + AbsMogoApplication.getApp()!!.applicationContext, + MyDataBase::class.java, + dbFile.path ) .addMigrations(MIGRATION_1_2) .addMigrations(MIGRATION_2_3) .addMigrations(MIGRATION_3_4) .addMigrations(MIGRATION_4_5) + .addMigrations(MIGRATION_5_6) .fallbackToDestructiveMigration() .build() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt index bfd343051b..c4d72d70eb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt @@ -7,7 +7,7 @@ import androidx.room.PrimaryKey /** * 上报给服务器端的 选择线路、滑动出发、进站 完成线路的对象 */ -@Entity(tableName = EventDataBean.evnetDataTable) +@Entity(tableName = EventDataBean.tableName) data class EventDataBean( @PrimaryKey(autoGenerate = true) var id: Int = 0, @@ -19,11 +19,18 @@ data class EventDataBean( var eventType: String? = null, /** - * 任务id + * 任务id、模板id */ @ColumnInfo(name = "lineId", typeAffinity = ColumnInfo.INTEGER) var lineId: Long? = null, + /** + * 模板发生日期 + */ + @ColumnInfo(name = "task_date", typeAffinity = ColumnInfo.INTEGER) + var taskDate: Long? = null, + + /** * 任务id */ @@ -90,7 +97,7 @@ data class EventDataBean( ) { companion object { - const val evnetDataTable: String = "event_data_table" + const val tableName: String = "event_data_table" const val TaskStart = "TaskStart" const val TaskArriveSite = "TaskArriveSite" diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt index 6c09f22041..b93ea1c079 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt @@ -5,7 +5,7 @@ import androidx.room.Entity import androidx.room.PrimaryKey import com.google.gson.annotations.SerializedName -@Entity(tableName = TaskDataBean.taskDataTable) +@Entity(tableName = TaskDataBean.tableName) data class TaskDataBean( @PrimaryKey(autoGenerate = true) @@ -16,7 +16,7 @@ data class TaskDataBean( * 任务id */ @ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER, index = true) - @SerializedName("id") + @SerializedName("id", alternate = ["shiftsId"]) var taskId: Long? = null, /** @@ -61,7 +61,7 @@ data class TaskDataBean( var status: Long? = 0, ) { companion object { - const val taskDataTable: String = "task_data_table" + const val tableName: String = "task_data_table" const val unUse = 0L const val useing = 1L @@ -87,10 +87,12 @@ data class TaskDataBean( return result } - fun getLineIdAndName(function: (lineId:Long,lineName:Long) -> Unit) { - taskId?.let {id-> - taskStartTime?.let {time-> - function(id,time) + fun getLineIdAndName(function: (taskId: Long, taskTime: Long , taskDate:Long) -> Unit) { + taskId?.let { id -> + taskStartTime?.let { time -> + taskDate?.let { date -> + function(id, time, date) + } } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt index 9ff4dede6f..e2379e6295 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt @@ -3,8 +3,9 @@ package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey +import com.mogo.och.data.db.bean.SiteDataBean -@Entity(tableName = TaskSiteDataBean.usedTaskDataTable) +@Entity(tableName = TaskSiteDataBean.tableName) data class TaskSiteDataBean( @PrimaryKey(autoGenerate = true) var id: Int = 0, @@ -159,7 +160,7 @@ data class TaskSiteDataBean( return result } - const val usedTaskDataTable: String = "used_task_data_table" + const val tableName: String = "used_task_data_table" const val drivingStatusInit = 0//0初始值 const val drivingStatusPassed = 1//1已经过 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/WriteOffDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/WriteOffDataBean.kt index b556118b9f..c49cc5801f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/WriteOffDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/WriteOffDataBean.kt @@ -7,7 +7,7 @@ import androidx.room.PrimaryKey /** * 上报给服务器端的 选择线路、滑动出发、进站 完成线路的对象 */ -@Entity(tableName = WriteOffDataBean.writeoffDataTable) +@Entity(tableName = WriteOffDataBean.tableName) data class WriteOffDataBean( @PrimaryKey(autoGenerate = true) var id: Int = 0, @@ -37,11 +37,18 @@ data class WriteOffDataBean( var type: Int? = null, /** - * 当前的任务id + * 当前的任务id、模板id */ @ColumnInfo(name = "task_id", typeAffinity = ColumnInfo.INTEGER) var taskId: Long? = null, + /** + * 模板发生日期 + */ + @ColumnInfo(name = "task_date", typeAffinity = ColumnInfo.INTEGER) + var taskDate: Long? = null, + + /** * 校验线路Id */ @@ -117,7 +124,7 @@ data class WriteOffDataBean( ) { companion object { - const val writeoffDataTable: String = "writeoff_data_table" + const val tableName: String = "writeoff_data_table" // 没有上传 const val notUpdate = 0 // 上传中 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt index b16842740f..52f32f1de6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt @@ -20,20 +20,24 @@ interface EventDataDao { @Delete fun delete(vararg eventDataBean: EventDataBean) + @Query("UPDATE ${EventDataBean.tableName} SET update_status = :status WHERE id = :id") + fun updateUpdateSatus(id:Int,status:Int):Int + + // 删除过时数据 - @Query("DELETE FROM ${EventDataBean.evnetDataTable} WHERE event_save_time < :zeroTime") + @Query("DELETE FROM ${EventDataBean.tableName} WHERE event_save_time < :zeroTime") fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int - @Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate}") + @Query("SELECT * FROM ${EventDataBean.tableName} WHERE update_status = ${EventDataBean.notUpdate}") fun queryEventByStatusWithPage():List? - @Query("SELECT count(1) FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate}") + @Query("SELECT count(1) FROM ${EventDataBean.tableName} WHERE update_status = ${EventDataBean.notUpdate}") fun queryEventByStatusWithPageCount():Int - @Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate} and event_save_time > :zeroTime GROUP by task_start_time") + @Query("SELECT * FROM ${EventDataBean.tableName} WHERE update_status = ${EventDataBean.notUpdate} and event_save_time > :zeroTime GROUP by task_start_time") fun queryWaitUploadInfo(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Observable?> - @Query("SELECT * FROM ${EventDataBean.evnetDataTable} order by event_save_time LIMIT 5 OFFSET 0") + @Query("SELECT * FROM ${EventDataBean.tableName} order by event_save_time LIMIT 5 OFFSET 0") fun queryLastDataByWaritData():List? } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt deleted file mode 100644 index 76005efb7f..0000000000 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt +++ /dev/null @@ -1,51 +0,0 @@ -package com.mogo.och.weaknet.repository.db.dao - -import androidx.room.Dao -import androidx.room.Delete -import androidx.room.Insert -import androidx.room.OnConflictStrategy -import androidx.room.Query -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean - -@Dao -interface SiteDataDao { - //插入数据 - @Insert(onConflict = OnConflictStrategy.REPLACE) - fun insert(vararg lineDataBean: SiteDataBean) - - @Delete() - fun deleteById(vararg siteDataBean: SiteDataBean) - - - // 线路删除时同步删除所属站点 - @Query("DELETE FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId") - fun deleteByLineId(lineId: Long) - - //查询线路对应的轨迹信息 - @Query("SELECT * FROM ${SiteDataBean.siteDataTable} WHERE md5 = :md5") - fun querySitesByMd5(md5:String): List? - - //查询线路对应的轨迹信息 - @Query("SELECT * FROM ${SiteDataBean.siteDataTable}") - fun queryAllSites(): List? - - - @Query("SELECT * FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId and site_id = :siteId") - fun querySitesByLineIdAndSiteId(lineId: Long,siteId:Long):List? - - @Query("SELECT * FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId") - fun querySitesByLineId(lineId: Long):List? - - @Query("SELECT * FROM ${SiteDataBean.siteDataTable} GROUP by md5 HAVING count(1) > 1") - fun checkData():List? - - fun querySiteByLineIdAndSiteId(lineId: Long,siteId:Long): SiteDataBean?{ - val queryContrailByLineId = querySitesByLineIdAndSiteId(lineId,siteId) - return if(queryContrailByLineId.isNullOrEmpty()){ - null - }else{ - queryContrailByLineId.first() - } - } - -} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt index 8ac85696f1..82f9c97da4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt @@ -19,51 +19,68 @@ interface TaskDataDao { @Delete fun delete(vararg lineDataBean: TaskDataBean) - //删除非昨天添加的数据 - @Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime") - fun deleteDataByZero(zeroTime:Long): Int + @Query("UPDATE ${TaskDataBean.tableName} SET start_time = :currentTimeMillis ,status = :useing WHERE id = :id") + fun updateStatus(currentTimeMillis: Long, useing: Long, id: Int) - @Query("UPDATE ${TaskDataBean.taskDataTable} SET end_time = :endTime,status = ${TaskDataBean.used} WHERE task_id = :taskId") - fun endTask(taskId: Long,endTime:Long = DateTimeUtil.getCurrentTimeStamp()) + //删除非昨天添加的数据 + @Query("DELETE FROM ${TaskDataBean.tableName} WHERE task_get_time < :zeroTime") + fun deleteDataByZero(zeroTime: Long): Int + + @Query("UPDATE ${TaskDataBean.tableName} SET end_time = :endTime,status = ${TaskDataBean.used} WHERE task_id = :taskId") + fun endTask(taskId: Long, endTime: Long = DateTimeUtil.getCurrentTimeStamp()) //查询当天插入的所有数据 - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime") - fun loadAllData(zeroTime:Long): List? + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE task_get_time > :zeroTime") + fun loadAllData(zeroTime: Long): List? // 查询当天特定线路正在执行的任务 - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing} and line_id = :lineId") - fun queryRunningTaskByLineId(lineId: Long, zeroTime:Long = DateTimeUtil.getCurrentDateZero()): List? + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing} and line_id = :lineId") + fun queryRunningTaskByLineId( + lineId: Long, + zeroTime: Long = DateTimeUtil.getCurrentDateZero() + ): List? // 查询当天特定线路正在执行的任务 - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing}") - fun queryRunningTaskByStatus(zeroTime:Long = DateTimeUtil.getCurrentDateZero()): List? + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.useing}") + fun queryRunningTaskByStatus(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): List? - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.unUse} and line_id = :lineId order by task_start_time") - fun queryUnuseTask(lineId: Long,zeroTime:Long = DateTimeUtil.getCurrentDateZero()): Observable?> + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE task_get_time > :zeroTime and status = ${TaskDataBean.unUse} and line_id = :lineId order by task_start_time") + fun queryUnuseTask( + lineId: Long, + zeroTime: Long = DateTimeUtil.getCurrentDateZero() + ): Observable?> - @Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time > :zeroTime and line_id = :lineId") - fun deleteByLineId(lineId: Long,zeroTime:Long = DateTimeUtil.getCurrentDateZero()) + @Query("DELETE FROM ${TaskDataBean.tableName} WHERE task_get_time > :zeroTime and line_id = :lineId") + fun deleteByLineId(lineId: Long, zeroTime: Long = DateTimeUtil.getCurrentDateZero()) - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE line_id = :lineId and task_get_time > :zeroTime") - fun querySitesByLineId(lineId: Long?,zeroTime:Long = DateTimeUtil.getCurrentDateZero()):List? + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE line_id = :lineId and task_get_time > :zeroTime") + fun querySitesByLineId( + lineId: Long?, + zeroTime: Long = DateTimeUtil.getCurrentDateZero() + ): List? //查询线路对应的轨迹信息 - @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_id = :taskId") - fun queryContrailByLineId(taskId:Long): List? + @Query("SELECT * FROM ${TaskDataBean.tableName} WHERE task_id = :taskId") + fun queryContrailByLineId(taskId: Long): List? + + //查询线路对应的轨迹信息 + @Query("SELECT * FROM ${TaskDataBean.tableName}") + fun queryAllTask(): List? + // 删除过时数据 - @Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime") - fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int - + @Query("DELETE FROM ${TaskDataBean.tableName} WHERE task_get_time < :zeroTime") + fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Int //查询线路对应的轨迹信息 只要一个结果 - fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean?{ + fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean? { val queryContrailByLineId = queryContrailByLineId(taskId) - return if(queryContrailByLineId.isNullOrEmpty()){ + return if (queryContrailByLineId.isNullOrEmpty()) { null - }else{ + } else { queryContrailByLineId.first() } } + } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt index 614bc86d0a..19457acacb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt @@ -14,24 +14,24 @@ interface TaskSiteDataDao { fun insert(vararg lineDataBean: TaskSiteDataBean):List //查询当天插入的所有数据 - @Query("SELECT * FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id = :taskId order by seq") + @Query("SELECT * FROM ${TaskSiteDataBean.tableName} WHERE task_id = :taskId order by seq") fun queryRunningTask(taskId: Long): List? - @Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave WHERE task_id = :taskId and site_id = :siteId") + @Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave WHERE task_id = :taskId and site_id = :siteId") fun updateLeave(taskId: Long, siteId: Long, leave: Int) - @Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave , driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") + @Query("UPDATE ${TaskSiteDataBean.tableName} SET leaving = :leave , driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") fun updateDrivingStatusANdLeave(taskId: Long, siteId: Long, drivingStatusCurrent: Int, leave: Int) - @Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") + @Query("UPDATE ${TaskSiteDataBean.tableName} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int) // 删除过时数据 - @Query("DELETE FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE event_save_time < :zeroTime") + @Query("DELETE FROM ${TaskSiteDataBean.tableName} WHERE event_save_time < :zeroTime") fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int // 根据taskId删除所属站点信息 - @Query("DELETE FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id = :taskId") + @Query("DELETE FROM ${TaskSiteDataBean.tableName} WHERE task_id = :taskId") fun deleteErrorDataByTaskId(taskId: Long) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt index 80d7cf2c3c..fab9d29d9b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/WriteOffDataDao.kt @@ -20,23 +20,23 @@ interface WriteOffDataDao { fun delete(vararg eventDataBean: WriteOffDataBean) // 删除过时数据 - @Query("DELETE FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time < :zeroTime") + @Query("DELETE FROM ${WriteOffDataBean.tableName} WHERE event_save_time < :zeroTime") fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int - @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo order by event_save_time") + @Query("SELECT * FROM ${WriteOffDataBean.tableName} WHERE event_save_time > :zeroTime and order_no = :orderNo order by event_save_time") fun queryWriteOffByOrderNo(zeroTime: Long = DateTimeUtil.getCurrentDateZero(),orderNo:String): List? - @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and update_status = ${WriteOffDataBean.notUpdate}") + @Query("SELECT * FROM ${WriteOffDataBean.tableName} WHERE event_save_time > :zeroTime and task_id = :taskId and update_status = ${WriteOffDataBean.notUpdate}") fun queryWaitWriteOffByTaskId(taskId:Long,zeroTime: Long = DateTimeUtil.getCurrentDateZero()): List? - @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate}") + @Query("SELECT * FROM ${WriteOffDataBean.tableName} WHERE update_status = ${WriteOffDataBean.notUpdate}") fun queryWriteOffEventByStatusWithPage():List? - @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and site_id = :siteId") + @Query("SELECT * FROM ${WriteOffDataBean.tableName} WHERE event_save_time > :zeroTime and task_id = :taskId and site_id = :siteId") fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long,zeroTime: Long = DateTimeUtil.getCurrentDateZero()):List? - @Query("SELECT count(1) FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate}") + @Query("SELECT count(1) FROM ${WriteOffDataBean.tableName} WHERE update_status = ${WriteOffDataBean.notUpdate}") fun queryWriteOffByStatusWithPageCount(): Int diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt index 16a9642ec6..c46bc2a661 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiDb.kt @@ -1,15 +1,13 @@ package com.mogo.och.weaknet.repository.db.repository -import com.mogo.eagle.core.network.utils.digest.DigestUtils -import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase -import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean -import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao +import com.mogo.och.data.db.dao.ContrailDataDao +import com.mogo.och.data.db.repository.BaseContraiDb -object ContraiDb : IDbRepository { +object ContraiDb : IDbRepository, BaseContraiDb() { - private var contrailDao: ContrailDataDao?=null + override var contrailDao: ContrailDataDao?=null get() { if(field==null){ field = MyDataBase.instance?.contrailDataDao @@ -22,53 +20,6 @@ object ContraiDb : IDbRepository { contrailDao = null } - fun addOrUpdate(contrailDatalist:List){ - val runnable = Runnable { - // 校验数据个数 - contrailDao?.let { contrailDao-> - contrailDatalist.forEach { - val md5Source = it.toString() - val md5Hex = DigestUtils.md5Hex(md5Source) - val queryContrailByMd5 = contrailDao.queryContrailByMd5(md5Hex) - if(queryContrailByMd5.isNullOrEmpty()){// 没有值或者值有变化 - val needUpdate = contrailDao.queryContrailByLineIdOne(it.lineId!!) - it.md5 = md5Hex - if(needUpdate!=null){ - it.id = needUpdate.id - } - contrailDao.insert(it) - } - } - } - } - BizLoopManager.runInIoThread(runnable) - } - fun deleteByLineId(lineId: Long) { - contrailDao?.deleteByLineId(lineId) - } - - fun queryAutopilotInfoByLineid(lineId: Long): ContrailDataBean? { - return contrailDao?.queryContrailByLineIdOne(lineId) - } - - fun saveRunningInfo( - lineId: Int, - csvFileMd5: String?, - csvFileUrl: String?, - txtFileUrl: String?, - txtFileMd5: String?, - contrailSaveTime: Long - ) { - val runningLine = ContrailDataBean( - lineId = lineId.toLong(), - csvFileUrl = csvFileUrl, - csvFileMd5 = csvFileMd5, - txtFileUrl = txtFileUrl, - txtFileMd5 = txtFileMd5, - contrailSaveTime = contrailSaveTime - ) - addOrUpdate(mutableListOf(runningLine)) - } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt index 348ddb8521..d6c077becf 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventDb.kt @@ -1,5 +1,6 @@ package com.mogo.och.weaknet.repository.db.repository +import androidx.room.Transaction import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.cache.OchSPManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager @@ -29,11 +30,12 @@ object EventDb: IDbRepository { eventDataDao = null } - fun saveEventTaskStart(taskId: Long, lineId: Long, taskStartTime: Long, name: String) { + fun saveEventTaskStart(taskId: Long, lineId: Long, taskStartTime: Long, name: String,taskDate:Long) { val event = EventDataBean() event.eventType = EventDataBean.TaskStart event.lineId = lineId event.taskId = taskId + event.taskDate = taskDate event.lineName = name event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() @@ -54,7 +56,8 @@ object EventDb: IDbRepository { siteId: Long, seq: Int, taskStartTime: Long?, - lineName: String + lineName: String, + taskDate: Long? ) { val event = EventDataBean() event.eventType = EventDataBean.TaskArriveSite @@ -62,6 +65,7 @@ object EventDb: IDbRepository { event.taskStartTime = taskStartTime event.lineName = lineName event.taskId = taskId + event.taskDate = taskDate event.businessTime = DateTimeUtil.getCurrentTimeStamp() event.writeVersion = DateTimeUtil.getCurrentTimeStamp() event.siteId = siteId @@ -80,12 +84,14 @@ object EventDb: IDbRepository { siteId: Long, seq: Int, taskStartTime: Long?, - lineName: String + lineName: String, + taskDate: Long ) { val event = EventDataBean() event.eventType = EventDataBean.TaskLeaveSite event.lineId = lineId event.taskId = taskId + event.taskDate = taskDate event.taskStartTime = taskStartTime event.lineName = lineName event.businessTime = DateTimeUtil.getCurrentTimeStamp() @@ -100,11 +106,18 @@ object EventDb: IDbRepository { } } - fun saveEventTaskEnd(taskId: Long, lineId: Long, taskStartTime: Long?, lineName: String) { + fun saveEventTaskEnd( + taskId: Long, + lineId: Long, + taskStartTime: Long?, + lineName: String, + taskDate: Long + ) { val event = EventDataBean() event.eventType = EventDataBean.TaskEnd event.lineId = lineId event.taskId = taskId + event.taskDate = taskDate event.lineName = lineName event.taskStartTime = taskStartTime event.businessTime = DateTimeUtil.getCurrentTimeStamp() @@ -135,8 +148,11 @@ object EventDb: IDbRepository { return queryLastDataByWaritData.first() } + @Transaction fun saveUpdateSuccess(waitUpdateEvent: List) { - eventDataDao?.insert(*waitUpdateEvent.toTypedArray()) + waitUpdateEvent.forEach { + eventDataDao?.updateUpdateSatus(it.id,it.updateStatus) + } } fun deleteObsoleteData() { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt index b6c8690728..05a0538cb3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt @@ -1,16 +1,14 @@ package com.mogo.och.weaknet.repository.db.repository -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager -import com.mogo.och.common.module.manager.loop.BizLoopManager +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.repository.db.dao.LineDataDao -import io.reactivex.Observable +import com.mogo.och.data.db.dao.LineDataDao +import com.mogo.och.data.db.repository.BaseLineDb -object LineDb: IDbRepository { +object LineDb: IDbRepository, BaseLineDb() { - private var lineDao: LineDataDao?=null + override var lineDao: LineDataDao?=null get() { if(field==null){ field = MyDataBase.instance?.lineDataDao @@ -19,113 +17,19 @@ object LineDb: IDbRepository { return field } + override fun deleteSitesTaskAndContraiDb(lineId: Long) { + SiteDb.deleteByLineId(lineId) + val runingTask = TaskDb.queryRunningTaskByLineId(lineId) + if(runingTask.isNullOrEmpty()){ + // 删除线路对应的自驾信息 + ContraiDb.deleteByLineId(lineId) + TaskDb.deleteByLineId(lineId) + } + } + + override fun release() { lineDao = null } - - fun cleanWeltData(){ - lineDao?.deleteWeltData() - } - - /** - * 读取可用线路 - */ - fun queryCanUseLine(): Observable?>? { - return lineDao?.loadDataRx() - } - - fun checkAndUpdate(serverDatalist:List){ - val runable = object :Runnable{ - override fun run() { - // 校验数据个数 - lineDao?.let { lineDao-> - val loadData = lineDao.loadData() - if(loadData.isNullOrEmpty()){ - lineDao.insert(*serverDatalist.toTypedArray()) - // TODO: Ui展示需要动态刷新UI去 - return - } - // 后台新增数据 - val needAddDatas = serverDatalist-loadData - // 后台没有本地数据库有的未分配线路 - val needMinusDatas = loadData-serverDatalist - - // TODO: Ui展示需要动态刷新UI去 - - if (needAddDatas.isNotEmpty()) { - // 新增线路 - lineDao.insert(*needAddDatas.toTypedArray()) - } - if (needMinusDatas.isNotEmpty()) { - // 删除线路 - lineDao.delete(*needMinusDatas.toTypedArray()) - needMinusDatas.forEach { minusLine-> - minusLine.lineId?.let { lineId-> - // 删除线路对应的站点 - - SiteDb.deleteByLineId(lineId) - val runingTask = TaskDb.queryRunningTaskByLineId(lineId) - if(runingTask.isNullOrEmpty()){ - // 删除线路对应的自驾信息 - - ContraiDb.deleteByLineId(lineId) - - TaskDb.deleteByLineId(lineId) - } - } - } - } - - // 交集 服务器端 - val needUpdateByMd5 = serverDatalist-needAddDatas - // 交集 本地数据库 - val oldDataList = loadData-needMinusDatas - - val needDelete = mutableListOf() - val needUpDate = mutableListOf() - - needUpdateByMd5.forEach { - val oldList = oldDataList.filter { local -> local.lineId == it.lineId } - if(oldList.isNotEmpty()){ - oldList.forEachIndexed { index, lineBean -> - if(index==0){ - if (lineBean.lineName == it.lineName && lineBean.endStationName == it.endStationName) { - // 数据没有变化 - }else{ - it.id = lineBean.id - needUpDate.add(it) - } - }else{ - needDelete.add(lineBean) - } - } - } - } - lineDao.delete(*needDelete.toTypedArray()) - lineDao.insert(*needUpDate.toTypedArray()) - } - } - } - - BizLoopManager.runInIoThread(runable) - } - - fun deleteObsoleteData(){ - lineDao?.deleteObsoleteData()?.let { - OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}") - } - } - - /** - * 没有线路就插入线路 - */ - fun saveRunningInfo(lineId: Int, lineName: String?, endStationName: String?) { - val queryByLineId = lineDao?.queryByLineId(lineId) - if(queryByLineId.isNullOrEmpty()){ - lineDao?.insert(LineDataBean(lineId = lineId.toLong(), lineName = lineName, endStationName = endStationName)) - } - } - - } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt index 726b0692e9..7a39927762 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt @@ -1,18 +1,13 @@ package com.mogo.och.weaknet.repository.db.repository -import com.mogo.eagle.core.network.utils.digest.DigestUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.util.TAG -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager -import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean -import com.mogo.och.weaknet.repository.db.dao.SiteDataDao +import com.mogo.och.data.db.dao.SiteDataDao +import com.mogo.och.data.db.repository.BaseSiteDb -object SiteDb: IDbRepository { +object SiteDb: IDbRepository, BaseSiteDb() { - private var siteDataDao: SiteDataDao? = null + override var siteDataDao: SiteDataDao? = null get() { if(field==null){ field = MyDataBase.instance?.siteDataDao @@ -25,101 +20,4 @@ object SiteDb: IDbRepository { siteDataDao = null } - fun addOrUpdate(serverDataList: List) { - val runnable = object :Runnable { - override fun run() { - siteDataDao?.let { siteDataDao -> - val localAllSites = siteDataDao.queryAllSites() - if (localAllSites.isNullOrEmpty()) { - siteDataDao.insert(*serverDataList.toTypedArray()) - return - } - // 后台新增数据 - val needAddDatas = serverDataList-localAllSites - // 后台没有本地数据库有的未分配线路 - val needMinusDatas = localAllSites - serverDataList - - if (needAddDatas.isNotEmpty()) { - // 新增线路 - needAddDatas.forEach { - val md5Source = it.toString() - val md5Hex = DigestUtils.md5Hex(md5Source) - it.md5 = md5Hex - } - siteDataDao.insert(*needAddDatas.toTypedArray()) - } - - if (needMinusDatas.isNotEmpty()) { - // 删除线路 - siteDataDao.deleteById(*needMinusDatas.toTypedArray()) - } - - // 交集 服务器端 - val needUpdateByMd5 = serverDataList-needAddDatas - // 交集 本地数据库 - val oldDataList = localAllSites-needMinusDatas - - val needDelete = mutableListOf() - val needUpDate = mutableListOf() - - - needUpdateByMd5.forEach { - val md5Source = it.toString() - val md5Hex = DigestUtils.md5Hex(md5Source) - val oldList = - oldDataList.filter { local -> local.siteId == it.siteId && local.lineId == it.lineId } - if(oldList.isNotEmpty()){ - oldList.forEachIndexed { index, siteDataBean -> - if(index==0){ - if (siteDataBean.md5 == md5Hex) { - // 数据没有变化 - }else{ - it.id = siteDataBean.id - it.md5 = md5Hex - needUpDate.add(it) - - } - }else{ - needDelete.add(siteDataBean) - - } - } - } - } - siteDataDao.insert(*needUpDate.toTypedArray()) - siteDataDao.deleteById(*needDelete.toTypedArray()) - checkData() - } - } - - } - BizLoopManager.runInIoThread(runnable) - } - - fun checkData() { - CallerLogger.d(TAG,"检测站点数据") - siteDataDao?.checkData()?.let { list -> - list.forEach { - siteDataDao?.deleteById(it) - } - if (list.isNotEmpty()) { - OchChainLogManager.writeChainLogDb("数据检测", "有重复数据${list}") - checkData() - } - } - } - - fun deleteByLineId(lineId: Long) { - siteDataDao?.deleteByLineId(lineId) - } - - fun querySiteByLineId(lineId:Long):List?{ - siteDataDao?.let { siteDataDao-> - return siteDataDao.querySitesByLineId(lineId) - } - return null - } - - - } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt index 6971237eaf..20087c9174 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt @@ -1,8 +1,7 @@ package com.mogo.och.weaknet.repository.db.repository - import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.util.TAG +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.DateTimeUtil @@ -10,12 +9,14 @@ import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.dao.TaskDataDao -import com.mogo.och.weaknet.repository.db.exception.DbException +import com.mogo.och.data.db.exception.DbException import com.mogo.och.weaknet.repository.exception.DataException import io.reactivex.Observable object TaskDb : IDbRepository { + private const val TAG = "${M_BUS}TaskDb" + private var taskDataDao: TaskDataDao? = null get() { if(field==null){ @@ -30,6 +31,7 @@ object TaskDb : IDbRepository { } fun addOrUpdate(vararg lineDataBean: TaskDataBean){ + // 从接口恢复数据 taskDataDao?.insert(*lineDataBean) } @@ -97,7 +99,7 @@ object TaskDb : IDbRepository { it.startTime = System.currentTimeMillis() it.status = TaskDataBean.useing // 更新任务状态 - taskDataDao?.insert(it) + taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.useing,it.id) OchChainLogManager.writeChainLogDb("开始任务", "变更线路:${lineId}_${lineName}_task:${taskId} 为正在使用的状态") } CallerLogger.d(TAG,"更新任务状态用时:${System.currentTimeMillis()-startTime}") @@ -113,7 +115,7 @@ object TaskDb : IDbRepository { it.startTime = null it.status = TaskDataBean.unUse // 更新任务状态 - taskDataDao?.insert(it) + taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.unUse,it.id) OchChainLogManager.writeChainLogDb("开始任务", "异常情况${lineId}_${lineName}_task:${taskId} 为未使用的状态 原因:${e.message}") } } @@ -148,6 +150,10 @@ object TaskDb : IDbRepository { return taskDataDao?.queryTaskByTaskIdOne(taskId) } + fun queryAllTask(): List? { + return taskDataDao?.queryAllTask() + } + fun endTask(taskId: Long) { BizLoopManager.runInIoThread{ @@ -188,10 +194,15 @@ object TaskDb : IDbRepository { } } - - interface TaskStatusCallback{ - fun startSuccess() - fun startFail(msg:String) + fun restoreTask(taskId: Long) { + // 更新task状态 + taskDataDao?.queryTaskByTaskIdOne(taskId)?.let { + it.startTime = System.currentTimeMillis() + it.status = TaskDataBean.useing + // 更新任务状态 + taskDataDao?.updateStatus(System.currentTimeMillis(),TaskDataBean.useing,it.id) + OchChainLogManager.writeChainLogDb("恢复任务", "线路任务改为正在执行的状态") + } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt index 357624f380..ffe5787330 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt @@ -1,20 +1,23 @@ package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.util.TAG +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao -import com.mogo.och.weaknet.repository.db.exception.DbException +import com.mogo.och.data.db.exception.DbException -object TaskSiteDb: IDbRepository { +object TaskSiteDb : IDbRepository { + + private const val TAG = "${M_BUS}TaskSiteDb" private var taskSiteDataDao: TaskSiteDataDao? = null get() { - if(field==null){ + if (field == null) { field = MyDataBase.instance?.taskSiteDataDao register() } @@ -26,56 +29,66 @@ object TaskSiteDb: IDbRepository { } - fun addOrUpdate(vararg lineDataBean: TaskSiteDataBean){ + fun addOrUpdate(vararg lineDataBean: TaskSiteDataBean) { taskSiteDataDao?.insert(*lineDataBean) } // 开始线路 - fun startTask(taskId: Long, linId: Long,lineName:String):Int? { + fun startTask(taskId: Long, linId: Long, lineName: String): Int? { // 获取线路的站点 var startTime = System.currentTimeMillis() val querySites = SiteDb.querySiteByLineId(linId)?.distinctBy { it.siteId } - if(querySites.isNullOrEmpty()){ + if (querySites.isNullOrEmpty()) { throw DbException("没有站点数据") } - CallerLogger.d(TAG,"查询站点用时:${System.currentTimeMillis()-startTime}") + CallerLogger.d(TAG, "查询站点用时:${System.currentTimeMillis() - startTime}") startTime = System.currentTimeMillis() val toTaskSiteDatas = TaskSiteDataBean.toTaskSiteDatas( querySites, taskId, lineName ) - CallerLogger.d(TAG,"数据转换用时:${System.currentTimeMillis()-startTime}") - if(toTaskSiteDatas.size<2){ + CallerLogger.d(TAG, "数据转换用时:${System.currentTimeMillis() - startTime}") + if (toTaskSiteDatas.size < 2) { throw DbException("站点数据不全请稍后再试") } // 把线路所有的站点搬迁到运行中表格中 startTime = System.currentTimeMillis() - val result = taskSiteDataDao?.insert(*toTaskSiteDatas.toTypedArray()) - CallerLogger.d(TAG,"数据插入用时:${System.currentTimeMillis()-startTime}") - return if(result.isNullOrEmpty()){ + val result = taskSiteDataDao?.insert(*toTaskSiteDatas.toTypedArray()) + CallerLogger.d(TAG, "数据插入用时:${System.currentTimeMillis() - startTime}") + return if (result.isNullOrEmpty()) { null - }else{ + } else { result.size } } // 滑动出发 - fun updateLeave(taskId: Long, siteId: Long, leave:Boolean) { - BizLoopManager.runInIoThread{ - taskSiteDataDao?.updateLeave(taskId,siteId,if(leave) 1 else 0) + fun updateLeave(taskId: Long, siteId: Long, leave: Boolean) { + BizLoopManager.runInIoThread { + taskSiteDataDao?.updateLeave(taskId, siteId, if (leave) 1 else 0) } } - fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatus: Int){ - BizLoopManager.runInIoThread{ - taskSiteDataDao?.updateDrivingStatus(taskId,siteId,drivingStatus) + fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatus: Int) { + BizLoopManager.runInIoThread { + taskSiteDataDao?.updateDrivingStatus(taskId, siteId, drivingStatus) } } - fun updateDrivingStatusAndLeave(taskId: Long, siteId: Long, drivingStatus: Int, leave: Boolean){ - BizLoopManager.runInIoThread{ - taskSiteDataDao?.updateDrivingStatusANdLeave(taskId,siteId,drivingStatus,if(leave) 1 else 0) + fun updateDrivingStatusAndLeave( + taskId: Long, + siteId: Long, + drivingStatus: Int, + leave: Boolean + ) { + BizLoopManager.runInIoThread { + taskSiteDataDao?.updateDrivingStatusANdLeave( + taskId, + siteId, + drivingStatus, + if (leave) 1 else 0 + ) } } @@ -83,15 +96,71 @@ object TaskSiteDb: IDbRepository { return taskSiteDataDao?.queryRunningTask(taskId) } - fun deleteErrorData(taskId: Long){ + fun deleteErrorData(taskId: Long) { taskSiteDataDao?.deleteErrorDataByTaskId(taskId) } - fun deleteObsoleteData(){ + fun deleteObsoleteData() { taskSiteDataDao?.deleteObsoleteData()?.let { - OchChainLogManager.writeChainLogDb("删除临时数据","rurnning Task删除数量:${it}") + OchChainLogManager.writeChainLogDb("删除临时数据", "rurnning Task删除数量:${it}") } } + /** + * 从后台恢复正在执行的任务 + */ + fun restoreRunningTask( + taskId: Long, + currentSiteId: Long, + leaving: Boolean, + lineInfo: LineDataBean + ) { + val taskHistory = queryRunningTask(taskId) + if (!taskHistory.isNullOrEmpty()) { + //有错误数据 + deleteErrorData(taskId) + } + // 获取线路的站点 + val querySites = SiteDb.querySiteByLineId(lineInfo.lineId!!)?.distinctBy { it.siteId } + if (querySites.isNullOrEmpty()) { + throw DbException("没有站点数据") + } + val toTaskSiteDatas = TaskSiteDataBean.toTaskSiteDatas( + querySites, + taskId, + lineInfo.lineName!! + ) + val resetData = resetInfo(currentSiteId, leaving, toTaskSiteDatas) + // 把线路所有的站点搬迁到运行中表格中 + taskSiteDataDao?.insert(*resetData.toTypedArray()) + } + + fun resetInfo( + currentSiteId: Long, + leaving: Boolean, + runningSite: MutableList + ): MutableList { + var currentSeq = 0 + runningSite.forEach { + if (it.siteId == currentSiteId) { + currentSeq = it.seq ?: 0 + it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + it.leaving = leaving + return@forEach + } + } + runningSite.forEach { + val seq = it.seq ?: 0 + if (seq < currentSeq) { + it.drivingStatus = TaskSiteDataBean.drivingStatusPassed + it.leaving = true + } else if (seq > currentSeq) { + it.drivingStatus = TaskSiteDataBean.drivingStatusNotArrived + it.leaving = false + } + } + return runningSite + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt index 769d4a29c6..ac695c9d56 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/WriteOffDb.kt @@ -7,7 +7,6 @@ import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean import com.mogo.och.weaknet.repository.db.dao.WriteOffDataDao - object WriteOffDb: IDbRepository { private var writeOffDataDao: WriteOffDataDao? = null diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/ILineRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/ILineRepository.kt index 1f2864563d..e2cbfc3033 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/ILineRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/ILineRepository.kt @@ -5,7 +5,7 @@ import com.mogo.eagle.core.data.BaseData import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import io.reactivex.Observable @@ -19,7 +19,14 @@ interface ILineRepository { fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? - fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable? + fun leaveStation( + seq: Int, + siteId: Long, + taskId: Long, + lineId: Long, + taskStartTime: Long, + taskDate: Long + ): Observable? fun arriveStation( seq: Int, siteId: Long, taskId: Long): Observable? diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt index 627b6f9352..62d991a6e4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/NormalRepository.kt @@ -7,7 +7,8 @@ import com.mogo.eagle.core.data.BaseData 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 -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.data.bean.BusStationBean @@ -16,7 +17,7 @@ import com.mogo.och.data.bean.LineInfo import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.model.LineModel -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.line.ILineRepository import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean @@ -29,7 +30,7 @@ import io.reactivex.Observable class NormalRepository: ILineRepository { - private val tag = "NormalRepository" + private val tag = "${M_BUS}NormalRepository" private var normalLineInterface: NetInterface?=null get() { @@ -72,6 +73,7 @@ class NormalRepository: ILineRepository { "业务数据", "本地没有正在运行的数据,服务器端有${busRoutesResult}" ) + CallerLogger.d(tag,"本地没有正在运行的数据,服务器端有${busRoutesResult}") val result = mutableListOf() var temp: BusStationBean? var currentStationIndex = -1 @@ -155,7 +157,8 @@ class NormalRepository: ILineRepository { siteId: Long, taskId: Long, lineId: Long, - taskStartTime: Long + taskStartTime: Long, + taskDate: Long ): Observable? { return normalLineInterface?.leaveStation(seq, siteId, taskId, System.currentTimeMillis()) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt index 17b34e042d..39621ea1f1 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/line/impl/WeaknetRepository.kt @@ -8,21 +8,27 @@ import com.mogo.eagle.core.data.BaseData 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 -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.bean.ContraiInfo import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.response.BusRoutesResponse import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse +import com.mogo.och.weaknet.constant.BusConst import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.model.LineModel.currentTask -import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.repository.ContraiDb import com.mogo.och.weaknet.repository.db.repository.EventDb import com.mogo.och.weaknet.repository.db.repository.LineDb +import com.mogo.och.weaknet.repository.db.repository.SiteDb import com.mogo.och.weaknet.repository.db.repository.TaskDb import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import com.mogo.och.weaknet.repository.line.ILineRepository @@ -30,11 +36,12 @@ import com.mogo.och.weaknet.repository.net.exception.NetException import com.mogo.och.weaknet.repository.net.NetInterface import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager +import com.mogo.och.weaknet.repository.net.project.saas.scheduled.SaasScheduledServiceManager import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager import io.reactivex.Observable class WeaknetRepository : ILineRepository { - private val TAG = "ShuttleSaasRepository" + private val TAG = "${M_BUS}ShuttleSaasRepository" private val context = AbsMogoApplication.getApp() private var weakNetInterface: NetInterface?=null @@ -44,6 +51,8 @@ class WeaknetRepository : ILineRepository { Project.SAAS -> { if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { field = SaasShuttleServiceManager + }else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)) { + field = SaasScheduledServiceManager }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { field = SaasBusServiceManager } @@ -67,18 +76,18 @@ class WeaknetRepository : ILineRepository { } override fun loadCurrentTaskInfo(): Observable? { - return Observable.just(123) .flatMap { // 获取正在运行的任务 val runningTaskInfo = TaskDb.queryRunningTask() if (runningTaskInfo.isNullOrEmpty()) { // 本地没有进行中的任务 - CallerLogger.d(TAG, "没有查询到正在运行的任务") - return@flatMap loadServerRuningTask() + CallerLogger.d(TAG, "loadCurrentTaskInfo 没有查询到正在运行的任务") + return@flatMap loadServerRuningTask(1) } else if (runningTaskInfo.size > 1) { // 本地有多条正在进行的任务 需要check event // 1 比对event表 1 清理错误数据 2 加载后台数据 + CallerLogger.d(TAG, "loadCurrentTaskInfo 查询到多个正在执行的任务") return@flatMap selectRightData(runningTaskInfo) } else { // 只有一条进行中的任务 @@ -88,9 +97,10 @@ class WeaknetRepository : ILineRepository { // 获取正在进行中的具体信息 val runnintTaskAndSites = TaskSiteDb.queryRunningTask(it) if(runnintTaskAndSites.isNullOrEmpty()||runnintTaskAndSites.size<2){ + CallerLogger.d(TAG, "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}") OchChainLogManager.writeChainLogDb("加载任务", "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}") TaskSiteDb.deleteErrorData(it) - return@flatMap loadServerRuningTask() + return@flatMap loadServerRuningTask(1) } val db2Beans = BusRoutesResponse.db2Beans(runnintTaskAndSites) LineModel.stationList = db2Beans.first @@ -107,8 +117,14 @@ class WeaknetRepository : ILineRepository { } // 设置自动驾驶信息 currentTask?.lineId?.let { - val contraiInfoTemp = ContraiDb.queryAutopilotInfoByLineid(it) - ContrailDataBean.save2Common(contraiInfoTemp) + ContraiDb.queryAutopilotInfoByLineid(it)?.apply { + if (lineId == null || lineId!! < 0L||csvFileUrl.isNullOrEmpty()||csvFileMd5.isNullOrEmpty()||txtFileUrl.isNullOrEmpty()||txtFileMd5.isNullOrEmpty()) { + ToastUtils.showLong("请设置轨迹信息") + OchChainLogManager.writeChainLogAutopilot("轨迹错误",this.toString()) + CallerLogger.d(TAG,"轨迹错误,$this") + } + LineManager.setContraiInfo(ContraiInfo(lineId!!,csvFileUrl!!,csvFileMd5!!,txtFileUrl!!,txtFileMd5!!,contrailSaveTime!!)) + } } return@flatMap Observable.just(true) } @@ -134,14 +150,16 @@ class WeaknetRepository : ILineRepository { it.status = TaskDataBean.used } TaskDb.addOrUpdate(*tempList.toTypedArray()) + CallerLogger.d(TAG,"异常情况:多个正在进行的任务 task:${runningTaskInfo} event:${queryLastData.taskId}有一个和event表对应使用相同的一个 另一个置为已使用") OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} event:${queryLastData.taskId}有一个和event表对应使用相同的一个 另一个置为已使用") - return@flatMap loadServerRuningTask() + return@flatMap loadServerRuningTask(1) } } // 全部置为已使用 通过接口恢复数据 runningTaskInfo.forEach { it.status = TaskDataBean.used } + CallerLogger.d(TAG,"异常情况:多个正在进行的任务 task:${runningTaskInfo} 全部置为已使用 从后台加载正在使用的任务") OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} 全部置为已使用 从后台加载正在使用的任务") TaskDb.addOrUpdate(*runningTaskInfo.toTypedArray()) return@flatMap loadCurrentTaskInfo() @@ -149,50 +167,167 @@ class WeaknetRepository : ILineRepository { } - private fun loadServerRuningTask(): Observable? { - return weakNetInterface?.queryBusRoutes()?.flatMap { busRoutesResult-> - if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) { - val queryTaskById = TaskDb.queryTaskById(busRoutesResult.taskId.toLong()) - if (queryTaskById == null || queryTaskById.status != TaskDataBean.used) { - OchChainLogManager.writeChainLogDb( - "业务数据", - "本地没有正在运行的数据,服务器端有${busRoutesResult}" - ) - LineDb.saveRunningInfo( - busRoutesResult.lineId, - busRoutesResult.name, - busRoutesResult.sites.last().name - ) - TaskDb.saveRunningInfo( - busRoutesResult.lineId, - busRoutesResult.taskId, - busRoutesResult.taskTime - ) - ContraiDb.saveRunningInfo( - busRoutesResult.lineId, - busRoutesResult.csvFileMd5, - busRoutesResult.csvFileUrl, - busRoutesResult.txtFileUrl, - busRoutesResult.txtFileMd5, - busRoutesResult.contrailSaveTime - ) - BusRoutesResponse.bean2Db( - busRoutesResult.sites, - busRoutesResult.lineId.toLong(), - busRoutesResult.name, - busRoutesResult.taskId.toLong() - ) - return@flatMap loadCurrentTaskInfo() - } else { + private fun loadServerRuningTask(loadCount:Int): Observable? { + if(ProjectUtils.isSaas()){ + // 从登录接口获取数据 + // 1、从登录接口获取业务数据 + // 2、check 数据库数据 + // 3、数据库没有数据 做延迟等待同步接口同步基础数据 ?? 等待基础数据同步完在进行 + // 4、恢复本地正在运行的数据 + val loginInfo = LoginStatusManager.getLoginInfo() + return Observable.just(loginInfo).flatMap { + // check数据 是否正在之心 + val taskId = if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)|| + AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)){ + it.taskId + }else{ + it.shiftsId + } + val taskDate = it.taskDate + val currentSiteId = it.currentSite + val leaving = it.leaving + val lineId = it.lineId?:0L + + if(lineId<=0){ return@flatMap Observable.just(false) } + if(taskId<=0||currentSiteId<=0||taskDate<=0){ + return@flatMap Observable.just(false) + } + // 日期是否正确 + if (!DateTimeUtil.isSameDay(System.currentTimeMillis(),taskDate)) { + return@flatMap Observable.just(false) + } + + // region 任务本地是否存在 + val allTask = TaskDb.queryAllTask() + if(allTask.isNullOrEmpty()){ + if(loadCount== BusConst.waitCount) + return@flatMap Observable.just(false) + CallerLogger.d(TAG,"本地没有任务等待2s后 重新查询") + Thread.sleep(BusConst.waitSysAllData) + return@flatMap loadServerRuningTask(loadCount+1) + } + // 服务端任务已被删除 + val queryTaskById = TaskDb.queryTaskById(taskId) + if(queryTaskById==null){ + CallerLogger.d(TAG,"服务端正在执行${taskId},本地没有此任务") + OchChainLogManager.writeChainLogDb("错误信息","服务端正在执行${taskId},本地没有此任务") + return@flatMap Observable.just(false) + }else{ + // 本地任务已经被执行 + if(queryTaskById.status == TaskDataBean.used){ + return@flatMap Observable.just(false) + } + } + // endregion + + // region 检查线路 + val allLineData = LineDb.queryCanUserLine() + if(allLineData.isNullOrEmpty()){ + if(loadCount == BusConst.waitCount) + return@flatMap Observable.just(false) + CallerLogger.d(TAG,"本地没有线路等待2s后 重新查询") + Thread.sleep(BusConst.waitSysAllData) + if(loadCount>1) { + return@flatMap loadServerRuningTask(1) + } + else { + return@flatMap loadServerRuningTask(loadCount + 1) + } + } + // 正在执行的站点是否在此线路中 + var containLine = false + var lineInfo:LineDataBean?=null + allLineData.forEach {lineItem-> + if (lineItem.lineId==lineId) { + containLine = true + lineInfo = lineItem + } + } + if(!containLine){ + CallerLogger.d(TAG,"服务端正在执行${lineId},线路已被删除") + OchChainLogManager.writeChainLogDb("错误信息","服务端正在执行${lineId},线路已被删除") + return@flatMap Observable.just(false) + } + // endregion + + // region 检查站点 包括个数和是否包含 currentSite + val siteWithLine = SiteDb.querySiteByLineId(lineId) + if(siteWithLine.isNullOrEmpty()||siteWithLine.size<2){ + CallerLogger.d(TAG,"服务端正在执行${taskId},线路站点错误${siteWithLine}") + OchChainLogManager.writeChainLogDb("错误信息","服务端正在执行${taskId},线路站点错误${siteWithLine}") + return@flatMap Observable.just(false) + } + // 正在执行的站点是否在此线路中 + var containSite = false + siteWithLine.forEach { + if (it.siteId==currentSiteId) { + containSite = true + } + } + if(!containSite){ + CallerLogger.d(TAG,"服务端正在执行${taskId},线路站点错误${siteWithLine}") + OchChainLogManager.writeChainLogDb("错误信息","服务端正在执行${taskId},${siteWithLine}站点不包含正在执行的站点:${currentSiteId}") + return@flatMap Observable.just(false) + } + // endregion + + // 恢复任务 + TaskDb.restoreTask(taskId) + + // 恢复正在执行任务表 + TaskSiteDb.restoreRunningTask(taskId,currentSiteId,leaving,lineInfo!!) + + return@flatMap loadCurrentTaskInfo() + } + }else { + // 从特定接口回复数据 + return weakNetInterface?.queryBusRoutes()?.flatMap { busRoutesResult -> + if (!busRoutesResult.sites.isNullOrEmpty() && busRoutesResult.sites.size > 1) { + val queryTaskById = TaskDb.queryTaskById(busRoutesResult.taskId.toLong()) + if (queryTaskById == null || queryTaskById.status != TaskDataBean.used) { + OchChainLogManager.writeChainLogDb( + "业务数据", + "本地没有正在运行的数据,服务器端有${busRoutesResult}" + ) + CallerLogger.d(TAG, "本地没有正在运行的数据,服务器端有${busRoutesResult}") + LineDb.saveRunningInfo( + busRoutesResult.lineId, + busRoutesResult.name, + busRoutesResult.sites.last().name + ) + TaskDb.saveRunningInfo( + busRoutesResult.lineId, + busRoutesResult.taskId, + busRoutesResult.taskTime + ) + ContraiDb.saveRunningInfo( + busRoutesResult.lineId, + busRoutesResult.csvFileMd5, + busRoutesResult.csvFileUrl, + busRoutesResult.txtFileUrl, + busRoutesResult.txtFileMd5, + busRoutesResult.contrailSaveTime + ) + BusRoutesResponse.bean2Db( + busRoutesResult.sites, + busRoutesResult.lineId.toLong(), + busRoutesResult.name, + busRoutesResult.taskId.toLong() + ) + return@flatMap loadCurrentTaskInfo() + } else { + return@flatMap Observable.just(false) + } + } + return@flatMap Observable.just(false) } - return@flatMap Observable.just(false) } } override fun queryCanUseLine(): Observable?>? { - return LineDb.queryCanUseLine() + return LineDb.queryCanUseLineRx() } override fun queryCanUserTask(lineId: Long): Observable?>? { @@ -208,7 +343,14 @@ class WeaknetRepository : ILineRepository { return TaskDb.startTask(taskId, lineId, lineName) } - override fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable? { + override fun leaveStation( + seq: Int, + siteId: Long, + taskId: Long, + lineId: Long, + taskStartTime: Long, + taskDate: Long + ): Observable? { return Observable.just(taskId) .flatMap { //开始站点: leaving false->true @@ -218,6 +360,7 @@ class WeaknetRepository : ILineRepository { "滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}" ) + CallerLogger.d(TAG,"滑动出发:task:${currentTask}__taskId:${currentTask?.taskId}") // 设置滑动出发任务 LineManager.getLineInfo { lineInfo -> EventDb.saveEventTaskLeaveSite( @@ -226,7 +369,8 @@ class WeaknetRepository : ILineRepository { it.siteId.toLong(), it.seq, taskStartTime, - lineInfo.lineName + lineInfo.lineName, + taskDate ) } @@ -235,6 +379,7 @@ class WeaknetRepository : ILineRepository { val changeInfo = "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${startStation?.name}--finalNextStationName:${endStation?.name}" OchChainLogManager.writeChainLog("滑动出发", changeInfo) + CallerLogger.d(TAG,"滑动出发:$changeInfo") // 开始任务成功 return@flatMap Observable.just(true) } @@ -264,7 +409,8 @@ class WeaknetRepository : ILineRepository { end.siteId.toLong(), end.seq, task.taskStartTime, - lineInfo.lineName + lineInfo.lineName, + task.taskDate ) } } @@ -274,6 +420,7 @@ class WeaknetRepository : ILineRepository { "到站_数据更新_error", "task:${currentTask}__taskId:${currentTask?.taskId}" ) + CallerLogger.d(TAG,"到站_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}") } // 结束站点: drivingStatus 3-2 if (currentTask != null && currentTask!!.taskId != null) { @@ -289,10 +436,12 @@ class WeaknetRepository : ILineRepository { "到站_数据更新_error", "task:${currentTask}__taskId:${currentTask?.taskId}" ) + CallerLogger.d(TAG,"到站_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}") } val changeInfo = "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${start.name}--finalNextStationName:${end.name}" OchChainLogManager.writeChainLog("到站", changeInfo) + CallerLogger.d(TAG,"到站:$changeInfo") } return@flatMap Observable.just(true) } @@ -306,7 +455,7 @@ class WeaknetRepository : ILineRepository { if (task.taskId!=null&&task.lineId!=null) { TaskDb.endTask(task.taskId!!) LineManager.getLineInfo { lineInfo -> - EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName) + EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName,task.taskDate?:0L) } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java index 3d8ce68708..2ebcdcfcd8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java @@ -7,7 +7,7 @@ import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.weaknet.bean.request.ShuttleEventRequest; import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.weaknet.repository.db.bean.LineDataBean; +import com.mogo.och.data.db.bean.LineDataBean; import com.mogo.och.weaknet.repository.db.bean.TaskDataBean; import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest; import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse; diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java index 5d0726f457..9d19d0e2c9 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java @@ -1,7 +1,7 @@ package com.mogo.och.weaknet.repository.net.bean.response; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.weaknet.repository.db.bean.LineDataBean; +import com.mogo.och.data.db.bean.LineDataBean; import java.util.List; diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt index 832e005094..96f078184f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt @@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.net.NetInterface import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt index e8532328c8..f211cc3c08 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt @@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.net.NetInterface import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt index ce31bed2b5..4939892a13 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt @@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.net.NetInterface import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt index 605a791148..196819f7e6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt @@ -6,7 +6,6 @@ import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.manager.cache.OchSPManager import com.mogo.och.common.module.network.OchCommonNet import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.network.OchCommonSubscribeImpl @@ -14,7 +13,6 @@ import com.mogo.och.common.module.network.interceptor.transformIoTry import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.bean.request.ShuttleEventRequest -import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean import com.mogo.och.weaknet.repository.net.NetInterface import io.reactivex.Observable diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java new file mode 100644 index 0000000000..8b6100aa34 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java @@ -0,0 +1,69 @@ +package com.mogo.och.weaknet.repository.net.project.saas.scheduled; + +import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest; +import com.mogo.och.weaknet.bean.request.ShuttleEventRequest; +import com.mogo.och.weaknet.bean.response.BusRoutesResponse; +import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse; +import com.mogo.och.weaknet.bean.response.WriteOffCountResponse; +import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest; +import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean; +import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse; + +import io.reactivex.Observable; +import retrofit2.http.Body; +import retrofit2.http.GET; +import retrofit2.http.Header; +import retrofit2.http.Headers; +import retrofit2.http.POST; +import retrofit2.http.Query; + +/** + * 小巴车相关接口 + * + * @author tongchenfei + *

+ * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072 + */ +public interface ISaasScheduledApiService { + + /** + * 查询当前运行任务 + * + * @param request 请求参数 + * @return 接口返回数据 + */ + @Headers( {"Content-Type:application/json;charset=UTF-8"} ) + @POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" ) + Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request); + + /** + * 查询当前站点核销的人数 + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @POST("/och-vehicle/api/car/v2/task/site/writeOffCount") + Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Body WriteOffCountReqBean writeOffCountReqBean); + + /** + * 同步核销接口 + */ + @Headers({"Content-type:application/json;charset=UTF-8"}) + @POST("/och-vehicle/api/car/v2/device/writeOff") + Observable saaswriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request); + + /** + * 同步 线路、站点、任务、自驾轨迹信息 + */ + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @GET("/och-vehicle/cabin/queryCarExecutableTaskList") + Observable queryCarExecutableTaskList(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); + + /** + * 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端 + */ + @Headers( {"Content-Type:application/json;charset=UTF-8"} ) + @POST( "/och-vehicle/cabin/reportCabinEvent" ) + Observable reportCabinEvent(@Header ("appId") String appId, @Header("ticket") String ticket, @Body ShuttleEventRequest request); + +} + diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt new file mode 100644 index 0000000000..c696fefd21 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt @@ -0,0 +1,81 @@ +package com.mogo.och.weaknet.repository.net.project.saas.scheduled + +import android.content.Context +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.cache.OchSPManager +import com.mogo.och.common.module.network.OchCommonNet +import com.mogo.och.common.module.network.OchCommonServiceCallback +import com.mogo.och.common.module.network.OchCommonSubscribeImpl +import com.mogo.och.common.module.network.interceptor.transformIoTry +import com.mogo.och.data.bean.BusRoutesResult +import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest +import com.mogo.och.weaknet.bean.request.ShuttleEventRequest +import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse +import com.mogo.och.weaknet.repository.net.NetInterface +import io.reactivex.Observable + +/** + * @author: wangmingjun + * @date: 2021/10/20 + */ +object SaasScheduledServiceManager: NetInterface { + + private val mService: ISaasScheduledApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( + ISaasScheduledApiService::class.java + ) + + + /** + * 查询小巴车当前任务 + */ + override fun queryBusRoutes(): Observable? { + //获取当前高德坐标 + return mService.queryBusRoutes( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + BusQueryLineStationsRequest() + ) .transformIoTry() + .flatMap(OchCommonNet("queryBusRoutes",false)) + .flatMap { + Observable.just(it.data?:BusRoutesResult()) + } + } + + /** + * 同步 线路、站点、任务、自驾轨迹信息 + */ + override fun queryCarExecutableTaskList( + context: Context, + callback: OchCommonServiceCallback? + ) { + mService.queryCarExecutableTaskList( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + OchSPManager.getSn() + ) + .transformIoTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryCarExecutableTaskList")) + } + + /** + * 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端 + */ + override fun reportCabinEvent( + context: Context, + data: ShuttleEventRequest, + callback: OchCommonServiceCallback?, + ) { + mService.reportCabinEvent( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + data, + ) + .subscribe(OchCommonSubscribeImpl(context, callback, "reportCabinEvent")) + } + + +} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt index 51fefe31db..56c053050d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt @@ -1,14 +1,15 @@ package com.mogo.och.weaknet.repository.writeoff.impl import android.content.Context -import com.mogo.commons.AbsMogoApplication import com.mogo.commons.env.Project import com.mogo.commons.env.ProjectUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.Product import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.cache.OchSPManager import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg import com.mogo.och.common.module.utils.DateTimeUtil @@ -24,15 +25,14 @@ import com.mogo.och.weaknet.repository.net.exception.NetException import com.mogo.och.weaknet.repository.net.NetInterface import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager -import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager +import com.mogo.och.weaknet.repository.net.project.saas.scheduled.SaasScheduledServiceManager import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers class WriteOffCacheRepository : IWriteOffRepository { - private val TAG = "ShuttleSaasRepository" - private val context = AbsMogoApplication.getApp() + private val TAG = "${M_BUS}ShuttleSaasRepository" private var weakNetInterface: NetInterface?=null get() { @@ -40,7 +40,7 @@ class WriteOffCacheRepository : IWriteOffRepository { when (ProjectUtils.getProjectType()) { Project.SAAS -> { if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { - field = SaasShuttleServiceManager + field = SaasScheduledServiceManager }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { field = SaasBusServiceManager } @@ -124,7 +124,7 @@ class WriteOffCacheRepository : IWriteOffRepository { } } // 3、校验 bus和shuttle - if (LoginStatusManager.getBusInessType().name.lowercase()!=it.typeBiz) { + if (LoginStatusManager.getBusInessType()!=Product.valueOf(it.typeBiz)) { throw DataException(1005,"车辆未登录、或没有任务") } // 4 二维码1分钟失效 @@ -163,10 +163,19 @@ class WriteOffCacheRepository : IWriteOffRepository { if (start?.siteId?.toLong() == it.startStationId) { siteId = it.startStationId } else { - throw DataException( - 6003, - "车票站点信息与当前车辆执行任务的站点信息不符合" - ) + throw DataException(6003, "车票站点信息与当前车辆执行任务的站点信息不符合") + } + } else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)){ + val (start, _) = LineManager.getStations() + siteId = start?.siteId?.toLong() ?: 0 + // 8、校验起始站点 + val task = LineModel.currentTask + if(task==null){ + throw DataException(6004, "车辆未执行任务") + }else{ + if (task.taskId!=it.shiftsId) { + throw DataException(6005, "车票站点信息与当前车辆执行任务信息不符合") + } } } } else { @@ -178,6 +187,7 @@ class WriteOffCacheRepository : IWriteOffRepository { addWrite.bookingTime = it.bookingTime addWrite.type = it.type addWrite.taskId = LineModel.currentTask?.taskId + addWrite.taskDate = LineModel.currentTask?.taskDate addWrite.lineId = lineId addWrite.siteId = siteId addWrite.availableTimes = it.availableTimes @@ -224,6 +234,9 @@ class WriteOffCacheRepository : IWriteOffRepository { ?.observeOn(AndroidSchedulers.mainThread()) } + /** + * 小程序核销的乘客插入到计算核销人数的包中 + */ override fun writeOffEvent4Socket(passenger: WriteOffPassenger) { val addWrite = WriteOffDataBean() //addWrite.expiryTime = it.expiryTime diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt index f9deca8196..1ce1ebd7a0 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt @@ -7,6 +7,7 @@ import com.mogo.commons.env.ProjectUtils 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 +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.WaitUploadLine @@ -26,7 +27,7 @@ import io.reactivex.schedulers.Schedulers class WriteOffNormallRepository: IWriteOffRepository { - private val TAG = "WriteOffNormallRepository" + private val TAG = "${M_BUS}WriteOffNormallRepository" private var normalNetInterface: NetInterface?=null get() { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt deleted file mode 100644 index 4390ae6de0..0000000000 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt +++ /dev/null @@ -1,99 +0,0 @@ -package com.mogo.och.weaknet.ui - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.widget.ImageView -import android.widget.LinearLayout -import androidx.core.content.ContextCompat -import com.mogo.och.common.module.utils.BlinkAnimationUtil -import com.mogo.och.shuttle.weaknet.R -import kotlinx.android.synthetic.main.shuttle_weak_stations_common_item.view.* - -/** - * @author: wangmingjun - * @date: 2022/9/15 - */ -class BusStationCommonItem @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr){ - - init { - LayoutInflater.from(context).inflate(R.layout.shuttle_weak_stations_common_item,this,true) - } - - fun setStationName(name: String){ - busStationNameTv.text = name - } - - fun setStationNameColor(color: Int){ - busStationNameTv.setTextColor(color) - } - - fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站 - BlinkAnimationUtil.clearAnimation(busCircleIv) - when (type) { - 0 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_grey_bus - ) - ) - } - 1 -> { - busCircleIvBg.visibility = VISIBLE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_green_bus - ) - ) - BlinkAnimationUtil.setAnimation(busCircleIv) - } - 2 -> { - busCircleIvBg.visibility = GONE - busCircleIv.setImageDrawable( - ContextCompat.getDrawable( - context, - R.drawable.icon_point_blue_bus - ) - ) - } - - } - } - - fun getCircleImageView() : ImageView{ - return busCircleIv - } - - fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站 - when(type){ - 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus) - 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus) - 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus) - } - - } - - fun setStationTag(tag: String){ // 0:起 1:终 - if (tag.isNullOrEmpty()){ - busTagTxt.visibility = GONE - }else{ - busTagTxt.text = tag - busTagTxt.visibility = VISIBLE - } - } - - fun showOrHideStationArrowBg(isShow:Boolean){ - if (isShow){ - busArrowBg.visibility = VISIBLE - }else{ - busArrowBg.visibility = GONE - } - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt index 6731c0d998..796a6cef28 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt @@ -6,20 +6,21 @@ import android.view.LayoutInflater import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.wigets.WindowRelativeLayout import com.mogo.och.shuttle.weaknet.R -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.loading_biz import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichLine import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichTask import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.taskRunning -class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback { +class SwitchBizView: WindowRelativeLayout, SwtichBizModel.SwtichLineViewCallback { constructor(context: Context?) : super(context) @@ -32,10 +33,10 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac companion object { - const val TAG = "SwitchBizView" + const val TAG = M_BUS+"SwitchBizView" } - private var viewModel: SwtichBizeModel?=null + private var viewModel: SwtichBizModel?=null private var queryTimeout: Disposable? = null @@ -50,16 +51,27 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac } override fun onAttachedToWindow() { + CallerLogger.d(TAG,"SwitchBizView:onAttachedToWindow") super.onAttachedToWindow() viewModel = findViewTreeViewModelStoreOwner()?.let { - ViewModelProvider(it).get(SwtichBizeModel::class.java) + ViewModelProvider(it)[SwtichBizModel::class.java] } - viewModel?.setDistanceCallback(this) + viewModel?.setSwitchBizCallback(this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerLogger.d(TAG,"SwitchBizView:onDetachedFromWindow") } var startLoading = System.currentTimeMillis() - // 展示loading页面 + /** + * 展示loading页面 + * 1、 + * 2、第一次加载页面时展示 + * 3、 + */ override fun showLoadingView(){ startLoading = System.currentTimeMillis() CallerLogger.d(TAG,"开始展示 lading 时间:${startLoading}") @@ -68,11 +80,11 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac swtichTask.visibility = GONE queryTimeout = RxUtils.createSubscribe(10_1000) { OchChainLogManager.writeChainLog("Loading超时","loading 展示了10s") + CallerLogger.d(TAG,"Loading超时:loading 展示了10s") viewModel?.queryRuningTask() } } - /** * 初始化数据 */ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt similarity index 73% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt index aec2d1be72..7de0034dcb 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt @@ -1,49 +1,49 @@ package com.mogo.och.weaknet.ui.bizswitch import androidx.lifecycle.ViewModel -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.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.model.OrderModel -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.ui.switchtask.SwitchTaskView -import com.mogo.och.weaknet.ui.switchtask.SwitchTaskView.Companion +import com.mogo.och.data.db.bean.LineDataBean /** * @author XuXinChao * @description BadCase录包管理页面 * @since: 2022/12/15 */ -class SwtichBizeModel : ViewModel(), IBusLinesCallback { +class SwtichBizModel : ViewModel(), IBusLinesCallback { - private val TAG = SwtichBizeModel::class.java.simpleName + private val TAG = M_BUS + SwtichBizModel::class.java.simpleName private var viewCallback: SwtichLineViewCallback? = null override fun onCleared() { + d(TAG, "onCleared") LineModel.setBusLinesCallback(TAG, null) } - fun setDistanceCallback(viewCallback: SwtichLineViewCallback) { - this.viewCallback = viewCallback + fun setSwitchBizCallback(viewCallback: SwtichLineViewCallback) { + d(TAG, "setSwitchBizCallback") LineModel.setBusLinesCallback(TAG, this) + this.viewCallback = viewCallback this.viewCallback?.showLoadingView() ThreadUtils.getIoPool().execute { OrderModel.queryBusRoutes() } } - fun queryRuningTask(){ + fun queryRuningTask() { ThreadUtils.getIoPool().execute { OrderModel.queryBusRoutes() } } fun loadingSwitchTask(lineInfo: LineDataBean) { - d(LineModel.TAG, "loadingSwitchTask 查询线路的任务线路信息:${lineInfo}") + d(TAG, "loadingSwitchTask 查询线路的任务线路信息:${lineInfo}") viewCallback?.showSwitchTaskByLineInfo(lineInfo) } @@ -76,12 +76,12 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback { override fun onNoRunningTask() { this.viewCallback?.loadLineData() - CallerLogger.d(TAG,"没有任务去加载线路") + d(TAG, "没有任务去加载线路") } override fun onRunningTask() { this.viewCallback?.loadRunningTask() - CallerLogger.d(TAG,"有任务去加载正在执行的任务") + d(TAG, "有任务去加载正在执行的任务") } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt index ec938a5400..03c2f0e057 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt @@ -4,19 +4,15 @@ import androidx.lifecycle.LifecycleOwner import com.mogo.commons.AbsMogoApplication import com.mogo.commons.mvp.Presenter 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 import com.mogo.och.common.module.biz.login.ILoginCallback import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager import com.mogo.och.weaknet.model.OrderModel import com.mogo.och.weaknet.util.BusTrajectoryManager -import mogo_msg.MogoReportMsg.MogoReportMessage /** * 网约车小巴 @@ -25,12 +21,6 @@ import mogo_msg.MogoReportMsg.MogoReportMessage */ class BusPresenter(view: ShuttleFragment?) : Presenter(view), ILoginCallback { - init { - //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口 - OrderModel.init() - OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) - } - override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) initModelListener() @@ -38,31 +28,31 @@ class BusPresenter(view: ShuttleFragment?) : Presenter(view), override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - OrderModel.release() + releaseListener() } - fun initModelListener() { + private fun initModelListener() { + OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) LoginStatusManager.addListener(TAG, this) + OrderModel.init() } - fun releaseListener() { + private fun releaseListener() { OCHAdasAbilityManager.getInstance().release() - LoginStatusManager.removeListener(TAG) + OrderModel.release() } override fun onStatusChange(currentStatus: LoginStatusEnum) { - d(SceneConstant.M_BUS + TAG, " loginStatus =" + isLogin()) - if (isLogin()) { - //OrderModel.queryBusRoutes() - } else { - BusTrajectoryManager.getInstance().stopTrajReqLoop() + d(TAG, " loginStatus =" + isLogin()) + if (!isLogin()) { + BusTrajectoryManager.stopTrajReqLoop() OrderModel.closeBeautificationMode() } } companion object { - private const val TAG = "BusPresenter" + private const val TAG = M_BUS+"BusPresenter" } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt index 51779c99f7..2e952e14b6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt @@ -14,7 +14,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListener import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.och.common.module.wigets.map.drawline.LineView +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.och.bridge.ui.drawline.LineView import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.repository.RepositoryManager import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager @@ -109,7 +110,7 @@ class ShuttleFragment : MvpFragment() { if (mPresenter != null) { mPresenter!!.onDestroy(this) } - if(ProjectUtils.isSaas()&& AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + if(RepositoryManager.supportDb()){ CallerEagleBaseFunctionCall4OchManager.removeToolkitByTag(mutableListOf(runningTaskGateWay)) } CallerEagleBaseFunctionCall4OchManager.removeToolKitDefaultItemClickListener(lineView) @@ -124,6 +125,6 @@ class ShuttleFragment : MvpFragment() { * END */ companion object { - private const val TAG = "BaseBusTabFragment" + private const val TAG = "${M_BUS}BaseBusTabFragment" } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt index d8dbf39fa0..1f8ec7466b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.kotlin.onClick 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.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.ImageUtils import com.mogo.och.common.module.utils.ResourcesUtils @@ -21,7 +22,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils class QrOpenView : AppCompatImageView { - private val TAG = "QrOpenView" + private val TAG = M_BUS + "QrOpenView" constructor(context: Context) : super(context) @@ -42,7 +43,7 @@ class QrOpenView : AppCompatImageView { onClick { d( - SceneConstant.M_BUS + TAG, "changeOverview Event qrcode,sn = " + TAG, "changeOverview Event qrcode,sn = " + SharedPrefsMgr.getInstance().sn ) val qrUrl = String.format( @@ -64,7 +65,7 @@ class QrOpenView : AppCompatImageView { .cancelStr(ResourcesUtils.getString(R.string.qr_cancel)) .qrBm(bmQr).build(ActivityUtils.getTopActivity())!!.show() } else { - d(SceneConstant.M_BUS + TAG, "bmQr = null ") + d(TAG, "bmQr = null ") } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt index b3487fa0ce..21a652ae05 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt @@ -8,10 +8,10 @@ import androidx.appcompat.widget.AppCompatTextView import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil.Callback import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.weaknet.ui.switchline.SwitchLineAdapter.SwitchLineViewHolder import com.mogo.och.shuttle.weaknet.R -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.data.db.bean.LineDataBean import me.jessyan.autosize.AutoSizeCompat /** @@ -22,7 +22,7 @@ class SwitchLineAdapter( val mData: MutableList ) : RecyclerView.Adapter() { companion object{ - const val TAG = "SwitchLineAdapter" + const val TAG = M_BUS+"SwitchLineAdapter" } // RecyclerView设置点击事件 private var mItemClickListener: LineItemClickListener? = null diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt index 81f25f01bf..7f7bedcdff 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt @@ -8,12 +8,9 @@ import android.view.LayoutInflater import android.view.View import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner -import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.commons.env.ProjectUtils -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.loop.BizLoopManager @@ -22,11 +19,9 @@ import com.mogo.och.common.module.wigets.WindowRelativeLayout import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager import com.mogo.och.common.module.wigets.commonview.ErrorView import com.mogo.och.shuttle.weaknet.R -import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.repository.RepositoryManager -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel -import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.no_order_data_view +import com.mogo.och.data.db.bean.LineDataBean +import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.aciv_refresh_task import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.actv_last_refresh_date import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.include_empty @@ -48,11 +43,11 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba companion object { - const val TAG = "SwitchLineView" + const val TAG = "${M_BUS}SwitchLineView" } private var viewModel:SwtichLineModel?=null - private var viewbizModel:SwtichBizeModel?=null + private var viewbizModel:SwtichBizModel?=null private lateinit var mAdapter: SwitchLineAdapter @@ -81,7 +76,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba //设置item 点击事件 mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{ override fun onItemClick(data: LineDataBean) { - CallerLogger.d(LineModel.TAG,"选择线路 线路信息:${data}") + CallerLogger.d(TAG,"选择线路 线路信息:${data}") viewbizModel?.loadingSwitchTask(data) } }) @@ -124,7 +119,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba ViewModelProvider(it).get(SwtichLineModel::class.java) } viewbizModel = findViewTreeViewModelStoreOwner()?.let { - ViewModelProvider(it).get(SwtichBizeModel::class.java) + ViewModelProvider(it).get(SwtichBizModel::class.java) } viewModel?.setDistanceCallback(this) @@ -140,7 +135,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba } - override fun onBusLinesChange(data: MutableList?,show:Boolean) { + override fun onBusLinesChange(data: MutableList?, show:Boolean) { if (data.isNullOrEmpty()) { showNoData(true) }else{ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt index 8c079a44c1..20c95550ae 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt @@ -1,19 +1,16 @@ package com.mogo.och.weaknet.ui.switchline import androidx.lifecycle.ViewModel -import com.mogo.commons.env.ProjectUtils import com.mogo.commons.storage.SharedPrefsMgr -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 import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.model.LineModel.EXECUTABLECHANGETIME import com.mogo.och.weaknet.repository.RepositoryManager -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -26,7 +23,7 @@ import io.reactivex.schedulers.Schedulers */ class SwtichLineModel : ViewModel(), IBusLinesCallback { - private val TAG = SwtichLineModel::class.java.simpleName + private val TAG = M_BUS+SwtichLineModel::class.java.simpleName private var viewCallback:SwtichLineViewCallback?=null @@ -34,7 +31,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback { override fun onCleared() { - CallerLogger.d(TAG,"onCleared") + d(TAG,"onCleared") LineModel.setBusLinesCallback(TAG,null) } @@ -44,7 +41,6 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback { } fun queryBusLines(loading:Boolean) { - LineModel.queryBusLines() RxUtils.disposeSubscribe(endTaskDisposable) RepositoryManager.queryCanUseLine() ?.subscribeOn(Schedulers.io()) @@ -52,20 +48,20 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback { ?.subscribe(object : Observer?> { override fun onSubscribe(d: Disposable) { endTaskDisposable = d - d(LineModel.TAG, "queryBusLines onSubscribe") + d(TAG, "queryBusLines onSubscribe") } override fun onError(e: Throwable) { - d(LineModel.TAG, "queryBusLines onError${e.printStackTrace()}") + d(TAG, "queryBusLines onError${e.printStackTrace()}") viewCallback?.onBusLinesChangeFaile() } override fun onComplete() { - d(LineModel.TAG, "queryBusLines onComplete") + d(TAG, "queryBusLines onComplete") } override fun onNext(data: List) { - d(LineModel.TAG, "queryBusLines onNext ${data}") + d(TAG, "queryBusLines onNext ${data}") val tempData = data.distinctBy { it.lineId } viewCallback?.onBusLinesChange(tempData.toMutableList(),loading) if(RepositoryManager.supportDb()) { @@ -93,7 +89,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback { interface SwtichLineViewCallback{ fun startTaskState(success: Boolean) - fun onBusLinesChange(data: MutableList?,show:Boolean) + fun onBusLinesChange(data: MutableList?, show:Boolean) fun refreshDate(formatLongToString: String?) fun onBusLinesChangeFaile() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt index f112ccec8a..af90f37929 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt @@ -8,15 +8,15 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner import androidx.recyclerview.widget.GridLayoutManager import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.wigets.WindowRelativeLayout import com.mogo.och.shuttle.weaknet.R -import com.mogo.och.weaknet.model.LineModel -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean -import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel +import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel import kotlinx.android.synthetic.main.shuttle_weak_error_view.view.tv_error_msg import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actvLineEndStationName import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actv_cancle_task @@ -42,11 +42,11 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba companion object { - const val TAG = "BadCaseManagerView" + const val TAG = M_BUS+"BadCaseManagerView" } private var viewModel:SwtichTaskModel?=null - private var viewbizModel:SwtichBizeModel?=null + private var viewbizModel:SwtichBizModel?=null private lateinit var mAdapter: SwitchLineTaskAdapter @@ -93,7 +93,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba } tv_error_msg.onClick { viewModel?.tasksBelongLine?.let { - d(LineModel.TAG,"刷新线路 线路信息:${it}") + d(TAG,"刷新线路 线路信息:${it}") viewbizModel?.loadingSwitchTask(it) } } @@ -106,13 +106,13 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba ViewModelProvider(it).get(SwtichTaskModel::class.java) } viewbizModel = findViewTreeViewModelStoreOwner()?.let { - ViewModelProvider(it).get(SwtichBizeModel::class.java) + ViewModelProvider(it).get(SwtichBizModel::class.java) } viewModel?.setDistanceCallback(this) } fun queryTaskByLineInfo(lineInfo: LineDataBean) { - d(LineModel.TAG, "queryTaskByLineInfo 查询线路的任务线路id:${lineInfo}") + d(TAG, "queryTaskByLineInfo 查询线路的任务线路id:${lineInfo}") viewModel?.queryBusLineTasksById(lineInfo) busLineName.text = lineInfo.lineName actvLineEndStationName.text = "往${lineInfo.endStationName}方向" diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt index 4a5691b126..c1654f7f92 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt @@ -2,6 +2,7 @@ package com.mogo.och.weaknet.ui.switchtask import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.manager.loop.BizLoopManager @@ -9,7 +10,7 @@ import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.repository.RepositoryManager -import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.data.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers @@ -23,7 +24,7 @@ import io.reactivex.schedulers.Schedulers */ class SwtichTaskModel : ViewModel(), IBusLinesCallback { - private val TAG = SwtichTaskModel::class.java.simpleName + private val TAG = M_BUS+SwtichTaskModel::class.java.simpleName private var viewCallback:SwtichLineViewCallback?=null @@ -44,27 +45,27 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback { fun queryBusLineTasksById(lineInfo: LineDataBean) { tasksBelongLine = lineInfo RxUtils.disposeSubscribe(searchTaskBylineIdDisposable) - d(LineModel.TAG, "queryBusLineTasksById 查询线路的任务线路id:${tasksBelongLine}") + d(TAG, "queryBusLineTasksById 查询线路的任务线路id:${tasksBelongLine}") RepositoryManager.queryCanUserTask(lineInfo.lineId?:-1L) ?.subscribeOn(Schedulers.io()) ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(object : Observer?> { override fun onSubscribe(d: Disposable) { searchTaskBylineIdDisposable = d - d(LineModel.TAG, "queryBusLineTasksById onSubscribe") + d(TAG, "queryBusLineTasksById onSubscribe") } override fun onError(e: Throwable) { - d(LineModel.TAG, "queryBusLineTasksById onError${e.printStackTrace()}") + d(TAG, "queryBusLineTasksById onError${e.printStackTrace()}") onBusLineTasksError() } override fun onComplete() { - d(LineModel.TAG, "queryBusLineTasksById onComplete") + d(TAG, "queryBusLineTasksById onComplete") } override fun onNext(data: List) { - d(LineModel.TAG, "queryBusLineTasksById onNext ${data}") + d(TAG, "queryBusLineTasksById onNext ${data}") onBusLineTasks(data.toMutableList()) RxUtils.disposeSubscribe(searchTaskBylineIdDisposable) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt index 98faa1e985..22f631e6a0 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt @@ -7,10 +7,11 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS class TaskBottomDecoration(val distance: Int) : RecyclerView.ItemDecoration() { - private val TAG = "TaskBottomDecoration" + private val TAG = M_BUS + "TaskBottomDecoration" override fun getItemOffsets( outRect: Rect, @@ -19,22 +20,26 @@ class TaskBottomDecoration(val distance: Int) : RecyclerView.ItemDecoration() { state: RecyclerView.State ) { val pos = parent.getChildAdapterPosition(view) + /** * 通过设置Item左右边距实现第一个左侧和最后一个右侧设置边距,确保显示的视图位于屏幕中间 */ val itemCount = parent.adapter!!.itemCount val layoutManager = parent.layoutManager - if(layoutManager is GridLayoutManager){ + if (layoutManager is GridLayoutManager) { var lastPathCount = itemCount % layoutManager.spanCount - //2 5 % 3 - CallerLogger.d(TAG,"位置---${pos}_lastPathCount:${lastPathCount}_____itemCount:${itemCount}__spanCount:${layoutManager.spanCount}") - if(lastPathCount==0){ + //2 5 % 3 + CallerLogger.d( + TAG, + "位置---${pos}_lastPathCount:${lastPathCount}_____itemCount:${itemCount}__spanCount:${layoutManager.spanCount}" + ) + if (lastPathCount == 0) { lastPathCount = layoutManager.spanCount } - if(pos(R.id.iv_toolkit_item_head).setImageResource(R.drawable.bus_running_task_history) - findViewById(R.id.iv_toolkit_item_title).text = ResourcesUtils.getString(R.string.bus_running_tasked_gateway) + findViewById(R.id.iv_toolkit_item_title).text = + ResourcesUtils.getString(R.string.bus_running_tasked_gateway) } override fun onAttachedToWindow() { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt index c6fc68eadd..b12ff6d343 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt @@ -22,20 +22,20 @@ import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.eagle.core.utilcode.reminder.Reminder import com.mogo.eagle.core.utilcode.reminder.api.impl.PopupWindowReminder import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView import me.jessyan.autosize.utils.AutoSizeUtils import kotlin.math.abs -object RunningTaskManager : LifecycleEventObserver{ +object RunningTaskManager : LifecycleEventObserver { - const val TAG = "BadCase" + const val TAG = M_BUS + "RunningTaskManager" private var hideFloat: (() -> Unit)? = null - fun init(context: Context) { + fun init() { } /** @@ -64,9 +64,21 @@ object RunningTaskManager : LifecycleEventObserver{ } - fun enqueuePop(content: View, width: Int, height: Int, key: String = "", startX: Int = 0, startY: Int = 0, gravity: Int = Gravity.START, onOuterViewClicked:((focus: View) -> Unit)? = null, isOverride: Boolean = false, isFocusable: Boolean = true): () -> Unit { - val topActivity = ActivityUtils.getTopActivity() - val activity = (topActivity as? FragmentActivity) ?: throw IllegalStateException("please use Activity to trigger pop show.") + fun enqueuePop( + content: View, + width: Int, + height: Int, + key: String = "", + startX: Int = 0, + startY: Int = 0, + gravity: Int = Gravity.START, + onOuterViewClicked: ((focus: View) -> Unit)? = null, + isOverride: Boolean = false, + isFocusable: Boolean = true + ): () -> Unit { + val topActivity = ActivityUtils.getTopActivity() + val activity = (topActivity as? FragmentActivity) + ?: throw IllegalStateException("please use Activity to trigger pop show.") val isImmersiveMode = BarUtils.isImmersiveMode(activity) var tempReminder: PopupWindowReminder? = null activity.lifecycleScope.launchWhenResumed { @@ -87,16 +99,18 @@ object RunningTaskManager : LifecycleEventObserver{ return@setTouchInterceptor false } - when(event.actionMasked) { - MotionEvent.ACTION_DOWN -> { + when (event.actionMasked) { + MotionEvent.ACTION_DOWN -> { x = event.x y = event.y } + MotionEvent.ACTION_MOVE -> { val deltaX = event.x - x val deltaY = event.y - y isClicked = !(abs(deltaX) > touchSlop || abs(deltaY) > touchSlop) } + MotionEvent.ACTION_UP -> { if (isClicked) { isClicked = false @@ -130,6 +144,7 @@ object RunningTaskManager : LifecycleEventObserver{ override fun show() { pop.showAtLocation(activity.window.decorView, gravity, startX, startY) } + override fun isOverride(): Boolean = isOverride } tempReminder = reminder @@ -141,6 +156,4 @@ object RunningTaskManager : LifecycleEventObserver{ } - - } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt index aa5ebea43d..be9de0da6e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.wigets.WindowRelativeLayout @@ -23,24 +24,33 @@ import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.upload_btn_ import me.jessyan.autosize.utils.AutoSizeUtils -class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.RunningTaskViewCallback { +class RunningTaskManagerView : WindowRelativeLayout, RunningTastViewModel.RunningTaskViewCallback { 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) : super( + context, + attributeSet, + defStyleAttr + ) - constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) + constructor( + context: Context?, + attributeSet: AttributeSet, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attributeSet, defStyleAttr, defStyleRes) companion object { - const val TAG = "BadCaseManagerView" + const val TAG = M_BUS + "RunningTaskManagerView" } - private var clickListener:ClickListener?=null - private var viewModel:RunningTastViewModel?=null + private var clickListener: ClickListener? = null + private var viewModel: RunningTastViewModel? = null private lateinit var mAdapter: RunningTaskAdapter private lateinit var linearLayoutManager: WrapContentLinearLayoutManager @@ -50,7 +60,7 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running initView() } - private fun initView(){ + private fun initView() { //关闭BadCase管理窗口 ivTaskRunningClose.setOnClickListener { clickListener?.onClose() @@ -90,9 +100,14 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running override fun onVisibilityAggregated(isVisible: Boolean) { super.onVisibilityAggregated(isVisible) - if(isVisible){ + if (isVisible) { viewModel?.queryNewData() - actvCurrentDate.setText(DateTimeUtil.formatLongToString(System.currentTimeMillis(),DateTimeUtil.MM_dd_HH_mm_china)) + actvCurrentDate.setText( + DateTimeUtil.formatLongToString( + System.currentTimeMillis(), + DateTimeUtil.MM_dd_HH_mm_china + ) + ) } } @@ -102,12 +117,12 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running override fun showData(data: MutableList) { mAdapter.setDataList(data) - if(data.isEmpty()){ + if (data.isEmpty()) { rvDataLiet.visibility = GONE no_order_data_view.visibility = VISIBLE aciv_show_data.visibility = GONE upload_btn_commit.visibility = GONE - }else{ + } else { rvDataLiet.visibility = VISIBLE no_order_data_view.visibility = GONE aciv_show_data.visibility = VISIBLE @@ -116,12 +131,13 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running } override fun showUpdating(isupload: Boolean) { - if(isupload){ + if (isupload) { upload_btn_commit_progress.visibility = VISIBLE upload_btn_commit_title.text = "上传中" - }else{ + } else { upload_btn_commit_progress.visibility = GONE - upload_btn_commit_title.text = ResourcesUtils.getString(R.string.bus_running_task_upload) + upload_btn_commit_title.text = + ResourcesUtils.getString(R.string.bus_running_task_upload) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt index 42d144c1ef..f2ee48c88b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt @@ -2,6 +2,7 @@ package com.mogo.och.weaknet.ui.taskrunned import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.weaknet.bean.WaitUploadLine @@ -16,42 +17,42 @@ import io.reactivex.schedulers.Schedulers * @description BadCase录包管理页面 * @since: 2022/12/15 */ -class RunningTastViewModel : ViewModel() { +class RunningTastViewModel : ViewModel() { - private val TAG = RunningTastViewModel::class.java.simpleName + private val TAG = M_BUS + RunningTastViewModel::class.java.simpleName - private var viewCallback:RunningTaskViewCallback?=null - private var subscribe: Disposable?=null + private var viewCallback: RunningTaskViewCallback? = null + private var subscribe: Disposable? = null - fun setDistanceCallback(viewCallback:RunningTaskViewCallback){ + fun setDistanceCallback(viewCallback: RunningTaskViewCallback) { this.viewCallback = viewCallback - EventModel.getUploadTaskObservable() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : Observer { - override fun onSubscribe(d: Disposable) { - subscribe = d - CallerLogger.d(TAG, "onSubscribe") - } - - override fun onError(e: Throwable) { - CallerLogger.d(TAG, "onError${e.printStackTrace()}") - } - - override fun onComplete() { - CallerLogger.d(TAG, "onComplete") - } - - override fun onNext(data: Boolean) { - CallerLogger.d(TAG, "onNext:${data}") - this@RunningTastViewModel.viewCallback?.showUpdating(data) - if(!data){ - queryNewData() + EventModel.getUploadTaskObservable() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + subscribe = d + CallerLogger.d(TAG, "onSubscribe") } - } - }) + override fun onError(e: Throwable) { + CallerLogger.d(TAG, "onError${e.printStackTrace()}") + } + + override fun onComplete() { + CallerLogger.d(TAG, "onComplete") + } + + override fun onNext(data: Boolean) { + CallerLogger.d(TAG, "onNext:${data}") + this@RunningTastViewModel.viewCallback?.showUpdating(data) + if (!data) { + queryNewData() + } + } + + }) } override fun onCleared() { @@ -88,9 +89,9 @@ class RunningTastViewModel : ViewModel() { EventModel.notifySyn() } - interface RunningTaskViewCallback{ + interface RunningTaskViewCallback { fun showData(data: MutableList) - fun showUpdating(isupload:Boolean) + fun showUpdating(isupload: Boolean) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt index f0b932e176..3a4149ae64 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt @@ -11,6 +11,7 @@ import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.R @@ -26,8 +27,8 @@ class TaskRunningAdapter( val mData: MutableList ) : RecyclerView.Adapter() { - companion object{ - const val TAG = "TaskRunningAdapter" + companion object { + const val TAG = "${M_BUS}TaskRunningAdapter" } private val argbEvaluator: ArgbEvaluator = ArgbEvaluator() @@ -40,12 +41,13 @@ class TaskRunningAdapter( fun setDataList(dataList: List) { this.mData.clear() this.mData.addAll(dataList) - if(LineModel.startStationIndex==0){ - totalHeight = 33 + (dataList.size-2)*heightItem - }else{ - totalHeight = (halfHeight+(dataList.size-1-LineModel.startStationIndex)*heightItem).toFloat() + if (LineModel.startStationIndex == 0) { + totalHeight = 33 + (dataList.size - 2) * heightItem + } else { + totalHeight = + (halfHeight + (dataList.size - 1 - LineModel.startStationIndex) * heightItem).toFloat() } - notifyItemRangeChanged(0,dataList.size,true) + notifyItemRangeChanged(0, dataList.size, true) } override fun onCreateViewHolder( @@ -64,27 +66,36 @@ class TaskRunningAdapter( holder.actvStationName.text = line.name holder.actvWriteOffCount.setSiteId(line.siteId) val startStationIndex = LineModel.startStationIndex - if (startStationIndex>0) { + if (startStationIndex > 0) { CallerLogger.d(TAG, "位置:$currentPosition 当前站${mData[startStationIndex]} ") } - if(currentPosition { + + mData.size - 1 -> { holder.acivStationHeadBig.visibility = View.VISIBLE holder.acivStationHead.visibility = View.INVISIBLE holder.acivStationHeadBig.setImageResource(R.drawable.bus_runnint_task_end) holder.middleStationBg.visibility = View.GONE holder.startStationBg.visibility = View.GONE holder.endStationBg.visibility = View.VISIBLE - if(startStationIndex==itemCount-1){ - if(line.isLeaving){ + if (startStationIndex == itemCount - 1) { + if (line.isLeaving) { holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg) - }else{ + } else { holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg) holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) } - }else{ + } else { // 上端 彩色 holder.itemView.background = null - val startColorTemp = argbEvaluator.evaluate(((totalHeight-halfHeight)/totalHeight).toFloat(),startColor,endColor) as Int - val endColorTemp = argbEvaluator.evaluate(1f,startColor,endColor) as Int + val startColorTemp = argbEvaluator.evaluate( + ((totalHeight - halfHeight) / totalHeight).toFloat(), + startColor, + endColor + ) as Int + val endColorTemp = argbEvaluator.evaluate(1f, startColor, endColor) as Int val orientation = GradientDrawable.Orientation.TOP_BOTTOM - val temp01 = GradientDrawable(orientation, intArrayOf( - startColorTemp, - endColorTemp - )) + val temp01 = GradientDrawable( + orientation, intArrayOf( + startColorTemp, + endColorTemp + ) + ) holder.endStationBg.background = temp01 } } + else -> { holder.acivStationHeadBig.visibility = View.GONE holder.acivStationHead.visibility = View.VISIBLE holder.middleStationBg.visibility = View.VISIBLE holder.startStationBg.visibility = View.GONE holder.endStationBg.visibility = View.GONE - if(currentPosition==startStationIndex){ - if(line.isLeaving){ + if (currentPosition == startStationIndex) { + if (line.isLeaving) { // 灰色 holder.middleStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF) holder.itemView.background = null - }else{ + } else { // 彩色 holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg) - val startColorTemp = argbEvaluator.evaluate(0f,startColor,endColor) as Int - val endColorTemp = argbEvaluator.evaluate(100f/totalHeight,startColor,endColor) as Int + val startColorTemp = argbEvaluator.evaluate(0f, startColor, endColor) as Int + val endColorTemp = + argbEvaluator.evaluate(100f / totalHeight, startColor, endColor) as Int val orientation = GradientDrawable.Orientation.TOP_BOTTOM - val temp01 = GradientDrawable(orientation, intArrayOf( - startColorTemp, - endColorTemp - )) + val temp01 = GradientDrawable( + orientation, intArrayOf( + startColorTemp, + endColorTemp + ) + ) holder.middleStationBg.background = temp01 } - }else if(currentPosition + LineManager.getLineInfo { lineInfo -> bus_task_running_line_name.text = lineInfo.lineName } actv_running_task_time.text = "班次:${LineModel.getTaskTime()}" - LineModel.stationList?.takeIf { it.size>=2 }?.let { + LineModel.stationList?.takeIf { it.size >= 2 }?.let { actv_running_task_last_station.text = "往${it.last().name ?: ""}" mAdapter.setDataList(it) - CallerLogger.d(TAG,"BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it") + CallerLogger.d( + TAG, + "BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it" + ) val currentStation = it.get(LineModel.startStationIndex) - if(currentStation.isLeaving){ - showArriverStationAndCompleteTask() - }else{ - showLeaveStationView() - } - if(LineModel.startStationIndex==it.size-1){ + if (currentStation.isLeaving) { + showArriverStationAndCompleteTask() + } else { + showLeaveStationView() + } + if (LineModel.startStationIndex == it.size - 1) { aciv_task_leave_station_slide_bg.setTextValue("单程结束") - }else{ + } else { aciv_task_leave_station_slide_bg.setTextValue("滑动出发") } } @@ -140,19 +151,19 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback override fun smoothScrollToPosition(position: Int) { try { rl_running_task_station_list.smoothScrollToPosition(position) - }catch (e:Exception){ - OchChainLogManager.writeChainLog("错误","e:${e.message}") + } catch (e: Exception) { + OchChainLogManager.writeChainLog("错误", "e:${e.message}") } } - fun showLeaveStationView(){ + fun showLeaveStationView() { aciv_task_leave_station_slide_bg.visibility = VISIBLE actv_arriver_station.visibility = GONE actv_complete_task.visibility = GONE } - fun showArriverStationAndCompleteTask(){ + fun showArriverStationAndCompleteTask() { aciv_task_leave_station_slide_bg.visibility = INVISIBLE actv_arriver_station.visibility = VISIBLE actv_complete_task.visibility = VISIBLE diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt index 665c35d960..d2d36650d7 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt @@ -7,30 +7,35 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.repository.RepositoryManager import com.mogo.och.weaknet.ui.taskrunning.TaskRunningAdapter class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback { - private val TAG = "ItineraryView" + private val TAG = M_BUS + "WriteOffView" 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) : super( + context, + attributeSet, + defStyleAttr + ) - private var viewModel:WriteOffViewModel? = null + private var viewModel: WriteOffViewModel? = null - private var siteId:Int = 0 + private var siteId: Int = 0 override fun onAttachedToWindow() { super.onAttachedToWindow() - if(RepositoryManager.supportWriteOff()) { + if (RepositoryManager.supportWriteOff()) { val showText = - AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count,0) + AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, 0) text = showText } viewModel = findViewTreeViewModelStoreOwner()?.let { @@ -38,12 +43,13 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback } } - private fun startListenerWriteOff(){ + private fun startListenerWriteOff() { viewModel?.setWriteOffCallback(this) } - private fun stopListenerWriteOff(){ + + private fun stopListenerWriteOff() { viewModel?.setWriteOffCallback(null) - if(RepositoryManager.supportWriteOff()) { + if (RepositoryManager.supportWriteOff()) { val showText = AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, 0) text = showText @@ -52,9 +58,9 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback override fun onVisibilityAggregated(isVisible: Boolean) { super.onVisibilityAggregated(isVisible) - if(isVisible){ + if (isVisible) { startListenerWriteOff() - }else{ + } else { stopListenerWriteOff() } } @@ -67,8 +73,8 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback } } - override fun setWriteOffCount(showText: String,siteId: Int) { - if(this.siteId==siteId) { + override fun setWriteOffCount(showText: String, siteId: Int) { + if (this.siteId == siteId) { text = showText } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt index 5f75e85334..5e1ffb6d2b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS import com.mogo.och.weaknet.model.TicketModel import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.shuttle.weaknet.R @@ -14,7 +15,7 @@ import io.reactivex.disposables.Disposable class WriteOffViewModel : ViewModel() { - private val TAG = WriteOffViewModel::class.java.simpleName + private val TAG = M_BUS + WriteOffViewModel::class.java.simpleName private var viewCallback: IwriteOffViewCallback? = null @@ -24,7 +25,7 @@ class WriteOffViewModel : ViewModel() { private var disposable: Disposable? = null - private val observer = object : Observer> { + private val observer = object : Observer> { override fun onSubscribe(d: Disposable) { disposable = d } @@ -37,24 +38,24 @@ class WriteOffViewModel : ViewModel() { } - override fun onNext(countInfo: Pair) { - viewCallback?.setWriteOffCount(countInfo.first,countInfo.second) + override fun onNext(countInfo: Pair) { + viewCallback?.setWriteOffCount(countInfo.first, countInfo.second) } } fun setWriteOffCallback(viewCallback: IwriteOffViewCallback?) { this.viewCallback = viewCallback - if(viewCallback==null){ + if (viewCallback == null) { RxUtils.disposeSubscribe(disposable) } TicketModel .getWriteOffCountObservable() .flatMap { t -> val showText = - AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t.second) - CallerLogger.d(SceneConstant.M_BUS + TAG, "显示文案:${showText}") - Observable.just(Pair(showText,t.first)) + AbsMogoApplication.getApp() + .getString(R.string.shuttle_write_off_count, t.second) + Observable.just(Pair(showText, t.first)) } .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer) @@ -67,7 +68,7 @@ class WriteOffViewModel : ViewModel() { } interface IwriteOffViewCallback { - fun setWriteOffCount(count:String,siteId: Int) + fun setWriteOffCount(count: String, siteId: Int) } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt index 9181f1468c..abc1c5fac0 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt @@ -1,6 +1,6 @@ package com.mogo.och.weaknet.util -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey +import com.mogo.och.bridge.autopilot.autopilot.IOchEventKey /** diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java deleted file mode 100644 index 8e50bfdf4f..0000000000 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.mogo.och.weaknet.util; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - -import androidx.annotation.Nullable; - -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.data.bean.ContraiInfo; -import com.mogo.och.data.bean.LineInfo; -import com.mogo.och.weaknet.constant.BusConst; -import com.mogo.och.weaknet.model.OrderModel; -import com.mogo.och.weaknet.model.LineModel; -import com.zhjt.mogo.adas.data.bean.MogoReport; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import mogo_msg.MogoReportMsg; - -/** - * Bus轨迹管理:给MEC下发用于轨迹下载的信息 - * Created on 2022/6/23 - */ -public class BusTrajectoryManager { - private static final String TAG = BusTrajectoryManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager(); - } - - public static BusTrajectoryManager getInstance() { - return SingletonHolder.INSTANCE; - } - - private AutopilotControlParameters mAutopilotControlParameters = null; - private Disposable mSendReqDisposable = null; - - public BusTrajectoryManager() { - mAutopilotControlParameters = new AutopilotControlParameters(); - } - - /** - * 同步Bus路线信息 - */ - public void syncTrajectoryInfo() { - if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){ - OchChainLogManager.writeChainLog("轨迹监控", "开始或者结束下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - }else { - OchChainLogManager.writeChainLog("轨迹监控", "开始或者结束下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - } - if (LoginStatusManager.isLogin() && LineModel.INSTANCE.getCurrentTask() != null - && LineModel.getStartStationIndex() == 0 - && !OrderModel.isGoingToNextStation()) { - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start."); - startTrajReqLoop(); - } else { - // 无路线信息or当前未在始发站 - CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop."); - stopTrajReqLoop(); - } - } - - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) { - onAutopilotGuardian(guardianInfo); - } - - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - if (guardianInfo == null || !guardianInfo.hasCode()) return; - if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START.equals(guardianInfo.getCode())) { - stopTrajReqLoop(); - } else if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS.equals(guardianInfo.getCode())) { - stopTrajReqLoop(); - } else if (MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY.equals(guardianInfo.getCode())) { - syncTrajectoryInfo(); - } - } - - private void setupAutoPilotLine() { - ContraiInfo contraiInfo = LineManager.getContraiInfo(); - LineInfo lineInfos = LineManager.getLineInfos(); - if (contraiInfo == null || lineInfos == null) { - CallerLogger.e(M_BUS + TAG, - "setupAutoPilotLine(): routesResult is null."); - return; - } else { - mAutopilotControlParameters = LineManager.INSTANCE.initAutopilotControlParameters(); - } - } - - private void clearAutoPilotLine() { - if (mAutopilotControlParameters == null) return; - mAutopilotControlParameters = null; - } - - private void startTrajReqLoop() { - if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){ - OchChainLogManager.writeChainLog("轨迹监控", "开始下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - }else { - OchChainLogManager.writeChainLog("轨迹监控", "开始下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - } - if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { - return; - } - CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()"); - setupAutoPilotLine(); - mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> { - if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { - stopTrajReqLoop(); - return; - } - CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong); - sendTrajectoryReq(); - }); - } - - public void stopTrajReqLoop() { - if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){ - OchChainLogManager.writeChainLog("轨迹监控", "结束下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - }else { - OchChainLogManager.writeChainLog("轨迹监控", "结束下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - } - if (mSendReqDisposable != null) { - CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()"); - mSendReqDisposable.dispose(); - mSendReqDisposable = null; - clearAutoPilotLine(); - } - } - - private void sendTrajectoryReq() { - if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null||mAutopilotControlParameters.autoPilotLine.getLineId()==-1){ - CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); - setupAutoPilotLine(); - if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null||mAutopilotControlParameters.autoPilotLine.getLineId()==-1){ - return; - } - } - OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+ mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutopilotControlParameters.autoPilotLine,0); - CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutopilotControlParameters)); - } -} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt new file mode 100644 index 0000000000..39eaf1b19f --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt @@ -0,0 +1,167 @@ +package com.mogo.och.weaknet.util + +import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.bridge.autopilot.line.LineManager +import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin +import com.mogo.och.bridge.autopilot.trajectory.ITrajectoryListListener +import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.weaknet.constant.BusConst +import com.mogo.och.weaknet.model.LineModel.currentTask +import com.mogo.och.weaknet.model.OrderModel.isGoingToNextStation +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.functions.Function +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +/** + * Bus轨迹管理:给MEC下发用于轨迹下载的信息 + * Created on 2022/6/23 + */ +object BusTrajectoryManager : ITrajectoryListListener { + + private val TAG: String = M_BUS + BusTrajectoryManager::class.java.simpleName + + private var mAutopilotControlParameters: AutopilotControlParameters? = null + private var mSendReqDisposable: Disposable? = null + + init { + mAutopilotControlParameters = AutopilotControlParameters() + } + + fun load() { + TrajectoryManager.addListener(TAG, this) + } + + fun release() { + TrajectoryManager.removeListener(TAG) + } + + + /** + * 同步Bus路线信息 + */ + fun syncTrajectoryInfo() { + if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) { + OchChainLogManager.writeChainLogTrajectory("轨迹监控", "开始或者结束下发轨迹 轨迹id:-1") + } else { + OchChainLogManager.writeChainLogTrajectory( + "轨迹监控", + "开始或者结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}" + ) + } + if (isLogin() && currentTask != null && !isGoingToNextStation) { + d(TAG, "syncTrajectoryInfo() start.") + startTrajReqLoop() + } else { + // 无路线信息or当前未在始发站 + d(TAG, "syncTrajectoryInfo() stop.") + stopTrajReqLoop() + } + } + + override fun onDownLoadStart(lineId: Long) { + stopTrajReqLoop() + } + + override fun onDownLoadSuccess(lineId: Long) { + stopTrajReqLoop() + } + + override fun onDownLoadReady(lineId: Long) { + syncTrajectoryInfo() + } + + private fun setupAutoPilotLine() { + if (LineManager.contraiInfo == null || LineManager.lineInfos == null) { + e( + TAG, + "下发轨迹报错:没有轨迹或线路信息 contraiInfo:${LineManager.contraiInfo} lineInfos:${LineManager.lineInfos}" + ) + } else { + mAutopilotControlParameters = LineManager.initAutopilotControlParameters() + } + } + + private fun clearAutoPilotLine() { + if (mAutopilotControlParameters == null) return + mAutopilotControlParameters = null + } + + private fun startTrajReqLoop() { + if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) { + OchChainLogManager.writeChainLogTrajectory("轨迹监控", "开始下发轨迹 轨迹id:-1") + } else { + OchChainLogManager.writeChainLogTrajectory( + "轨迹监控", + "开始下发轨迹 轨迹id:${mAutopilotControlParameters?.autoPilotLine?.lineId}" + ) + } + if (mSendReqDisposable != null && !mSendReqDisposable!!.isDisposed) { + return + } + d(TAG, "startTrajReqLoop()") + setupAutoPilotLine() + mSendReqDisposable = Observable.interval( + BusConst.LOOP_DELAY, BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS + ).map((Function { aLong: Long -> aLong + 1 })).subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()).subscribe { aLong: Long -> + if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) { + stopTrajReqLoop() + return@subscribe + } + d(TAG, "loop sendTrajectoryReq: $aLong") + sendTrajectoryReq() + } + } + + fun stopTrajReqLoop() { + if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) { + OchChainLogManager.writeChainLogTrajectory("轨迹监控", "结束下发轨迹 轨迹id:-1") + } else { + OchChainLogManager.writeChainLogTrajectory( + "轨迹监控", + "结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}" + ) + } + if (mSendReqDisposable != null) { + d(TAG, "stopTrajReqLoop()") + mSendReqDisposable!!.dispose() + mSendReqDisposable = null + clearAutoPilotLine() + } + } + + /** + * download 加orderid + * fsm 回传orderid + * 下载轨迹 添加回执超时处理 + */ + private fun sendTrajectoryReq() { + if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null || mAutopilotControlParameters!!.autoPilotLine!!.lineId == -1L) { + e(TAG, "下发轨迹报错:自己参数:${mAutopilotControlParameters}") + setupAutoPilotLine() + if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null || mAutopilotControlParameters!!.autoPilotLine!!.lineId == -1L) { + return + } + } + mAutopilotControlParameters?.let { + OchChainLogManager.writeChainLogTrajectory( + "轨迹监控", + "sendTrajectoryReq() 下发轨迹 轨迹id:${it.autoPilotLine!!.lineId}" + ) + CallerAutoPilotControlManager.sendTrajectoryDownloadReq(it.autoPilotLine!!, 0, + it.orderId) + } + + d(TAG, "sendTrajectoryReq(): " + GsonUtils.toJson(mAutopilotControlParameters)) + } + +} diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt deleted file mode 100644 index 7504d76eb1..0000000000 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt +++ /dev/null @@ -1,146 +0,0 @@ -package com.mogo.och.weaknet.view - -import android.animation.ObjectAnimator -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.MotionEvent -import androidx.appcompat.widget.AppCompatTextView -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.constraintlayout.widget.ConstraintSet -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.och.common.module.utils.ResourcesUtils -import com.mogo.och.common.module.utils.RxUtils -import com.mogo.och.shuttle.weaknet.R -import kotlinx.android.synthetic.main.shuttle_weak_task_leave_station_view.view.actv_draggable -import kotlinx.android.synthetic.main.shuttle_weak_task_leave_station_view.view.lottie_bg - -class BizLeaveStationView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { - companion object { - const val TAG = "LoadingMapStatusView" - } - - - private var initialX = 0f - private var initialY = 0f - private val tempSet = ConstraintSet() - - private var draggableButton: AppCompatTextView - - private var slideListener:SlideListener?=null - - fun setSlideListener(slideListener:SlideListener){ - this.slideListener = slideListener - } - - - init { - LayoutInflater.from(context).inflate(R.layout.shuttle_weak_task_leave_station_view, this, true) - draggableButton = findViewById(R.id.actv_draggable) - lottie_bg.setImageAssetsFolder("images") - } - - override fun onAttachedToWindow() { - super.onAttachedToWindow() - CallerLogger.d(TAG,"onAttachedToWindow") - } - - - /** - * 为该组件的触碰事件重写事件处理方法 - */ - override fun onTouchEvent(event: MotionEvent?): Boolean { - when (event?.action) { - MotionEvent.ACTION_DOWN -> { - initialX = event.rawX; - initialY = event.rawY; - } - MotionEvent.ACTION_MOVE -> { - val dx = event.rawX - initialX; - val dy = event.rawY - initialY; - initialX = event.rawX; - initialY = event.rawY; - - if(draggableButton.translationX<0){ - tempSet.clone(this) - tempSet.setTranslationX(draggableButton.id, 0f) - tempSet.applyTo(this) - }else if(draggableButton.translationX>=0&&draggableButton.translationX<=width-draggableButton.width){ - tempSet.clone(this) - val dex = (draggableButton.translationX + dx).takeIf { it>=0 }?:0f - val newDex = dex.takeIf { it<=width-draggableButton.width }?:(width-draggableButton.width).toFloat() - tempSet.setTranslationX(draggableButton.id, newDex) - tempSet.applyTo(this) - }else{ - tempSet.clone(this) - val dex = (draggableButton.translationX + dx).takeIf { it<=width-draggableButton.width }?:(width-draggableButton.width).toFloat() - tempSet.setTranslationX(draggableButton.id, dex) - tempSet.applyTo(this) - } - } - MotionEvent.ACTION_UP -> { - if(draggableButton.translationX<(width-draggableButton.width)){ - ObjectAnimator.ofFloat( - draggableButton, "translationX", draggableButton.translationX, - 0f - ).apply { - duration = 100 - }.start() - }else if (draggableButton.translationX>=(width-draggableButton.width)){ - lottie_bg.setAnimation("data.json") - lottie_bg.playAnimation() - actv_draggable.setTextColor(ResourcesUtils.getColor(R.color.shuttle_driver_80FFFFFF)) - RxUtils.createSubscribe(1_000) { - slideListener?.slideEnd() - } - }else{ - ObjectAnimator.ofFloat( - draggableButton, "translationX", draggableButton.translationX, - 0f - ).apply { - duration = 100 - }.start() - } - } - else -> {} - } - return true - } - - - override fun onVisibilityAggregated(isVisible: Boolean) { - super.onVisibilityAggregated(isVisible) - if(isVisible){ - lottie_bg.setAnimation("slide.json") - lottie_bg.playAnimation() - actv_draggable.setTextColor(ResourcesUtils.getColor(R.color.white)) - ObjectAnimator.ofFloat( - draggableButton, "translationX", draggableButton.translationX, - 0f - ).apply { - duration = 100 - }.start() - } - } - - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - CallerLogger.d(TAG,"onDetachedFromWindow") - } - - fun setTextValue(value: String) { - actv_draggable.text = value - } - - interface SlideListener{ - fun slideEnd() - } - - - -} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt b/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt index 1872937998..c02fc0d608 100644 --- a/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt +++ b/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt @@ -5,8 +5,8 @@ import com.mogo.och.weaknet.bean.request.Event import com.mogo.och.weaknet.bean.request.EventData import com.mogo.och.weaknet.bean.request.WriteOffEventData import com.mogo.och.weaknet.repository.db.bean.EventDataBean -import com.mogo.och.weaknet.repository.db.bean.LineDataBean -import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.data.db.bean.LineDataBean +import com.mogo.och.data.db.bean.SiteDataBean import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean import org.junit.Test diff --git a/OCH/shuttle/passenger_weaknet/build.gradle b/OCH/shuttle/passenger_weaknet/build.gradle index 6e34a57ef0..6de3388d2b 100644 --- a/OCH/shuttle/passenger_weaknet/build.gradle +++ b/OCH/shuttle/passenger_weaknet/build.gradle @@ -67,6 +67,8 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.androidxrecyclerview implementation rootProject.ext.dependencies.material + implementation project(':OCH:common:data') + implementation project(':OCH:common:bridge') kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.androidxconstraintlayout diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt index dec8f5e354..8e36cd5534 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt @@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.DeviceUtils import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils +import com.mogo.och.bridge.ui.autopilot.AutopilotState import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl import com.mogo.och.common.module.voice.OutOffVoice @@ -72,4 +73,8 @@ class ShuttlePassengerProvider : CommonServiceImpl() { mPM2Fragment = null } + override fun createStartAutopilotView(context: Context?): View? { + return null + } + } \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt index a2473d8c4c..ea68602ad5 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt @@ -19,11 +19,11 @@ import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.och.common.module.biz.lansocket.IOchLanPassengerStatusListener import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket import com.mogo.och.common.module.biz.media.MediaManager -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager -import com.mogo.och.common.module.manager.distance.IDistanceListener -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager +import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener +import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager +import com.mogo.och.bridge.autopilot.location.OchLocationManager +import com.mogo.och.bridge.distance.IDistanceListener +import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.download.DownloadManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener @@ -49,7 +49,7 @@ import kotlin.math.abs @SuppressLint("StaticFieldLeak") object CommonModel { - private val TAG: String = CommonModel::class.java.simpleName + private val TAG: String = SceneConstant.M_BUS_P+CommonModel::class.java.simpleName var mContext: Context? = null @@ -106,24 +106,22 @@ object CommonModel { } - val connectDriverListener = object : IOchLanPassengerStatusListener { + private val connectDriverListener = object : IOchLanPassengerStatusListener { // 和司机屏连接发生变化后 override fun onDriverConnectChangeListener(isConnect: Boolean) { - super.onDriverConnectChangeListener(isConnect) if(isConnect){ queryDriverByLocalDriver() } } // 司机屏sn 发生变化后 override fun onDriverSnChagneListner(sn: String?) { - super.onDriverSnChagneListner(sn) sn?.let { querySiteIntroduce() } } } - val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = + private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = object : IMoGoChassisLocationGCJ02Listener { override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { if (null == mogoLocation) return @@ -131,11 +129,11 @@ object CommonModel { } } - val mAutoPilotStatusListener: IOchAutopilotStatusListener = + private val mAutoPilotStatusListener: IOchAutopilotStatusListener = object : IOchAutopilotStatusListener { override fun onAutopilotStatusResponse(state: Int) { - d(SceneConstant.M_BUS_P, "onAutopilotStatusResponse ===== $state") + d(TAG, "onAutopilotStatusResponse ===== $state") if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != state){ //美化模式下且行程中 if (FunctionBuildConfig.isDemoMode && @@ -152,10 +150,10 @@ object CommonModel { } } - val trajectoryListener: IDistanceListener = object : IDistanceListener { + private val trajectoryListener: IDistanceListener = object : IDistanceListener { override fun distanceCallback(distance: Float) { val lastTime = distance / BusPassengerConst.BUS_AVERAGE_SPEED * 3.6 //秒 - d(SceneConstant.M_BUS_P, "轨迹排查==lastSumLength = $distance") + d(TAG, "轨迹排查==lastSumLength = $distance") if (routesResult != null) { for (site in routesResult!!.sites) { if (site.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !site.isLeaving) { @@ -180,7 +178,7 @@ object CommonModel { } } - val typeTaskDetails = object : ILanMessageListener { + private val typeTaskDetails = object : ILanMessageListener { override fun targetLan(): Class { return TaskDetailsMsg::class.java } @@ -189,11 +187,13 @@ object CommonModel { first?.let { if (first.msg?.isEmpty() == true) { + clearAutopilotControlParameters() clearLocalRouteResult() return } val result = GsonUtils.fromJson(first.msg, BusTransferData::class.java) if (result != null && result.routesResult == null) { + clearAutopilotControlParameters() clearLocalRouteResult() } @@ -236,11 +236,11 @@ object CommonModel { } if (routesResult != null && routesResult!!.lineId != result.lineId) { - d(SceneConstant.M_BUS_P + TAG, "lineId change= clearCustomPolyline") + d(TAG, "lineId change= clearCustomPolyline") mCommonCallback?.clearCustomPolyline() } - d(SceneConstant.M_BUS_P + TAG, "queryDriverSiteByCoordinate = update") + d(TAG, "queryDriverSiteByCoordinate = update") routesResult = result if (result.sites != null) { @@ -253,27 +253,27 @@ object CommonModel { mCommonCallback?.updateLineStations(mStations) for (i in stations.indices) { val station = stations[i] - if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED - && station.isLeaving && i + 1 < stations.size - ) { - isGoingToNextStation = true - mCommonCallback?.updateStationsInfo(stations, i + 1, false) - mNextStationIndex = i + 1 - val startStation = mStations[i] - val endStation = mStations[i + 1] - startStationVideo(endStation) - setTrajectoryStation(startStation, endStation, result.lineId) + if(station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED){ updateAutopilotControlParameters(result, i) - return - } else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) { - if (i == stations.size - 1) { - cleanStation("updatePassengerRouteInfo最后一个站点") + if (station.isLeaving && i + 1 < stations.size + ) { + isGoingToNextStation = true + mCommonCallback?.updateStationsInfo(stations, i + 1, false) + mNextStationIndex = i + 1 + val startStation = mStations[i] + val endStation = mStations[i + 1] + startStationVideo(endStation) + setTrajectoryStation(startStation, endStation, result.lineId) + return + } else if (!station.isLeaving) { + if (i == stations.size - 1) { + cleanStation("updatePassengerRouteInfo最后一个站点") + } + isGoingToNextStation = false + Logger.d(TAG, "order = station= arrive") + mCommonCallback?.updateStationsInfo(stations, i, true) + return } - isGoingToNextStation = false - Logger.d(SceneConstant.M_BUS_P + TAG, "order = station= arrive") - mCommonCallback?.updateStationsInfo(stations, i, true) - clearAutopilotControlParameters() - return } } } @@ -315,16 +315,16 @@ object CommonModel { } } - fun updateAutopilotControlParameters( + private fun updateAutopilotControlParameters( busRoutesResult: BusRoutesResult, leaveIndex: Int ) { val parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex) if (null == parameters) { - CallerLogger.e(SceneConstant.M_BUS_P, "AutopilotControlParameters is empty.") + CallerLogger.e(TAG, "AutopilotControlParameters is empty.") return } - CallerLogger.d(SceneConstant.M_BUS_P, "AutopilotControlParameters is update.") + d(TAG, "AutopilotControlParameters is update.") CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters) } @@ -338,7 +338,7 @@ object CommonModel { } val stations = busRoutesResult.sites if (leaveIndex + 1 > stations.size - 1) { - CallerLogger.e(SceneConstant.M_BUS_P, "行程日志-mismatch condition1.") + CallerLogger.e(TAG, "行程日志-mismatch condition1.") return null } val currentStation = stations[leaveIndex] @@ -368,7 +368,7 @@ object CommonModel { } fun clearAutopilotControlParameters() { - CallerLogger.d(SceneConstant.M_BUS_P, "AutopilotControlParameters is clear.") + d(TAG, "AutopilotControlParameters is clear.") CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) } @@ -400,8 +400,8 @@ object CommonModel { TrajectoryAndDistanceManager.setStationPoint(startStation, endStation, lineId.toLong()) } - fun cleanStation(type: String) { - d(SceneConstant.M_BUS_P, "清理站点:$type") + private fun cleanStation(type: String) { + d(TAG, "清理站点:$type") TrajectoryAndDistanceManager.setStationPoint(null, null, -1L) } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt index 0ef84a8e72..b87d0469e2 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt @@ -93,6 +93,7 @@ object TicketModel : StateChangeListener { val pipe = params["pipe"] val startStationId = params["startStationId"] val tenantId = params["tenantId"] + val shiftsId = params["shiftsId"] if(orderNo is String && uid is String){ var phoneNum = "" @@ -112,7 +113,8 @@ object TicketModel : StateChangeListener { phoneNum, ticketSize?.toInt()?:0, URLDecoder.decode(ticketName?:"","UTF-8"), - type, + type?.toInt()?:0, + shiftsId?.toLong()?:0, pipe, startStationId?.toLong()?:0, tenantId?.toLong()?:0 diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java index 339a416291..171ccfc774 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java @@ -28,7 +28,7 @@ import com.mogo.och.shuttle.weaknet.passenger.R; import com.mogo.och.shuttle.weaknet.passenger.ui.adapter.BusPassengerLineStationsAdapter; import com.mogo.och.shuttle.weaknet.passenger.presenter.BaseBusPassengerPresenter; import com.mogo.och.shuttle.weaknet.passenger.ui.layoutmanager.CenterLayoutManager; -import com.mogo.och.common.module.wigets.mapdirectionview.MapDirectionView; +import com.mogo.och.bridge.ui.mapdirectionview.MapDirectionView; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.wigets.MarqueeTextView; import com.mogo.och.common.module.wigets.OCHGradientTextView; diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml index 73c2306227..5a6800f3b2 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml @@ -265,7 +265,7 @@ - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/assets/map_style.data b/OCH/taxi/driver/src/main/assets/map_style.data deleted file mode 100644 index b200669659..0000000000 Binary files a/OCH/taxi/driver/src/main/assets/map_style.data and /dev/null differ diff --git a/OCH/taxi/driver/src/main/assets/map_style_extra.data b/OCH/taxi/driver/src/main/assets/map_style_extra.data deleted file mode 100644 index 7aa8fa7b45..0000000000 Binary files a/OCH/taxi/driver/src/main/assets/map_style_extra.data and /dev/null differ diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt deleted file mode 100644 index 6edd49e86e..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.mogo.och.taxi - -import android.content.Context -import androidx.fragment.app.Fragment -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.biz.provider.CommonService -import com.mogo.och.common.module.biz.provider.CommonServiceImpl -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.taxi.ui.TaxiFragment -import com.mogo.och.taxi.utils.TaxiAnalyticsManager - -/** - * @author congtaowang - * @since 2021/1/15 - * - * - * 网约车-出租车 - */ -@Route(path = OchCommonConst.TAXI_DRIVER) -class TaxiDriverProvider : CommonServiceImpl() { - - private val tag = TaxiDriverProvider::class.java.simpleName - private var ochTaxiFragment: TaxiFragment? = null - - override fun init(context: Context) { - d(SceneConstant.M_TAXI + tag, "init") - - } - - override fun getFragment(): Fragment { - if (ochTaxiFragment == null) { - ochTaxiFragment = TaxiFragment() - } - OchAutopilotAnalytics.ochEventKey = TaxiAnalyticsManager - return ochTaxiFragment!! - } - - override fun resetFragment() { - super.resetFragment() - OchAutopilotAnalytics.ochEventKey = null - ochTaxiFragment = null - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java deleted file mode 100644 index d82de2425e..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.och.taxi.constant.TaxiConst; - -import java.util.UUID; - -/** - * Created on 2021/9/16 - * - * 上传车机心跳信息请求数据 - */ -public class CarHeartbeatReqBean { - public String sn; - public double lon; //经度 - public double lat; //纬度 - public String msgId; //心跳信息唯一标识 - public int interval; //上报间隔,单位秒,非必传,默认60秒 - - public CarHeartbeatReqBean(String sn, double lon, double lat) { - this.sn = sn; - this.lon = lon; - this.lat = lat; - this.msgId = UUID.randomUUID().toString(); - this.interval = (int) (TaxiConst.LOOP_PERIOD_60S / 1000); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java deleted file mode 100644 index 15d47effd0..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * Created on 2021/9/17 - * - * 司机运营数据返回数据结构 - */ -public class DriverServiceDataRespBean extends BaseData { - public Result data; - - public static class Result { - public long timeDuration; //当日在线时长,单位秒 - public long orderNum; //当日完成订单数 - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java deleted file mode 100644 index cb018309d7..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 状态更新请求数据结构 - */ -public class DriverStatusUpdateReqBean { - public String sn; - - public DriverStatusUpdateReqBean(String sn) { - this.sn = sn; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java deleted file mode 100644 index 23187c3e81..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 司机取消订单请求的数据结构 - */ -public class OrderCancelReqBean { - public String sn; - public String orderNo; //订单号(必须) - public int cancelType; //取消类型(必须) - public String cancelReason; //取消原因(必须) - - public OrderCancelReqBean(String sn, String orderNo, int cancelType, String cancelReason) { - this.sn = sn; - this.orderNo = orderNo; - this.cancelType = cancelType; - this.cancelReason = cancelReason; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java deleted file mode 100644 index da925b8359..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created on 2021/9/7 - * - * (预约单)抢单动作的请求数据结构 - */ -public class OrderGrabReqBean { - public String sn; - public String orderNo; - - public OrderGrabReqBean(String sn, String orderNo) { - this.sn = sn; - this.orderNo = orderNo; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java deleted file mode 100644 index 60cc8b4b2a..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * Created on 2021/9/7 - * - * (预约单)抢单动作的返回数据结构 - */ -public class OrderGrabRespBean extends BaseData { - public String data; // 暂不使用 返回的orderNo,不再是orderId -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java deleted file mode 100644 index 3fe8d877af..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * Created on 2021/9/7 - * - * (预约单)查询抢单结果的返回数据结构 - */ -public class OrderGrabStatusQueryRespBean extends BaseData { - public Result data; - - public static class Result { - public int grabStatus; //0:抢单中; 1:抢单结束,匹配; 2:抢单结束,匹配到其他司机;3:订单已取消;4:非法,不是选择的自己 - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java deleted file mode 100644 index 207668db4f..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 查询订单信息请求数据结构 - */ -public class OrderQueryReqBean { - - public String sn; - public String orderNo; - - public OrderQueryReqBean(String sn, String orderNo) { - this.sn = sn; - this.orderNo = orderNo; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java deleted file mode 100644 index eb21df6157..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.data.taxi.BaseOrderBean; - -import java.util.List; -import java.util.Objects; - -/** - * Created by pangfan on 2021/8/19 - * - * 查询订单返回数据结构 - */ -public class OrderQueryRespBean extends BaseData { - public Result data; - - public static class Result extends BaseOrderBean implements Comparable{ - - // 订单类型 - public int orderType; //1即时单 2预约单 - - // 订单运营类型 (9出租车,10小巴) - public int businessType; - // 起始站点id - public int startSiteId; - // 起始站点名称 - public String startSiteAddr; - // 起始站点坐标 - public List startSitePoint; //wgs坐标,用于自动驾驶 [lon,lat] - public List startSiteGcjPoint; //高德坐标,用于本地计算距离 [lon,lat] - // 终点站点id - public int endSiteId; - // 终点站点名称 - public String endSiteAddr; - // 终点站点坐标 - public List endSitePoint; //wgs坐标,用于自动驾驶 [lon,lat] - public List endSiteGcjPoint; //高德坐标,用于计算距离 [lon,lat] - - // 车牌号 - public String carNumber; - //订单创建时间戳 - public long createTime; - //开始服务时间戳:司机点击'开始服务'后订单状态更新成功的时间 - public long startTime; - //预计用车时间:预约单=下单时的预约用车时间;即时单=派单成功的时间+预估的达到上车点的时间 - public long bookingTime; - //乘客手机号 - public String passengerPhone; - //订单多少乘客 - public String passengerNum; - - //线路轨迹相关字段 - public long lineId = -1; //路线id,默认-1 - public String lineName = ""; //路线名称,默认"" - public String csvFileUrl = ""; //轨迹文件下载的cos url,默认“” - public String csvFileMd5 = ""; //轨迹文件md5,默认“” - public String txtFileUrl = ""; //打点文件下载的cos url,默认“” - public String txtFileMd5 = ""; //轨迹文件md5,默认“” - public long contrailSaveTime; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖 - public String carModel = ""; //[optional] 车型号(如红旗H9),默认“”,暂不加入校验逻辑、用于人工排查问题 - public String csvFileUrlDPQP = ""; //轨迹文件下载的cos url,默认“” - public String csvFileMd5DPQP = ""; //轨迹文件md5,默认“” - public String txtFileUrlDPQP = ""; //打点文件下载的cos url,默认“” - public String txtFileMd5DPQP = ""; //轨迹文件md5,默认“” - public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖 - - // !!!接口中暂无此字段,仅用于本地实现逻辑使用:起始站目的站距离km - public double travelDistance; - - @Override - public String getEndSiteAddr() { - return endSiteAddr; - } - - /** - * @param distance - */ - public void decreaseTravelDistance( double distance ) { - travelDistance = ( ( float ) distance / 1000f ); - if ( travelDistance < 0 ) { - travelDistance = 0; - } - } - - @Override - public int compareTo(Result o) { - boolean isEqual = this.orderNo.equals(o.orderNo); - return isEqual ? 0 : 1; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Result result = (Result) o; - return Objects.equals(orderNo, result.orderNo) && - orderType == result.orderType && - orderStatus == result.orderStatus && - businessType == result.businessType; - - } - - @Override - public int hashCode() { - return Objects.hash(orderNo, orderType, orderStatus, businessType, startSiteId, - startSiteAddr, startSitePoint, startSiteGcjPoint, endSiteId, endSiteAddr, - endSitePoint, endSiteGcjPoint, carNumber, createTime, startTime, travelDistance); - } - - @Override - public String toString() { - return "Result{" + - "orderNo='" + orderNo + '\'' + - ", orderType=" + orderType + - ", orderStatus=" + orderStatus + - ", businessType=" + businessType + - ", startSiteId=" + startSiteId + - ", startSiteAddr='" + startSiteAddr + '\'' + - ", startSitePoint=" + startSitePoint + - ", startSiteGcjPoint=" + startSiteGcjPoint + - ", endSiteId=" + endSiteId + - ", endSiteAddr='" + endSiteAddr + '\'' + - ", endSitePoint=" + endSitePoint + - ", endSiteGcjPoint=" + endSiteGcjPoint + - ", carNumber='" + carNumber + '\'' + - ", createTime=" + createTime + - ", startTime=" + startTime + - ", bookingTime=" + bookingTime + - ", passengerPhone='" + passengerPhone + '\'' + - ", passengerNum='" + passengerNum + '\'' + - ", lineId=" + lineId + - ", lineName='" + lineName + '\'' + - ", csvFileUrl='" + csvFileUrl + '\'' + - ", csvFileMd5='" + csvFileMd5 + '\'' + - ", txtFileUrl='" + txtFileUrl + '\'' + - ", txtFileMd5='" + txtFileMd5 + '\'' + - ", contrailSaveTime=" + contrailSaveTime + - ", carModel='" + carModel + '\'' + - ", csvFileUrlDPQP='" + csvFileUrlDPQP + '\'' + - ", csvFileMd5DPQP='" + csvFileMd5DPQP + '\'' + - ", txtFileUrlDPQP='" + txtFileUrlDPQP + '\'' + - ", txtFileMd5DPQP='" + txtFileMd5DPQP + '\'' + - ", contrailSaveTimeDPQP=" + contrailSaveTimeDPQP + - ", travelDistance=" + travelDistance + - '}'; - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java deleted file mode 100644 index 470869b5a8..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.taxi.bean; - -import java.util.List; - -/** - * Created by pangfan on 2021/8/19 - * - * 订单状态更新请求数据结构 - */ -public class OrderRouteUpdateReqBean { - public String orderNo; - public List points; - - public static class Result { - public Double latitude; - public Double longitude; - } - - public OrderRouteUpdateReqBean(String orderNo, List points) { - this.orderNo = orderNo; - this.points = points; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java deleted file mode 100644 index f31d0cc70c..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 订单状态更新请求数据结构 - */ -public class OrderStatusUpdateReqBean { - public String sn; - public String orderNo; - public int orderStatus; - - public OrderStatusUpdateReqBean(String sn, String orderNo, int orderStatus) { - this.sn = sn; - this.orderNo = orderNo; - this.orderStatus = orderStatus; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java deleted file mode 100644 index 2311ff0f03..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * Created on 2021/9/8 - * - * 查询全部服务中/待服务订单的返回数据 - */ -public class OrdersInServiceQueryRespBean extends BaseData { - public Result data; - - public static class Result { - public List servicing; //服务中订单 - public List waitService; //待服务订单 - - @Override - public String toString() { - return "Result{" + - "servicing=" + servicing + - ", waitService=" + waitService + - '}'; - } - } - - @Override - public String toString() { - return "OrdersInServiceQueryRespBean{" + - "data=" + data + - ", code=" + code + - ", msg='" + msg + '\'' + - '}'; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java deleted file mode 100644 index de74f2f794..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * - * 查询订单列表请求数据结构 - */ -public class OrdersListQueryReqBean { - - public String sn; - public int page; //页码,从0开始 - public int size; //每页条数 - - public OrdersListQueryReqBean(String sn, int page, int size) { - this.sn = sn; - this.page = page; - this.size = size; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java deleted file mode 100644 index 7627953a54..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * Created by pangfan on 2021/8/19 - */ -public class OrdersListQueryRespBean extends BaseData { - public Result data; - - public static class Result { - public List orders; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java deleted file mode 100644 index 69f7e0341c..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * Created on 2021/9/8 - * - * 查询新到的预约单的返回数据结构 - */ -public class OrdersNewBookingQueryRespBean extends BaseData { - public Result data; - - public static class Result { - public List orders; // 返回的是order的orderNo集合, 不再是orderId集合 - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java deleted file mode 100644 index 0c21598580..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.amap.api.maps.model.LatLng; -import com.mogo.eagle.core.data.BaseData; - -import java.util.List; - -/** - * Created by pangfan on 2021/8/19 - */ -public class QueryOrderRouteResp extends BaseData { - public List data; -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java deleted file mode 100644 index 8d6ca6d4df..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.taxi.bean; - -import com.mogo.eagle.core.data.BaseData; - -/** - * Created by pangfan on 2021/8/19 - * - * 查询订单返回数据结构 - */ -public class TaxiDataBaseRespBean extends BaseData { - public Object data; -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java deleted file mode 100644 index 5bb888fcc9..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.taxi.bean; - -/** - * Created by pangfan on 2021/8/19 - * 司机端准备好或者乘客已验证上车请求参数 - */ -public class TaxiOrPassengerReadyReqBean { - - public String orderNo; - public String sn; - public TaxiOrPassengerReadyReqBean.Result loc; - - public static class Result { - public Double lat; - public Double lon; - } - - public TaxiOrPassengerReadyReqBean(String sn, String orderNo, TaxiOrPassengerReadyReqBean.Result point) { - this.sn = sn; - this.orderNo = orderNo; - this.loc = point; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java deleted file mode 100644 index 29e7e2b0e8..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.och.taxi.bean; - - -public class UpdateOrderDisAndTimeReqBean { - public String orderNo; //订单号(必须) - public long distance; //剩余里程 单位米(必须) - public long duration; //剩余时间 单位秒(必须) - - public UpdateOrderDisAndTimeReqBean(String orderNo, long distance, long duration) { - this.orderNo = orderNo; - this.distance = distance; - this.duration = duration; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java deleted file mode 100644 index 481bb3c470..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.och.taxi.callback; - - -import com.amap.api.maps.model.LatLng; -import com.mogo.eagle.core.data.map.MogoLocation; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2021/11/1 - */ -public interface IOCHTaxiAutopilotPlanningCallback { - void setLineMarker(LatLng startStation,LatLng endStation); - void routeResult(List routeArrivied,List routeArriving, MogoLocation location); -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java deleted file mode 100644 index 9bcd37a905..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.mogo.och.taxi.callback; - -/** - * Created on 2021/9/8 - * - * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等) - */ -public interface ITaxiADASStatusCallback { - // 自动驾驶触发的已到达目的地:暂未用到 - void onAutopilotArriveEnd(); - - // 自动驾驶可用状态 - void onAutopilotEnable(boolean canStartAuto); - - // 自动驾驶不可用状态 - void onAutopilotDisable(boolean canStartAuto); - - // 自动驾驶运行中 - void onAutopilotRunning(boolean canStartAuto); - - //人机共驾 - void onManMachineCoDriving(boolean canStartAuto); - - void updateAutopilotStatus(boolean canStartAuto); - - //自驾返回失败 - void onStartAdasFailure(); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java deleted file mode 100644 index 40b352acfa..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.och.taxi.callback; - -import com.mogo.och.taxi.bean.OrderQueryRespBean; - -import java.util.List; - -/** - * Created on 2021/9/8 - * - * Model->Presenter回调:接单车状态变更 登录状态变更 - */ -public interface ITaxiCarOperationalCallback { - - void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum); - - void onOrdersListPageRefresh(List ordersList); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java deleted file mode 100644 index d8e49cca85..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.taxi.callback; - -import com.mogo.eagle.core.data.map.MogoLocation; - -/** - * Created on 2021/9/10 - * - * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等) - */ -public interface ITaxiControllerStatusCallback { - //开始开启自动驾驶 - void startOpenAutopilot(); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java deleted file mode 100644 index 4ced7e787a..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.och.taxi.callback; - -import androidx.annotation.NonNull; - -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; - -import java.util.List; - -/** - * Created on 2021/9/8 - * - * Model->Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等) - */ -public interface ITaxiOrderStatusCallback { - // 进行中单变更:暂未用到 - void onOrdersInServiceChanged(@NonNull List inServiceList); - // 待服务单变更 - void onOrdersWaitServiceChanged(@NonNull List waitServiceList); - - // 当前进行单状态变更:新到进行中订单、进行中单状态变更 - void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order); - // 当前订单取消完成:用于司机主动取消订单的结果反馈 - void onCurrentOrderCancelDone(); - // 待服务单被取消 - void onOrderCancelDone(String orderNo); - // 当前订单route信息查询反馈 - void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo); - // 当前位置距离上车点的距离(米)、预估时间(秒) - void onCurrentOrderDistToStartChanged(long meters, long timeInSecond); - // 当前位置距离上车点的距离(米)、预估时间(秒) - void onCurrentOrderDistToEndChanged(long meters, long timeInSecond); - - // 新到预约单 - void onNewBookingOrderGot(OrderQueryRespBean.Result order); - - // 执行抢单动作完成:可进入抢单中状态 - void onGrabOrderExecuteDone(); - - // 抢到预约单 - void onGrabOrderSuccess(OrderQueryRespBean.Result order); - - // 未抢到预约单 - void onGrabOrderFailed(OrderQueryRespBean.Result order); - - // 司机已确认开启自动驾驶环境 - void onDriverHasCheckedPilotCondition(); - - /** - * 导航到目的地 - * @param isAmap 是否是高德导航 - * @param isShow 是否显示导航地图(否播报声音) - */ - void onNaviToEnd(boolean isAmap, boolean isShow); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt deleted file mode 100644 index 458d03895c..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.mogo.och.taxi.constant - -import com.mogo.commons.debug.DebugConfig - -/** - * Created on 2021/12/6 - */ -class TaxiConst { - companion object { - - // 到达起始点围栏 - const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m - - // 上报心跳轮询ms - const val LOOP_PERIOD_60S = 60 * 1000L - - // 轮询查询进行中/待服务订单的间隔时间 2秒 - const val LOOP_PERIOD_2S = 2 * 1000L - // 轮询查询新到预约单 1秒 - const val LOOP_PERIOD_1S = 1 * 1000L - const val LOOP_DELAY = 100L - - // 下发给MEC轨迹信息间隔时间 10秒 - const val LOOP_PERIOD_10S = 10 * 1000L - // 尝试下发给MEC轨迹最多10次 - const val LOOP_SEND_TRAJ_TIMES = 10 - - // 订单信息 - const val SP_KEY_OCH_TAXI_ORDER = "SP_KEY_OCH_TAXI_ORDER" - - //起点UUID - const val TAXI_START_MAP_MAKER = "taxi_start_map_maker" - //终点UUID - const val TAXI_END_MAP_MAKER = "taxi_end_map_maker" - - //演示:V 测试:内测 - const val DEMO_USER = "V" - const val TEST_USER = "内测" - - // 实时计算当前剩余里程和时间 间隔 2秒 - const val LOOP_CALCULATEROUTE_2S = 2 * 1000L - - //总里程/平均车速。(bus的平均里程:25km/h,taxi的平均里程:38km/h),单位为:分钟,不足1分钟时,显示1分钟。 - const val TAXI_AVERAGE_SPEED = 38 - - /** - * 订单起终点Marker类型 - */ - const val TYPE_MARKER_TAXI_ORDER = "TYPE_MARKER_TAXI_ORDER" - - const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L - - } -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt deleted file mode 100644 index c55993eddf..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt +++ /dev/null @@ -1,54 +0,0 @@ -package com.mogo.och.taxi.constant - -/** - * 司机端取消订单的原因定义 - * Created on 2021/12/7 - * - * * String int - * 进行中订单: - * 车况异常 0 - * 设备异常 1 - * 电量不足 2 - * 身体不适 3 - * 乘客未到 4 - * 乘客中途下车 5 - * 1099前都可用 - * - * 待服务订单: - * 2000 车辆故障 - * 2001 乘客联系取消 - * 2002 行程冲突 - * 2003 车电量不足 - * 2004 其他 - */ -enum class TaxiOrderCancelReasons(val type: Int, val msg: String) { - CarBroken(1000, "车况异常"), - DeviceBroken(1001, "设备异常"), - BatteryLow(1002, "电量不足"), - DriverIsIll(1003, "身体不适"), - PassengerNotArrive(1004, "乘客未到"), - PassengerStopOver(1005, "乘客中途下车"), - PassengerCancel(1006, "乘客联系安全员取消"), - UnContractPassenger(1007, "联系不上乘客"), - JourneyConflict(1008, "行程冲突"), - StartStationFaraway(1009,"距离过远 无法接单"), - Other( 1010, "其他原因"), - - BookCarBroken(2000, "车辆故障"), - BookPassengerCancel(2001, "乘客联系取消"), - BookJourneyConflict(2002, "行程冲突"), - BookBatteryLow(2003, "车电量不足"), - BookOther(2004, "其他"); - - companion object { - @JvmStatic - fun getType(msg: String): Int { - for (value in values()) { - if (value.msg == msg) { - return value.type - } - } - return 0 - } - } -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt deleted file mode 100644 index 34b09c6cc7..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.taxi.constant - -/** - * RoboTaxi订单类型声明 - * - * Created on 2021/12/6 - */ -enum class TaxiOrderTypeEnum(val type: Int) { - Instant(1), // 即时单 - Reserved(2) // 预约单 -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java deleted file mode 100644 index a6b9bbf141..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ /dev/null @@ -1,1737 +0,0 @@ -package com.mogo.och.taxi.model; - -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_CODE_OCH_TAXI_START_AUTOPILOT; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_SOURCE_ADAS; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import static java.util.Collections.emptyList; - -import android.content.Context; -import android.content.Intent; -import android.net.ConnectivityManager; -import android.text.TextUtils; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.amap.api.maps.model.LatLng; -import com.elegant.network.utils.GsonUtil; -import com.mogo.commons.module.intent.IMogoIntentListener; -import com.mogo.commons.module.intent.IntentManager; -import com.mogo.eagle.core.data.BaseData; -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; -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.CallerPlanningRottingListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.commons.storage.SharedPrefsMgr; -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.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics; -import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation; -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager; -import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; -import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager; -import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction2; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.network.OchCommonServiceCallback; -import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager; -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.distance.IDistanceListener; -import com.mogo.och.common.module.manager.distance.ITrajectoryListener; -import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager; -import com.mogo.och.common.module.map.AmapNaviToDestinationModel; -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; -import com.mogo.och.common.module.utils.OCHThreadPoolManager; -import com.mogo.och.common.module.utils.PinYinUtil; -import com.mogo.och.common.module.utils.ToastUtilsOch; -import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.bean.DriverServiceDataRespBean; -import com.mogo.och.taxi.bean.OrderGrabRespBean; -import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; -import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean; -import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean; -import com.mogo.och.taxi.bean.OrdersListQueryRespBean; -import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean; -import com.mogo.och.taxi.bean.QueryOrderRouteResp; -import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; -import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; -import com.mogo.och.taxi.callback.IOCHTaxiAutopilotPlanningCallback; -import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; -import com.mogo.och.taxi.callback.ITaxiCarOperationalCallback; -import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; -import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; -import com.mogo.och.taxi.network.TaxiServiceManager; -import com.mogo.och.taxi.utils.OrderUtil; -import com.mogo.och.taxi.utils.TaxiTrajectoryManager; -import com.zhjt.service.chain.ChainLog; - -import org.jetbrains.annotations.NotNull; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import io.reactivex.exceptions.UndeliverableException; -import io.reactivex.plugins.RxJavaPlugins; -import mogo.telematics.pad.MessagePad; -import mogo_msg.MogoReportMsg; - -/** - * Created by pangfan on 2021/8/19 - *

- * 网约车 - 出租车业务逻辑处理 - */ -public class TaxiModel { - - private static final String TAG = TaxiModel.class.getSimpleName(); - - private static final class SingletonHolder { - private static final TaxiModel INSTANCE = new TaxiModel(); - } - - public static TaxiModel getInstance() { - return SingletonHolder.INSTANCE; - } - - private Context mContext; - private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出) - private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单 - private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单 - private List mInServiceList = Collections.synchronizedList(emptyList()); //进行中订单 - private volatile List mWaitServiceList = emptyList(); //待服务订单 - - private ITaxiADASStatusCallback mADASStatusCallback; //Model->Presenter:自动驾驶状态相关 - private ITaxiCarOperationalCallback mCarOperationalCallback; //Model->Presenter:登录状态和司机今日接单状态 - private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 - private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter:订单变更 - private IOCHTaxiAutopilotPlanningCallback mAutopilotPlanningCallback; - - private volatile boolean isRestartAutopilot = false; - - private final List mRoutePoints = new ArrayList<>(); - private final int mPreRouteIndex = 0; - - - private TaxiModel() { - } - - public void setMoGoAutopilotPlanningListener(IOCHTaxiAutopilotPlanningCallback - moGoAutopilotPlanningCallback) { - this.mAutopilotPlanningCallback = moGoAutopilotPlanningCallback; - } - - public void setADASStatusCallback(ITaxiADASStatusCallback callback) { - this.mADASStatusCallback = callback; - } - - public void setCarStatusCallback(ITaxiCarOperationalCallback callback) { - this.mCarOperationalCallback = callback; - } - - public void setControllerStatusCallback(ITaxiControllerStatusCallback callback) { - this.mControllerStatusCallback = callback; - } - - public void setOrderStatusCallback(ITaxiOrderStatusCallback callback) { - this.mOrderStatusCallback = callback; - } - - public void init(Context context) { - mContext = context.getApplicationContext(); - initListeners(); - - // TODO: 2021/8/27 因需要通过此回调的location进行坐标上传,暂改为全程监听,退出后再反注册, - // 待后续整体调整location获取来源 -// if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) { -// apis.getLocationInfoApi().start(); -// } - - //2022.1.28 - // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 - // The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the excTeption has nowhere to go to begin with - RxJavaPlugins.setErrorHandler(e -> { - if (e instanceof UndeliverableException) { - e = e.getCause(); - CallerLogger.d(M_TAXI + TAG, "UndeliverableException"); - } - if ((e instanceof IOException)) {// - // fine, irrelevant network problem or API that throws on cancellation - CallerLogger.d(M_TAXI + TAG, "IOException"); - return; - } - if (e instanceof InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - CallerLogger.d(M_TAXI + TAG, "InterruptedException"); - return; - } - if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) { - // that's likely a bug in the application - CallerLogger.d(M_TAXI + TAG, "NullPointerException or IllegalArgumentException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - if (e instanceof IllegalStateException) { - // that's a bug in RxJava or in a custom operator - CallerLogger.d(M_TAXI + TAG, "IllegalStateException"); - Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e); - return; - } - CallerLogger.d(M_TAXI + TAG, "Undeliverable exception"); - }); - } - - public void release() { - startOrStopOrderLoop(false); - startOrStopCalculateRouteInfo(false); - releaseListeners(); - } - - private void initListeners() { - // 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口 - OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener); - IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener); - - //定位监听, 传false是高德坐标系 - OchLocationManager.addGCJ02Listener(TAG,5, mMapLocationListener); - - //2021.11.1 自动驾驶路线规划接口 - CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); - - //开启自驾后 异常信息返回 - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); - - OCHSocketMessageManager.INSTANCE.registerSocketMessageListener( - OCHSocketMessageManager.msgMonitorType, - new OperateAction2()); - - AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); - - TrajectoryAndDistanceManager.INSTANCE.addDistanceListener(TAG,distanceListener); - TrajectoryAndDistanceManager.INSTANCE.addTrajectoryListener(TAG,trajectoryListener); - - } - - private void releaseListeners() { - - // 注销地图监听 - OchLocationManager.removeGCJ02Listener(TAG); - - OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(OCHSocketMessageManager.msgMonitorType); - - OchAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener); - CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); - OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); - - AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); - } - - public void startOrStopOrderLoop(boolean start) { - CallerLogger.d(M_TAXI + TAG, "startOrStopOrderLoop() " + start); - if (start) { - TaxiModelLoopManager.getInstance().startInAndWaitOrdersLoop(); - TaxiModelLoopManager.getInstance().startNewBookingOrderLoop(); - TaxiModelLoopManager.getInstance().startHeartbeatLoop(); - } else { - TaxiModelLoopManager.getInstance().stopInAndWaitOrdersLoop(); - TaxiModelLoopManager.getInstance().stopNewBookingOrderLoop(); - TaxiModelLoopManager.getInstance().stopHeartbeatLoop(); - } - } - - //更新接单状态 - public void updateCarStatus() { - if (!LoginStatusManager.isLogin()) { - LoginStatusManager.queryLoginStatusByNet(false); - return; - } - boolean currentOrderStatus = LoginStatusManager.isOpenOrderType(); - - TaxiServiceManager.changeOrderServing(mContext, currentOrderStatus, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - if (null != data && 0 == data.code) { - if(currentOrderStatus){ - // 上个状态是接单 暂停成功 - VoiceNotice.showNotice("暂停接单啦!"); - }else { - // 上个状态是暂停接单 暂停成功 - VoiceNotice.showNotice("开始接单啦!"); - } - LoginStatusManager.queryLoginStatusByNet(false); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - - } - - /** - * 查询订单状态:进行中/待服务(轮询防止因crash导致应用重启、断网没收到推送等) - *

- * 注:只有在本地缓存mCurrentOCHOrder为null时(已完成or已取消有明确结果)或id相同且status不同时, - * 才更新最新进行中单到本地 - */ - public void queryInAndWaitOrders() { - TaxiServiceManager.queryOrdersInAndWaitService(mContext, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrdersInServiceQueryRespBean 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 (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } else { - //1.1.2. 当本地有currentOrder: - //orderId不一致时:通过currentOrder.orderId查询订单状态,并通知ui更新 - //orderId一致且orderStatus不一致时:则更新currentOrder,并通知ui更新 - CallerLogger.d(M_TAXI + TAG, "AutopilotControl-mCurrentOCHOrder = " + mCurrentOCHOrder.orderStatus - + ", orderStatus = " + data.data.servicing.get(0).orderStatus); - if (!mCurrentOCHOrder.orderNo.equals(data.data.servicing.get(0).orderNo)) { - queryCurOrderStatus(); - } else if (mCurrentOCHOrder.orderStatus != data.data.servicing.get(0).orderStatus) { - updateNativeCurrentOrder(data.data.servicing.get(0)); - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder); - } - } - } - } else { - // 1.2. 当无进行中订单时:如果本地也无则跳过;如果本地仍存在currentOrder,查询此单(完成or取消)并通知ui更新 - if (mCurrentOCHOrder != null) { - queryCurOrderStatus(); - } - } - - //2. 处理待服务订单列表 - if (data.data.waitService != null && !data.data.waitService.isEmpty()) { - //2.1. 当存在待服务订单列表:跟本地待服务列表比较 - if (mWaitServiceList.isEmpty() - || (mWaitServiceList.size() != data.data.waitService.size()) - || !OrderUtil.haveSameOrders(mWaitServiceList, data.data.waitService)) { - // 2.1.1. 当本地无待服务单,或数量和内容不一致,更新本地待服务列表,并通知ui更新 - mWaitServiceList = data.data.waitService; - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onOrdersWaitServiceChanged(mWaitServiceList); - } - } - } else { - //2.2. 当无待服务单时:如果本地也无则跳过;如果本地有,则清除并通知ui更新 - if (!mWaitServiceList.isEmpty()) { - mWaitServiceList.clear(); - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onOrdersWaitServiceChanged(mWaitServiceList); - } - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - //仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder - private void queryCurOrderStatus() { - if (mCurrentOCHOrder == null) { - return; - } - final String orderNo = mCurrentOCHOrder.orderNo; - TaxiServiceManager.queryOrderById(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrderQueryRespBean data) { - if (data != null && data.data != null - && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(data.data.orderNo)) { - if (data.data.orderStatus == TaxiOrderStatusEnum.Cancel.getCode() - || data.data.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.getCode() - || data.data.orderStatus == TaxiOrderStatusEnum.None.getCode()) { - clearCurrentOCHOrder(); - cancelAutopilot(); - } else { - updateNativeCurrentOrder(data.data); - } - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderStatusChanged(data.data); - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 取消当前订单 - public void cancelCurrentOrder(int reasonType, String reason) { - if (mCurrentOCHOrder == null) { - mOrderStatusCallback.onCurrentOrderCancelDone(); - return; - } - final String orderNo = mCurrentOCHOrder.orderNo; - TaxiServiceManager.cancelOrder(mContext, orderNo, reasonType, reason, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - if (null != data && 0 == data.code - && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(orderNo)) { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderCancelDone(); - } - LineManager.setLineInfo(null); - clearCurrentOCHOrder(); - cancelAutopilot(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - } - - // 取消待服务中订单 - public void cancelOrderById(final String orderNo, int reasonType, String reason) { - TaxiServiceManager.cancelOrder(mContext, orderNo, reasonType, reason, - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - if (null != data && 0 == data.code) { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onOrderCancelDone(orderNo); - } - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - } - - // 查询当前订单route信息:预估时间、里程等 - public void queryCurOrderRouteInfo() { - if (mCurrentOCHOrder == null) { - return; - } - final String orderNo = mCurrentOCHOrder.orderNo; - TaxiServiceManager.queryOrderRouteInfo(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrderQueryRouteInfoRespBean data) { - if (null != data && 0 == data.code - && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(orderNo)) { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderRouteInfoGot(data.data); - } - } - } - - @Override - public void onFail(int code, String msg) { -// ToastUtils.showShort(code + "," + msg); - } - }); - } - - // 获取全部订单列表 - public void queryOrdersList(int page, int size) { - TaxiServiceManager.queryOrdersList(mContext, page, size, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrdersListQueryRespBean data) { - if (null != data && 0 == data.code) { - if (mCarOperationalCallback != null) { - mCarOperationalCallback.onOrdersListPageRefresh(data.data.orders); - } - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - } - - /** - * 查询新到预约单 - *

- * 注:只有在本地缓存mNewBookingOrder为null时(执行完抢单or司机关闭改单),才更新新到待抢单 - */ - public void queryNewBookingOrder() { - TaxiServiceManager.queryNewBookingOrder(mContext, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrdersNewBookingQueryRespBean data) { - if (data != null && data.code == 0 - && data.data != null && data.data.orders != null - && data.data.orders.size() > 0) { - // 本地无新到单,且本次新到单id与上次收到的新单id不同时:显示本次新到单 - if (mNewBookingOrder == null) { - for (String orderNo : data.data.orders) { - if (!mPrevOrderNo.equals(orderNo)) { - queryNewBookingContent(orderNo); - break; - } - } - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 仅限于获取到新待抢单且需要展示时查询该单信息:(queryOrderById接口可以查询属于该车的单、未派的单) - private void queryNewBookingContent(final String orderNo) { - TaxiServiceManager.queryOrderById(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrderQueryRespBean data) { - if (data != null && data.code == 0 - && data.data != null && data.data.orderNo.equals(orderNo) - && data.data.orderType == TaxiOrderTypeEnum.Reserved.getType()) { - mNewBookingOrder = data.data; - mPrevOrderNo = data.data.orderNo; - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onNewBookingOrderGot(mNewBookingOrder); - } - } - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 执行抢单动作 - public void grabOrder() { - if (mNewBookingOrder == null) { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onGrabOrderFailed(null); - } - return; - } - final String orderNo = mNewBookingOrder.orderNo; - TaxiServiceManager.grabOrder(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrderGrabRespBean data) { - if (data != null && data.code == 0 - && mNewBookingOrder != null && mNewBookingOrder.orderNo.equals(orderNo)) { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onGrabOrderExecuteDone(); - TaxiModelLoopManager.getInstance().startGrabResultLoop(); - } - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - } - - // 查询抢单结果 - public void queryOrderGrabStatus() { - if (mNewBookingOrder == null) { - TaxiModelLoopManager.getInstance().stopGrabResultLoop(); - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onGrabOrderFailed(null); - } - return; - } - final String orderNo = mNewBookingOrder.orderNo; - TaxiServiceManager.queryOrderGrabStatus(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(OrderGrabStatusQueryRespBean data) { - //TaxiModelLoopManager.getInstance().stopGrabResultLoop(); - if (data != null && data.code == 0 - && mNewBookingOrder != null && mNewBookingOrder.orderNo.equals(orderNo)) { - if (data.data.grabStatus == 0) { - return; //抢单中,不处理继续轮询结果 - } - if (mOrderStatusCallback != null) { - if (data.data.grabStatus == 1) { - mOrderStatusCallback.onGrabOrderSuccess(mNewBookingOrder); - } else if (data.data.grabStatus == 2) { - mOrderStatusCallback.onGrabOrderFailed(mNewBookingOrder); - } else { - // TODO: 2021/9/22 需根据具体内容给予提示,如订单已取消 - mOrderStatusCallback.onGrabOrderFailed(mNewBookingOrder); - } - } - } else { - if (mOrderStatusCallback != null) { - // TODO: 2021/9/22 如果用户已取消单,抢单失败时暂返回null,UI当前直接恢复原页面内容,后续优化 - mOrderStatusCallback.onGrabOrderFailed(null); - } - } - TaxiModelLoopManager.getInstance().stopGrabResultLoop(); - cancelNewBookingOrder(); - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 车机端上传心跳数据(只在出车状态时上传) - public void runCarHeartbeat() { - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - TaxiServiceManager.runCarHeartbeat(mContext, - gcj02Location.getLongitude(), gcj02Location.getLatitude(), - new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - // 查询司机服务数据 - public void queryDriverServiceData() { - TaxiServiceManager.queryDriverServiceData(mContext, - new OchCommonServiceCallback() { - @Override - public void onSuccess(DriverServiceDataRespBean data) { - if (data != null && data.code == 0 - && data.data != null) { - if (mCarOperationalCallback != null) { - mCarOperationalCallback.onServiceDataUpdate( - data.data.timeDuration, data.data.orderNum); - } - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String msg) { - ToastUtilsOch.showWithCodeMessage(code, msg); - } - }); - } - - /** - * 司机端确认可开始自动驾驶 - */ - public void confirmAutopilotConditionByDriver() { - if (mCurrentOCHOrder == null) return; - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - TaxiServiceManager.confirmAutopilotConditionByDriver(mContext, - mCurrentOCHOrder.orderNo, - result, - new OchCommonServiceCallback() { - - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - // updateAutopilotStatus(data.code == 0); - updateAutopilotStatus(); - } - - @Override - public void onFail(int code, String msg) { - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - // updateAutopilotStatus(false); - updateAutopilotStatus(); - } - }); - } - - public void updateAutopilotStatus() { - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onDriverHasCheckedPilotCondition(); - } - } - - public void queryAutopilotStatus(boolean isStart) { - if (isStart) { - queryAutopilotStatus(); - } - } - - public void queryAutopilotStatus() { - if (mCurrentOCHOrder == null) return; - TaxiServiceManager.queryAutopilotStatus(mContext, mCurrentOCHOrder.orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - // updateAutopilotStatus(data.data.equals(true)); - updateAutopilotStatus(); - } - - @Override - public void onFail(int code, String msg) { - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - // updateAutopilotStatus(false); - updateAutopilotStatus(); - } - }); - } - - // 取消当前新到预约单 - public void cancelNewBookingOrder() { - mNewBookingOrder = null; - } - - // 获取当前订单 - public OrderQueryRespBean.Result getCurrentOCHOrder() { - return mCurrentOCHOrder; - } - - // 获取当前订单状态 - public TaxiOrderStatusEnum getCurOrderStatus() { - OrderQueryRespBean.Result order = TaxiModel.getInstance().getCurrentOCHOrder(); - if (order == null) { - return TaxiOrderStatusEnum.None; - } - return TaxiOrderStatusEnum.valueOf(order.orderStatus); - } - - //更新本地currentOrder信息,并保存订单到本地避免车机重启丢失数据 - private void updateNativeCurrentOrder(OrderQueryRespBean.Result data) { - if (data == null) { - return; - } - mCurrentOCHOrder = data; - TaxiTrajectoryManager.getInstance().syncTrajectoryInfo(); - SharedPrefsMgr.getInstance().putString(TaxiConst.SP_KEY_OCH_TAXI_ORDER, - GsonUtil.jsonFromObject(data)); - - if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) { - if (FunctionBuildConfig.isDemoMode) { - // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true); - CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为true(更新本地order信息)"); - } - - updateAutopilotControlParameters(); - } - if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()) { - if (FunctionBuildConfig.isDemoMode) { - CallerLogger.d(M_TAXI + TAG, "setIPCDemoMode:false"); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - if (mADASStatusCallback != null) { - mADASStatusCallback.updateAutopilotStatus(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - } - - clearAutopilotControlParameters(); - } - } - - /** - * 将业务订单信息保存,鹰眼可取用 - */ - private void updateAutopilotControlParameters() { - - AutopilotControlParameters parameters = initAutopilotControlParameters(); - if (null == parameters) { - CallerLogger.e(M_TAXI + TAG, "AutopilotControlParameters is empty."); - return; - } - CallerLogger.d(M_TAXI + TAG, "AutopilotControlParameters is update."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters); - } - - private void clearAutopilotControlParameters() { - CallerLogger.d(M_TAXI + TAG, "AutopilotControlParameters is clear."); - CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null); - } - - //清除订单信息 - public void clearCurrentOCHOrder() { - startOrStopCalculateRouteInfo(false); - mCurrentOCHOrder = null; - clearAutopilotControlParameters(); - TaxiTrajectoryManager.getInstance().syncTrajectoryInfo(); - SharedPrefsMgr.getInstance().remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER); - isRestartAutopilot = false; - if (FunctionBuildConfig.isDemoMode) { - // 当美化模式(演示模式)开启时: 取消或订单已完成时,置false - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false; - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为false(已完成or清除当前订单)"); - } - } - - //检测当前订单 - public boolean checkCurrentOCHOrder() { - return mCurrentOCHOrder != null - && mCurrentOCHOrder.startSiteGcjPoint != null - && mCurrentOCHOrder.endSiteGcjPoint != null; - } - - /** - * 以当前订单为基础,开启自动驾驶 - **/ - @ChainLog( - linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT, - linkCode = CHAIN_SOURCE_ADAS, - nodeAliasCode = CHAIN_CODE_OCH_TAXI_START_AUTOPILOT, - paramIndexes = {-1} - ) - public void startAutoPilot() { - - /** - * 存在Session - */ - if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return; - } - - OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis()); - - - if (!checkCurrentOCHOrder()) { - CallerLogger.e(M_TAXI + TAG, "no order or order is empty."); - ToastUtils.showShort("当前订单不存在或异常!"); - return; - } - - //1、判断轨迹url是否可用 - if (FunctionBuildConfig.isPassStartAutopilotCommand - && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrl) - && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP) - ) { - ToastUtils.showLong("无发布轨迹, 请发布后重试"); - CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " + - FunctionBuildConfig.isPassStartAutopilotCommand - + "busRoutesResult.csvFileUrl = " + mCurrentOCHOrder.csvFileUrl - + "busRoutesResult.csvFileUrlDPQP = " + mCurrentOCHOrder.csvFileUrlDPQP); - return; - } - //2、6个条件判断 - if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true, 0)) { - return; - } - - //3、距离轨迹15m计算 - String resion = OchAutoPilotManager.canStartAutoPilotByDistance(mCurrentOCHOrder.lineId); - if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){ - setStation(); - resion = OchAutoPilotManager.canStartAutoPilotByDistance(mCurrentOCHOrder.lineId); - } - if(!StringUtils.isEmpty(resion)){ - ToastUtils.showShort(resion); - VoiceNotice.showNotice(resion); - return; - } - - CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " + - FunctionBuildConfig.isPassStartAutopilotCommand); - //4、ssm 给出数据 - if (!OchAutoPilotManager.canStartAutoPilotSSM()) { - OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent( - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, - String.valueOf(mCurrentOCHOrder.lineId),mCurrentOCHOrder.orderNo, - OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); - return; - } - if(CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - ToastUtils.showShort("自驾中、请勿重复启动"); - return; - } - - //点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩 - if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { - startServicePilotDone(); - isRestartAutopilot = false; - } else { - isRestartAutopilot = true; - } - - AutopilotControlParameters parameters = initAutopilotControlParameters(); - - if (null == parameters) { - CallerLogger.e(M_TAXI + TAG, "AutopilotControlParameters is empty."); - return; - } - - long sessionId = OchAutoPilotManager.startAutoPilot(parameters); - - CallerLogger.d(M_TAXI + TAG, "start autopilot with parameter: %s", - GsonUtil.jsonFromObject(parameters) - + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr - + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr - + "isRestartAutopilot = " + isRestartAutopilot); - - OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, false, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, - (int) mCurrentOCHOrder.lineId, - mCurrentOCHOrder.orderNo,System.currentTimeMillis(),0); - OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId); - - if (mControllerStatusCallback != null) { - mControllerStatusCallback.startOpenAutopilot(); - } - - // TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除 -// OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" ); - } - - private AutopilotControlParameters initAutopilotControlParameters() { - - if (!checkCurrentOCHOrder()) { - CallerLogger.e(M_TAXI + TAG, "no order or order is empty."); - 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); - - // TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。 - //parameters.wayLatLons - //parameters.blackLatLons - - if (parameters.autoPilotLine == null) { - parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine( - mCurrentOCHOrder.lineId, mCurrentOCHOrder.lineName, - 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 cancelAutopilot() { - try { - CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - CallerLogger.d(M_TAXI + TAG, "结束自动驾驶"); - } catch (Exception e) { - e.printStackTrace(); - } - } - - //根据围栏判断,是否到达起点 - private void judgeStartStation(MogoLocation location) { - if (mCurrentOCHOrder == null || mCurrentOCHOrder.startSiteGcjPoint == null - || mCurrentOCHOrder.startSiteGcjPoint.size() < 2) { - return; - } - double startLon = mCurrentOCHOrder.startSiteGcjPoint.get(0); - double startLat = mCurrentOCHOrder.startSiteGcjPoint.get(1); - double distance = CoordinateUtils.calculateLineDistance( - startLon, startLat, - location.getLongitude(), location.getLatitude()); - - CallerLogger.i(M_TAXI + TAG, "judgeStartStation() distance = " + distance); - - if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) { - arrivedStartPoint(); - } - } - - //监听网络变化,避免启动机器时无网导致无法更新订单信息 - private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { - @Override - public void onIntentReceived(String intentStr, Intent intent) { - CallerLogger.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr); - if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { - if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType()); - LoginStatusManager.queryLoginStatusByNet(false); - } - } - } - }; - - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { - - @Override - public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { - if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) { - CallerLogger.e(M_TAXI + TAG, "mAdasStartFailureListener = " + startFailedMessage); - mADASStatusCallback.onStartAdasFailure(); - } - } - }; - - // 自车定位 - private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() { - @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { - //位置变化时,通过围栏判断是否到达x点 - if (null == gnssInfo) return; - OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() { - @Override - public void run() { - if (checkCurrentOCHOrder()) { - if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToStart) { - judgeStartStation(gnssInfo); - } - if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd) { - judgeEndStation(gnssInfo); - } - } - } - }); - } - }; - - private void judgeEndStation(MogoLocation currentLocation) { - if (mCurrentOCHOrder == null || mCurrentOCHOrder.endSiteGcjPoint == null - || mCurrentOCHOrder.endSiteGcjPoint.size() < 2) { - return; - } - double endLon = mCurrentOCHOrder.endSiteGcjPoint.get(0); - double endLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); - double distance = CoordinateUtils.calculateLineDistance( - endLon, endLat, - currentLocation.getLongitude(), currentLocation.getLatitude()); - - CallerLogger.i(M_TAXI + TAG, "judgeEndStation() distance = " + distance); - - if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) { //1、当前位置和站点围栏15m内 - - if (!checkCurrentOCHOrder() - || (getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) { - CallerLogger.i(M_TAXI + TAG, "order exception or order ArriveAtEnd"); - return; - } - - //2、开始计算当前位置和站点的向量角度 < 90度 未经过 >90度 经过 - double stationAngle = DrivingDirectionUtils.getDegreeOfCar2Poi( - currentLocation.getLongitude(), - currentLocation.getLatitude(), - endLon, - endLat, - (int) currentLocation.getHeading()); - - CallerLogger.i(M_TAXI + TAG, "judgeEndStation() stationAngle = " + stationAngle); - - if (!checkCurrentOCHOrder() - || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd - ) { - CallerLogger.i(M_TAXI + TAG, "order exception or order ArriveAtEnd"); - return; - } - - //3、刚过站且过站距离在15m内, 提交到站 - if (stationAngle > 90) { - CallerLogger.i(M_TAXI + TAG, "judgeEndStation() = 刚过站且在15m内"); - arriveTerminal(); - } else { - // 4、 没有过站距离小于15m 速度小于0.3(根据M1来的模数 可能要调) - if (currentLocation.getGnssSpeed() < 0.3) { - CallerLogger.i(TAG, "judgeEndStation() = 没有过站、速度基本为零且在15m内"); - arriveTerminal(); - } - } - } - - } - - /** - * 订单流转debug START - */ - public void setArriveAtStartStation() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.OnTheWayToStart.getCode()) { - ToastUtils.showShort("订单状态不匹配该操作!"); - return; - } - arrivedStartPoint(); - } - - public void setDriverConfirmCondition() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { - ToastUtils.showShort("订单状态不匹配该操作!"); - return; - } - confirmAutopilotConditionByDriver(); - } - - public void setArriveAtEndStation() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) { - ToastUtils.showShort("订单状态不匹配该操作!"); - return; - } - arriveTerminal(); - } - - /** - * 测试开启自动驾驶 - */ - public void setOnTheWayToEndStation() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) { - ToastUtils.showShort("订单状态不匹配该操作!"); - } - startServicePilotDone(); - } - - private final IOchAutopilotStatusListener mGoAutopilotStatusListener = new IOchAutopilotStatusListener() { - - @Override - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { - TaxiTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId); - } - - @Override - public void onAutopilotStatusResponseFromCan(int state) { - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, - (int) mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo,System.currentTimeMillis(),1); - } - } - - @Override - public void onAutopilotStatusResponse(int state) { - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotRunning(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - if (mCurrentOCHOrder != null - && TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) { - OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, - (int) mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo,System.currentTimeMillis(),0); - if (FunctionBuildConfig.isDemoMode) { - // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true - FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; - CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true); - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true); - CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"); - } - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { - if (FunctionBuildConfig.isDemoMode - && checkCurrentOCHOrder() - && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd - || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) { - // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 - return; - } - if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotEnable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { - if (FunctionBuildConfig.isDemoMode - && checkCurrentOCHOrder() - && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd - || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) { - // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 - return; - } - if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) { - if (FunctionBuildConfig.isDemoMode) { - if (checkCurrentOCHOrder() - && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd - || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {//订单中 - // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 - } else { //美化模式下没订单,显示人工驾驶 - if (mADASStatusCallback != null) { - mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - } - return; - } - if (mADASStatusCallback != null) { - mADASStatusCallback.onManMachineCoDriving(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - } - } - - @Override - public void canStartAutopilot(boolean canStart) { - if (mADASStatusCallback != null) { - mADASStatusCallback.updateAutopilotStatus(canStart); - } - } - - @Override - public void onAutopilotArriveAtStation(ArrivedStation data) { - CallerLogger.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString()); - - if (data == null || !checkCurrentOCHOrder() - || (getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) { - return; - } - arriveTerminal(); - - if (FunctionBuildConfig.isDemoMode) { - // 当美化模式(演示模式)开启时: 到达目的地,置false - CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false); - CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为false(到达目的地)"); - } - } - }; - - private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { - - @Override - public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { - if (null != routeList && routeList.getWayPointsList() != null) { - CallerLogger.d(M_TAXI + TAG, "getWayPointsList = " - + routeList.getWayPointsList().size()); - } - if (null != routeList && routeList.getWayPointsList().size() > 0) { - updateOrderRoute(routeList.getWayPointsList()); - updateOrderRouteInfo(routeList.getWayPointsList()); - } - } - - }; - - /** - * 设置路径规划起终点 - * - */ - public void setRouteLineMarker() { - OrderQueryRespBean.Result currentOCHOrder = getCurrentOCHOrder(); - if(currentOCHOrder!=null) { - if (currentOCHOrder.startSiteGcjPoint == null || currentOCHOrder.startSiteGcjPoint.isEmpty() || currentOCHOrder.startSiteGcjPoint.size() < 2|| - currentOCHOrder.endSiteGcjPoint == null || currentOCHOrder.endSiteGcjPoint.isEmpty() || currentOCHOrder.endSiteGcjPoint.size() < 2) { - cleanLineMarker(); - return; - } - LatLng startStation = new LatLng(currentOCHOrder.startSiteGcjPoint.get(1),currentOCHOrder.startSiteGcjPoint.get(0)); - LatLng endStation = new LatLng(currentOCHOrder.endSiteGcjPoint.get(1),currentOCHOrder.endSiteGcjPoint.get(0)); - if (mAutopilotPlanningCallback != null) { - mAutopilotPlanningCallback.setLineMarker(startStation,endStation); - } - } - } - public void cleanLineMarker(){ - if (mAutopilotPlanningCallback != null) { - mAutopilotPlanningCallback.setLineMarker(null,null); - } - } - - /** - * 上报订单全路径规划数据 - * - * @param models - */ - public void updateOrderRoute(List models) { - if (null == mCurrentOCHOrder) return; - List points = coordinateConverterWgsToGcjList(mContext, models); - TaxiServiceManager.updateOrderRoute(mContext, mCurrentOCHOrder.orderNo - , points, new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - - } - - @Override - public void onError() { - // TODO: 2022/5/18 是否在请求异常时候进行提示 - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - public static List coordinateConverterWgsToGcjList(Context mContext, List mogoLatLngList) { - List points = new ArrayList<>(); - for (MessagePad.Location m : mogoLatLngList) { - LatLng mogoLatLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(mContext, m); - OrderRouteUpdateReqBean.Result result = new OrderRouteUpdateReqBean.Result(); - result.latitude = mogoLatLng.latitude; - result.longitude = mogoLatLng.longitude; - points.add(result); - } - return points; - } - - /** - * 计算全路径长度,以及实时更新剩余距离,剩余时间,预计时间 - * - * @param models - */ - public void updateOrderRouteInfo(List models) { - if (null == models || models.size() == 0) return; - if (mCurrentOCHOrder == null) return; - CallerLogger.d(M_TAXI + TAG, "--------计算出sumLength开始---------- "); - - //转换成高德坐标系 - if (mRoutePoints.size() > 0) { - mRoutePoints.clear(); - } - mRoutePoints.addAll(CoordinateCalculateRouteUtil - .coordinateConverterWgsToGcjLocations(mContext, models)); - startDynamicCalculateRouteInfo(); - } - - public void startDynamicCalculateRouteInfo() { - CallerLogger.d(M_TAXI + TAG, "--------mCurrentOCHOrder---------- " + mCurrentOCHOrder); - - if (mCurrentOCHOrder != null && mRoutePoints.size() == 0) {//根据orderNo去查询 - queryOrderRouteList(mCurrentOCHOrder.orderNo); - } - CallerLogger.d(M_TAXI + TAG, "--------mRoutePoints.size---------- " + mRoutePoints.size()); - - if (mRoutePoints.size() > 0) { - reportTotalDisAndTime(); - } - if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtStart.getCode() ||//司机到达上车点 - mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode() ||//乘客到达上车点 - mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()//服务中(去往目的地) - ) { - //开启实时计算剩余距离,剩余时间,预计时间 - startOrStopCalculateRouteInfo(true); - AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi(); - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onNaviToEnd(false, false); - } - } - } - - private void reportTotalDisAndTime() { - float lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(mRoutePoints); - double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒 - - reportOrderRemain((long) lastSumLength, (long) lastTime); - } - - /** - * 实时计算当前剩余里程和时间 - */ - public void dynamicCalculateRouteInfo() { -// if (mLocation == null) { -// return; -// } -// if (mRoutePoints.size() > 0 && mLocation != null) { -// Map> lastPointsMap = CoordinateCalculateRouteUtil -// .getRemainPointListByCompareNew(mPreRouteIndex, mRoutePoints, mLocation); -// -// for (int index : lastPointsMap.keySet()) { -// mPreRouteIndex = index; -// break; -// } -// for (List lastPoints : lastPointsMap.values()) { -// float lastSumLength = 0; -// if (lastPoints.size() == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 -// lastSumLength = CoordinateUtils.calculateLineDistance( -// lastPoints.get(0).getLongitude(), lastPoints.get(0).getLatitude(), -// mLocation.getLongitude(), mLocation.getLatitude()); -// } else { -// lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints); -// } -// updateDistance(lastSumLength); -// break; -// } -// routeAndWipe(); -// } - } - - private void updateDistance(float lastSumLength){ - double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒 - CallerLogger.d(M_TAXI + "dynamicCalculateRouteInfo" - , "---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime - + " thread = " + Thread.currentThread().getName()); - - if (mCurrentOCHOrder != null) { - mCurrentOCHOrder.decreaseTravelDistance(lastSumLength); - } - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onCurrentOrderDistToEndChanged((long) lastSumLength, (long) lastTime); - } - - reportOrderRemain((long) lastSumLength, (long) lastTime); - } - - private final IDistanceListener distanceListener = new IDistanceListener() { - @Override - public void distanceCallback(float distance) { - updateDistance(distance); - } - - @Override - public void stationDistanceCallback(float stationDistance) { - } - }; - - private final ITrajectoryListener trajectoryListener = (routeArrivied, routeArriving, location) -> { - if (mAutopilotPlanningCallback != null) { - 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.routeResult(routeArriviedTemp, routeArrivingTemp,location); - setRouteLineMarker(); - } - }; - - - /** - * 查询当前订单的全局路径 (当自动驾驶开启后,订单前往乘客上车点,杀掉应用再次进来时候) - */ - private void queryOrderRouteList(String orderNo) { - if (mCurrentOCHOrder != null) { - TaxiServiceManager.queryOrderRoute(mContext, orderNo, - new OchCommonServiceCallback() { - @Override - public void onSuccess(QueryOrderRouteResp data) { - if (data != null && data.data != null && mRoutePoints.size() == 0) { - mRoutePoints.clear(); - List routePoints = CoordinateCalculateRouteUtil - .coordinateConverterLatlngToLocation(data.data); - mRoutePoints.addAll(routePoints); - } - } - - @Override - public void onError() { - // TODO: 2022/5/18 是否在请求异常的时候提示 - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - } - - /** - * 开始轮询计算剩余里程和时间 - * - * @param isStart - */ - public void startOrStopCalculateRouteInfo(boolean isStart) { - CallerLogger.d(M_TAXI + TAG, "startOrStopOrderLoop() " + isStart); - if (isStart) { - TaxiModelLoopManager.getInstance().startCalculateRouteInfoLoop(); - } else { - mRoutePoints.clear(); - TaxiModelLoopManager.getInstance().stopCalculateRouteInfoLoop(); - } - } - - /** - * 上报订单剩余里程和时间 单位:KM, M, 单位:秒 - * - * @param lastSumLength 上报订单剩余里程 - * @param duration 上报订单剩余时间 - */ - public void reportOrderRemain(long lastSumLength, long duration) {// 米/秒 - if (mCurrentOCHOrder == null) return; - TaxiServiceManager.reportOrderRemain(mContext, mCurrentOCHOrder.orderNo - , lastSumLength, duration, new OchCommonServiceCallback() { - @Override - public void onSuccess(BaseData data) { - - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - /** - * 司机端可确认乘客已上车,调用后,后台将订单置为乘客已上车状态 - */ - public void jumpPassengerCheckDone() { - if (mCurrentOCHOrder == null - || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode()) { - ToastUtils.showShort("订单状态不匹配该操作或者订单为空!"); - return; - } - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - result.lat = gcj02Location.getLatitude(); - result.lon = gcj02Location.getLongitude(); - TaxiServiceManager.updatePassengerHasBoardedStatus(mContext - , mCurrentOCHOrder.orderNo - , result - , new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - - } - - @Override - public void onFail(int code, String msg) { - ToastUtils.showShort(msg); - } - }); - } - - public void startServicePilotDone() { - if (mCurrentOCHOrder == null) return; - - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - result.lat = gcj02Location.getLatitude(); - result.lon = gcj02Location.getLongitude(); - TaxiServiceManager.startServicePilotDone(mContext - , mCurrentOCHOrder.orderNo - , result - , new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - - } - - @Override - public void onFail(int code, String msg) { - } - }); - } - - public void arrivedStartPoint() { - if (mCurrentOCHOrder == null) return; - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - result.lat = gcj02Location.getLatitude(); - result.lon = gcj02Location.getLongitude(); - TaxiServiceManager.arrivedStartPoint(mContext - , mCurrentOCHOrder.orderNo - , result - , new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - public void arriveTerminal() { - if (mCurrentOCHOrder == null) return; - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - result.lat = gcj02Location.getLatitude(); - result.lon = gcj02Location.getLongitude(); - TaxiServiceManager.arriveTerminal(mContext - , mCurrentOCHOrder.orderNo - , result - , new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - - } - - @Override - public void onFail(int code, String msg) { - - } - }); - } - - public void orderCompleted() { - if (mCurrentOCHOrder == null) return; - TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - result.lat = gcj02Location.getLatitude(); - result.lon = gcj02Location.getLongitude(); - TaxiServiceManager.orderCompleted(mContext - , mCurrentOCHOrder.orderNo - , result - , new OchCommonServiceCallback() { - @Override - public void onSuccess(TaxiDataBaseRespBean data) { - } - - @Override - public void onFail(int code, String msg) { - ToastUtils.showShort(msg); - } - }); - } - - // 登出 - public void logout() { - LoginStatusManager.loginOut(); - } - - //导航去订单终点目的地 - public void startNaviToEndStation(boolean isShow) { - if (mRoutePoints.size() > 0) { //使用自驾轨迹 - if (mOrderStatusCallback != null) { - mOrderStatusCallback.onNaviToEnd(false, isShow); - } - } else {//若直接要显示导航地图则直接导航, 若不是则2s后若无轨迹数据使用高德导航 - if (isShow && mOrderStatusCallback != null) { - - mOrderStatusCallback.onNaviToEnd(true, true); - } else { - UiThreadHandler.postDelayed(() -> { - if (mRoutePoints.size() == 0 && mOrderStatusCallback != null) { - mOrderStatusCallback.onNaviToEnd(true, false); - } - }, 2000L); - } - - } - } - - public void setStation(){ - OrderQueryRespBean.Result currentOCHOrder = getCurrentOCHOrder(); - if(currentOCHOrder!=null){ - MogoLocation startStation = new MogoLocation(); - startStation.setLongitude(currentOCHOrder.startSiteGcjPoint.get(0)); - startStation.setLatitude(currentOCHOrder.startSiteGcjPoint.get(1)); - MogoLocation endStation = new MogoLocation(); - endStation.setLongitude(currentOCHOrder.endSiteGcjPoint.get(0)); - endStation.setLatitude(currentOCHOrder.endSiteGcjPoint.get(1)); - TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,currentOCHOrder.lineId); - } - } - - public void cleanStation(){ - TrajectoryAndDistanceManager.INSTANCE.setStationPoint(null,null,-1L); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java deleted file mode 100644 index 83bfe4b59f..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.mogo.och.taxi.model; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; -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.constant.TaxiConst; - -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 TaxiModelLoopManager { - - private static final String TAG = TaxiModelLoopManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final TaxiModelLoopManager INSTANCE = new TaxiModelLoopManager(); - } - - public static TaxiModelLoopManager getInstance() { - return SingletonHolder.INSTANCE; - } - - private Disposable mInAndWaitServiceDisposable; //进行中、待服务订单列表轮询 - private Disposable mNewBookingOrderDisposable; //新到待抢预约单轮询 - private Disposable mGrabResultDisposable; //抢单结果轮询 - private Disposable mHeartbeatDisposable; //心跳轮询 - private CompositeDisposable mCalculateRouteDisposable; //每隔2s计算一次剩余里程和时间 - - public void startInAndWaitOrdersLoop() { - if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_TAXI + TAG, "startInAndWaitOrdersLoop()"); - mInAndWaitServiceDisposable = Observable.interval(TaxiConst.LOOP_DELAY, - TaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiModel.getInstance().queryInAndWaitOrders()); - } - - public void stopInAndWaitOrdersLoop() { - if (mInAndWaitServiceDisposable != null) { - CallerLogger.i(M_TAXI + TAG, "stopInAndWaitOrdersLoop()"); - mInAndWaitServiceDisposable.dispose(); - mInAndWaitServiceDisposable = null; - } - } - - public void startNewBookingOrderLoop() { - if (mNewBookingOrderDisposable != null && !mNewBookingOrderDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_TAXI + TAG, "startNewBookingOrderLoop()"); - mNewBookingOrderDisposable = Observable.interval(TaxiConst.LOOP_DELAY, - TaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiModel.getInstance().queryNewBookingOrder()); - } - - public void stopNewBookingOrderLoop() { - if (mNewBookingOrderDisposable != null) { - CallerLogger.i(M_TAXI + TAG, "stopNewBookingOrderLoop()"); - mNewBookingOrderDisposable.dispose(); - mNewBookingOrderDisposable = null; - } - } - - public void startGrabResultLoop() { - if (mGrabResultDisposable != null && !mGrabResultDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_TAXI + TAG, "startGrabResultLoop()"); - mGrabResultDisposable = Observable.interval(TaxiConst.LOOP_DELAY, - TaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiModel.getInstance().queryOrderGrabStatus()); - } - - public void stopGrabResultLoop() { - if (mGrabResultDisposable != null) { - CallerLogger.i(M_TAXI + TAG, "stopGrabResultLoop()"); - mGrabResultDisposable.dispose(); - mGrabResultDisposable = null; - } - } - - public void startHeartbeatLoop() { - if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_TAXI + TAG, "startHeartbeatLoop()"); - mHeartbeatDisposable = Observable.interval(TaxiConst.LOOP_DELAY, - TaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiModel.getInstance().runCarHeartbeat()); - } - - public void stopHeartbeatLoop() { - if (mHeartbeatDisposable != null) { - CallerLogger.i(M_TAXI + TAG, "stopHeartbeatLoop()"); - mHeartbeatDisposable.dispose(); - mHeartbeatDisposable = null; - } - } - - public void startCalculateRouteInfoLoop() { - - CallerLogger.i(M_TAXI + TAG, "startCalculateRouteInfoLoop()"); - if (mCalculateRouteDisposable != null) return; - - mCalculateRouteDisposable = new CompositeDisposable(); - - Disposable disposable = loopDynamicCalculateRouteInfo() - .doOnSubscribe(new Consumer() { - @Override - public void accept(Disposable disposable) throws Exception { - - } - }).doOnError(new Consumer() { - @Override - public void accept(Throwable throwable) throws Exception { - } - }) - .delay(TaxiConst.LOOP_CALCULATEROUTE_2S, TimeUnit.MILLISECONDS, true) // 设置delayError为true,表示出现错误的时候也需要延迟5s进行通知,达到无论是请求正常还是请求失败,都是5s后重新订阅,即重新请求。 - .subscribeOn(Schedulers.io()) - .repeat() // repeat保证请求成功后能够重新订阅。 - .retry() // retry保证请求失败后能重新订阅 - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Consumer() { - @Override - public void accept(Integer integer) throws Exception { - } - }); - mCalculateRouteDisposable.add(disposable); - } - - private Observable loopDynamicCalculateRouteInfo(){ - return Observable.create(new ObservableOnSubscribe() { - @Override - public void subscribe(ObservableEmitter emitter) throws Exception { - if (emitter.isDisposed()) return; - TaxiModel.getInstance().dynamicCalculateRouteInfo(); - emitter.onComplete(); - } - }); - } - - public void stopCalculateRouteInfoLoop() { - if (mCalculateRouteDisposable != null) { - CallerLogger.i(M_TAXI + TAG, "stopCalculateRouteInfoLoop()"); - mCalculateRouteDisposable.dispose(); - mCalculateRouteDisposable = null; - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java deleted file mode 100644 index d94db25dfe..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java +++ /dev/null @@ -1,308 +0,0 @@ -package com.mogo.och.taxi.network; -import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.taxi.bean.CarHeartbeatReqBean; -import com.mogo.och.taxi.bean.DriverServiceDataRespBean; -import com.mogo.och.taxi.bean.DriverStatusUpdateReqBean; -import com.mogo.och.taxi.bean.OrderCancelReqBean; -import com.mogo.och.taxi.bean.OrderGrabReqBean; -import com.mogo.och.taxi.bean.OrderGrabRespBean; -import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean; -import com.mogo.och.taxi.bean.OrderQueryReqBean; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoReqBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; -import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean; -import com.mogo.och.taxi.bean.OrderStatusUpdateReqBean; -import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean; -import com.mogo.och.taxi.bean.OrdersListQueryReqBean; -import com.mogo.och.taxi.bean.OrdersListQueryRespBean; -import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean; -import com.mogo.och.taxi.bean.QueryOrderRouteResp; -import com.mogo.och.taxi.bean.TaxiDataBaseRespBean; -import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean; -import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean; - -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 TaxiServiceApiNew { - - /** - * 查询全部服务中/待服务订单(没有的时候返回code 0,空列表) - * @param sn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @GET("/autopilot-car-hailing/api/v1/driver/orderInService/query") - @GET("/autopilot-car-hailing/order/v2/driver/taxi/orderInService/query") - Observable queryOrdersInAndWaitService(@Header("appId") String appId - , @Header("ticket") String ticket, @Query("sn") String sn); - - /** - * 查询新到的预约单 - * @param sn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @GET( "/autopilot-car-hailing/api/v1/driver/newBookingOrder/query" ) - @GET( "/autopilot-car-hailing/order/v2/driver/taxi/newBookingOrder/query" ) - Observable queryNewBookingOrder(@Header ("appId") String appId - ,@Header("ticket") String ticket,@Query("sn") String sn); - - /** - * (预约单)执行抢单动作 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/grabOrder" ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabOrder" ) - Observable grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderGrabReqBean data); - - /** - * (预约单)查询抢单结果 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/grabStatus/query" ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabStatus/query" ) - Observable queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderGrabReqBean data); - - /** - * 查询订单路径规划信息(到上车点、起始点间的距离和预估时间) - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/routeInfo/query" ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/routeInfo/query" ) - Observable queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderQueryRouteInfoReqBean data); - - /** - * 通过orderId查询订单信息(用于本地已经有orderId时) - * @param data - * @return - * @deprecated v2.1_0930需求中暂不再使用此接口 - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrderById" ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderById" ) - Observable queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderQueryReqBean data); - - /** - * 查询服务中订单信息(用于本地无orderId时) - * 如果有多条,只会返回时间最近的一条 - * @param sn - * @return - * @deprecated v2.1_0930需求中暂不再使用此接口 - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @GET( "/autopilot-car-hailing/api/v1/driver/queryOrderInService" ) - @GET( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderInService" ) - Observable queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Query("sn") String sn); - - /** - * 取消订单 - */ - @Headers({"Content-type:application/json;charset=UTF-8"}) -// @POST("/autopilot-car-hailing/api/v1/driver/cancelOrder") - @POST("/autopilot-car-hailing/order/v2/driver/taxi/cancelOrder") - Observable cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderCancelReqBean data); - - /** - * 订单列表获取 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrders" ) - @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrders" ) - Observable queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrdersListQueryReqBean data); - - /** - * 订单状态更新 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/order/updateStatus" ) -// @POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" ) - @POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/driver/updateStatus" ) - Observable updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body OrderStatusUpdateReqBean data); - - /** - * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/heartbeat" ) - @POST( "/autopilot-car-hailing/location/v2/driver/taxi/heartbeat" ) - Observable runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body CarHeartbeatReqBean data); - - /** - * 查询司机服务数据 - * @param sn - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @GET( "/autopilot-car-hailing/api/v1/driver/serviceData/query" ) - @GET( "/autopilot-car-hailing/order/v2/driver/taxi/serviceData/query" ) - Observable queryServiceData(@Header ("appId") String appId - ,@Header("ticket") String ticket,@Query("sn") String sn); - - /** - * 上传工控机返回的全路径规划数据 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST("/autopilot-car-hailing/order/v2/driver/taxi/saveOrderRoute") -// @POST("/mock/268/autopilot-car-hailing/order/v2/driver/taxi/orderRoute") - Observable updateOrderRoute(@Header ("appId") String appId - , @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data); - - /** - * 上报订单剩余里程和剩余时间 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST("/autopilot-car-hailing/order/v2/driver/taxi/reportOrderRemain") - Observable reportOrderRemain(@Header ("appId") String appId - , @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data); - - - @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/orderRoute" ) - Observable queryOrderRoute(@Header ("appId") String appId - , @Header("ticket") String ticket, @Query("orderNo") String orderNo); - - /** - * 司机端跳过乘客验证,订单状态流转为乘客已上车 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/ready/passenger" ) - Observable updatePassengerHasBoardedStatus(@Header ("appId") String appId - , @Header("ticket") String ticket, @Body TaxiOrPassengerReadyReqBean data); - - /** - * 司机端确认可开启自动驾驶 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/ready/pilot" ) - Observable confirmAutopilotConditionByDriver(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); - - /** - * 查询司机是否已确认可开启自动驾驶 - * @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/startServicePilot" ) - Observable startServicePilotDone(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); - - /** - * 达到乘客上车点 - * @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/arriveStartPoint" ) - Observable arrivedStartPoint(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); - - /** - * 到达乘客目的地 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/arriveTerminal" ) - Observable arriveTerminal(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); - - /** - * 订单完成 - * @param appId - * @param ticket - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/orderCompleted" ) - Observable orderCompleted(@Header ("appId") String appId - , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data); - - /** - * 暂停接单 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/stopOrderServing" ) - Observable stopOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body DriverStatusUpdateReqBean data); - /** - * 暂停接单 - * @param data - * @return - */ - @Headers( {"Content-type:application/json;charset=UTF-8"} ) -// @POST( "/autopilot-car-hailing/api/v1/driver/serviceStatus/update" ) - @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/resetOrderServing" ) - Observable resetOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket - ,@Body DriverStatusUpdateReqBean data); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt deleted file mode 100644 index 49524e0060..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt +++ /dev/null @@ -1,500 +0,0 @@ -package com.mogo.och.taxi.network - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.och.common.module.constant.OchCommonConst -import com.mogo.och.common.module.network.OchCommonServiceCallback -import com.mogo.och.common.module.network.OchCommonSubscribeImpl -import com.mogo.och.common.module.network.interceptor.transformTry -import com.mogo.och.data.taxi.OrderQueryRouteInfoReqBean -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean -import com.mogo.och.taxi.bean.* -import io.reactivex.Observable - -/** - * Created by pangfan on 2021/8/19 - */ -object TaxiServiceManager { - - - private var mOCHTaxiServiceApi: TaxiServiceApiNew = - MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( - TaxiServiceApiNew::class.java - ) - - /** - * 查询全部服务中/待服务订单列表 - * @param context - * @param callback - */ - @JvmStatic - fun queryOrdersInAndWaitService( - context: Context, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrdersInAndWaitService( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService",false)) - } - - /** - * 查询新到的预约单 - * @param context - * @param callback - */ - @JvmStatic - fun queryNewBookingOrder( - context: Context, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryNewBookingOrder( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryNewBookingOrder",false)) - } - - /** - * (预约单)执行抢单动作 - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - fun grabOrder( - context: Context, orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.grabOrder( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderGrabReqBean( - SharedPrefsMgr.getInstance().sn, orderNo - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "grabOrder")) - } - - /** - * (预约单)查询抢单结果 - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - fun queryOrderGrabStatus( - context: Context, orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrderGrabStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderGrabReqBean( - SharedPrefsMgr.getInstance().sn, orderNo - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderGrabStatus",false)) - } - - /** - * 查询订单路径规划信息(到上车点、起始点间的距离和预估时间) - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - fun queryOrderRouteInfo( - context: Context, orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrderRouteInfo( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderQueryRouteInfoReqBean( - SharedPrefsMgr.getInstance().sn, orderNo - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderRouteInfo")) - } - - /** - * 通过orderId查询订单信息(用于本地已经有orderId时) - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - @Deprecated("v2.1_0930需求中暂不再使用此接口") - fun queryOrderById( - context: Context, orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrderById( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderQueryReqBean( - SharedPrefsMgr.getInstance().sn, orderNo - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderById")) - } - - /** - * 查询未完成态订单信息(用于本地无orderId时) - * 如果有多条,只会返回时间最近的一条 - * @param context - * @param callback - */ - @JvmStatic - @Deprecated("v2.1_0930需求中暂不再使用此接口") - fun queryOrderInService( - context: Context, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrderInService( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderInService")) - } - - /** - * 司机取消订单 - * @param context - * @param orderNo - * @param cancelType - * @param cancelReason - * @param callback - */ - @JvmStatic - fun cancelOrder( - context: Context, orderNo: String?, cancelType: Int, cancelReason: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.cancelOrder( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderCancelReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, cancelType, cancelReason - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "cancelOrder")) - } - - /** - * 订单列表获取 - * @param context - * @param page - * @param size - * @param callback - */ - @JvmStatic - fun queryOrdersList( - context: Context, page: Int, size: Int, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrdersList( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrdersListQueryReqBean( - SharedPrefsMgr.getInstance().sn, page, size - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersList")) - } - - /** - * 订单状态更新 - * @param context - * @param orderNo - * @param orderStatus - * @param callback - */ - @JvmStatic - fun updateOrderStatus( - context: Context, orderNo: String?, orderStatus: Int, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.updateOrderStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderStatusUpdateReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, orderStatus - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderStatus")) - } - - /** - * 暂停接单 - * @param context - * @param callback - */ - @JvmStatic - fun changeOrderServing( - context: Context, isOrdering: Boolean, - callback: OchCommonServiceCallback? - ) { - val baseDataObservable: Observable = if (isOrdering) { // 正在接单去暂停 - mOCHTaxiServiceApi.stopOrderServing( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - DriverStatusUpdateReqBean( - SharedPrefsMgr.getInstance().sn - ) - ).transformTry() - } else { // 没有接单去接单 - mOCHTaxiServiceApi.resetOrderServing( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - DriverStatusUpdateReqBean( - SharedPrefsMgr.getInstance().sn - ) - ).transformTry() - } - baseDataObservable - .subscribe(OchCommonSubscribeImpl(context, callback, "updateDriverServiceStatus")) - } - - /** - * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度 - * @param context - * @param lon - * @param lat - * @param callback - */ - @JvmStatic - fun runCarHeartbeat( - context: Context, lon: Double, lat: Double, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.runCarHeartbeat( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - CarHeartbeatReqBean( - SharedPrefsMgr.getInstance().sn, lon, lat - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "runCarHeartbeat",false)) - } - - /** - * 查询司机服务数据 - * @param context - * @param callback - */ - @JvmStatic - fun queryDriverServiceData( - context: Context, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryServiceData( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - SharedPrefsMgr.getInstance().sn - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverServiceData")) - } - - /** - * 根据订单上传工控机返回的全路径规划数据 - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - fun updateOrderRoute( - context: Context, orderNo: String?, points: List?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.updateOrderRoute( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - OrderRouteUpdateReqBean(orderNo, points) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute")) - } - - /** - * 上报剩余里程,时间 - * @param context - * @param orderNo - * @param distance - * @param duration - * @param callback - */ - @JvmStatic - fun reportOrderRemain( - context: Context, - orderNo: String?, - distance: Long, - duration: Long, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.reportOrderRemain( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - UpdateOrderDisAndTimeReqBean(orderNo, distance, duration) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "reportOrderRemain")) - } - - /** - * 查询订单全路径 - * @param context - * @param orderNo - * @param callback - */ - @JvmStatic - fun queryOrderRoute( - context: Context, - orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryOrderRoute( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - orderNo - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryOrderRoute")) - } - @JvmStatic - fun confirmAutopilotConditionByDriver( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.confirmAutopilotConditionByDriver( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "confirmAutopilotConditionByDriver")) - } - @JvmStatic - fun queryAutopilotStatus( - context: Context, orderNo: String?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.queryPilotStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - orderNo - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "queryAutopilotStatus")) - } - @JvmStatic - fun updatePassengerHasBoardedStatus( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.updatePassengerHasBoardedStatus( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "updatePassengerHasBoardedStatus")) - } - @JvmStatic - fun startServicePilotDone( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.startServicePilotDone( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "startServicePilotDone")) - } - @JvmStatic - fun arrivedStartPoint( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback? - ) { - mOCHTaxiServiceApi.arrivedStartPoint( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arrivedStartPoint")) - } - @JvmStatic - fun arriveTerminal( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback - ) { - mOCHTaxiServiceApi.arriveTerminal( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveTerminal")) - } - @JvmStatic - fun orderCompleted( - context: Context, - orderNo: String?, - loc: TaxiOrPassengerReadyReqBean.Result?, - callback: OchCommonServiceCallback - ) { - mOCHTaxiServiceApi.orderCompleted( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - TaxiOrPassengerReadyReqBean( - SharedPrefsMgr.getInstance().sn, orderNo, loc - ) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "orderCompleted")) - } - -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java deleted file mode 100644 index a5b5053315..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.mogo.och.taxi.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.os.Looper; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -import com.amap.api.maps.model.LatLng; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.callback.IOCHTaxiAutopilotPlanningCallback; -import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.ui.TaxiRottingNaviFragment; - -import java.util.List; - -/** - * @author congtaowang - * @since 2021/1/18 - * - * 描述 - */ -public class NaviPresenter extends Presenter implements IOCHTaxiAutopilotPlanningCallback { - - private static final String TAG = NaviPresenter.class.getSimpleName(); - - public NaviPresenter(TaxiRottingNaviFragment view) { - super(view); - TaxiModel.getInstance().init(AbsMogoApplication.getApp()); - initListeners(); - } - - @Override - public void onCreate( @NonNull LifecycleOwner owner ) { - super.onCreate( owner ); - CallerLogger.d( M_TAXI + TAG, " onCreate" ); - } - - @Override - public void onDestroy( @NonNull LifecycleOwner owner ) { - releaseListeners(); - super.onDestroy( owner ); - } - - private void initListeners() { - TaxiModel.getInstance().setMoGoAutopilotPlanningListener(this); - } - - private void releaseListeners() { - TaxiModel.getInstance().setMoGoAutopilotPlanningListener(null); - } - - @Override - public void setLineMarker(LatLng startStation, LatLng endStation) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.setLineMarker(startStation, endStation); - } - } - },UiThreadHandler.MODE.QUEUE); - } - - @Override - public void routeResult(List routeArrivied, List routeArriving, MogoLocation location) { - if(mView!=null) { - mView.routeResult(routeArrivied, routeArriving, location); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java deleted file mode 100644 index 7ee705bcbf..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiOperationalPresenter.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.mogo.och.taxi.presenter; - -import android.os.Looper; - -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.taxi.callback.ITaxiCarOperationalCallback; -import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.ui.TaxiPersonalDialogFragment; - -import java.util.List; - -import androidx.annotation.NonNull; -import androidx.lifecycle.LifecycleOwner; - -public class TaxiOperationalPresenter extends Presenter - implements ITaxiCarOperationalCallback { - public TaxiOperationalPresenter(TaxiPersonalDialogFragment view) { - super(view); - initListener(); - } - - private void initListener() { - TaxiModel.getInstance().setCarStatusCallback(this); - } - - private void releaseListener(){ - TaxiModel.getInstance().setCarStatusCallback(null); - } - - @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - releaseListener(); - } - - // 获取全部订单列表 - public void queryOrdersList(int page, int size) { - TaxiModel.getInstance().queryOrdersList(page, size); - } - - @Override - public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onOrdersListPageRefresh(List ordersList) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onOrdersListPageRefresh(ordersList); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - private void runOnUIThread( Runnable executor ) { - if ( executor == null ) { - return; - } - if ( Looper.myLooper() != Looper.getMainLooper() ) { - UiThreadHandler.post( executor ); - } else { - executor.run(); - } - } - -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java deleted file mode 100644 index 3d93ae699a..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ /dev/null @@ -1,522 +0,0 @@ -package com.mogo.och.taxi.presenter; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.os.Build; -import android.os.Looper; -import android.util.ArrayMap; - -import androidx.annotation.NonNull; -import androidx.annotation.RequiresApi; -import androidx.lifecycle.LifecycleOwner; - -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.mvp.Presenter; -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.och.CallerEagleBaseFunctionCall4OchManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.login.ILoginCallback; -import com.mogo.och.common.module.biz.login.LoginStatusEnum; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; -import com.mogo.och.common.module.biz.order.OrderModel; -import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.common.module.manager.autopilot.line.LineManager; -import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.data.bean.LineInfo; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; -import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; -import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; -import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.ui.TaxiFragment; - -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -/** - * @author congtaowang - * @since 2021/1/18 - *

- * 描述 - */ -public class TaxiPresenter extends Presenter implements ITaxiADASStatusCallback, - ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback { - - private static final String TAG = TaxiPresenter.class.getSimpleName(); - - public TaxiPresenter(TaxiFragment view) { - super(view); - TaxiModel.getInstance().init(AbsMogoApplication.getApp()); - OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); - initListeners(); - } - - @Override - public void onCreate(@NonNull LifecycleOwner owner) { - super.onCreate(owner); - CallerLogger.d(M_TAXI + TAG, "网约车-onCreate"); - } - - @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - CallerLogger.d(M_TAXI + TAG, "网约车-onDestroy"); - releaseListeners(); - TaxiModel.getInstance().release(); - } - - private void initListeners() { - TaxiModel.getInstance().setADASStatusCallback(this); - TaxiModel.getInstance().setControllerStatusCallback(this); - TaxiModel.getInstance().setOrderStatusCallback(this); - LoginStatusManager.INSTANCE.addListener(TAG,this); - } - - private void releaseListeners() { - TaxiModel.getInstance().setADASStatusCallback(null); - TaxiModel.getInstance().setControllerStatusCallback(null); - TaxiModel.getInstance().setOrderStatusCallback(null); - LoginStatusManager.INSTANCE.removeListener(TAG); - OCHAdasAbilityManager.getInstance().release(); - } - - private void runOnUIThread(Runnable executor) { - if (executor == null) { - return; - } - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(executor); - } else { - executor.run(); - } - } - - /** - * 开启自动驾驶 自驾模式 - */ - public void startAutoPilot() { - TaxiModel.getInstance().startAutoPilot(); - } - - /** - * 人工模式 - */ - public void startManualDrive() { - TaxiModel.getInstance().startServicePilotDone(); - } - - /** - * 跳过乘客验证环节 - */ - public void jumpPassengerCheckDone() { - TaxiModel.getInstance().jumpPassengerCheckDone(); - } - - /** - * 司机确认车辆环境可开启自动驾驶 - */ - public void confirmAutopilotConditionByDriver() { - TaxiModel.getInstance().confirmAutopilotConditionByDriver(); - } - - // 更新接单状态 - public void updateCarStatus() { - TaxiModel.getInstance().updateCarStatus(); - } - - - // 获取当前订单状态 - public TaxiOrderStatusEnum getCurOrderStatus() { - return TaxiModel.getInstance().getCurOrderStatus(); - } - - // 取消当前订单 - public void cancelCurOrder(int reasonType, String reason) { - TaxiModel.getInstance().cancelCurrentOrder(reasonType, reason); - } - - // 取消待服务中订单 - public void cancelOrderById(String orderNo, int reasonType, String reason) { - TaxiModel.getInstance().cancelOrderById(orderNo, reasonType, reason); - } - - // 查询当前订单route信息:预估时间、里程等 - public void queryCurOrderRouteInfo() { - TaxiModel.getInstance().queryCurOrderRouteInfo(); - } - - // 执行抢单动作 - public void grabOrder() { - TaxiModel.getInstance().grabOrder(); - } - - // 关闭新到预约单 - public void cancelNewBookingOrder() { - TaxiModel.getInstance().cancelNewBookingOrder(); - } - - //更新订单已完成状态 - public void completeOrderService() { - TaxiModel.getInstance().orderCompleted(); - } - - // 登出 - public void logout() { - TaxiModel.getInstance().logout(); - } - - //导航去订单目的地 - public void startNaviToEndStation(boolean isShow) { - TaxiModel.getInstance().startNaviToEndStation(isShow); - } - - public void reportToEndDisAndTime(long lastSumLength, long duration) {//米/秒 - TaxiModel.getInstance().reportOrderRemain(lastSumLength, duration); - } - - public void closeOrderByMan() { - TaxiModel.getInstance().arriveTerminal(); - } - - @Override - public void onAutopilotArriveEnd() { - - } - - @Override - public void onAutopilotEnable(boolean canStartAuto) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onAutopilotDisable(boolean canStartAuto) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onAutopilotRunning(boolean canStartAuto) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateAutopilotStatus( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - - @Override - public void onManMachineCoDriving(boolean canStartAuto) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void updateAutopilotStatus(boolean canStartAuto) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateAutopilotStatus( - CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onStartAdasFailure() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.stopAnimAndUpdateBtnStatus(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onOrdersInServiceChanged(@NonNull @NotNull List inServiceList) { - - } - - @Override - public void onOrdersWaitServiceChanged(@NonNull @NotNull List waitServiceList) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onOrdersWaitServiceChanged(waitServiceList); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @RequiresApi(api = Build.VERSION_CODES.P) - @Override - public void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order) { - OchChainLogManager.writeChainLog("订单信息变化",order.toString()); - OrderModel.INSTANCE.invokeListener(order); - CallerLogger.d(M_TAXI + TAG, "order = " + order.toString()); - LineManager.setLineInfo(new LineInfo(order.lineId,order.lineName,new ArrayMap<>())); - if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus) { - TaxiModel.getInstance().queryAutopilotStatus(true); - TaxiModel.getInstance().setStation(); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.setGuidShow(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus) { - TaxiModel.getInstance().startDynamicCalculateRouteInfo(); - TaxiModel.getInstance().setStation(); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateCtvAutopilotStatusTag(true); - CallerEagleBaseFunctionCall4OchManager.INSTANCE.updateOrderStatus(true); - mView.setGuidHide(); - } - } - }, UiThreadHandler.MODE.QUEUE); - - } - - if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus || - TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus || - TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus) { - TaxiModel.getInstance().startOrStopCalculateRouteInfo(false); - TaxiModel.getInstance().cleanLineMarker(); - TaxiModel.getInstance().cleanStation(); - LineManager.setLineInfo(null); - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - /* 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - mView.updateCtvAutopilotStatusTag(false); - - if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) { - CallerEagleBaseFunctionCall4OchManager.INSTANCE.updateOrderStatus(false); - } - } - } - }, UiThreadHandler.MODE.QUEUE); - } - if (TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus) { - VoiceNotice.showNotice("乘客已取消行程"); - } - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateCurrentOrderStatusChanged(order); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onCurrentOrderCancelDone() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onCurrentOrderCancelDone(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onOrderCancelDone(String orderNo) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onOrderCancelDone(orderNo); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - OchChainLogManager.writeChainLog( - "到达目的地计算距离和时间", - "距离:"+routeInfo.distanceToEnd+" 时间:"+routeInfo.durationToEnd - ); - mView.onCurrentOrderRouteInfoGot(routeInfo); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onCurrentOrderDistToStartChanged(long meters, long timeInSecond) { - } - - @Override - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onCurrentOrderDistToEndChanged(meters, timeInSecond); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onNewBookingOrderGot(OrderQueryRespBean.Result order) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onNewBookingOrderGot(order); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onGrabOrderExecuteDone() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onGrabOrderExecuteDone(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onGrabOrderSuccess(OrderQueryRespBean.Result order) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onGrabOrderSuccess(order); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onGrabOrderFailed(OrderQueryRespBean.Result order) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onGrabOrderFailed(order); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onDriverHasCheckedPilotCondition() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onCheckPilotConditionSafe(); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onNaviToEnd(boolean isAmap, boolean isShow) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.onNaviToEnd(isAmap, isShow); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void startOpenAutopilot() { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.startOrStopLoadingAnim(true); - } - } - }, UiThreadHandler.MODE.QUEUE); - } - - @Override - public void onStatusChange(LoginStatusEnum currentStatus) { - //设置 是否启动订单轮训 - TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); - // 设置当前用户角色 - String role = ""; - switch (LoginStatusManager.getPurpose()) { - case DEMO:{ - role = TaxiConst.DEMO_USER; - } - case TEST:{ - role = TaxiConst.TEST_USER; - } - } - } - - @Override - public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) { - if(businessEnum==OpenOrderStatusEnum.Ordering){ - TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java deleted file mode 100644 index d9363e93ac..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ /dev/null @@ -1,309 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.och.taxi.constant.TaxiConst.TIMER_START_AUTOPILOT_INTERVAL; - -import android.content.Context; -import android.content.res.Configuration; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.view.View; -import android.widget.FrameLayout; -import android.widget.ImageView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentTransaction; - -import com.mogo.commons.mvp.IView; -import com.mogo.commons.mvp.MvpFragment; -import com.mogo.commons.mvp.Presenter; -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; -import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager; -import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager; -import com.mogo.eagle.core.function.hmi.map.MapContainerLayout; -import com.mogo.eagle.core.function.view.MapRoamView; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.listener.IMogoMapListener; -import com.mogo.och.common.module.wigets.map.drawline.LineView; -import com.mogo.och.taxi.R; - -import java.lang.ref.WeakReference; - -/** - * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 - *

- * 部分业务放在了此处处理 - * - * @author tongchenfei - */ -public abstract class BaseTaxiTabFragment> extends MvpFragment implements IMogoMapListener { - - private static final String TAG = "BaseOchFragment"; - private FrameLayout flNaviPanelContainer; - private ImageView mCloseNaviIcon; - protected TaxiAmapNaviFragment ochAmapNaviFragment = null; - protected TaxiRottingNaviFragment taxiRottingNaviFragment = null; - private MapRoamView mapRoamView; - private MapContainerLayout mapContainerLayout; - private final Handler mHandler = new Handler(Looper.getMainLooper()); - private String runningTaskGateWay = "RUNNINGTASKGATEWAY"; - private String lineView = "LINEVIEW"; - - // 查看运营情况 点击账户信息右边的箭头展示 - private WeakReference personalDialogFragment = null; - - - @Override - protected int getLayoutId() { - return R.layout.taxi_base_fragment; - } - - @Override - protected void initViews() { - mapContainerLayout = findViewById(R.id.mapContainerLayout); - mapRoamView = findViewById(R.id.mapRoamView); - updateCtvAutopilotStatusTag(false); - mCloseNaviIcon = findViewById(R.id.taxi_close_navi_icon); - flNaviPanelContainer = findViewById(R.id.module_mogo_och_navi_panel_container); - CallerHmiViewControlListenerManager.INSTANCE.invokeMainPageViewVisible(View.VISIBLE); - onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - - mCloseNaviIcon.setOnClickListener(v -> { - showAmapNaviToStationFragment(false); - showRottingToStationFragment(false); - }); - - if (getContext() != null) { - CallerEagleBaseFunctionCall4OchManager.INSTANCE.addSingleToolKitDefaultItem(runningTaskGateWay, "运营看板", R.drawable.common_biz_operation, 4); - CallerEagleBaseFunctionCall4OchManager.INSTANCE.addToolKitDefaultItemClickListener(runningTaskGateWay, new IToolKitItemClickListener() { - @Override - public void onItemClick(@NonNull String toolTag, @Nullable Context ctx) { - if (runningTaskGateWay.equals(toolTag)) { - CallerLogger.d(TAG,"runningTaskGateWay:"+runningTaskGateWay+"---toolTag:"+toolTag); - personalDialogFragment = new WeakReference<>(new TaxiPersonalDialogFragment()); - FragmentActivity activity = getActivity(); - if (activity != null) { - personalDialogFragment.get().show(activity.getSupportFragmentManager(), "service_data"); - } - } - } - }); - CallerEagleBaseFunctionCall4OchManager.INSTANCE.addSingleToolKitCustomItem(lineView, new LineView(getContext()), 10); - } - - } - - @Override - protected void initViews(Bundle savedInstanceState) { - super.initViews(savedInstanceState); - mapContainerLayout.onCreate(savedInstanceState); - mapRoamView.onCreate(savedInstanceState); - } - - @Override - public void onResume() { - super.onResume(); - mapContainerLayout.onResume(); - mapRoamView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mapContainerLayout.onPause(); - mapRoamView.onPause(); - } - - protected void onChangeOperationStatus() { - - } - - @Override - public void onLowMemory() { - super.onLowMemory(); - mapContainerLayout.onLowMemory(); - mapRoamView.onLowMemory(); - } - - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - mapContainerLayout.onSaveInstanceState(outState); - mapRoamView.onSaveInstanceState(outState); - } - - @Override - public void onDestroyView() { - mapContainerLayout.onDestroy(); - mapRoamView.onDestroy(); - super.onDestroyView(); - flNaviPanelContainer = null; - mapContainerLayout = null; - mapRoamView = null; - mCloseNaviIcon = null; - ochAmapNaviFragment = null; - taxiRottingNaviFragment = null; - CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG); - } - - @Override - public void onDestroy() { - super.onDestroy(); - } - - public void onAutopilotStatusChanged(int status, boolean canStart) { - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) { - // 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading - return; - } - if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) { - // 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false - startAutopilotDone(true); - return; - } - // 3. 其他过程直接更新 - startOrStopLoadingAnim(false); - autopilotStatusAnimchanged(status, canStart); - } - }, UiThreadHandler.MODE.QUEUE); - } - - public void stopAnimAndUpdateBtnStatus() { - startOrStopLoadingAnim(false); - startAutopilotDone(false); - } - - public void onManMachineCoDriving(int manMachineCoDriving, boolean canStartAuto) { - autopilotStatusAnimchanged(manMachineCoDriving, canStartAuto); - } - - public void updateCtvAutopilotStatusTag(boolean tag) { - } - - public void onCheckPilotConditionSafe() { - updateCtvAutopilotStatusTag(true); - updateOrderBottomBtnUI(); - } - - protected abstract void updateOrderBottomBtnUI(); - - public void autopilotStatusAnimchanged(int status, boolean canStart) { - - } - - private void startAutopilotDone(boolean success) { - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - startOrStopLoadingAnim(false); - onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - } - }, 1000L); - } - - public boolean isStarting = false; - - public void startOrStopLoadingAnim(boolean start) { - if (start) { - isStarting = true; - startingAutoApilotCountDown(); - } else { - isStarting = false; - } - } - - private void startingAutoApilotCountDown() { - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { //未启动成功10s后做处理 - if (isStarting) { //判断动画是否在进行 - //并且根据状态来设置自动驾驶启动成功还是失败 - startAutopilotDone(CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - } - - } - }, TIMER_START_AUTOPILOT_INTERVAL); - } - - protected void showAmapNaviToStationFragment(boolean isShow) { - - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - closeAmapViewIFHadeAdd(); - if (isShow) { - closeRouteViewIFHadeAdd(); - ochAmapNaviFragment = TaxiAmapNaviFragment.newInstance(); - if (ochAmapNaviFragment.isAdded()) { - return; - } - transaction.add(R.id.module_mogo_och_navi_panel_container, ochAmapNaviFragment).show(ochAmapNaviFragment); - transaction.commitAllowingStateLoss(); - mCloseNaviIcon.setVisibility(View.VISIBLE); - flNaviPanelContainer.setVisibility(View.VISIBLE); - } else { - mCloseNaviIcon.setVisibility(View.GONE); - flNaviPanelContainer.setVisibility(View.INVISIBLE); - } - } - - private void closeAmapViewIFHadeAdd() { - if (ochAmapNaviFragment != null) { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - ochAmapNaviFragment.onDestroy(); - transaction.remove(ochAmapNaviFragment); - transaction.commitAllowingStateLoss(); - ochAmapNaviFragment = null; - } - } - - private void closeRouteViewIFHadeAdd() { - if (taxiRottingNaviFragment != null) { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - taxiRottingNaviFragment.onDestroy(); - transaction.remove(taxiRottingNaviFragment); - transaction.commitAllowingStateLoss(); - taxiRottingNaviFragment = null; - } - } - - protected void showRottingToStationFragment(boolean isShow) { - - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - if (isShow) { - closeAmapViewIFHadeAdd(); -// if (ochNaviFragment == null){ - taxiRottingNaviFragment = TaxiRottingNaviFragment.newInstance(); -// } - if (taxiRottingNaviFragment.isAdded()) { - return; - } - transaction.add(R.id.module_mogo_och_navi_panel_container, taxiRottingNaviFragment).show(taxiRottingNaviFragment); - transaction.commitAllowingStateLoss(); - mCloseNaviIcon.setVisibility(View.VISIBLE); - flNaviPanelContainer.setVisibility(View.VISIBLE); - } else { - closeRouteViewIFHadeAdd(); - mCloseNaviIcon.setVisibility(View.GONE); - flNaviPanelContainer.setVisibility(View.INVISIBLE); - } - } - - - public abstract void startNaviToEndStation(boolean isShow); - - public void setGuidShow() { - } - - public void setGuidHide() { - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiUIFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiUIFragment.java deleted file mode 100644 index 013b27bf3e..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiUIFragment.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; - -/** - * @author: wangmingjun - * @date: 2021/9/9 - */ -public abstract class BaseTaxiUIFragment extends Fragment { - private View mRootView; - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - if (mRootView == null) { - mRootView = inflater.inflate(getLayoutId(), container, false); - } else { - ViewGroup viewGroup = (ViewGroup) mRootView.getParent(); - if (viewGroup != null) { - viewGroup.removeView(mRootView); - } - } - initViews(mRootView); - initViews(savedInstanceState); - return mRootView; - } - /** - * 布局资源 - * - * @return - */ - protected abstract int getLayoutId(); - - protected abstract void initViews(View view); - - protected void initViews(Bundle savedInstanceState) { - } - - @Override - public void onDestroy() { - super.onDestroy(); - mRootView = null; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiMapDirectionView.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiMapDirectionView.java deleted file mode 100644 index cf589373ef..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiMapDirectionView.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.taxi.ui; - -/** - * @author xiaoyuzhou - * @date 2021/6/24 11:33 上午 - */ -public interface ITaxiMapDirectionView { - - /** - * 绘制路径线 - */ - void drawablePolyline(); - - /** - * 清除路径线 - */ - void clearPolyline(); - - /** - * 设置路径中起终点marker - */ - void setLineMarker(); -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiView.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiView.java deleted file mode 100644 index a45a30f184..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/ITaxiView.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.och.taxi.ui; - -import com.mogo.commons.mvp.IView; - -public -/** - * @author congtaowang - * @since 2021/1/18 - * - * 描述 - */ -interface ITaxiView extends IView { -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiAmapNaviFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiAmapNaviFragment.java deleted file mode 100644 index f99df1959b..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiAmapNaviFragment.java +++ /dev/null @@ -1,220 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.os.Bundle; -import android.view.View; - -import com.amap.api.navi.AMapNaviViewListener; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.common.module.map.AmapNaviToDestinationModel; -import com.mogo.och.common.module.map.ICommonNaviChangedCallback; -import com.mogo.och.common.module.map.CommonAmapNaviVIew; -import com.mogo.och.taxi.R; - -/** - * @author: wangmingjun - * @date: 2021/11/30 - */ -public class TaxiAmapNaviFragment extends BaseTaxiUIFragment implements AMapNaviViewListener { - - private CommonAmapNaviVIew mAMapNaviView; - private ICommonNaviChangedCallback mNaviToStartInfoCallback; - public static TaxiAmapNaviFragment newInstance() { - - Bundle args = new Bundle(); - - TaxiAmapNaviFragment fragment = new TaxiAmapNaviFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_amap_navi_view; - } - - @Override - protected void initViews(View view) { - mAMapNaviView = view.findViewById(R.id.navi_view); - } - - @Override - protected void initViews(Bundle savedInstanceState) { - super.initViews(savedInstanceState); - if (mAMapNaviView != null) { - mAMapNaviView.onCreate(savedInstanceState); - } - } - - @Override - public void onResume() { - super.onResume(); - if (mAMapNaviView != null) { - mAMapNaviView.onResume(); - } - } - - @Override - public void onPause() { - super.onPause(); - if (mAMapNaviView != null) { - mAMapNaviView.onPause(); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - - AmapNaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(false); - if (mAMapNaviView != null){ - mAMapNaviView.onDestroy(); - } - - if (mNaviToStartInfoCallback != null){ - mNaviToStartInfoCallback = null; - } - } - - @Override - public void onNaviSetting() { - //底部导航设置点击回调 - } - - @Override - public void onNaviCancel() { - } - - @Override - public void onNaviMapMode(int naviMode) { - //导航态车头模式,0:车头朝上状态;1:正北朝上模式。 - } - - @Override - public void onNaviTurnClick() { - //转弯view的点击回调 - } - - @Override - public void onNextRoadClick() { - //下一个道路View点击回调 - } - - - @Override - public void onScanViewButtonClick() { - //全览按钮点击回调 - } - - - @Override - public void onLockMap(boolean isLock) { - //锁地图状态发生变化时回调 - } - - @Override - public void onNaviViewLoaded() { - CallerLogger.d(M_TAXI + "wlx", "导航页面加载成功"); - CallerLogger.d(M_TAXI + "wlx", "请不要使用AMapNaviView.getMap().setOnMapLoadedListener();会overwrite导航SDK内部画线逻辑"); - } - - @Override - public void onMapTypeChanged(int i) { - - } - - @Override - public void onNaviViewShowMode(int i) { - - } - - @Override - public boolean onNaviBackClick() { - return false; - } - - /** - * 车道信息说明: - *

- * 0xFF, 无对应车道 - * 0, 直行 - * 1, 左转 - * 2, 直行+左转 - * 3, 右转 - * 4, 直行+右转 - * 5, 左掉头 - * 6, 左转+右转 - * 7, 直行+左转+右转 - * 8, 右掉头 - * 9, 直行+左掉头 - * 10, 直行+右掉头 - * 11, 左转+左掉头 - * 12, 右转+右掉头 - * 13, 直行+扩展 - * 14, 左转+左掉头+扩展 - * 15, 保留 - * 16, 直行+左转+左掉头 - * 17, 右转+左掉头 - * 18, 左转+右转+左掉头 - * 19, 直行+右转+左掉头 - * 20, 左转+右掉头 - * 21, 公交车道 - * 22, 空车道 - * 23 可变车道 - */ - - String[] array = { - "直行车道" - , "左转车道" - , "左转或直行车道" - , "右转车道" - , "右转或直行车道" - , "左掉头车道" - , "左转或者右转车道" - , " 左转或右转或直行车道" - , "右转掉头车道" - , "直行或左转掉头车道" - , "直行或右转掉头车道" - , "左转或左掉头车道" - , "右转或右掉头车道" - , "直行并且车道扩展" - , "左转+左掉头+扩展" - , "不可以选择该车道" - , "直行+左转+左掉头车道" - , "右转+左掉头" - , "左转+右转+左掉头" - , "直行+右转+左掉头" - , "左转+右掉头" - , "公交车道" - , "空车道" - , "可变车道" - }; - - String[] actions = { - "直行" - , "左转" - , "左转或直行" - , "右转" - , "右转或这行" - , "左掉头" - , "左转或者右转" - , " 左转或右转或直行" - , "右转掉头" - , "直行或左转掉头" - , "直行或右转掉头" - , "左转或左掉头" - , "右转或右掉头" - , "直行并且车道扩展" - , "左转+左掉头+扩展" - , "不可以选择" - , "直行+左转+左掉头" - , "右转+左掉头" - , "左转+右转+左掉头" - , "直行+右转+左掉头" - , "左转+右掉头" - , "公交车道" - , "空车道" - , "可变车道" - }; -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java deleted file mode 100644 index 8eafd72d76..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java +++ /dev/null @@ -1,815 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; -import static com.mogo.map.MogoMap.DEFAULT; - -import android.app.Activity; -import android.graphics.Color; -import android.graphics.drawable.GradientDrawable; -import android.os.Build; -import android.os.Bundle; -import android.text.Html; -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import androidx.annotation.RequiresApi; -import androidx.constraintlayout.widget.ConstraintLayout; - -import com.amap.api.navi.model.NaviLatLng; -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.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.hmi.ui.widget.ItinerarySummaryDialog; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.DateTimeUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.overlay.IMoGoOverlayManager; -import com.mogo.map.overlay.core.Level; -import com.mogo.map.overlay.point.Point; -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager; -import com.mogo.och.common.module.map.AmapNaviToDestinationModel; -import com.mogo.och.common.module.map.ICommonNaviChangedCallback; -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.common.module.utils.NumberFormatUtil; -import com.mogo.och.common.module.utils.OCHThreadPoolManager; -import com.mogo.och.common.module.utils.ResourcesUtils; -import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.common.module.wigets.OCHCommitDialog; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; -import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.skin.utils.SkinResources; - -import java.util.Calendar; -import java.util.List; - -/** - * @author congtaowang - * @since 2021/1/18 - * 正在进行中订单 - */ -public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment - implements View.OnClickListener, ICommonNaviChangedCallback { - - public static final String TAG = "OCHTaxiBeingServerd"; - private Activity mActivity; - private TaxiFragment mTaxiFragment; - private String mOrderNo; - private volatile int mTtsLessThan200Tip = 0;//离终点200米提示播报 - private OrderQueryRespBean.Result mCurrentOrder = null; - private boolean isFirstStartAutopilotDone = true; - - private TextView mOrderStatus; - private ImageView mOrderCancel; - - private TextView mOrderServerStatus; - - private ConstraintLayout mBeingOrderLayout; - private ConstraintLayout mContentModule3; - private ConstraintLayout mContentModule2; - private TextView mDistanceAndTime3; - private TextView mDistanceAndTime2; - private TextView mStationTv2; - private TextView mOrderOtherContent3; - private TextView mArrivedStartTimeTv32; - private TextView mTitleTV2; - - private LinearLayout mContentModule31; - private TextView mStationTv31; - private ConstraintLayout mContentModule32; - private TextView mStationTv32; - private TextView mArrivedStationTitleTv32; - private TextView mGoAheadStationTitleTv31; - private TextView mCatchStationTitleTv31; - private ImageView mNaviStartIcon; - private ImageView mNaviToEndIcon; - private TextView mPassengerNum; - private TextView mPassengerPhone; - private ConstraintLayout mPassengerInfoLayout; - - private TextView mNoDatasTv; - - private ConstraintLayout mNoDataView; - - private volatile int saveOrderState = -1; - - private ItinerarySummaryDialog dialog; - - - public static TaxiBeingServerdOrdersFragment newInstance(Activity activity, TaxiFragment taxiFragment) { - Bundle args = new Bundle(); - - TaxiBeingServerdOrdersFragment fragment = new TaxiBeingServerdOrdersFragment(); - fragment.setArguments(args); - fragment.mActivity = activity; - fragment.mTaxiFragment = taxiFragment; - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_being_order; - } - - @Override - protected void initViews(View view) { - mOrderStatus = view.findViewById(R.id.module_och_taxi_order_status); - mOrderCancel = view.findViewById(R.id.module_och_taxi_order_cancel_iv); - - mOrderServerStatus = view.findViewById(R.id.module_och_taxi_order_server_status_tv); - - mBeingOrderLayout = view.findViewById(R.id.module_och_taxi_being_order_content); - mContentModule2 = view.findViewById(R.id.module_och_taxi_order_status_station_2); - mContentModule3 = view.findViewById(R.id.module_och_taxi_order_status_station_3); - mDistanceAndTime2 = view.findViewById(R.id.module_och_taxi_order_distance_anchor_2); - mContentModule31 = view.findViewById(R.id.module_och_taxi_order_go_ahead_station_31); - mContentModule32 = view.findViewById(R.id.module_och_taxi_order_arrive_station_32); - mStationTv2 = view.findViewById(R.id.module_och_taxi_order_station_2); - mStationTv31 = view.findViewById(R.id.module_och_taxi_order_start_station_31); - mStationTv32 = view.findViewById(R.id.module_och_taxi_order_end_station_32); - mOrderOtherContent3 = view.findViewById(R.id.module_och_taxi_order_other_content_3); - mDistanceAndTime3 = view.findViewById(R.id.module_och_taxi_order_distance_anchor_3); - mArrivedStartTimeTv32 = view.findViewById(R.id.module_och_taxi_order_had_arrived_time_32); - mTitleTV2 = view.findViewById(R.id.module_och_taxi_order_station_title_2); - mCatchStationTitleTv31 = view.findViewById(R.id.go_ahead_station_catch_31); - mGoAheadStationTitleTv31 = view.findViewById(R.id.go_ahead_station_31); - mArrivedStationTitleTv32 = view.findViewById(R.id.arrive_station_32); - - mPassengerInfoLayout = view.findViewById(R.id.module_och_taxi_order_passenger_data); - mPassengerNum = view.findViewById(R.id.taxi_passenger_num); - mPassengerPhone = view.findViewById(R.id.taxi_passenger_phone); - - mNoDatasTv = view.findViewById(R.id.no_order_data_tv); - mNoDataView = view.findViewById(R.id.being_no_data_view); - - initOnClickListener(); - - initNaviView(view); - - isHaveBeingOrder(false); - - //任意模式下调试信息都打开 - initOrderTestBar(); - } - - private void initOnClickListener() { - mOrderCancel.setOnClickListener(this); - mOrderServerStatus.setOnClickListener(this); - } - - @Override - public void onResume() { - super.onResume(); - } - - private void initNaviView(View view) { - mNaviStartIcon = view.findViewById(R.id.module_och_taxi_navi_iv); - mNaviStartIcon.setOnClickListener(this); - - mNaviToEndIcon = view.findViewById(R.id.module_och_taxi_navi_end_iv); - mNaviToEndIcon.setOnClickListener(this); - - } - - /** - * 初始化订单信息 - */ - @RequiresApi(api = Build.VERSION_CODES.P) - public void updateCurrentOrderStatusChanged(OrderQueryRespBean.Result order) { - try { - if (order == null) return; - if (order.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.getCode()) { - mCurrentOrder = null; - isHaveBeingOrder(false); - mDistanceAndTime2.setText("距离 - - 公里,用时 - - 分"); - mDistanceAndTime3.setText("距离 - - 公里,用时 - - 分"); - return; - } - mOrderNo = order.orderNo; - onOrderStatusChanged(order); - if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) { - - showOrHideOrderModeBtn(false); - - mTaxiFragment.queryCurOrderRouteInfo(); - mContentModule3.setVisibility(View.GONE); - mContentModule2.setVisibility(View.VISIBLE); - CallerLogger.d(M_TAXI + TAG, "已经达到终点"); - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_end), - Color.parseColor("#FFFFFF"), - Color.parseColor("#FF1D5EF3"), - true); - mTitleTV2.setText("送乘客至"); - mStationTv2.setText(order.endSiteAddr); - - } else if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus) { - CallerLogger.d(M_TAXI + TAG, "已经去往终点"); - - showOrHideOrderModeBtn(false); - - mContentModule3.setVisibility(View.GONE); - mContentModule2.setVisibility(View.VISIBLE); - mOrderStatus.setText(R.string.module_och_taxi_on_the_way_2_end_station); - - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_close), - Color.parseColor("#FFFFFF"), - Color.parseColor("#FF1D5EF3"), - true); - mTitleTV2.setText("送乘客至"); - mStationTv2.setText(order.endSiteAddr); - } else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus - || TaxiOrderStatusEnum.ArriveAtStart.getCode() == order.orderStatus){ - - mContentModule2.setVisibility(View.GONE); - mContentModule3.setVisibility(View.VISIBLE); - mArrivedStartTimeTv32.setVisibility(View.VISIBLE); - mContentModule32.setVisibility(View.VISIBLE); - mContentModule31.setVisibility(View.GONE); - mOrderOtherContent3.setVisibility(View.GONE); - - Calendar currentCale = DateTimeUtils.getCurrentDateTime(); - String currentHM = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.HH_mm); - String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd); - String strHtml11 = "已于
" - + "" + currentHM + "" - + "" + " " + "到达乘客上车地点"; - mArrivedStartTimeTv32.setLineHeight(60); - mArrivedStartTimeTv32.setText(Html.fromHtml(strHtml11)); - - mArrivedStationTitleTv32.setText("送乘客至"); - mStationTv32.setText(order.endSiteAddr); - currentCale.add(Calendar.MINUTE, 10); - String strHtml13 = ""; - if (currentDay.equals(DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd))) { - strHtml13 = "免费等待至 " - + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.HH_mm) + ""; - - } else { - strHtml13 = "免费等待至" - + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.MM_dd_HH_mm) + ""; - } - mDistanceAndTime3.setText(Html.fromHtml(strHtml13)); - - if (TaxiOrderStatusEnum.ArriveAtStart.getCode() == order.orderStatus){ - CallerLogger.d(M_TAXI + TAG, "车辆已经达到起点"); - mPassengerInfoLayout.setVisibility(View.VISIBLE); - mPassengerNum.setText(order.passengerNum + "人"); - mPassengerPhone.setText(order.passengerPhone); - mOrderStatus.setText(R.string.module_och_taxi_waiting); - - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_start_wait_check), - Color.parseColor("#FFFFFF"), - Color.parseColor("#FF1D5EF3"), - true); - - showOrHideOrderModeBtn(false); - }else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == order.orderStatus ){ - CallerLogger.d(M_TAXI + TAG, "乘客已上车验证成功"); - - mPassengerInfoLayout.setVisibility(View.GONE); - mOrderStatus.setText(R.string.module_och_taxi_user_check_success); - - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_start), - Color.parseColor("#FFFFFF"), - Color.parseColor("#FF1D5EF3"), - true); - - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - // showOrHideOrderModeBtn(true); - showOrHideOrderModeBtn(false); - CallerLogger.d(M_TAXI + TAG, "自驾模式"); - startOrEndService(); - } - - }else if (TaxiModel.getInstance().checkCurrentOCHOrder()) { - CallerLogger.d(M_TAXI + TAG, "前往乘客上车地点"); - mContentModule2.setVisibility(View.GONE); - mContentModule3.setVisibility(View.VISIBLE); - mContentModule31.setVisibility(View.VISIBLE); - mArrivedStartTimeTv32.setVisibility(View.GONE); - mContentModule32.setVisibility(View.GONE); - mOrderOtherContent3.setVisibility(View.VISIBLE); - mDistanceAndTime3.setVisibility(View.VISIBLE); - mPassengerInfoLayout.setVisibility(View.VISIBLE); - mPassengerNum.setText(order.passengerNum + "人"); - mPassengerPhone.setText(order.passengerPhone); - mOrderStatus.setText(R.string.module_och_taxi_new_order); - - showOrHideOrderModeBtn(false); - - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_start), - Color.parseColor("#4DFFFFFF"), - Color.parseColor("#4D1D5EF3"), - false); - - mGoAheadStationTitleTv31.setText("前往"); - mCatchStationTitleTv31.setText("接乘客"); - mStationTv31.setText(order.startSiteAddr); - - Calendar currentCale = DateTimeUtils.getCurrentDateTime(); - Calendar startCale = DateTimeUtil.formatLongToCalendar(order.bookingTime); - String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd); - String startDay = DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.yyyy_MM_dd); - String strHtml1 = ""; - if (currentDay.equals(startDay)) { - strHtml1 = "乘客将于
" - + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.HH_mm) + "" - + " 用车"; - } else { - strHtml1 = "乘客将于
" - + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.MM_dd_HH_mm) + "" - + " 用车"; - } - mOrderOtherContent3.setText(Html.fromHtml(strHtml1)); - } - }catch (NullPointerException e){ //可能会出现订单信息已经轮询回来,但进行中页面控件还未初始化完成的情况 - TaxiModel.getInstance().clearCurrentOCHOrder(); - } - } - - private void showOrHideOrderModeBtn(boolean isShow) { - if (isShow){ - mOrderServerStatus.setVisibility(View.GONE); - }else { - mOrderServerStatus.setVisibility(View.VISIBLE); - } - } - - private void startNaviToStation(boolean isVoicePlay, double stationLat, double stationLng) { - AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); - MogoLocation gcj02Location = OchLocationManager.getGCJ02Location(); - double mCurLatitude = gcj02Location.getLatitude(); - double mCurLongitude =gcj02Location.getLongitude(); - - CallerLogger.d(M_TAXI + TAG, "currentLatLng=" + mCurLatitude + " " +mCurLongitude); - - NaviLatLng startNaviLatLng = new NaviLatLng(mCurLatitude, mCurLongitude); - NaviLatLng endNaviLatLng = new NaviLatLng(stationLat, stationLng); - AmapNaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng); - AmapNaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(isVoicePlay); - AmapNaviToDestinationModel.getInstance(getContext()).setTaxiNaviChangedCallback(this); - } - - private void showOrHideNavi(boolean isShow) { - if (!isShow) { - mNaviStartIcon.setVisibility(View.GONE); - mNaviToEndIcon.setVisibility(View.GONE); - AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); - mTaxiFragment.showAmapNaviToStationFragment(false); - mTaxiFragment.showRottingToStationFragment(false); - } - } - - /** - * 剩余里程和剩余时间 - * @param meters m - * @param timeInSecond 秒 - */ - public void updateDistanceAndTime(long meters, long timeInSecond) { - String dis = "0"; - String disUnit = "公里"; - if (meters > 0){ - if (meters / 1000 < 1){ - disUnit = "米"; - dis = String.valueOf(Math.round(meters)); - }else { - disUnit = "公里"; - dis = NumberFormatUtil.formatLong((double)meters / 1000); - } - } - int min = (int)Math.ceil((double)timeInSecond/ 60f); - String strHtml2 = "里程 " + "" + dis + "" + " "+disUnit+"" - + ",剩余 " + "" + min + "" + " 分钟"; - try { - if (mCurrentOrder != null && mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) { //前往上车点 - mDistanceAndTime3.setText(Html.fromHtml(strHtml2)); - if (mNaviStartIcon.getVisibility() == View.GONE){ - mNaviStartIcon.setVisibility(View.VISIBLE); - } - - } else if (mCurrentOrder != null && mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) { //前往终点 时间单位是分钟 - if (mNaviToEndIcon.getVisibility() == View.GONE){ - mNaviToEndIcon.setVisibility(View.VISIBLE); - } - - if (mTtsLessThan200Tip < 1 && meters <= 250 && meters > 150){ - speekVoice200mTipsOnce(); - } - mDistanceAndTime2.setText(Html.fromHtml(strHtml2)); - if (isFirstStartAutopilotDone){ - isFirstStartAutopilotDone = false; - } - } - }catch (NullPointerException e){ - - } - } - - private void speekVoice200mTipsOnce() { - mTtsLessThan200Tip = 1; - } - - public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) {// 单位 米, 秒 - CallerLogger.d(M_TAXI + TAG, "durationToEnd = " + routeInfo.durationToEnd); - - String dis = "0"; - long distance = routeInfo.distanceToEnd; - long duration = routeInfo.durationToEnd; - - if (routeInfo.distanceToEnd > 0){ - - dis = NumberFormatUtil.formatLong( (double) distance/ 1000); - } - dialog.setOrderMileage(distance); - - String strHtml2 = "全程 " + "" + dis + "" + " 公里" - + ",总用时 " + "" + (int)Math.ceil( (double) duration/ 60) + "" + " 分钟"; - if (mContentModule2 != null && mContentModule2.getVisibility() == View.VISIBLE) { - mDistanceAndTime2.setText(Html.fromHtml(strHtml2)); - } else if (mContentModule3 != null && mContentModule3.getVisibility() == View.VISIBLE) { - mDistanceAndTime3.setText(Html.fromHtml(strHtml2)); - } - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - mTaxiFragment = null; - mActivity = null; - AmapNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi(); - } - - private void startOrEndService() { - if (mCurrentOrder == null) return; - if (TaxiOrderStatusEnum.ArriveAtStart.getCode() == mCurrentOrder.orderStatus){ //到达乘客上车点,司机可跳过乘客屏认证 - mTaxiFragment.jumpPassengerCheckDone(); - }else if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == mCurrentOrder.orderStatus) {//点击此按钮,说明通知后端准备好开启自动驾驶的条件 - mTaxiFragment.confirmAutopilotConditionByDriver(); - }else if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentOrder.orderStatus) {//点击了完成服务,结束订单并更新订单信息 - mTaxiFragment.completeOrderService(); - //VoiceNotice.showNotice(ResourcesUtils.getString(R.string.module_och_taxi_order_server_completed_tip)); - }else if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOrder.orderStatus){//前往目的地过程中可提前结束行程 - //自驾中提示,接管后才能结束 - if (CallerAutoPilotStatusListenerManager.INSTANCE.getState() - == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){ - ToastUtils.showLong(R.string.taxi_switch_line_btn_warning1); - }else { - closeOrderDialog(); - } - } - } - - private void closeOrderDialog() { - OCHCommitDialog.Builder builder = new OCHCommitDialog.Builder(); - OCHCommitDialog closeOrderDialog = builder - .title(getString(R.string.dialog_order_close_title)) - .tips(getString(R.string.dialog_order_close_content)) - .confirmStr(getString(R.string.dialog_order_close_confirm)) - .cancelStr(getString(R.string.dialog_order_close_cancel)) - .build(getContext()); - closeOrderDialog.setClickListener(new OCHCommitDialog.ClickListener() { - @Override - public void confirm() { - if (mTaxiFragment != null) mTaxiFragment.closeOrderByMan(); - } - - @Override - public void cancel() { - closeOrderDialog.dismiss(); - } - }); - closeOrderDialog.show(); - } - - public void onOrderStatusChanged(OrderQueryRespBean.Result order) { - int status = order.orderStatus; - CallerLogger.d(M_TAXI + TAG, "status==" + status); - mCurrentOrder = order; - mActivity.runOnUiThread(() -> { - if (status == TaxiOrderStatusEnum.None.getCode() || status == TaxiOrderStatusEnum.Cancel.getCode() || status == TaxiOrderStatusEnum.JourneyCompleted.getCode()) { - isHaveBeingOrder(false); - mCurrentOrder = null; - clearOrderTag(); - } else { - isHaveBeingOrder(true); - } - if (status != saveOrderState) { - TaxiOrderStatusEnum ochStatus = TaxiOrderStatusEnum.valueOf(status); - switch (ochStatus) { - case OnTheWayToStart: - if(dialog!=null&&dialog.isShowing()) { - dialog.dismiss(); - } - dialog = null; - mOrderCancel.setVisibility(View.VISIBLE); - VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_new_order)); - mTtsLessThan200Tip = 0; - isFirstStartAutopilotDone = true; - double orderStartStationLat = order.startSiteGcjPoint.get(1); - double orderStartStationLng = order.startSiteGcjPoint.get(0); - startNaviToStation(false, orderStartStationLat, orderStartStationLng); - setOrRemoveMapMaker(true, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(true, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - break; - case Cancel: - if(dialog!=null&&dialog.isShowing()) { - dialog.dismiss(); - } - dialog = null; - mCurrentOrder = null; - mTtsLessThan200Tip = 0; - isFirstStartAutopilotDone = true; - mOrderCancel.setVisibility(View.VISIBLE); - //VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_cancel)); - showOrHideNavi(false); - setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - break; - case ArriveAtStart: - case UserArriveAtStart: - if(dialog!=null&&dialog.isShowing()) { - dialog.dismiss(); - } - dialog = null; - mTtsLessThan200Tip = 0; - isFirstStartAutopilotDone = true; - mOrderCancel.setVisibility(View.VISIBLE); - if (TaxiOrderStatusEnum.UserArriveAtStart.getCode() == ochStatus.getCode()){ - //VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text_check_success)); - }else { - VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_status_ph_text)); - } - showOrHideNavi(false); - setOrRemoveMapMaker(true, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(true, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - break; - case OnTheWayToEnd: - if(dialog!=null&&dialog.isShowing()) { - dialog.dismiss(); - } - dialog = null; - mOrderCancel.setVisibility(View.VISIBLE); - if (mTaxiFragment != null) { - showNaviToEndStationFragment(false); - } - setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(true, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - break; - case ArriveAtEnd: - if(dialog==null){ - dialog = new ItinerarySummaryDialog(getContext(),true,R.style.summary_dialog); - } - if(!dialog.isShowing()) { - dialog.show(); - } - mTtsLessThan200Tip = 0; - mOrderCancel.setVisibility(View.GONE); - //VoiceNotice.showNotice(mActivity.getString(R.string.module_och_taxi_order_auto_arrive_end_tip)); - showOrHideNavi(false); - setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker); - break; - case JourneyCompleted: - if(dialog!=null&&dialog.isShowing()) { - dialog.dismiss(); - } - dialog = null; - mCurrentOrder = null; - mTtsLessThan200Tip = 0; - isFirstStartAutopilotDone = true; - mOrderCancel.setVisibility(View.GONE); - VoiceNotice.showNotice("感谢您使用"+ SkinResources.getInstance().getString(R.string.operation_platform_name)+"智行,再见~"); - showOrHideNavi(false); - break; - } - } - saveOrderState = status; - }); - } - - private void clearOrderTag() { - saveOrderState = -1; - mDistanceAndTime2.setText("距离 - - 公里,用时 - - 分"); - mDistanceAndTime3.setText("距离 - - 公里,用时 - - 分"); - } - - /** - * 是否有正在进行的订单,进行UI显示 - * - * @param being - */ - public void isHaveBeingOrder(boolean being) { - CallerLogger.d(M_TAXI + TAG, "isHaveBeingOrder = " + being); - try { - if (being) { - mNoDataView.setVisibility(View.GONE); - mBeingOrderLayout.setVisibility(View.VISIBLE); - } else { - mNoDataView.setVisibility(View.VISIBLE); - mNoDatasTv.setText("暂无进行中订单"); - mBeingOrderLayout.setVisibility(View.GONE); - } - - }catch (NullPointerException e){ //可能会出现订单信息已经轮询回来,但进行中页面控件还未初始化完成的情况 - TaxiModel.getInstance().clearCurrentOCHOrder(); - } - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.module_och_taxi_order_server_status_tv) { - CallerLogger.d(M_TAXI + TAG, mOrderServerStatus.getText().toString()); - startOrEndService(); - } else if (v.getId() == R.id.module_och_taxi_order_cancel_iv) { - new TaxiOrderCancelDialog(mTaxiFragment, mActivity, mOrderNo, saveOrderState).show(); - } else if (v.getId() == R.id.module_och_taxi_navi_iv) { - if (mTaxiFragment != null) { - showNaviToStartStationFragment(true); - } - } else if (v.getId() == R.id.module_och_taxi_navi_end_iv){ - // TODO: 2021/11/30 打开去往乘客下车点的导航页面 - if (mTaxiFragment != null) { - showNaviToEndStationFragment(true); - } - } - } - - /** - * 显示/隐藏 前往乘客上车点的导航 - * - * @param isShow - */ - private void showNaviToStartStationFragment(boolean isShow) { - if (mCurrentOrder != null && - mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()){ - double orderStartStationLat = mCurrentOrder.startSiteGcjPoint.get(1); - double orderStartStationLng = mCurrentOrder.startSiteGcjPoint.get(0); - mTaxiFragment.showAmapNaviToStationFragment(isShow); - startNaviToStation(isShow, orderStartStationLat, orderStartStationLng); - } - } - - /** - * 显示/隐藏 前往乘客目的地的导航 - * - * @param isShow - */ - private void showNaviToEndStationFragment(boolean isShow) { - mTaxiFragment.startNaviToEndStation(isShow); - } - - - public void onCurrentOrderCancelDone() { - //去除起终点 - if (mCurrentOrder != null){ - setOrRemoveMapMaker(false, TaxiConst.TAXI_START_MAP_MAKER,mCurrentOrder.startSitePoint,R.raw.star_marker); - setOrRemoveMapMaker(false, TaxiConst.TAXI_END_MAP_MAKER,mCurrentOrder.endSitePoint,R.raw.end_marker); - } - //提交取消订单后的回调 - ToastUtils.showShort("订单取消成功"); - //更新界面 - isHaveBeingOrder(false); - showOrHideNavi(false); - clearOrderTag(); - } - - /** - * 订单流转debug START - */ - private void initOrderTestBar() { - mOrderStatus.setOnLongClickListener(v -> { - mTaxiFragment.clickTestBar(); - return false; - }); - } - - @Override - public void onCurrentNaviDistAndTimeChanged(int meters, long timeInSecond) { - updateDistanceAndTime(meters, timeInSecond); - if (mCurrentOrder != null - && mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){ - mTaxiFragment.reportToEndDisAndTime(meters, timeInSecond); - } - } - - @Override - public void reInitNaviAmap(boolean isPlay, boolean isRestart) { - CallerLogger.d(M_TAXI + TAG, "isPlay = " + isPlay + ", isRestart=" + isRestart); - if (!isRestart) { - mTaxiFragment.showAmapNaviToStationFragment(false); - return; - } - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (mCurrentOrder != null && - mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) { - double orderStartStationLat = mCurrentOrder.startSiteGcjPoint.get(1); - double orderStartStationLng = mCurrentOrder.startSiteGcjPoint.get(0); - startNaviToStation(false, orderStartStationLat, orderStartStationLng); - } - } - }, 2000); - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (mCurrentOrder != null && - mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) { - if (mNaviStartIcon.getVisibility() == View.GONE) { - mNaviStartIcon.setVisibility(View.VISIBLE); - } - } - if (mCurrentOrder != null && - mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){ - if (mNaviToEndIcon.getVisibility() == View.GONE) { - mNaviToEndIcon.setVisibility(View.VISIBLE); - } - } - } - }, 3000); - } - - public void onNaviToEndAmap(boolean isShow) { - if (mCurrentOrder != null && - mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){ - double orderEndStationLat = mCurrentOrder.endSiteGcjPoint.get(1); - double orderEndStationLng = mCurrentOrder.endSiteGcjPoint.get(0); - mTaxiFragment.showAmapNaviToStationFragment(isShow); - startNaviToStation(isShow,orderEndStationLat,orderEndStationLng); - } - } - - /** - * 绘制地图起点终点 - * @param isAdd - * @param uuid - * @param station - */ - private void setOrRemoveMapMaker(boolean isAdd, String uuid, List station,int resourceId){ - if (isAdd){ - //开启线程执行起终点marker设置 - Runnable setMapMarkerRunnable = () -> { - CallerLogger.d(M_TAXI + "setMapMaker= " + Thread.currentThread().getName(), - uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); - - Point.Options.Builder builder = new Point.Options.Builder(TaxiConst.TYPE_MARKER_TAXI_ORDER, Level.MAP_MARKER) - .setId(uuid) - .anchor(0.5f, 0.5f) - .set3DMode(true) - .isUseGps(true) - .controlAngle(false) - .icon3DRes(resourceId) - .latitude(station.get(1)) - .longitude(station.get(0)); - IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); - if (overlayManager != null) { - overlayManager.showOrUpdatePoint(builder.build(),DEFAULT); - } - }; - OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable); - }else { - //开启线程移除起终点marker设置 - Runnable removeMapMarkerRunnable = () -> { - CallerLogger.d(M_TAXI + "RemoveMapMaker=" + Thread.currentThread().getName(), - uuid + "=latitude=" + station.get(1) + ",longitude=" + station.get(0)); -// Objects.requireNonNull(CallerMapUIServiceManager.INSTANCE.getMarkerManager(AbsMogoApplication.getApp())).removeMarkers(uuid); - IMoGoOverlayManager overlayManager = CallerMapUIServiceManager.INSTANCE.getOverlayManager(); - if (overlayManager != null) { - overlayManager.removePoint(uuid); - } - }; - OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable); - } - } - - public void updateOrderBottomBtnUI() { - try { - ToastUtils.showLong(ResourcesUtils.getString( - R.string.module_och_taxi_order_choose_start_autopilot_tip)); - showOrHideOrderModeBtn(false); - updateOrderBottomBtn(getString(R.string.module_och_taxi_order_server_wait_passenger_start), - Color.parseColor("#4DFFFFFF"), - Color.parseColor("#FF1D5EF3"), - false); - }catch (NullPointerException e){ - mTaxiFragment.confirmAutopilotConditionByDriver(); - } - } - - public void updateOrderBottomBtn(String txt, int txtColorId, int bgColorId,boolean isClickable){ - mOrderServerStatus.setText(txt); - mOrderServerStatus.setTextColor(txtColorId); - GradientDrawable background = (GradientDrawable) mOrderServerStatus.getBackground();//GradientDrawable是Drawable的子类 - background.setColor(bgColorId); - mOrderServerStatus.setClickable(isClickable); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java deleted file mode 100644 index 687e46fb88..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ /dev/null @@ -1,401 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.os.Build; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import androidx.fragment.app.FragmentTransaction; - -import com.mogo.eagle.core.data.temp.EventLogout; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.overlay.IMoGoOverlayManager; -import com.mogo.och.common.module.biz.login.LoginStatusManager; -import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; -import com.mogo.och.taxi.R; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; -import com.mogo.och.taxi.model.TaxiModel; -import com.mogo.och.taxi.presenter.TaxiPresenter; -import com.mogo.och.taxi.utils.TPRouteDataTestUtils; - -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - -import java.lang.ref.WeakReference; -import java.util.List; - -/** - * @author congtaowang - * @since 2021/1/18 - * - * 网约车-出租车UI - */ -public class TaxiFragment extends BaseTaxiTabFragment implements ITaxiView { - - public static final String TAG = "TaxiFragment"; - - public static TaxiFragment newInstance() { - - Bundle args = new Bundle(); - - TaxiFragment fragment = new TaxiFragment(); - fragment.setArguments(args); - return fragment; - } - - // 抢单信息 - private WeakReference grabOrderFragmentWR; - // 待服务信息 - private WeakReference serverOrdersFragmentWR; - - - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - } - - @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 -// public int getStationPanelViewId() { -// return R.layout.taxi_panel; -// } -// -// @Override -// public void startAutopilot() { -// // 在自动驾驶中,或者自己确认车辆环境可开启自动驾驶 则可点击 -// if ((mPresenter.getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd || -// mPresenter.getCurOrderStatus() == TaxiOrderStatusEnum.UserArriveAtStart) -// && !isStarting) { -// CallerLogger.d(M_TAXI + TAG, "startAutopilot"); -// mPresenter.startAutoPilot(); -// } -// } - - @Override - public void startNaviToEndStation(boolean isShow) { - mPresenter.startNaviToEndStation(isShow); - } - - @Override - public String getTagName() { - return "TaxiFragment"; - } - - @Override - protected void initViews() { - super.initViews(); - initFragment(); - initOrderTestBar(); - } - - private void initFragment() { -// serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance()); -//// grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); -// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); -// //默认显示OCHTaxiServerOrdersFragment -// transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()).show(serverOrdersFragmentWR.get()); -// transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()).hide(grabOrderFragmentWR.get()); -// transaction.commitAllowingStateLoss(); - } - - private void showGrabFragmentAndUpdate() { -// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); -// if (grabOrderFragmentWR == null || grabOrderFragmentWR.get() == null) { -// grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); -// transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()) -// .show(grabOrderFragmentWR.get()).commitAllowingStateLoss(); -// } else { -// transaction.show(grabOrderFragmentWR.get()).hide(serverOrdersFragmentWR.get()).commitAllowingStateLoss(); -// } - } - - public void showServerFragmentAndUpdate() { -// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); -// if (serverOrdersFragmentWR == null || serverOrdersFragmentWR.get() == null) { -// serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance()); -// transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()) -// .show(serverOrdersFragmentWR.get()); -// } else { -// transaction.show(serverOrdersFragmentWR.get()).hide(grabOrderFragmentWR.get()).commitAllowingStateLoss(); -// } - } - - @NonNull - @Override - protected TaxiPresenter createPresenter() { - return new TaxiPresenter(this); - } - - @Override - protected void onChangeOperationStatus() { - mPresenter.updateCarStatus(); - } - - @Override - public void onDestroyView() { - EventBus.getDefault().unregister(this); - if (mPresenter != null) { - mPresenter.onDestroy(this); - } - super.onDestroyView(); - } - - public void updateAutopilotStatus(int status,boolean canStart) { - onAutopilotStatusChanged(status,canStart); - } - - @RequiresApi(api = Build.VERSION_CODES.P) - public void updateCurrentOrderStatusChanged(OrderQueryRespBean.Result order) { -// if (serverOrdersFragmentWR != null && serverOrdersFragmentWR.get() != null) { -// serverOrdersFragmentWR.get().updateCurrentOrderStatusChanged(order); -// } - updateTaxiTestBarInfo(); //更新调试bar中信息 - } - - public void confirmAutopilotConditionByDriver(){ - mPresenter.confirmAutopilotConditionByDriver(); - } - - public void jumpPassengerCheckDone(){ - mPresenter.jumpPassengerCheckDone(); - } - - public void completeOrderService() { - mPresenter.completeOrderService(); - } - - public void startManualDirve(){ - mPresenter.startManualDrive(); - } - - public void cancelCurOrder(int reasonType, String reaso) { - mPresenter.cancelCurOrder(reasonType, reaso); - } - - public void cancelOrderById(String orderNo, int reasonType, String reason) { - mPresenter.cancelOrderById(orderNo, reasonType, reason); - } - - public void onCurrentOrderCancelDone(){ - startOrStopLoadingAnim(false); - /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击; - * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制) - */ - updateCtvAutopilotStatusTag(false); - - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onCurrentOrderCancelDone(); - } - - public void onOrderCancelDone(String orderNo) { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onOrderCancelDone(orderNo); - } - - @Override - protected void updateOrderBottomBtnUI() { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().updateOrderBottomBtnUI(); - } - - public void onNewBookingOrderGot(OrderQueryRespBean.Result order) { - if (null == order) return; - showGrabFragmentAndUpdate(); - grabOrderFragmentWR.get().updateGrabOrder(order); - } - - public void grabOrder() { - mPresenter.grabOrder(); - } - - public void cancelNewBookingOrder() { - mPresenter.cancelNewBookingOrder(); - showServerFragmentAndUpdate(); - } - - public void onGrabOrderExecuteDone() { - if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return; - grabOrderFragmentWR.get().onGrabOrderExecuteDone(); - } - - public void onGrabOrderSuccess(OrderQueryRespBean.Result order) { - if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return; - if (null == order) { - showServerFragmentAndUpdate(); - return; - } - showGrabFragmentAndUpdate(); - grabOrderFragmentWR.get().onGrabOrderSuccess(); - } - - public void onGrabOrderFailed(OrderQueryRespBean.Result order) { - if (order == null) { - showServerFragmentAndUpdate(); - return; - } - if (null == grabOrderFragmentWR || grabOrderFragmentWR.get() == null) return; - showGrabFragmentAndUpdate(); - grabOrderFragmentWR.get().onGrabOrderFailed(); - } - - public void onNaviToEnd(boolean isAmap , boolean isShow){ - if (isAmap){ - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onNaviToEndAmap(isShow); - }else if (isShow){ //使用rotting数据 - showRottingToStationFragment(true); - }else { - showAmapNaviToStationFragment(false); - } - } - - public void closeOrderByMan(){ - mPresenter.closeOrderByMan(); - } - - /** - * 高德计算出来的到达目的地的剩余里程和时间 - * @param meters - * @param timeInSecond - */ - public void reportToEndDisAndTime(int meters, long timeInSecond){ //米/秒 - mPresenter.reportToEndDisAndTime(Long.parseLong(String.valueOf(meters)),timeInSecond); - } - - - public void onOrdersWaitServiceChanged(List waitServiceList) { - if (null == waitServiceList) return; - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onOrdersWaitServiceChanged(waitServiceList); - } - - public void queryCurOrderRouteInfo() { - mPresenter.queryCurOrderRouteInfo(); - } - - public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onCurrentOrderRouteInfoGot(routeInfo); - } - - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) { - if (null == serverOrdersFragmentWR || serverOrdersFragmentWR.get() == null) return; - serverOrdersFragmentWR.get().onCurrentOrderDistToEndChanged(meters, timeInSecond); - } - - /** - * 订单流转debug START - */ - public void initOrderTestBar() { -// findViewById(R.id.test_bar_to_start).setOnClickListener(v -> { -// TaxiModel.getInstance().setArriveAtStartStation(); -// }); -// findViewById(R.id.test_bar_to_end).setOnClickListener(v -> { -// TaxiModel.getInstance().setArriveAtEndStation(); -// }); -// findViewById(R.id.test_bar_start_service_confirm).setOnClickListener(v -> { -// TaxiModel.getInstance().setDriverConfirmCondition(); -// }); -// findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> { -// if (!isStarting){ -// mPresenter.startAutoPilot(); -// } -// TaxiModel.getInstance().setOnTheWayToEndStation(); -// }); -// findViewById(R.id.test_bar_route).setOnClickListener(v -> { -// testRouteInfoUpload(); -// }); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void changeOverview(EventLogout eventLogout){ - if (eventLogout.getMessgae() == EventLogout.LOGOUT_TYPE){ - CallerLogger.d(M_TAXI + TAG,"changeOverview Event消息去登出"); - mPresenter.logout(); - } - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void openOperationalInfoView(EventLogout eventLogout){ -// if (eventLogout.getMessgae() == EventLogout.PERSONAL_TYPE){ -// CallerLogger.d(M_TAXI + TAG,"openOperationalInfoView Event个人中心"); -// openOperationalInfoView(); -// } - } - - - private void testRouteInfoUpload() { - TPRouteDataTestUtils.converToRouteData(); - } - - //region Taxi调试信息:订单、线路、轨迹等信息 - private View testBar; - private TextView testCurOrderId; - private TextView testCurLineId; - private TextView testCurLineName; - private TextView testCurTrajMd5; - private TextView testCurStopMd5; - private TextView testCurTrajMd5DPQP; - private TextView testCurStopMd5DPQP; - - public void clickTestBar() { - if (testBar == null) { - testBar = findViewById(R.id.module_och_taxi_order_status_change_test_bar); - testCurOrderId = findViewById(R.id.test_bar_current_order_id); - testCurLineId = findViewById(R.id.test_bar_current_line_id); - testCurLineName = findViewById(R.id.test_bar_current_line_name); - testCurTrajMd5 = findViewById(R.id.test_bar_current_traj_md5); - testCurStopMd5 = findViewById(R.id.test_bar_current_stop_md5); - testCurTrajMd5DPQP = findViewById(R.id.test_bar_current_traj_md5_dpqp); - testCurStopMd5DPQP = findViewById(R.id.test_bar_current_stop_md5_dpqp); - } - - if (testBar.getVisibility() == View.VISIBLE) { - testBar.setVisibility(View.GONE); - } else { - OrderQueryRespBean.Result order = TaxiModel.getInstance().getCurrentOCHOrder(); - testCurOrderId.setText("orderNo:" + (order == null ? "" : String.valueOf(order.orderNo))); - testCurLineId.setText("lineId:" + (order == null ? "" : String.valueOf(order.lineId))); - testCurLineName.setText("lineName:" + (order == null ? "" : order.lineName)); - testCurTrajMd5.setText("TMd5:" + (order == null ? "" : order.csvFileMd5)); - testCurStopMd5.setText("SMd5:" + (order == null ? "" : order.txtFileMd5)); - testCurTrajMd5DPQP.setText("TMd5DPQP:" + (order == null ? "" : order.csvFileMd5DPQP)); - testCurStopMd5DPQP.setText("SMd5DPQP:" + (order == null ? "" : order.txtFileMd5DPQP)); - testBar.setVisibility(View.VISIBLE); - } - } - - private void updateTaxiTestBarInfo() { - if (testBar != null && testBar.getVisibility() == View.VISIBLE) { - OrderQueryRespBean.Result order = TaxiModel.getInstance().getCurrentOCHOrder(); - testCurOrderId.setText("orderNo:" + (order == null ? "" : String.valueOf(order.orderNo))); - testCurLineId.setText("lineId:" + (order == null ? "" : String.valueOf(order.lineId))); - testCurLineName.setText("lineName:" + (order == null ? "" : order.lineName)); - testCurTrajMd5.setText("TMd5:" + (order == null ? "" : order.csvFileMd5)); - testCurStopMd5.setText("SMd5:" + (order == null ? "" : order.txtFileMd5)); - testCurTrajMd5DPQP.setText("TMd5DPQP:" + (order == null ? "" : order.csvFileMd5DPQP)); - testCurStopMd5DPQP.setText("SMd5DPQP:" + (order == null ? "" : order.txtFileMd5DPQP)); - } - } - - //endregion - -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java deleted file mode 100644 index 1f560df896..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.graphics.Color; -import android.graphics.drawable.AnimationDrawable; -import android.os.Bundle; -import android.os.CountDownTimer; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.constraintlayout.widget.ConstraintLayout; - -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.bean.OrderQueryRespBean; - -import java.util.Calendar; - -/** - * @author: wangmingjun - * @date: 2021/9/9 - */ -public class TaxiGrabOrderFragment extends BaseTaxiUIFragment implements View.OnClickListener { - - private TextView mOrderReserverTime; - private TextView mOrderGrabBt; - private TextView mOrderStartStation; - private TextView mOrderEndStation; - private TextView mOrderStartTitle; - private TextView mOrderEndTitle; - private ImageView mOrderCancelIv; - private ImageView mGrabResultAnimView; - private AnimationDrawable mGrabSuccessAnim; - private AnimationDrawable mGrabFailureAnim; - private CountDownTimer countDownTimer = null; - - public static TaxiGrabOrderFragment newInstance() { - - Bundle args = new Bundle(); - - TaxiGrabOrderFragment fragment = new TaxiGrabOrderFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_order_grab_view; - } - - @Override - protected void initViews(View view) { - mOrderReserverTime = view.findViewById(R.id.grab_order_reserver_time); - mOrderCancelIv = view.findViewById(R.id.grab_order_cancel_iv); - mOrderGrabBt = view.findViewById(R.id.grab_order_tv); - mOrderStartStation = view.findViewById(R.id.grab_order_start_station); - mOrderEndStation = view.findViewById(R.id.grab_order_end_station); - mOrderEndTitle = view.findViewById(R.id.grab_order_end_station_title); - mOrderStartTitle = view.findViewById(R.id.grab_order_start_station_title); - mGrabResultAnimView = view.findViewById(R.id.grab_result_anim); - mGrabResultAnimView.setVisibility(View.GONE); - mOrderEndTitle.setVisibility(View.VISIBLE); - mOrderStartTitle.setVisibility(View.VISIBLE); - - mOrderCancelIv.setOnClickListener(this); - mOrderGrabBt.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.grab_order_cancel_iv){//关闭抢单,如果是在抢单中,则只关闭界面,还继续抢单 - if (mOrderGrabBt.getText().toString().equals("抢单中...")){ - getOchTaxiFragment().showServerFragmentAndUpdate(); - return; - } - if (null != countDownTimer){ - countDownTimer.cancel(); - } - VoiceNotice.stopCurrentTts();//中断当前在播语音 - getOchTaxiFragment().cancelNewBookingOrder(); - }else if (v.getId() == R.id.grab_order_tv){ - if (!mOrderGrabBt.getText().toString().equals("抢单中...")){ - getOchTaxiFragment().grabOrder(); - } - } - } - private TaxiFragment getOchTaxiFragment(){ - return (TaxiFragment)getParentFragment(); - } - public void updateGrabOrder(OrderQueryRespBean.Result order){ - mGrabResultAnimView.setVisibility(View.GONE); - Calendar calendar = DateTimeUtil.formatLongToCalendar(order.bookingTime); - if (DateTimeUtil.compareDateIsCurrentDay(calendar)){ - mOrderReserverTime.setText("用车时间:今天 "+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); -// VoiceNotice.showNotice("预约单,今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)+"从" -// +order.startSiteAddr+"到"+order.endSiteAddr); - }else { - mOrderReserverTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd_HH_mm)); -// VoiceNotice.showNotice("预约单,"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd)+"从" -// +order.startSiteAddr+"到"+order.endSiteAddr); - } - mOrderStartStation.setText(order.startSiteAddr); - mOrderEndStation.setText(order.endSiteAddr); - mOrderGrabBt.setClickable(true); - mOrderGrabBt.setTextColor(Color.parseColor("#FFFFFF")); - ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams)mOrderGrabBt.getLayoutParams(); - lp.bottomMargin = 3; - mOrderGrabBt.setLayoutParams(lp); - mOrderGrabBt.setBackgroundResource(R.drawable.shape_size_grab_order_bt); - mOrderGrabBt.setText("抢单(10S)"); //开始倒计时任务 - countDownTimer = new CountDownTimer(11000,1000){ - - @Override - public void onTick(long millisUntilFinished) { - mOrderGrabBt.setText("抢单"+"("+millisUntilFinished/1000+")"); - } - - @Override - public void onFinish() {//结束倒计时,不抢单 - cancel(); - getOchTaxiFragment().cancelNewBookingOrder(); - } - }.start(); - } - public void onGrabOrderExecuteDone(){//进入抢单状态,btn样式改变,并不可点击 - if (null != countDownTimer){ - countDownTimer.cancel(); - } - mOrderGrabBt.setText("抢单中..."); - ConstraintLayout.LayoutParams lp = (ConstraintLayout.LayoutParams)mOrderGrabBt.getLayoutParams(); - lp.bottomMargin = 40; - mOrderGrabBt.setLayoutParams(lp); - mOrderGrabBt.setTextColor(Color.parseColor("#181D6D")); - mOrderGrabBt.setBackground(getResources().getDrawable(R.drawable.taxi_grabing_order_btn_bg)); - mOrderGrabBt.setClickable(false); - } -// 接单成功,语音播报“抢单成功,请合理安排后续行程接送乘客” -// 接单未成功,语音播报“接单失败,请继续接单” - public void onGrabOrderSuccess(){//抢单成功,更新btn 和 动画 语音 - VoiceNotice.showNotice("抢单成功,请合理安排后续行程接送乘客"); - mGrabResultAnimView.setVisibility(View.VISIBLE); - mGrabResultAnimView.setImageDrawable(getResources().getDrawable(R.drawable.grab_success_anmi_flow)); - mOrderGrabBt.setClickable(false); - mOrderGrabBt.setText("抢单成功!"); - mGrabSuccessAnim = (AnimationDrawable)mGrabResultAnimView.getDrawable(); - if (mGrabSuccessAnim.isOneShot()){ - return; - } - mGrabSuccessAnim.start(); - //开启动画结束的监听 - long delayMillis = (long) mGrabSuccessAnim.getDuration(0) * mGrabSuccessAnim.getNumberOfFrames(); - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (null != mGrabSuccessAnim && mGrabSuccessAnim.isRunning()){ - mGrabSuccessAnim.stop(); - } - // if (mGrabSuccessAnim.getFrame(mGrabSuccessAnim.getNumberOfFrames()-1) == mGrabSuccessAnim.getCurrent()){ - getOchTaxiFragment().showServerFragmentAndUpdate(); -// } - } - },delayMillis); - //开启动画结束的监听 - } - public void onGrabOrderFailed(){//抢单失败,更新btn 和 动画 语音 - VoiceNotice.showNotice("接单失败,请继续接单"); - mGrabResultAnimView.setVisibility(View.VISIBLE); - mGrabResultAnimView.setImageDrawable(getResources().getDrawable(R.drawable.grab_failure_anmi_flow)); - mOrderGrabBt.setClickable(false); - mOrderGrabBt.setText("抢单失败!"); - mGrabFailureAnim = (AnimationDrawable)mGrabResultAnimView.getDrawable(); - mGrabFailureAnim.start(); - //开启动画结束的监听 - long delayMillis = (long) mGrabFailureAnim.getDuration(0) * mGrabFailureAnim.getNumberOfFrames(); - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - if (null != mGrabFailureAnim && mGrabFailureAnim.isRunning()){ - mGrabFailureAnim.stop(); - } - getOchTaxiFragment().showServerFragmentAndUpdate(); - } - },delayMillis); - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (countDownTimer != null) countDownTimer.cancel(); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.kt deleted file mode 100644 index 8893f36bd6..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.kt +++ /dev/null @@ -1,290 +0,0 @@ -package com.mogo.och.taxi.ui - -import android.content.Context -import android.os.Bundle -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.MotionEvent -import android.widget.RelativeLayout -import com.amap.api.maps.AMap -import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.TextureMapView -import com.amap.api.maps.model.BitmapDescriptor -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.CameraPosition -import com.amap.api.maps.model.CustomMapStyleOptions -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.LatLngBounds -import com.amap.api.maps.model.Marker -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.Polyline -import com.amap.api.maps.model.PolylineOptions -import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager -import com.mogo.och.taxi.R -import com.mogo.och.taxi.utils.TaxiMapAssetStyleUtil - -/** - * taxi司机端前往目的地小地图导航 - */ -class TaxiMapDirectionView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : RelativeLayout(context, attrs, defStyleAttr), IMoGoChassisLocationGCJ02Listener, - ITaxiMapDirectionView, AMap.OnCameraChangeListener { - private lateinit var mAMapNaviView: TextureMapView - private lateinit var mAMap: AMap - private var mCarMarker: Marker? = null - private lateinit var mStartMarker: Marker - private lateinit var mEndMarker: Marker - private val zoomLevel = 13 - private val routeArrivied: MutableList = ArrayList() - private val routeArriving: MutableList = ArrayList() - private var location: MogoLocation? = null - private var startStation: LatLng? = null - private var endStation: LatLng? = null - private var mPolyline: Polyline? = null - var textureList: MutableList = ArrayList() - var texIndexList: MutableList = ArrayList() - private var mArrivedRes: BitmapDescriptor? = null - private var mUnArrivedRes: BitmapDescriptor? = null - - init { - try { - initView(context) - } catch (e: Exception) { - e.printStackTrace() - } - } - - private fun initView(context: Context) { - d(SceneConstant.M_TAXI + TAG, "initView") - val smpView = LayoutInflater.from(context).inflate(R.layout.taxi_map_view, this) - mAMapNaviView = smpView.findViewById(R.id.taxi_amap_view) - initAMapView() - - // 注册定位监听 - OchLocationManager.addGCJ02Listener(TAG, 3, this) - } - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - // 注册定位监听 - OchLocationManager.removeGCJ02Listener(TAG) - } - - private fun initAMapView() { - val mCameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel.toFloat()) - mAMap = mAMapNaviView.map - // 设置导航地图模式,aMap是地图控制器对象。 - mAMap.mapType = AMap.MAP_TYPE_NIGHT - - // 关闭显示实时路况图层,aMap是地图控制器对象。 - mAMap.isTrafficEnabled = false - - // 设置 锚点 图标 - mCarMarker = mAMap.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_car)).anchor(0.5f, 0.5f)) - mStartMarker = mAMap.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_view_dir_start))) - mEndMarker = mAMap.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_view_dir_end))) - mStartMarker.isVisible = false - mEndMarker.isVisible = false - mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_arrived) - mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_un_arrive) - - // 加载自定义样式 - val customMapStyleOptions = CustomMapStyleOptions() - .setEnable(true) - .setStyleData(TaxiMapAssetStyleUtil.getAssetsStyle(context, "map_style.data")) - .setStyleExtraData( - TaxiMapAssetStyleUtil.getAssetsExtraStyle( - context, - "map_style_extra.data" - ) - ) - // 设置自定义样式 - mAMap.setCustomMapStyle(customMapStyleOptions) - - //设置希望展示的地图缩放级别 - mAMap.moveCamera(mCameraUpdate) - - // 设置地图的样式 - mAMap.uiSettings.apply { - isZoomControlsEnabled = false // 地图缩放级别的交换按钮 - setAllGesturesEnabled(false) // 所有手势 - isMyLocationButtonEnabled = false // 显示默认的定位按钮 - setLogoBottomMargin(-150) //设置Logo下边界距离屏幕底部的边距,设置为负值即可 - } - mAMap.setOnMapLoadedListener(AMap.OnMapLoadedListener { - d(SceneConstant.M_TAXI + TAG, "smp---onMapLoaded") - // 加载自定义样式 - val customMapStyleOptions = CustomMapStyleOptions() - .setEnable(true) - .setStyleData(TaxiMapAssetStyleUtil.getAssetsStyle(context, "map_style.data")) - .setStyleExtraData( - TaxiMapAssetStyleUtil.getAssetsExtraStyle( - context, - "map_style_extra.data" - ) - ) - // 设置自定义样式 - mAMap.setCustomMapStyle(customMapStyleOptions) - mAMapNaviView.map.setPointToCenter( - mAMapNaviView.width / 2, - mAMapNaviView.height / 2 - ) - }) - - //设置地图状态的监听接口 - mAMap.setOnCameraChangeListener(this) - } - - override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { - return true - } - - override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { - if (mogoLocation == null) { - return - } - try { - val currentLatLng = LatLng(mogoLocation.latitude, mogoLocation.longitude) - if (mPolyline != null && mPolyline!!.points.size > 1) { - val points = mPolyline!!.points - //圈定地图显示范围 - val endLatLng = points[points.size - 1] - //存放经纬度 - val boundsBuilder = LatLngBounds.Builder() - boundsBuilder.include(currentLatLng) - boundsBuilder.include(endLatLng) - //第二个参数为四周留空宽度 - mAMap.moveCamera( - CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 100, 100, 100, 100) - ) - } else { - //设置希望展示的地图缩放级别 - val cameraPosition = CameraPosition.Builder() - .target(mCarMarker!!.position).tilt(0f).bearing(mogoLocation.heading.toFloat()) - .zoom(zoomLevel.toFloat()).build() - mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)) - } - //更新车辆位置 - if (mCarMarker != null) { - mCarMarker!!.rotateAngle = (360 - mogoLocation.heading).toFloat() - mCarMarker!!.position = currentLatLng - mCarMarker!!.setToTop() - } - } catch (e: Exception) { - e.printStackTrace() - } - } - - override fun setLineMarker() { - if (mStartMarker.isVisible && mEndMarker.isVisible - ) { - return - } - if (startStation != null && endStation != null) { - // 设置开始结束Marker位置 - mStartMarker.position = startStation - mStartMarker.isVisible = true - mEndMarker.position = endStation - mEndMarker.isVisible = true - } - } - - override fun drawablePolyline() { - if (routeArrivied.isEmpty() && routeArriving.isEmpty()) { - d(SceneConstant.M_TAXI + TAG, "没有点") - return - } - texIndexList.clear() - val allPoints = ArrayList(routeArrivied) - for (i in routeArrivied.indices) { - if (routeArrivied.size > 1 && i < routeArrivied.size - 1) { - texIndexList.add(0) - } - } - texIndexList.add(0) - allPoints.add(LatLng(location!!.latitude, location!!.longitude)) - allPoints.addAll(routeArriving) - for (ignored in routeArrivied) { - texIndexList.add(1) - } - if (mPolyline != null) { - mPolyline!!.points = allPoints - mPolyline!!.options.customTextureIndex = texIndexList - return - } - if(textureList.isEmpty()) { - textureList.add(mArrivedRes) - textureList.add(mUnArrivedRes) - } - //设置线段纹理 - val polylineOptions = PolylineOptions().apply { - addAll(allPoints) - isUseTexture = true - width(15f) - lineCapType(PolylineOptions.LineCapType.LineCapRound) - customTextureList = textureList - customTextureIndex = texIndexList - } - - // 绘制线 - mPolyline = mAMap.addPolyline(polylineOptions) - } - - override fun clearPolyline() { - if (mPolyline != null) { - mPolyline!!.remove() - mPolyline = null - } - mStartMarker.isVisible = false - mEndMarker.isVisible = false - } - - fun onCreateView(savedInstanceState: Bundle?) { - mAMapNaviView.onCreate(savedInstanceState) - } - - fun onResume() { - mAMapNaviView.onResume() - } - - fun onPause() { - mAMapNaviView.onPause() - } - - fun onDestroy() { - mAMapNaviView.onDestroy() - mAMap.clear() - } - - fun setStartMarkAndEndMark(startStation: LatLng?, endStation: LatLng?) { - this.startStation = startStation - this.endStation = endStation - } - - fun setCoordinatesLatLng( - routeArrivied: List?, - routeArriving: List?, - location: MogoLocation? - ) { - this.routeArrivied.clear() - this.routeArrivied.addAll(routeArrivied!!) - this.routeArriving.clear() - this.routeArriving.addAll(routeArriving!!) - this.location = location - } - - override fun onCameraChange(cameraPosition: CameraPosition) {} - override fun onCameraChangeFinish(cameraPosition: CameraPosition) {} - - companion object { - //小地图名称 - const val TAG = "TaxiMapDirectionView" - } -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java deleted file mode 100644 index aaea75f515..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOperationDatasFragment.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.content.Context; -import android.os.Bundle; -import android.text.Html; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.model.TaxiModel; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2021/9/10 - */ -public class TaxiOperationDatasFragment extends BaseTaxiUIFragment { - - private RecyclerView mRecyclerView; - private static Context mContext; - private List mDurationData = new ArrayList<>(); - private List mOrderNumData = new ArrayList<>(); - private List mData = new ArrayList<>(); - private static int mType = 0;//0: 运营时长 1:运营单数 - private OperationDataAdapter mAdapter; - - public static TaxiOperationDatasFragment newInstance(Context context, int type) { - mContext = context; - mType = type; - Bundle args = new Bundle(); - TaxiOperationDatasFragment fragment = new TaxiOperationDatasFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_operation_data_view; - } - - @Override - protected void initViews(View view) { - mRecyclerView = view.findViewById(R.id.operation_data_recycler_view); - mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext)); - mAdapter = new OperationDataAdapter(mContext, mData); - mRecyclerView.setAdapter(mAdapter); - initDatas(); - } - - private void initDatas() { - TaxiModel.getInstance().queryDriverServiceData(); - } - - public void setmType(int type) { - mType = type; - mData.clear(); - if (mType == 0){ - mData.addAll(mDurationData); - }else if (mType == 1){ - mData.addAll(mOrderNumData); - } - if (mAdapter != null) mAdapter.notifyDataSetChanged(); - } - - public void updateData(long dailyTimeDuration, long dailyOrderNum) { - mDurationData.clear(); - mOrderNumData.clear(); - mData.clear(); - mDurationData.add(dailyTimeDuration); - mOrderNumData.add(dailyOrderNum); - mData.addAll(mDurationData); - if (mAdapter != null) mAdapter.notifyDataSetChanged(); - } - - class OperationDataAdapter extends RecyclerView.Adapter { - private List datas; - private Context context; - - public OperationDataAdapter(Context context, List datas) { - this.datas = datas; - this.context = context; - } - - @NonNull - @Override - public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = LayoutInflater.from(context).inflate(R.layout.taxi_operation_data_item_view, parent, false); - OperationDataViewHolder viewHolder = new OperationDataViewHolder(view); - return viewHolder; - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - if (holder instanceof OperationDataViewHolder) { - OperationDataViewHolder viewHolder = (OperationDataViewHolder) holder; - if (0 == mType){ - String hourData = TextUtils.isEmpty(DateTimeUtil.secondsToHourStr(datas.get(position))) ? "0": DateTimeUtil.secondsToHourStr(datas.get(position)); - String minuteData = DateTimeUtil.secondsToMinuteStr(datas.get(position)); - String data = "" + hourData + "" + "" + minuteData + ""; - viewHolder.operationDataTv.setText(Html.fromHtml(data)); - viewHolder.operationDataTitle.setText("今日在线时长"); - }else if (1 == mType){ - String data = "" + String.valueOf(datas.get(position)) + "" + " 单" + ""; - viewHolder.operationDataTv.setText(Html.fromHtml(data)); - viewHolder.operationDataTitle.setText("今日订单完成数"); - } - } - } - - @Override - public int getItemCount() { - return datas.size(); - } - } - - class OperationDataViewHolder extends RecyclerView.ViewHolder { - private TextView operationDataTv; - private TextView operationDataTitle; - - public OperationDataViewHolder(@NonNull View itemView) { - super(itemView); - operationDataTv = itemView.findViewById(R.id.operation_data_tv); - operationDataTitle = itemView.findViewById(R.id.operation_data_title_tv); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java deleted file mode 100644 index 43ba8495ed..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java +++ /dev/null @@ -1,231 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.app.AlertDialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Build; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.Display; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.widget.GridView; -import android.widget.TextView; - -import androidx.annotation.RequiresApi; - -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.constant.TaxiOrderCancelReasons; - -import java.lang.ref.WeakReference; -/** - * @author: wangmingjun - * @date: 2021/8/18 - */ -public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickListener,AdapterView.OnItemClickListener { - - private static final String TAG = "OCHTaxiOrderCancelDial"; - protected WeakReference contextWeakReference; - private GridView mContentView; - private TextView mCancelCommitTv; - private TextView mDialogCancelTv; - private String mCurrentReason = ""; - private ContentAdapter mContentAdapter; - private int mOrderStatus;//1:预约单,其他为即时单的状态, 主要是控制乘客上车 乘客下车这几个选项的显示 - private String[] mContentArrays; - private WeakReference mOchTaxiFragmentWeak; - private String mOrderNo; - - protected TaxiOrderCancelDialog(TaxiFragment fragment, Context context, String orderNo, int orderStatus) { - super(context,R.style.OrderCancelDialog); - mOrderNo = orderNo; - mOchTaxiFragmentWeak = new WeakReference<>(fragment); - this.mOrderStatus = orderStatus; - contextWeakReference = new WeakReference<>(context); - initReasonArray(); - } - - private void initReasonArray() { - if (1 == mOrderStatus) { - mContentArrays = new String[]{TaxiOrderCancelReasons.BookPassengerCancel.getMsg(), TaxiOrderCancelReasons.CarBroken.getMsg(), - TaxiOrderCancelReasons.BookJourneyConflict.getMsg(), TaxiOrderCancelReasons.BatteryLow.getMsg(), - TaxiOrderCancelReasons.BookOther.getMsg()}; - return; - } - TaxiOrderStatusEnum ochStatus = TaxiOrderStatusEnum.valueOf(mOrderStatus); - switch (ochStatus) { - case OnTheWayToStart: - mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(), - TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(), - TaxiOrderCancelReasons.StartStationFaraway.getMsg(), TaxiOrderCancelReasons.Other.getMsg(), - TaxiOrderCancelReasons.PassengerCancel.getMsg()}; - break; - case ArriveAtStart: - mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(), - TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(), - TaxiOrderCancelReasons.PassengerNotArrive.getMsg(),TaxiOrderCancelReasons.UnContractPassenger.getMsg(), - TaxiOrderCancelReasons.PassengerCancel.getMsg(),TaxiOrderCancelReasons.Other.getMsg()}; - break; - case OnTheWayToEnd: - case ArriveAtEnd: - mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(), - TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(), - TaxiOrderCancelReasons.PassengerStopOver.getMsg(),TaxiOrderCancelReasons.Other.getMsg()}; - break; - default: - mContentArrays = new String[]{TaxiOrderCancelReasons.CarBroken.getMsg(), TaxiOrderCancelReasons.DeviceBroken.getMsg(), - TaxiOrderCancelReasons.BatteryLow.getMsg(), TaxiOrderCancelReasons.DriverIsIll.getMsg(), - TaxiOrderCancelReasons.PassengerNotArrive.getMsg(), TaxiOrderCancelReasons.PassengerStopOver.getMsg(), - TaxiOrderCancelReasons.Other.getMsg()}; - break; - - } - } - - protected TaxiOrderCancelDialog(Context context, boolean cancelable, OnCancelListener cancelListener) { - super(context, cancelable, cancelListener); - } - - protected TaxiOrderCancelDialog(Context context, int themeResId) { - super(context, themeResId); - } - - @RequiresApi(api = Build.VERSION_CODES.M) - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getWindow().setBackgroundDrawableResource(R.drawable.taxi_order_cancel_dialog_bg); - setContentView(R.layout.taxi_order_cancel_view); - initView(); - setCancelable(false); - setCanceledOnTouchOutside(false); - - initWindowView(); - } - - private void initWindowView() { - Window window = getWindow(); - //dialog padding 去掉 - window.getDecorView().setPadding(0,0,0,0); - window.setDimAmount(0.5f); - window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全 - - WindowManager.LayoutParams params = window.getAttributes(); - window.setGravity(Gravity.CENTER); - WindowManager m = window.getWindowManager(); - Display d = m.getDefaultDisplay(); - params.height = d.getHeight() - 500; - window.setAttributes(params); - } - - @RequiresApi(api = Build.VERSION_CODES.M) - private void initView() { - mContentView = findViewById(R.id.module_och_taxi_order_cancel_content_gv); - mCancelCommitTv = findViewById(R.id.order_cancel_commit_tv); - mDialogCancelTv = findViewById(R.id.order_dialog_cancel_tv); - mContentAdapter = new ContentAdapter(contextWeakReference.get(), mContentArrays); - mContentView.setAdapter(mContentAdapter); - mContentView.setSelector(new ColorDrawable(Color.TRANSPARENT)); - mContentView.setOnItemClickListener(this); - mCancelCommitTv.setOnClickListener(this); - mDialogCancelTv.setOnClickListener(this); - mContentView.setOnItemClickListener(this); - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.order_cancel_commit_tv) {//bt commit - if (!TextUtils.isEmpty(mCurrentReason) && TaxiOrderCancelReasons.getType(mCurrentReason) != 0) { - if (1 == mOrderStatus){//预约单 - mOchTaxiFragmentWeak.get().cancelOrderById(mOrderNo, TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason); - }else {//即时单 - mOchTaxiFragmentWeak.get().cancelCurOrder(TaxiOrderCancelReasons.getType(mCurrentReason),mCurrentReason); - } - dismiss(); - }else { - ToastUtils.showShort("取消原因不能为空"); - } - }else if (v.getId() == R.id.order_dialog_cancel_tv){//close icon - mCurrentReason = ""; - dismiss(); - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - CallerLogger.d(M_TAXI + TAG,"mCurrentReason ="+ mContentArrays[position]); - mCurrentReason = mContentArrays[position]; -// GradientDrawable background = (GradientDrawable) mCancelBt.getBackground();//GradientDrawable是Drawable的子类 -// background.setColor(Color.parseColor("#2B6EFF")); -// mCancelBt.setTextColor(Color.parseColor("#FFFFFF")); -// mCancelBt.setClickable(true); - mContentAdapter.notifyCurrentReasons(mCurrentReason); - } - - class ContentAdapter extends BaseAdapter{ - - private Context context; - private String[] datas; - private LayoutInflater layoutInflater; - private String currentReasons = ""; - - public ContentAdapter(Context context, String[] array){ - this.context = context; - datas = array; - layoutInflater = LayoutInflater.from(context); - } - @Override - public int getCount() { - return datas.length; - } - - @Override - public Object getItem(int position) { - return datas[position]; - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder viewHolder = null; - if (convertView == null){ - convertView = layoutInflater.inflate(R.layout.taxi_order_checkbox_item,null); - viewHolder = new ViewHolder(); - viewHolder.checkBoxTv = convertView.findViewById(R.id.item_checkbox); - convertView.setTag(viewHolder); - }else { - viewHolder = (ViewHolder) convertView.getTag(); - } - viewHolder.checkBoxTv.setText(datas[position]); - if(viewHolder.checkBoxTv.getText().toString().equals(currentReasons)){ - viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_selected_btn),null,null,null); - }else { - viewHolder.checkBoxTv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.shape_size_taxi_unselected_btn),null,null,null); - } - return convertView; - } - public void notifyCurrentReasons(String reason){ - currentReasons = reason; - notifyDataSetChanged(); - } - class ViewHolder { - TextView checkBoxTv; - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java deleted file mode 100644 index a948351547..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java +++ /dev/null @@ -1,522 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.Point; -import android.graphics.Typeface; -import android.os.Build; -import android.os.Bundle; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import androidx.viewpager.widget.ViewPager; - -import com.google.android.material.tabs.TabLayout; -import com.mogo.commons.mvp.MvpDialogFragment; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; -import com.mogo.och.taxi.presenter.TaxiOperationalPresenter; -import com.mogo.och.taxi.ui.base.AvoidLeakDialog; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import me.jessyan.autosize.utils.AutoSizeUtils; - -/** - * @author: wangmingjun - * @date: 2021/8/18 - */ -public class TaxiPersonalDialogFragment extends - MvpDialogFragment - implements View.OnClickListener { - - private final static String TAG = "OCHTaxiOrdersDialog"; - - private RelativeLayout mOperationDataRl; - private ImageView mCloseIv; - private RecyclerView mOrdersRv; - private Button mShowOrdersBt; - private TabLayout mOperationTab; - private ViewPager mOperationViewPager; - private OrderAdapter mAdapter; - private ConstraintLayout mNoDatas; - private final List orders = new ArrayList<>(); - private final String[] mTabTitles = {"在线时长","订单完成数"}; - private final List fragments = new ArrayList<>(); - private int mNextPage = 1;//订单列表分页从1开始 - private final int mPerPageSize = 10; - private static boolean serverHadNoData = false; - - @NonNull - @Override - public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - AvoidLeakDialog dialog = new AvoidLeakDialog(getContext()); - dialog.setHostFragmentReference(this); - return dialog; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_orders_list_view; - } - - @Override - protected void initViews() { - initView(); - } - - @NonNull - @Override - protected TaxiOperationalPresenter createPresenter() { - return new TaxiOperationalPresenter(this); - } - - @Override - public String getTagName() { - return TAG; - } - - @Override - public void dismissAllowingStateLoss() { - super.dismissAllowingStateLoss(); - } - - @Override - public void onStart() { - super.onStart(); - setCancelable(false); - getDialog().setCanceledOnTouchOutside(true); - Window window = getDialog().getWindow(); - //dialog padding 去掉 - window.getDecorView().setPadding(0,0,0,0); - window.setDimAmount(0f); - WindowManager.LayoutParams params = window.getAttributes(); - params.x = 0; - params.y = 0; - WindowManager windowManager = (WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE); - Point point = new Point(); - windowManager.getDefaultDisplay().getSize(point); - params.width = (int)(point.x * 0.375); - params.height = ViewGroup.LayoutParams.MATCH_PARENT; - CallerLogger.d(M_TAXI + TAG,"width= "+params.width+"height= "+params.height); - window.setAttributes(params); - window.getDecorView().setBackgroundColor(Color.parseColor("#00FFFFFF"));//设置背景, 不然显示不全 - window.setGravity(Gravity.LEFT|Gravity.BOTTOM); - } - private void initView() { - initOperationTabDatas(); - mCloseIv = findViewById(R.id.module_och_taxi_order_list_close_iv); - mOperationDataRl = findViewById(R.id.module_och_taxi_operation_data_rl); - mShowOrdersBt = findViewById(R.id.module_och_taxi_order_list_show_bt); - mOrdersRv = findViewById(R.id.module_och_taxi_order_list); - - mNoDatas = findViewById(R.id.no_order_data_view); - ImageView imageView = findViewById(R.id.no_order_data_iv); - imageView.setImageResource(R.drawable.no_order_data); - ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams)imageView.getLayoutParams(); - params.width = 480; - params.height = 480; - imageView.setLayoutParams(params); - - mOrdersRv.setVisibility(View.GONE); - mNoDatas.setVisibility(View.GONE); - - mShowOrdersBt.setOnClickListener(this); - - mCloseIv.setOnClickListener(this); - - } - - private void initOperationTabDatas() { - mOperationTab = findViewById(R.id.operation_data_tablayout); - mOperationViewPager = findViewById(R.id.operation_data_viewpager); - for (int i= 0;i < mTabTitles.length; i++){ - TabLayout.Tab tab = mOperationTab.newTab(); - tab.view.setBackgroundColor(Color.parseColor("#00000000")); - View tabView = View.inflate(getContext(),R.layout.taxi_operation_tab_item_custom,null); - TextView tv = tabView.findViewById(R.id.operation_tab_title); - tv.setText(mTabTitles[i]); - tab.setCustomView(tabView); - if (0 == i){ - mOperationTab.addTab(tab,true); - changeOperationTabLayoutTabUI(tab,true); - fragments.add(TaxiOperationDatasFragment.newInstance(getActivity(),0)); - }else if (1 == i){ - mOperationTab.addTab(tab); - changeOperationTabLayoutTabUI(tab,false); - fragments.add(TaxiOperationDatasFragment.newInstance(getActivity(),1)); - } - } - mOperationTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { - @Override - public void onTabSelected(TabLayout.Tab tab) { - mOperationViewPager.setCurrentItem(tab.getPosition()); - changeOperationTabLayoutTabUI(tab,true); - fragments.get(tab.getPosition()).setmType(tab.getPosition()); - } - - @Override - public void onTabUnselected(TabLayout.Tab tab) { - changeOperationTabLayoutTabUI(tab,false); - } - - @Override - public void onTabReselected(TabLayout.Tab tab) { - - } - }); - mOperationViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - } - - @Override - public void onPageSelected(int position) { - mOperationTab.getTabAt(position).select(); - } - - @Override - public void onPageScrollStateChanged(int state) { - } - }); - mOperationViewPager.setAdapter(new OrdersOperationFragmentAdapter( - getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)); - fragments.get(0).setmType(0); - } - - public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum){ - for (int i=0; i< fragments.size();i++){ - fragments.get(i).updateData(dailyTimeDuration,dailyOrderNum); - } - } - - private void changeOperationTabLayoutTabUI(TabLayout.Tab tab, boolean isSelected) { - TextView textView = (TextView) tab.getCustomView().findViewById(R.id.operation_tab_title); - ImageView imageView = (ImageView) tab.getCustomView().findViewById(R.id.operation_tab_line_iv); - if (isSelected){ - textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(getContext(),46)); - CallerLogger.d(M_TAXI + TAG,"SelectTv = "+ textView.getText()); - textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); - textView.setTextColor(Color.parseColor("#FFFFFF")); - if(getContext()!=null) { - imageView.setImageDrawable(getResources().getDrawable(R.drawable.taxi_driver_operation_tab_line)); - } - }else { - textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(getContext(),40)); - CallerLogger.d(M_TAXI + TAG,"unSelectTv = "+ textView.getText()); - textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); - textView.setTextColor(Color.parseColor("#A7B6F0")); - imageView.setImageDrawable(null); - } - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.module_och_taxi_order_list_close_iv){ - dismiss(); - }else { - mOrdersRv.setVisibility(View.VISIBLE); - mOperationDataRl.setVisibility(View.GONE); - mNoDatas.setVisibility(View.GONE); - initOrdersView(); - mPresenter.queryOrdersList(mNextPage, mPerPageSize); - } - } - - private void initOrdersView() { - mAdapter = new OrderAdapter(getContext(),orders); - LinearLayoutManager manager = new LinearLayoutManager(getContext()); - mOrdersRv.setLayoutManager(manager); - mOrdersRv.addOnScrollListener(new OnTaxiOrderRvOnScrollListener() { - @Override - public void onLoadMore() { - if (!serverHadNoData){ - mPresenter.queryOrdersList(mNextPage, mPerPageSize); - } - } - }); - mOrdersRv.setAdapter(mAdapter); - } - - public void onOrdersListPageRefresh(List ordersList){ - try { - if (null == ordersList && mNextPage == 0 || - (ordersList != null && ordersList.size() == 0)){//无数据 - mOrdersRv.setVisibility(View.GONE); - mNoDatas.setVisibility(View.VISIBLE); - return; - } - mOrdersRv.setVisibility(View.VISIBLE); - mNoDatas.setVisibility(View.GONE); - if ((null == ordersList) || (ordersList.size() < mPerPageSize && mNextPage > 0)){//已经没有更多数据,提示无数据 - //已经没有更多数据 - serverHadNoData = true; - orders.addAll(ordersList); - mAdapter.notifyDataSetChanged(); - mNextPage = mNextPage +1; - return; - } - serverHadNoData = false; - orders.addAll(ordersList); - if(mAdapter!=null) { - mAdapter.notifyDataSetChanged(); - } - mNextPage = mNextPage +1; - }catch (Exception e){ - e.fillInStackTrace(); - } - } - - class OrderAdapter extends RecyclerView.Adapter{ - private static final int ORDER_DETAIL_ITEM = 0; - private static final int DAY_GROUP_ITEM = 1; - private Context context; - List orders; - public OrderAdapter(Context context,List datas){ - this.context = context; - this.orders = datas; - } - - @NonNull - @Override - public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - if (viewType == ORDER_DETAIL_ITEM){ - View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_item,parent,false); - return new OrderDetailViewHolder(view); - }else if (viewType == DAY_GROUP_ITEM){ - View view = LayoutInflater.from(context).inflate(R.layout.taxi_orders_list_day_item,parent,false); - return new DayGroupViewHolder(view); - } - return null; - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - OrderQueryRespBean.Result queryRespBean = orders.get(position); - if (null == queryRespBean) return; - if (holder instanceof DayGroupViewHolder){ - DayGroupViewHolder groupViewHolder = (DayGroupViewHolder)holder; - groupViewHolder.dayGroupTv.setText(DateTimeUtil.getYMDTime(queryRespBean.createTime)); - bindOrderDetailData(queryRespBean,groupViewHolder.orderTimeTv,groupViewHolder.startStationTv,groupViewHolder.endStationTv, - groupViewHolder.orderStatusBt,groupViewHolder.orderTypeBt,groupViewHolder.orderNumTv); - if (isNoLineItem(position)){ - groupViewHolder.dividerLine.setVisibility(View.VISIBLE); - }else { - groupViewHolder.dividerLine.setVisibility(View.GONE); - } - if (position == orders.size()-1 && serverHadNoData){ - groupViewHolder.mBootNoDataView.setVisibility(View.VISIBLE); - }else { - groupViewHolder.mBootNoDataView.setVisibility(View.GONE); - } - }else if (holder instanceof OrderDetailViewHolder){ - OrderDetailViewHolder detailViewHolder = (OrderDetailViewHolder)holder; - bindOrderDetailData(queryRespBean,detailViewHolder.orderTimeTv,detailViewHolder.startStationTv,detailViewHolder.endStationTv, - detailViewHolder.orderStatusBt,detailViewHolder.orderTypeBt,detailViewHolder.orderNumTv); - if (isNoLineItem(position)){ - detailViewHolder.dividerLine.setVisibility(View.VISIBLE); - }else { - detailViewHolder.dividerLine.setVisibility(View.GONE); - } - if (position == orders.size()-1 && serverHadNoData){ - detailViewHolder.mBootNoDataView.setVisibility(View.VISIBLE); - }else { - detailViewHolder.mBootNoDataView.setVisibility(View.GONE); - } - } - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public int getItemViewType(int position) { - //第一个要显示时间 - if (position == 0){ - return DAY_GROUP_ITEM; - } - String currentDate = DateTimeUtil.getYMDTime(orders.get(position).createTime);//获取当前订单时间 - int prevIndex = position - 1; - String preDate = DateTimeUtil.getYMDTime(orders.get(prevIndex).createTime); - boolean isDifferent = !preDate.equals(currentDate);//前一个订单的日期跟第二个订单的日期是否一致 - return isDifferent ? DAY_GROUP_ITEM : ORDER_DETAIL_ITEM;//一样订单详情, 不一样新添加分组 - } - - private boolean isNoLineItem(int position){ - if (position == orders.size() -1){ - return false; - }else { - String currentDate = DateTimeUtil.getYMDTime(orders.get(position).createTime);//获取当前订单时间 - int nextIndex = position + 1; - String preDate = DateTimeUtil.getYMDTime(orders.get(nextIndex).createTime); - return preDate.equals(currentDate);//一样有划分线, 不一样没有划分线 - } - } - - @Override - public int getItemCount() { - return orders.size(); - } - - private void bindOrderDetailData(OrderQueryRespBean.Result queryRespBean, TextView orderTimeTv, TextView startStationTv, TextView endStationTv, - Button orderStatusBt, Button orderTypeBt, TextView orderNumTv){ - Calendar calendar= Calendar.getInstance(); - calendar.setTimeInMillis(queryRespBean.createTime); - orderTimeTv.setText(DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); - startStationTv.setText(queryRespBean.startSiteAddr); - endStationTv.setText(queryRespBean.endSiteAddr); - orderStatusBt.setText(getOrderStatus(queryRespBean.orderStatus,orderStatusBt)); - orderTypeBt.setText(getOrderType(queryRespBean.orderType,orderTypeBt)); - orderNumTv.setText("订单编号:"+String.valueOf(queryRespBean.orderNo)); - } - - private String getOrderStatus(int status, Button button){ - TaxiOrderStatusEnum orderStatus = TaxiOrderStatusEnum.valueOf(status); - switch (orderStatus){ - case JourneyCompleted: - button.setBackground(context.getDrawable(R.drawable.taxi_order_button_status_canceled_bg)); - return "已完成"; - case Cancel: - button.setBackground(context.getDrawable(R.drawable.taxi_order_button_status_canceled_bg)); - return "已取消"; - default: - button.setBackground(context.getDrawable(R.drawable.taxi_order_button_status_bg)); - return "服务中"; - } - } - - private String getOrderType(int type, Button button){ - if (type == TaxiOrderTypeEnum.Reserved.getType()){ - button.setBackground(context.getDrawable(R.drawable.taxi_order_button_type_reserver_bg)); - return "预约单"; - }else{ - button.setBackground(context.getDrawable(R.drawable.taxi_order_button_type_bg)); - return "即时单"; - } - } - - } - - class OrderDetailViewHolder extends RecyclerView.ViewHolder{ - - protected TextView orderTimeTv; - protected Button orderStatusBt; - protected TextView startStationTv; - protected TextView endStationTv; - protected TextView orderNumTv; - protected Button orderTypeBt; - protected View dividerLine; - protected View mBootNoDataView; - - public OrderDetailViewHolder(@NonNull View itemView) { - super(itemView); - orderTimeTv = itemView.findViewById(R.id.order_time_hm_tv); - orderStatusBt = itemView.findViewById(R.id.order_status_bt); - startStationTv = itemView.findViewById(R.id.grab_order_start_station); - endStationTv = itemView.findViewById(R.id.grab_order_end_station); - orderNumTv = itemView.findViewById(R.id.order_num); - orderTypeBt = itemView.findViewById(R.id.order_type_bt); - dividerLine = itemView.findViewById(R.id.module_och_taxi_order_divider); - mBootNoDataView = itemView.findViewById(R.id.boot_refresh_no_data_view); - } - } - - class DayGroupViewHolder extends OrderDetailViewHolder{ - - private TextView dayGroupTv; - public DayGroupViewHolder(@NonNull View itemView) { - super(itemView); - dayGroupTv = itemView.findViewById(R.id.order_day_tv); - } - } - - abstract class OnTaxiOrderRvOnScrollListener extends RecyclerView.OnScrollListener{ - - private boolean isUpwardSliding = false; - - @Override - public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { - RecyclerView.LayoutManager manager = recyclerView.getLayoutManager(); - //不滑动 - if (manager instanceof LinearLayoutManager && newState == SCROLL_STATE_IDLE){ - LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager; - int lastItemPosition = linearLayoutManager.findLastCompletelyVisibleItemPosition(); - int itemCount = linearLayoutManager.getItemCount(); - CallerLogger.d(M_TAXI + TAG,"lastItemPosition=="+lastItemPosition+",itemCount=="+itemCount); - //向上滑动到最后一个 - if ((lastItemPosition == itemCount-1) && isUpwardSliding){ - onLoadMore(); - } - } - } - - @Override - public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { - super.onScrolled(recyclerView, dx, dy); - isUpwardSliding = dy > 0; - } - public abstract void onLoadMore(); - } - - @Override - public void dismiss() { - super.dismiss(); - mNextPage = 0; - orders.clear(); - } - - private class OrdersOperationFragmentAdapter extends FragmentPagerAdapter{ - - public OrdersOperationFragmentAdapter(@NonNull FragmentManager fm, int behavior) { - super(fm, behavior); - } - - @NonNull - @Override - public Fragment getItem(int position) { - return fragments.get(position); - } - - @Override - public int getCount() { - return fragments.size(); - } - - @Nullable - @Override - public CharSequence getPageTitle(int position) { - return mTabTitles[position]; - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java deleted file mode 100644 index 850ea6ede0..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import static androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE; - -/** - * @author: wangmingjun - * @date: 2021/9/2 - * 待服务订单列表 - */ -public class TaxiReserveOrdersFragment extends BaseTaxiUIFragment { - - private RecyclerView mRecyclerView; - private TextView mNodataTv; - private ConstraintLayout mNoDataView; - private View mBootRefreshNoDataView; - private List mDatas = new ArrayList<>(); - private ToBeServedOrdersAdapter mAdapter; - private TaxiFragment mTaxiFragment; - private boolean isUpwardSliding = false; - - public static TaxiReserveOrdersFragment newInstance(Activity activity, TaxiFragment taxiFragment){ - Bundle args = new Bundle(); - TaxiReserveOrdersFragment fragment = new TaxiReserveOrdersFragment(); - fragment.setArguments( args ); - fragment.mTaxiFragment = taxiFragment; - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_reserve_orders; - } - - @Override - protected void initViews(View view) { - mRecyclerView = view.findViewById(R.id.order_to_be_served_rv); - mNodataTv = view.findViewById(R.id.no_order_data_tv); - mNoDataView = view.findViewById(R.id.no_order_data_view); - mNodataTv.setText("暂无待服务订单"); - mBootRefreshNoDataView = view.findViewById(R.id.list_boot_refresh_no_data_view); - mBootRefreshNoDataView.setVisibility(View.GONE); - mAdapter = new ToBeServedOrdersAdapter(getActivity(),mDatas); - mRecyclerView.setLayoutManager(new LinearLayoutManager(getParentFragment().getActivity())); - mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) { - RecyclerView.LayoutManager manager = recyclerView.getLayoutManager(); - //不滑动 - if (manager instanceof LinearLayoutManager && newState == SCROLL_STATE_IDLE){ - LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager; - int lastItemPosition = linearLayoutManager.findLastCompletelyVisibleItemPosition(); - int itemCount = manager.getItemCount(); - if ((lastItemPosition == itemCount-1) && !isUpwardSliding){ - //显示没有更多数据 - mBootRefreshNoDataView.setVisibility(View.VISIBLE); - } - } - } - - @Override - public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { - super.onScrolled(recyclerView, dx, dy); - isUpwardSliding = dy > 0; - } - }); - mRecyclerView.setAdapter(mAdapter); - } - public void onOrdersWaitServiceChanged(List waitServiceList){//待服务订单展示 - if (waitServiceList.size() == 0){ - showNoDataTip(); - return; - } - mNoDataView.setVisibility(View.GONE); - mRecyclerView.setVisibility(View.VISIBLE); - mDatas.clear(); - mDatas.addAll(waitServiceList); - mAdapter.notifyDataSetChanged(); - } - - private void showNoDataTip() { - mBootRefreshNoDataView.setVisibility(View.GONE); - mNoDataView.setVisibility(View.VISIBLE); - mRecyclerView.setVisibility(View.GONE); - } - - class ToBeServedOrdersAdapter extends RecyclerView.Adapter{ - private List datas; - private Context context; - public ToBeServedOrdersAdapter(Context context, List datas){ - this.datas = datas; - this.context = context; - } - - @NonNull - @Override - public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = LayoutInflater.from(context).inflate(R.layout.taxi_order_reserve_item,parent,false); - ToBeServedOrdersViewHolder viewHolder = new ToBeServedOrdersViewHolder(view); - return viewHolder; - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - if (datas != null && datas.size() >0 ){ - ToBeServedOrdersViewHolder viewHolder = (ToBeServedOrdersViewHolder)holder; - OrderQueryRespBean.Result order = datas.get(position); - Calendar calendar = DateTimeUtil.formatLongToCalendar(order.bookingTime); - if (DateTimeUtil.compareDateIsCurrentDay(calendar)){ - viewHolder.orderTime.setText("用车时间:今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); - }else { - viewHolder.orderTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd_HH_mm)); - } - viewHolder.orderCancel.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - new TaxiOrderCancelDialog(mTaxiFragment,context,order.orderNo,1).show(); - } - }); - viewHolder.startStation.setText(order.startSiteAddr); - viewHolder.endStation.setText(order.endSiteAddr); - if (position == mDatas.size() -1){ - viewHolder.deliverLine.setVisibility(View.GONE); - } - } - } - - @Override - public int getItemCount() { - return datas.size(); - } - } - class ToBeServedOrdersViewHolder extends RecyclerView.ViewHolder{ - TextView orderTime; - ImageView orderCancel; - TextView startStation; - TextView endStation; - View deliverLine; - public ToBeServedOrdersViewHolder(@NonNull View itemView) { - super(itemView); - orderTime = itemView.findViewById(R.id.to_be_order_time); - orderCancel = itemView.findViewById(R.id.to_be_order_cancel_iv); - startStation = itemView.findViewById(R.id.base_start_station); - endStation = itemView.findViewById(R.id.base_end_station); - deliverLine = itemView.findViewById(R.id.to_be_order_divider); - } - } - public void onOrderCancelDone(String orderNo){ - ToastUtils.showShort("订单取消成功"); - for (int i=0; i< mDatas.size();i++){ - OrderQueryRespBean.Result result = mDatas.get(i); - if (orderNo.equals(result.orderNo)){ - mDatas.remove(i); - mAdapter.notifyDataSetChanged(); - break; - } - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - mTaxiFragment = null; - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java deleted file mode 100644 index 003c211eaa..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.mogo.och.taxi.ui; - -import android.os.Bundle; - -import androidx.annotation.NonNull; - -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.util.UiThreadHandler; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.presenter.NaviPresenter; - -import java.util.List; - -/** - * @author: wangmingjun - * @date: 2021/11/30 - */ -public class TaxiRottingNaviFragment extends MvpFragment { - - private final String TAG = TaxiRottingNaviFragment.class.getSimpleName(); - - private TaxiMapDirectionView mMapDirectionView; - public static TaxiRottingNaviFragment newInstance() { - - Bundle args = new Bundle(); - - TaxiRottingNaviFragment fragment = new TaxiRottingNaviFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - protected int getLayoutId() { - return R.layout.taxi_rotting_navi_view; - } - - @Override - public String getTagName() { - return TAG; - } - - @Override - protected void initViews() { - - } - - @Override - protected void initViews(Bundle savedInstanceState) { - super.initViews(savedInstanceState); - mMapDirectionView = mRootView.findViewById(R.id.rotting_navi_view); - mMapDirectionView.onCreateView(savedInstanceState); - } - - @Override - public void onResume() { - super.onResume(); - mMapDirectionView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mMapDirectionView.onPause(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - - if (mMapDirectionView != null){ - mMapDirectionView.onDestroy(); - } - } - - @NonNull - @Override - protected NaviPresenter createPresenter() { - return new NaviPresenter(this); - } - - public void routeResult(List routeArrivied, List routeArriving, MogoLocation location){ - if ((routeArrivied.size()+routeArriving.size()) > 0) { - drawablePolylineByRoute(routeArrivied,routeArriving,location); - } else { - clearPolyline(); - } - } - - public void setLineMarker(LatLng startStation, LatLng endStation){ - if (startStation!=null&&endStation!=null) { - if (mMapDirectionView != null) { - mMapDirectionView.setStartMarkAndEndMark(startStation,endStation); - UiThreadHandler.post(() -> mMapDirectionView.setLineMarker()); - } - } else { - clearPolyline(); - } - } - - public void drawablePolylineByRoute(List routeArrivied, List routeArriving, MogoLocation location){ - if (mMapDirectionView != null){ - mMapDirectionView.setCoordinatesLatLng(routeArrivied,routeArriving,location); - UiThreadHandler.post(() -> mMapDirectionView.drawablePolyline()); - } - } - private void clearPolyline() { - if (mMapDirectionView != null) { - UiThreadHandler.post(() -> mMapDirectionView.clearPolyline()); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.java deleted file mode 100644 index c006376d84..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiServerOrdersFragment.java +++ /dev/null @@ -1,233 +0,0 @@ -package com.mogo.och.taxi.ui; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -import android.graphics.Color; -import android.graphics.Typeface; -import android.os.Build; -import android.os.Bundle; -import android.util.TypedValue; -import android.view.View; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.fragment.app.FragmentTransaction; -import androidx.viewpager.widget.ViewPager; - -import com.google.android.material.tabs.TabLayout; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.och.taxi.R; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean; - -import java.util.ArrayList; -import java.util.List; - -import me.jessyan.autosize.utils.AutoSizeUtils; - -/** - * @author congtaowang - * @since 2021/1/18 - * - * 网约车-出租车UI - */ -public class TaxiServerOrdersFragment extends BaseTaxiUIFragment { - - public static final String TAG = "TaxiFragment"; - - public static TaxiServerOrdersFragment newInstance() { - - Bundle args = new Bundle(); - - TaxiServerOrdersFragment fragment = new TaxiServerOrdersFragment(); - fragment.setArguments( args ); - return fragment; - } - private FragmentTransaction mFragmentTransaction; - private TabLayout mTaxiOrderTab; - private TextView mWaitOrderSum; - private ViewPager mTaxiOrderPager; - private String[] mTabTitles = {"进行中","待服务"}; - private List fragments = new ArrayList<>(); - private TaxiBeingServerdOrdersFragment beingServerdOrdersFragment = null; - private TaxiReserveOrdersFragment reserveOrdersFragment = null; - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - @Override - protected int getLayoutId() { - return R.layout.taxi_server_orders_panel; - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - @Override - protected void initViews(View view) { - initOrderTab(view); - } - - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - private void initOrderTab(View view) { - mWaitOrderSum = view.findViewById(R.id.wait_order_num); - mTaxiOrderTab = view.findViewById(R.id.module_och_taxi_tab); - mTaxiOrderPager = view.findViewById(R.id.module_och_taxi_view_pager); - for (int i= 0;i < mTabTitles.length; i++){ - TabLayout.Tab tab = mTaxiOrderTab.newTab(); - tab.view.setBackgroundColor(Color.parseColor("#00000000")); - TextView tabView = (TextView) View.inflate(getActivity(),R.layout.taxi_tab_item_custom,null); - tabView.setText(mTabTitles[i]); - tabView.setHeight(AutoSizeUtils.dp2px(getContext(),115)); - tab.setCustomView(tabView); - if (0 == i){ - mTaxiOrderTab.addTab(tab,true); - changeTabLayoutTabUI(tab,true); - beingServerdOrdersFragment = TaxiBeingServerdOrdersFragment.newInstance(getActivity(),(TaxiFragment) getParentFragment()); - fragments.add(beingServerdOrdersFragment); - }else if (1 == i){ - mTaxiOrderTab.addTab(tab); - changeTabLayoutTabUI(tab,false); - reserveOrdersFragment = TaxiReserveOrdersFragment.newInstance(getActivity(),(TaxiFragment) getParentFragment()); - fragments.add(reserveOrdersFragment); - } - - } - CallerLogger.d(M_TAXI + TAG,"activity="+getActivity()); - mTaxiOrderTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - @Override - public void onTabSelected(TabLayout.Tab tab) { - mTaxiOrderPager.setCurrentItem(tab.getPosition()); - changeTabLayoutTabUI(tab,true); - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - @Override - public void onTabUnselected(TabLayout.Tab tab) { - changeTabLayoutTabUI(tab,false); - } - - @Override - public void onTabReselected(TabLayout.Tab tab) { - - } - }); - mTaxiOrderPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - } - - @Override - public void onPageSelected(int position) { - mTaxiOrderTab.getTabAt(position).select(); - } - - @Override - public void onPageScrollStateChanged(int state) { - } - }); - mTaxiOrderPager.setAdapter(new OrdersFragmentAdapter(getChildFragmentManager(),FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)); - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - private void changeTabLayoutTabUI(TabLayout.Tab tab, boolean isSelected){ - TextView textView = (TextView) tab.getCustomView().findViewById(R.id.tab_title); - if (isSelected){ - textView.setBackground(getActivity().getDrawable(R.drawable.taxi_driver_tab_item_bg)); - textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(getContext(),40)); - CallerLogger.d(M_TAXI + TAG,"SelectTv = "+ textView.getText()); - textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); - textView.setTextColor(Color.parseColor("#FFFFFF")); - }else { - textView.setBackground(null); - textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(getContext(),36)); - CallerLogger.d(M_TAXI + TAG,"unSelectTv = "+ textView.getText()); - textView.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); - textView.setTextColor(Color.parseColor("#CCD4F5")); - } - } - - class OrdersFragmentAdapter extends FragmentPagerAdapter{ - - private FragmentManager fragmentManager; - - public OrdersFragmentAdapter(@NonNull FragmentManager fm, int behavior) { - super(fm, behavior); - this.fragmentManager = fm; - } - - @NonNull - @Override - public Fragment getItem(int position) { - CallerLogger.d( M_TAXI + TAG, "getItem="+position); - return fragments.get(position); - } - - @Override - public int getCount() { - return fragments.size(); - } - - @Nullable - @Override - public CharSequence getPageTitle(int position) { - CallerLogger.d( M_TAXI + TAG, "getPageTitle="+position); - return mTabTitles[position]; - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - beingServerdOrdersFragment = null; - reserveOrdersFragment = null; - } - - @RequiresApi(api = Build.VERSION_CODES.P) - public void updateCurrentOrderStatusChanged(OrderQueryRespBean.Result order){ - if (beingServerdOrdersFragment != null){ - mTaxiOrderTab.getTabAt(0).select(); - beingServerdOrdersFragment.updateCurrentOrderStatusChanged(order); - } - } - public void onOrdersWaitServiceChanged(List waitServiceList){ - if (waitServiceList.size() == 0){ - mWaitOrderSum.setVisibility(View.GONE); - }else { - mWaitOrderSum.setText(String.valueOf(waitServiceList.size())); - mWaitOrderSum.setVisibility(View.VISIBLE); - } - if (null == reserveOrdersFragment) return; - reserveOrdersFragment.onOrdersWaitServiceChanged(waitServiceList); - } - public void onOrderCancelDone(String orderNo){ - if (null == reserveOrdersFragment) return; - reserveOrdersFragment.onOrderCancelDone(orderNo); - } - public void onCurrentOrderCancelDone(){ - if (null == beingServerdOrdersFragment) return; - beingServerdOrdersFragment.onCurrentOrderCancelDone(); - } - - public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond){ - if (null == beingServerdOrdersFragment) return; - beingServerdOrdersFragment.updateDistanceAndTime(meters,timeInSecond); - } - public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo){ - if (null == beingServerdOrdersFragment) return; - beingServerdOrdersFragment.onCurrentOrderRouteInfoGot(routeInfo); - } - - public void updateOrderBottomBtnUI() { - if (null == beingServerdOrdersFragment) return; - beingServerdOrdersFragment.updateOrderBottomBtnUI(); - } - - public void onNaviToEndAmap(boolean isShow){ - if (null == beingServerdOrdersFragment) return; - beingServerdOrdersFragment.onNaviToEndAmap(isShow); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java deleted file mode 100644 index e332766931..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/base/AvoidLeakDialog.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mogo.och.taxi.ui.base; - -import android.app.Dialog; -import android.content.Context; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.DialogFragment; -import java.lang.ref.WeakReference; - -/** - * @author: wangmingjun - * @date: 2022/9/1 - */ -public class AvoidLeakDialog extends Dialog { - - private WeakReference hostFragmentReference; - - public void setHostFragmentReference(DialogFragment hostFragment) { - this.hostFragmentReference = new WeakReference<>(hostFragment); - } - - public AvoidLeakDialog(@NonNull Context context) { - super(context); - } - - public AvoidLeakDialog(@NonNull Context context, int themeResId) { - super(context, themeResId); - } - - protected AvoidLeakDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) { - super(context, cancelable, cancelListener); - } - - @Override - public void setOnCancelListener(@Nullable OnCancelListener listener) { - } - - @Override - public void setOnDismissListener(@Nullable OnDismissListener listener) { - } - - @Override - public void setOnShowListener(@Nullable OnShowListener listener) { - } - - @Override - public void dismiss() { - super.dismiss(); - if (null != hostFragmentReference && null != hostFragmentReference.get()) { - hostFragmentReference.get().dismissAllowingStateLoss(); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/OrderUtil.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/OrderUtil.java deleted file mode 100644 index 4c61f04ebb..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/OrderUtil.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mogo.och.taxi.utils; - -import com.mogo.och.taxi.bean.OrderQueryRespBean; - -import java.util.Arrays; -import java.util.List; - -/** - * Created on 2021/9/11 - */ -public class OrderUtil { - - // 判断两个list中的订单是否相同:依据orderId - public static boolean haveSameOrders(List list1, - List list2) { - OrderQueryRespBean.Result[] arr1 = list1.toArray(new OrderQueryRespBean.Result[]{}); - OrderQueryRespBean.Result[] arr2 = list2.toArray(new OrderQueryRespBean.Result[]{}); - Arrays.sort(arr1); - Arrays.sort(arr1); - return Arrays.equals(arr1,arr2); - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TPRouteDataTestUtils.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TPRouteDataTestUtils.java deleted file mode 100644 index 5adc1a9531..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TPRouteDataTestUtils.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.mogo.och.taxi.utils; - -import com.mogo.och.taxi.model.TaxiModel; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.List; - -import mogo.telematics.pad.MessagePad; - -/** - * @author: wangmingjun - * @date: 2022/4/13 - */ -public class TPRouteDataTestUtils { - - static String jsonStr ="{\n" + - " \"models\": [\n" + - " {\n" + - " \"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19927760268911,\"lon\":116.73512607061035,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19927736555187,\"lon\":116.73498243020299,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19927135941599,\"lon\":116.73482951462647,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199260672670036,\"lon\":116.73468429259535,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199251260349946,\"lon\":116.73453933465,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19924691997577,\"lon\":116.7343756435551,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199247953493625,\"lon\":116.73421240809087,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19924986849947,\"lon\":116.73400425509712,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199249431152175,\"lon\":116.73378579041055,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199248921305724,\"lon\":116.73357811807278,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19925012387371,\"lon\":116.73337650020184,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199252270195075,\"lon\":116.73318223781153,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1992521615169,\"lon\":116.73298632625203,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19925202633083,\"lon\":116.73279582043983,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199261230205735,\"lon\":116.73263403473568,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199327991681926,\"lon\":116.73251962434813,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19944850496711,\"lon\":116.73249661840195,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199582026896415,\"lon\":116.73251038561487,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199743326352014,\"lon\":116.73253087453938,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199908347167394,\"lon\":116.73255070500186,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200065950595445,\"lon\":116.7325720694418,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20022747460407,\"lon\":116.73259461416663,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200384057310536,\"lon\":116.73261575018056,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20053849777916,\"lon\":116.73263451936387,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200696919444624,\"lon\":116.7326540541723,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2008524952796,\"lon\":116.7326743511824,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20101429705625,\"lon\":116.73269393580199,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20118279997041,\"lon\":116.73271564378308,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201342388452076,\"lon\":116.73273653366076,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201476063822355,\"lon\":116.73275292393079,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20163479199852,\"lon\":116.73277440686762,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20181243476041,\"lon\":116.7328052766508,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201991767093304,\"lon\":116.7328453845644,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20215573733484,\"lon\":116.73287624009339,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202313648759784,\"lon\":116.73289887933315,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202434745374454,\"lon\":116.7329182210956,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20253164952098,\"lon\":116.73297539811277,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20258043275509,\"lon\":116.73312335324984,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20258233576585,\"lon\":116.73331077089557,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20257107560234,\"lon\":116.73351244039137,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202561578580514,\"lon\":116.73370176209845,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20256256788661,\"lon\":116.73391325024126,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20255633158834,\"lon\":116.73413195000244,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202543311179575,\"lon\":116.73436614303907,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20253067346457,\"lon\":116.73458032609663,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20251776111356,\"lon\":116.73477082198242,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202503997557805,\"lon\":116.73498624001282,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20249129260376,\"lon\":116.73518976336872,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247877796589,\"lon\":116.73537786253135,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20246651610268,\"lon\":116.73559239130266,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20245754388014,\"lon\":116.73574239922202,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20244749208,\"lon\":116.73589674090469,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243806550113,\"lon\":116.73607057284322,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243550556816,\"lon\":116.73628106525871,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243654127756,\"lon\":116.7364949950665,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243738221016,\"lon\":116.7367061649993,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243672476754,\"lon\":116.73691115930336,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243590788176,\"lon\":116.73710722104272,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202436434375336,\"lon\":116.73730688607075,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243749821501,\"lon\":116.73750140347998,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243625962803,\"lon\":116.73771330926793,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202434515480725,\"lon\":116.73791895606205,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2024326561388,\"lon\":116.73815206945737,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20243092086137,\"lon\":116.73838655528765,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202430876006126,\"lon\":116.73861890759498,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20242914053177,\"lon\":116.73882029918758,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20242843336561,\"lon\":116.73904465495175,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20242661219026,\"lon\":116.73922453252953,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202426462811076,\"lon\":116.7393708046956,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20242687134937,\"lon\":116.73954685547025,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20242694967377,\"lon\":116.73975021183773,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202424630601236,\"lon\":116.73999740812975,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202422502184625,\"lon\":116.74028266774337,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202419634158936,\"lon\":116.7405942561498,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241975959762,\"lon\":116.7409069557092,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241920524113,\"lon\":116.74120156191647,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241765540262,\"lon\":116.74149288504978,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241569149764,\"lon\":116.7418080096762,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202414529497084,\"lon\":116.74210262897205,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241419532155,\"lon\":116.74241767661879,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202413879360954,\"lon\":116.7427571218185,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241287045245,\"lon\":116.7431284691325,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241214965105,\"lon\":116.74343354359334,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241141271715,\"lon\":116.7437220210538,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2024080520075,\"lon\":116.74399113498052,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202391714280026,\"lon\":116.74427625698272,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20238163805639,\"lon\":116.74452083315958,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202379293010274,\"lon\":116.74475703837204,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202379007817086,\"lon\":116.7449961645494,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20237814181231,\"lon\":116.7452036063558,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202375477619896,\"lon\":116.74539567654291,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2023632396621,\"lon\":116.74555457589031,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20229396554444,\"lon\":116.7456716047369,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20217800547467,\"lon\":116.74574081942625,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202047498095304,\"lon\":116.74573659255675,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20188573786706,\"lon\":116.74571018281719,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201738240263026,\"lon\":116.74568463148606,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20157507049073,\"lon\":116.74565525041498,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20137985142042,\"lon\":116.745619970576,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201187335613575,\"lon\":116.74558631350607,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20098251429043,\"lon\":116.74555055587679,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2007748533628,\"lon\":116.74551426934663,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20057082986032,\"lon\":116.74547749663195,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20036944224329,\"lon\":116.74544156175533,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20016365229035,\"lon\":116.74540577510051,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1999958572445,\"lon\":116.74537505807076,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19984100521566,\"lon\":116.7453433678602,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1996863960282,\"lon\":116.74529675648621,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19953919567943,\"lon\":116.74525916493474,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19940587189373,\"lon\":116.74523402869453,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19929047792381,\"lon\":116.74518617038383,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922141745155,\"lon\":116.74506912884067,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19920798885308,\"lon\":116.744896716334,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19920912644279,\"lon\":116.74467216715483,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199209186509314,\"lon\":116.74448257515108,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19920910709997,\"lon\":116.74430613406223,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1992100786082,\"lon\":116.74410888316238,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921081961254,\"lon\":116.74391968819582,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921040855518,\"lon\":116.7437082083402,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921085053439,\"lon\":116.74346931155634,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921197237373,\"lon\":116.74325149697013,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921248248983,\"lon\":116.74301103786591,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1992139724646,\"lon\":116.74277237066539,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199215818352386,\"lon\":116.74253219408898,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199216175018876,\"lon\":116.74228853120842,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199215970354246,\"lon\":116.74204663206451,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199216627492966,\"lon\":116.74183871233049,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19921789170398,\"lon\":116.74165788334192,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922000138535,\"lon\":116.74144512197054,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199221559127494,\"lon\":116.741249370491,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922287231889,\"lon\":116.7410525810756,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922229019589,\"lon\":116.74085266662037,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.1992216995901,\"lon\":116.74061957723823,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922263073874,\"lon\":116.74041638149129,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922478093337,\"lon\":116.7402123910757,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199227066091595,\"lon\":116.74003419421553,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199228634241756,\"lon\":116.73985841944678,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19922951636012,\"lon\":116.7397079274105,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199252095329484,\"lon\":116.73956265582487,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199346162997905,\"lon\":116.73944690416265,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199470799628024,\"lon\":116.73941941053417,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19962513314346,\"lon\":116.7394280706812,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199780626058924,\"lon\":116.73944255215424,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199961525343376,\"lon\":116.73945856750177,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20016196947193,\"lon\":116.73947572081121,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200384479551936,\"lon\":116.7394949225795,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200595083817475,\"lon\":116.73951027963179,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200792203321086,\"lon\":116.73952526850614,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200985930701684,\"lon\":116.73954125209579,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20115978977055,\"lon\":116.73955610094161,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201321019536124,\"lon\":116.7395695239138,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20147117943043,\"lon\":116.7395823299481,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20163699848565,\"lon\":116.73959633422596,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20178484338371,\"lon\":116.7396085776486,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201962185646316,\"lon\":116.73962351991214,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2021018923927,\"lon\":116.7396354059821,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2022137620686,\"lon\":116.73964348380458,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20232600820075,\"lon\":116.73961190446633,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20241090270993,\"lon\":116.73951649703137,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20245777783807,\"lon\":116.73937664238166,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20246906634823,\"lon\":116.73920146119093,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202470916682884,\"lon\":116.73898763065634,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247034830421,\"lon\":116.73878158418357,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20246978204673,\"lon\":116.73857680142473,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247082638905,\"lon\":116.73834517890637,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202471943178196,\"lon\":116.7381047689514,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247131648035,\"lon\":116.73787761484981,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202470799473765,\"lon\":116.73766230702478,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247013054322,\"lon\":116.73743619407796,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20246999515433,\"lon\":116.73724916823292,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247199652478,\"lon\":116.73704888970806,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202473960263525,\"lon\":116.73684083235807,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202474504753205,\"lon\":116.73665462440796,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20247501354581,\"lon\":116.73650710371837,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20246541231906,\"lon\":116.73635807696789,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.202426768984274,\"lon\":116.73622283382787,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20236638788854,\"lon\":116.73610589402243,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20227106919894,\"lon\":116.73600895001849,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2021428343084,\"lon\":116.73596816020945,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20197815580698,\"lon\":116.73594623645097,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20181789535303,\"lon\":116.73593148707488,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201667906886954,\"lon\":116.73591743008926,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.201505897730755,\"lon\":116.7359002912543,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20135083580946,\"lon\":116.73588579696379,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20118617904595,\"lon\":116.73586970398149,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20102374028594,\"lon\":116.73585314703226,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20085554043743,\"lon\":116.73583763953049,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20069451888229,\"lon\":116.73582073901778,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.200530837344964,\"lon\":116.73580314359012,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.2003608457064,\"lon\":116.73578183888779,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20021770046798,\"lon\":116.73575292592922,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.20003454701824,\"lon\":116.7357174959358,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19986125116602,\"lon\":116.73569499961796,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19969408518737,\"lon\":116.73567725223492,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19955533048882,\"lon\":116.73566375985422,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19943174810538,\"lon\":116.73564927714162,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19933167546824,\"lon\":116.735595995086,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.199280357603875,\"lon\":116.73546293260645,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19927848361656,\"lon\":116.73531579486274,\"speed\":0.0},{\"altitude\":0.0,\"angle\":0.0,\"duration\":0,\"lat\":40.19928127892504,\"lon\":116.73505848474375,\"speed\": 0.0\n" + - " }\n" + - " ]\n" + - "}"; - public static void converToRouteData(){ - List list = new ArrayList<>(); - - try { - JSONObject jsonObject = new JSONObject(jsonStr); - JSONArray jsonElements = jsonObject.getJSONArray("models"); - for (int i = 0; i < jsonElements.length(); i++) { - JSONObject s = jsonElements.getJSONObject(i); - MessagePad.Location.Builder builder = MessagePad.Location.newBuilder(); - builder.setLatitude(s.getDouble("lat")); - builder.setLongitude(s.getDouble("lon")); - list.add(builder.build()); - } -// TaxiModel.getInstance().updateOrderRoute(list); - TaxiModel.getInstance().updateOrderRouteInfo(list); - } catch (JSONException e) { - e.printStackTrace(); - } - } -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.kt deleted file mode 100644 index 11b6304564..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.mogo.och.taxi.utils - -import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey - -/** - * OCH Taxi埋点工具 - * - * Created on 2022/3/24 - */ -object TaxiAnalyticsManager : IOchEventKey { - - // 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾 - const val EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_taxi_ap_unable_start_reason" - - // 埋点key:接管后点击'自动驾驶'按钮启动 - const val EVENT_KEY_RESTART_AUTOPILOT = "event_key_och_taxi_restart_autopilot" - - // 埋点key:开始服务开启自动驾驶(成功/失败) - const val EVENT_KEY_START_SERVICE = "event_key_och_taxi_start_service" - - // 埋点key:点击启动自驾 - private const val EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_taxi_click_start_autopilot" - - - override fun getEventKeyStartService(): String { - return EVENT_KEY_START_SERVICE - } - - override fun getEventKeyRestartService(): String { - return EVENT_KEY_RESTART_AUTOPILOT - } - - override fun getEventKeyApUnableStartReason(): String { - return EVENT_KEY_AP_UNABLE_START_REASON - } - - override fun getEventKeyClickStartAutopilot(): String { - return EVENT_KEY_CLICK_START_AUTOPILOT - } -} \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiMapAssetStyleUtil.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiMapAssetStyleUtil.java deleted file mode 100644 index 4e991eda96..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiMapAssetStyleUtil.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.mogo.och.taxi.utils; - - -import android.content.Context; - -import java.io.IOException; -import java.io.InputStream; - -/** - * @author donghongyu - * @date 12/18/20 5:37 PM - */ -public class TaxiMapAssetStyleUtil { - - public static byte[] getAssetsStyle(Context context,String fileName) { - byte[] buffer1 = null; - InputStream is1 = null; - try { - is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style.data - int lenght1 = is1.available(); - buffer1 = new byte[lenght1]; - is1.read(buffer1); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (is1 != null) { - is1.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - return buffer1; - } - - - public static byte[] getAssetsExtraStyle(Context context, String fileName) { - byte[] buffer1 = null; - InputStream is1 = null; - try { - is1 = context.getResources().getAssets().open(fileName); //eg. over_view_style_extra.data - int lenght1 = is1.available(); - buffer1 = new byte[lenght1]; - is1.read(buffer1); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (is1 != null) { - is1.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - return buffer1; - } - - -} diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java deleted file mode 100644 index 29057170d9..0000000000 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.mogo.och.taxi.utils; - -import androidx.annotation.Nullable; - -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager; -import com.mogo.och.taxi.bean.OrderQueryRespBean; -import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; -import com.mogo.och.taxi.model.TaxiModel; - -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import mogo_msg.MogoReportMsg; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - -/** - * Taxi轨迹管理:给MEC下发用于轨迹下载的信息 - * Created on 2022/6/22 - */ -public class TaxiTrajectoryManager { - private static final String TAG = TaxiTrajectoryManager.class.getSimpleName(); - - private static final class SingletonHolder { - private static final TaxiTrajectoryManager INSTANCE = new TaxiTrajectoryManager(); - } - - public static TaxiTrajectoryManager getInstance() { - return TaxiTrajectoryManager.SingletonHolder.INSTANCE; - } - - private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null; - private Disposable mSendReqDisposable = null; - private String mPrevOrderNo = ""; - - public TaxiTrajectoryManager() { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1, "", - "", "", "", "", 0, "", - "", "", "", "", 0); - } - - /** - * 同步订单信息 - */ - public void syncTrajectoryInfo() { - OrderQueryRespBean.Result orderInfo = TaxiModel.getInstance().getCurrentOCHOrder(); - if (orderInfo == null || orderInfo.orderStatus >= TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) { - CallerLogger.d(M_TAXI + TAG, "syncTrajectoryInfo() stop."); - stopTrajReqLoop(); - } else { - if (mPrevOrderNo.equals(orderInfo.orderNo)) { - CallerLogger.d(M_TAXI + TAG, "syncTrajectoryInfo() 重复订单."); - } else { - mPrevOrderNo = orderInfo.orderNo; - CallerLogger.d(M_TAXI + TAG, "syncTrajectoryInfo() start."); - startTrajReqLoop(); - } - } - } - - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) { - onAutopilotGuardian(guardianInfo); - } - - /** - * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息) - * @param guardianInfo - */ - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - if (guardianInfo == null || !guardianInfo.hasCode()) return; - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())) { - // 1. 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发) - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() 轨迹开始下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹开始下载"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())) { - // 2. 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发) - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() 轨迹下载成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载成功"); - stopTrajReqLoop(); - } else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())) { - // 3. 轨迹管理_轨迹下载失败,本地无对应轨迹 - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地无对应轨迹"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地无对应轨迹"); - } else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())) { - // 4. 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功 - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() " + - "轨迹下载失败,本地有对应轨迹,认为成功"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功"); - } else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())) { - // 5. 轨迹管理_轨迹下载超时 - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() 轨迹下载超时"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - // ToastUtils.showShort("轨迹下载超时"); - } else if ("ISSM_FUNC_AUTO_PILOT_READY".equals(guardianInfo.getCode())) { - // 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。 - CallerLogger.d(M_TAXI + TAG, "onAutopilotGuardian() ssm ready,再次发起下载"); - OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 再次发起下载", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - syncTrajectoryInfo(); - } - } - - private void setupAutoPilotLine() { - OrderQueryRespBean.Result order = TaxiModel.getInstance().getCurrentOCHOrder(); - if (order == null) { - CallerLogger.e(M_TAXI + TAG, - "setupAutoPilotLine(): orderInfo is null."); - return; - } else { - if (mAutoPilotLine == null) { - mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(order.lineId, order.lineName, - order.csvFileUrl, order.csvFileMd5, order.txtFileUrl, order.txtFileMd5, - order.contrailSaveTime, order.carModel, - order.csvFileUrlDPQP, order.csvFileMd5DPQP, order.txtFileUrlDPQP, order.txtFileMd5DPQP, - order.contrailSaveTimeDPQP); - } else { - mAutoPilotLine.setLineId(order.lineId); - mAutoPilotLine.setLineName(order.lineName); - mAutoPilotLine.setTrajUrl(order.csvFileUrl); - mAutoPilotLine.setTrajMd5(order.csvFileMd5); - mAutoPilotLine.setStopUrl(order.txtFileUrl); - mAutoPilotLine.setStopMd5(order.txtFileMd5); - mAutoPilotLine.setTimestamp(order.contrailSaveTime); - mAutoPilotLine.setVehicleModel(order.carModel); - mAutoPilotLine.setTrajUrl_dpqp(order.csvFileUrlDPQP); - mAutoPilotLine.setTrajMd5_dpqp(order.csvFileMd5DPQP); - mAutoPilotLine.setStopUrl_dpqp(order.txtFileUrlDPQP); - mAutoPilotLine.setStopMd5_dpqp(order.txtFileMd5DPQP); - mAutoPilotLine.setTimestamp_dpqp(order.contrailSaveTimeDPQP); - } - } - } - - private void clearAutoPilotLine() { - if (mAutoPilotLine == null) return; - mAutoPilotLine.setLineId(-1); - mAutoPilotLine.setLineName(""); - mAutoPilotLine.setTrajUrl(""); - mAutoPilotLine.setTrajMd5(""); - mAutoPilotLine.setStopUrl(""); - mAutoPilotLine.setStopMd5(""); - mAutoPilotLine.setTimestamp(0); - mAutoPilotLine.setVehicleModel(""); - mAutoPilotLine.setTrajUrl_dpqp(""); - mAutoPilotLine.setTrajMd5_dpqp(""); - mAutoPilotLine.setStopUrl_dpqp(""); - mAutoPilotLine.setStopMd5_dpqp(""); - mAutoPilotLine.setTimestamp_dpqp(0); - } - - private void startTrajReqLoop() { - if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { - return; - } - CallerLogger.d(M_TAXI + TAG, "startTrajReqLoop()"); - setupAutoPilotLine(); - mSendReqDisposable = Observable.interval(TaxiConst.LOOP_DELAY, - TaxiConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> { - if (aLong > TaxiConst.LOOP_SEND_TRAJ_TIMES) { - mPrevOrderNo = ""; //重发超时后将mPrevOrderNo置空,这样订单进入下个状态时还可以重发 - stopTrajReqLoop(); - return; - } - CallerLogger.d(M_TAXI + TAG, "loop sendTrajectoryReq: " + aLong); - sendTrajectoryReq(); - }); - } - - private void stopTrajReqLoop() { - if (mSendReqDisposable != null) { - CallerLogger.d(M_TAXI + TAG, "stopTrajReqLoop()"); - mSendReqDisposable.dispose(); - mSendReqDisposable = null; - clearAutoPilotLine(); - } - } - - private void sendTrajectoryReq() { - if (mAutoPilotLine == null) { - CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); - return; - } - OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+mAutoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY); - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine); - CallerLogger.d(M_TAXI + TAG, "sendTrajectoryReq(): " - + GsonUtils.toJson(mAutoPilotLine)); - } -} diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00001.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00001.png deleted file mode 100644 index a45d5016fa..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00001.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00002.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00002.png deleted file mode 100644 index cdb7a7a6a9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00002.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00003.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00003.png deleted file mode 100644 index d23de4ef53..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00003.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00004.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00004.png deleted file mode 100644 index c3c8cb6ec6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00004.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00005.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00005.png deleted file mode 100644 index c3c8cb6ec6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00005.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00006.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00006.png deleted file mode 100644 index c3c8cb6ec6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00006.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00007.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00007.png deleted file mode 100644 index 815f83bf47..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00007.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00008.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00008.png deleted file mode 100644 index 2771e6cef3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00008.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00009.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00009.png deleted file mode 100644 index f66b6a0d55..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00009.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00010.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00010.png deleted file mode 100644 index bab043383a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00010.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00011.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00011.png deleted file mode 100644 index dde1edcb4d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00011.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00012.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00012.png deleted file mode 100644 index f9d513b742..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00012.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00013.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00013.png deleted file mode 100644 index 813fbfe3b2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00013.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00014.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00014.png deleted file mode 100644 index 820eda75e2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00014.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00015.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00015.png deleted file mode 100644 index 544aeac6f3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00015.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00016.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00016.png deleted file mode 100644 index 7173a3c9f9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00016.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00017.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00017.png deleted file mode 100644 index 518bb6d32d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00017.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00018.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00018.png deleted file mode 100644 index 52cb8e1bab..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00018.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00019.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00019.png deleted file mode 100644 index df48bba777..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00019.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00020.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00020.png deleted file mode 100644 index ac35dd6e89..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00020.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00021.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00021.png deleted file mode 100644 index 2b553e8263..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00021.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00022.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00022.png deleted file mode 100644 index 79f25eaef8..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00022.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00023.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00023.png deleted file mode 100644 index 2f5cd12f81..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00023.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00024.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00024.png deleted file mode 100644 index 820eda75e2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00024.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00025.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00025.png deleted file mode 100644 index bfd6fc9aee..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00025.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00026.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00026.png deleted file mode 100644 index 96671ead5a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00026.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00027.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00027.png deleted file mode 100644 index 8a16ccea5c..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00027.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00028.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00028.png deleted file mode 100644 index af98dbd5d3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00028.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00029.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00029.png deleted file mode 100644 index b05765193b..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00029.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00030.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00030.png deleted file mode 100644 index dbf91b1e26..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00030.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00031.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00031.png deleted file mode 100644 index 6e3bd8cf35..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00031.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00032.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00032.png deleted file mode 100644 index c3c8cb6ec6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00032.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00033.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00033.png deleted file mode 100644 index 815f83bf47..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00033.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00034.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00034.png deleted file mode 100644 index 2771e6cef3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00034.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00035.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00035.png deleted file mode 100644 index f66b6a0d55..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00035.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00036.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00036.png deleted file mode 100644 index bab043383a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00036.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00037.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00037.png deleted file mode 100644 index dde1edcb4d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00037.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00038.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00038.png deleted file mode 100644 index f9d513b742..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00038.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00039.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00039.png deleted file mode 100644 index 813fbfe3b2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00039.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00040.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00040.png deleted file mode 100644 index 820eda75e2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00040.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00041.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00041.png deleted file mode 100644 index 544aeac6f3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00041.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00042.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00042.png deleted file mode 100644 index 7173a3c9f9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00042.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00043.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00043.png deleted file mode 100644 index 6dd8ca6079..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00043.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00044.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00044.png deleted file mode 100644 index c3c8cb6ec6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00044.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00045.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00045.png deleted file mode 100644 index d1c3e43a46..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/heart_00045.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00001.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00001.png deleted file mode 100644 index 0e2c5b1db9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00001.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00002.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00002.png deleted file mode 100644 index 317bc9d185..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00002.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00003.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00003.png deleted file mode 100644 index 743c950458..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00003.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00004.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00004.png deleted file mode 100644 index 5e2e72b97d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00004.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00005.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00005.png deleted file mode 100644 index 5e3f4087d0..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00005.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00006.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00006.png deleted file mode 100644 index 069d93edcd..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00006.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00007.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00007.png deleted file mode 100644 index 0c4a13be2a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00007.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00008.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00008.png deleted file mode 100644 index 3e1a8cd7f9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00008.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00009.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00009.png deleted file mode 100644 index ba1d7bd275..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00009.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00010.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00010.png deleted file mode 100644 index 7a371cfcff..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00010.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00011.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00011.png deleted file mode 100644 index eb7d2d5e4b..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00011.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00012.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00012.png deleted file mode 100644 index ec5dc4b49a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00012.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00013.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00013.png deleted file mode 100644 index d19f752212..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00013.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00014.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00014.png deleted file mode 100644 index 3c5f8afd16..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00014.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00015.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00015.png deleted file mode 100644 index d63cfc7e6c..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00015.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00016.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00016.png deleted file mode 100644 index a13bbea6da..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00016.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00017.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00017.png deleted file mode 100644 index b80f8b07d8..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00017.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00018.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00018.png deleted file mode 100644 index c9887df6a9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00018.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00019.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00019.png deleted file mode 100644 index c8bc1850f8..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00019.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00020.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00020.png deleted file mode 100644 index 01f4d95b8d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00020.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00021.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00021.png deleted file mode 100644 index d21124dcc0..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00021.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00022.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00022.png deleted file mode 100644 index 8c9a4d9e62..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00022.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00023.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00023.png deleted file mode 100644 index 587fdbb097..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00023.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00024.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00024.png deleted file mode 100644 index 1913a44095..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00024.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00025.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00025.png deleted file mode 100644 index be85d5037a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00025.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00026.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00026.png deleted file mode 100644 index 40bd64d32a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00026.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00027.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00027.png deleted file mode 100644 index ed4862fc94..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00027.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00028.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00028.png deleted file mode 100644 index 24f9605b4c..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00028.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00029.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00029.png deleted file mode 100644 index 5886329415..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00029.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00030.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00030.png deleted file mode 100644 index e5309cf535..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00030.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00031.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00031.png deleted file mode 100644 index 9d5034a29e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00031.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00032.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00032.png deleted file mode 100644 index 0d8177691a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00032.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00033.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00033.png deleted file mode 100644 index 7cbd992f9f..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00033.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00034.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00034.png deleted file mode 100644 index 617050c90d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00034.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00035.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00035.png deleted file mode 100644 index e2222d7b54..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00035.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00036.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00036.png deleted file mode 100644 index c189fbec50..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00036.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00037.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00037.png deleted file mode 100644 index 608da06dfb..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00037.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00038.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00038.png deleted file mode 100644 index 6477259f2a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00038.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00039.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00039.png deleted file mode 100644 index c5bfee922b..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00039.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00040.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00040.png deleted file mode 100644 index c5cca129d0..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00040.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00041.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00041.png deleted file mode 100644 index eea120cbf6..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00041.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00042.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00042.png deleted file mode 100644 index a7ce8a753e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00042.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00043.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00043.png deleted file mode 100644 index e552f4f5b0..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00043.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00044.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00044.png deleted file mode 100644 index 6beab6b438..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00044.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00045.png b/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00045.png deleted file mode 100644 index 31fdcc6f45..0000000000 Binary files a/OCH/taxi/driver/src/main/res/ani/drawable-nodpi/success_00045.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/color/taxi_autopilot_text_color_selector.xml b/OCH/taxi/driver/src/main/res/color/taxi_autopilot_text_color_selector.xml deleted file mode 100644 index 16cef94271..0000000000 --- a/OCH/taxi/driver/src/main/res/color/taxi_autopilot_text_color_selector.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/end_maker_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/end_maker_icon.png deleted file mode 100755 index 8acf113151..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/end_maker_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_normal_och.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_normal_och.png deleted file mode 100755 index e98738b192..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_normal_och.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_select_och.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_select_och.png deleted file mode 100755 index d3e0107c02..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_ai_select_och.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_normal_och.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_normal_och.png deleted file mode 100755 index c0a978fc2b..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_normal_och.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_select_och.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_select_och.png deleted file mode 100755 index ebacf3a11a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_bad_case_select_och.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_station_start_end.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_station_start_end.png deleted file mode 100644 index 04580a8f0d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/icon_station_start_end.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/no_order_data.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/no_order_data.png deleted file mode 100644 index 0e61996d3f..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/no_order_data.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/start_maker_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/start_maker_icon.png deleted file mode 100644 index 9eca61e199..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/start_maker_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_pingxjs.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_pingxjs.png deleted file mode 100644 index 78bfa2687f..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_pingxjs.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_success.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_success.png deleted file mode 100755 index 84246fd323..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_autopilot_success.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_back_btn.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_back_btn.png deleted file mode 100644 index 35e13ff68c..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_back_btn.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_in_autopilot.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_in_autopilot.png deleted file mode 100644 index 75c26c3d71..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_in_autopilot.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_not_in_autopilot.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_not_in_autopilot.png deleted file mode 100644 index 927296d690..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_icon_not_in_autopilot.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_notice_box_bg.9.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_notice_box_bg.9.png deleted file mode 100644 index 8b4b579b56..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_notice_box_bg.9.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_slide_block.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_slide_block.png deleted file mode 100644 index 8ffd0abe52..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_base_slide_block.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_close_navi_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_close_navi_icon.png deleted file mode 100644 index 56525e7ed2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_close_navi_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_dot_line.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_dot_line.png deleted file mode 100644 index a720a532ea..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_dot_line.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_big.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_big.png deleted file mode 100644 index 0c73689e8e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_big.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_small.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_small.png deleted file mode 100644 index e9f6d32873..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_blue_small.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_big.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_big.png deleted file mode 100644 index 650c5132c2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_big.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_small.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_small.png deleted file mode 100644 index e300c1038c..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_circle_green_small.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_grab_order_bt.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_grab_order_bt.png deleted file mode 100644 index 88b524d007..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_grab_order_bt.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_image_circle_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_image_circle_icon.png deleted file mode 100644 index 5e3b7c7a06..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_image_circle_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_operation_tab_line.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_operation_tab_line.png deleted file mode 100644 index 3f1a233b35..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_operation_tab_line.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_tab_item_bg.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_tab_item_bg.png deleted file mode 100644 index f26800ecbf..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_driver_tab_item_bg.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grab_dot_line.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grab_dot_line.png deleted file mode 100644 index a75cc835fa..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grab_dot_line.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grad_order_close_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grad_order_close_icon.png deleted file mode 100644 index 38584a971e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_grad_order_close_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot.png deleted file mode 100644 index 539e106058..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg.png deleted file mode 100755 index 5737f93ad8..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg_pressed.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg_pressed.png deleted file mode 100755 index af32c20cb5..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_bg_pressed.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_disable.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_disable.png deleted file mode 100644 index 695515a366..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_disable.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_failed.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_failed.png deleted file mode 100644 index 3347b2bfc2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_failed.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_loading.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_loading.png deleted file mode 100644 index a71cf9a4f9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_loading.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_success.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_success.png deleted file mode 100644 index dd7dc2d6b2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_ic_autopilot_success.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arrived_station.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arrived_station.png deleted file mode 100644 index 8a065b66dd..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arrived_station.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arriving_station.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arriving_station.png deleted file mode 100644 index 4ed57a0e30..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_icon_arriving_station.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_green_nor.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_green_nor.png deleted file mode 100644 index bc9fed952d..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_green_nor.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_red_nor.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_red_nor.png deleted file mode 100644 index 8732508ded..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_light_red_nor.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_lightyellow_nor.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_lightyellow_nor.png deleted file mode 100644 index bae01408fd..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_lightyellow_nor.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_arrived.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_arrived.png deleted file mode 100644 index 36ef2e88d3..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_arrived.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_un_arrive.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_un_arrive.png deleted file mode 100644 index baa35592cb..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_arrow_un_arrive.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_car.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_car.png deleted file mode 100644 index dedaf093e9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_car.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_end.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_end.png deleted file mode 100644 index a81336d4c2..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_end.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_start.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_start.png deleted file mode 100644 index 3cee184981..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_map_view_dir_start.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_masking.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_masking.png deleted file mode 100644 index b33738106e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_masking.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_arrow_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_arrow_icon.png deleted file mode 100644 index a83b7c9e74..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_arrow_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_direction_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_direction_icon.png deleted file mode 100755 index 1b96799531..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_direction_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_icon.png deleted file mode 100644 index bd4e6ccde4..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_line_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_line_icon.png deleted file mode 100644 index 7f758d5999..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_navi_line_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_bg.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_bg.png deleted file mode 100644 index 81cdcd3e4e..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_bg.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close.png deleted file mode 100644 index 8311715c9a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close1.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close1.png deleted file mode 100644 index 370b61de38..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_cancel_close1.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_close_iv.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_close_iv.png deleted file mode 100644 index 8311715c9a..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_close_iv.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_page.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_page.png deleted file mode 100644 index 2a814bbfa9..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_order_list_page.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_out_btn.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_out_btn.png deleted file mode 100644 index a3a771d686..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_out_btn.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_overmap_tag.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_overmap_tag.png deleted file mode 100644 index b0bcc4fc03..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_overmap_tag.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_personal_btn.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_personal_btn.png deleted file mode 100644 index 0cb863cecb..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_personal_btn.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_report_order_cancel_icon.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_report_order_cancel_icon.png deleted file mode 100644 index ffda52cbdb..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_report_order_cancel_icon.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_selected_btn.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_selected_btn.png deleted file mode 100644 index 2ff45e6bba..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_selected_btn.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_setting_btn_bg.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_setting_btn_bg.png deleted file mode 100644 index a21f54cc53..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_setting_btn_bg.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_speed_bg.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_speed_bg.png deleted file mode 100644 index 62942a7a42..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_speed_bg.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_long.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_long.png deleted file mode 100755 index cf3e5a3778..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_long.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_medium.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_medium.png deleted file mode 100755 index bdc2725468..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_switch_map_medium.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_unselect_btn.png b/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_unselect_btn.png deleted file mode 100644 index 6936596ebb..0000000000 Binary files a/OCH/taxi/driver/src/main/res/drawable-nodpi/taxi_unselect_btn.png and /dev/null differ diff --git a/OCH/taxi/driver/src/main/res/drawable/ai_collect_selector_och.xml b/OCH/taxi/driver/src/main/res/drawable/ai_collect_selector_och.xml deleted file mode 100755 index a130b0115b..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/ai_collect_selector_och.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/bad_case_selector_och.xml b/OCH/taxi/driver/src/main/res/drawable/bad_case_selector_och.xml deleted file mode 100755 index fbc6c83a08..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/bad_case_selector_och.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/bg_taxi_traffic_light_background.xml b/OCH/taxi/driver/src/main/res/drawable/bg_taxi_traffic_light_background.xml deleted file mode 100644 index d93d55da56..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/bg_taxi_traffic_light_background.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/grab_failure_anmi_flow.xml b/OCH/taxi/driver/src/main/res/drawable/grab_failure_anmi_flow.xml deleted file mode 100644 index 5a0649a2c5..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/grab_failure_anmi_flow.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/grab_success_anmi_flow.xml b/OCH/taxi/driver/src/main/res/drawable/grab_success_anmi_flow.xml deleted file mode 100644 index 0447f8441d..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/grab_success_anmi_flow.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_grab_order_bt.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_grab_order_bt.xml deleted file mode 100644 index 8659116cbc..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_grab_order_bt.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_back.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_back.xml deleted file mode 100644 index ec1ff5c06d..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_back.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_out.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_out.xml deleted file mode 100644 index b505323904..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_operation_out.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_see_all_order.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_see_all_order.xml deleted file mode 100644 index 09e02705e4..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_see_all_order.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_selected_btn.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_selected_btn.xml deleted file mode 100644 index ac27d621f3..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_selected_btn.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_unselected_btn.xml b/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_unselected_btn.xml deleted file mode 100644 index b29cd86d64..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/shape_size_taxi_unselected_btn.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_bg_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_bg_selector.xml deleted file mode 100644 index 350b784c17..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_bg_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_status_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_status_bg.xml deleted file mode 100644 index e323eca4c3..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_autopilot_status_bg.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_base_autopilot_status_icon_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_base_autopilot_status_icon_selector.xml deleted file mode 100644 index 58aca03b29..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_base_autopilot_status_icon_selector.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_cancel_button_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_cancel_button_bg.xml deleted file mode 100644 index 60eb252eab..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_cancel_button_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_checkbox_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_checkbox_selector.xml deleted file mode 100644 index adc3fce148..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_checkbox_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_grab_order_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_grab_order_bg.xml deleted file mode 100644 index b59f68a14b..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_grab_order_bg.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_grabing_order_btn_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_grabing_order_btn_bg.xml deleted file mode 100644 index 4e5a7642d4..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_grabing_order_btn_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg1.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg1.xml deleted file mode 100644 index 7fcd53f564..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg1.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg2.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg2.xml deleted file mode 100644 index e0861580ee..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_line_bg2.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_data_item_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_data_item_bg.xml deleted file mode 100644 index d81e0cd834..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_data_item_bg.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg.xml deleted file mode 100644 index f4769a12ce..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml deleted file mode 100755 index b62b2a8188..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_bg_selector.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_select_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_select_bg.xml deleted file mode 100644 index f617cd9fce..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_operation_status_select_bg.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_bg.xml deleted file mode 100644 index c0b127ce27..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_canceled_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_canceled_bg.xml deleted file mode 100644 index 71d6873641..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_status_canceled_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_bg.xml deleted file mode 100644 index 3dc16fc865..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_reserver_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_reserver_bg.xml deleted file mode 100644 index f029529adc..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_button_type_reserver_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_cancel_dialog_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_cancel_dialog_bg.xml deleted file mode 100644 index 7d8f9d8621..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_cancel_dialog_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_order_viewpager_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_order_viewpager_bg.xml deleted file mode 100644 index 3b20f9cbe8..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_order_viewpager_bg.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_panel_bkg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_panel_bkg.xml deleted file mode 100644 index 323940f31b..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_panel_bkg.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_panel_distance_bkg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_panel_distance_bkg.xml deleted file mode 100644 index c2046ded94..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_panel_distance_bkg.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_setting_tip_red_cir_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_setting_tip_red_cir_bg.xml deleted file mode 100644 index 2c07ab2a64..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_setting_tip_red_cir_bg.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_show_orders_bg.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_show_orders_bg.xml deleted file mode 100644 index e5981a10d7..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_show_orders_bg.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/drawable/taxi_speed_selector.xml b/OCH/taxi/driver/src/main/res/drawable/taxi_speed_selector.xml deleted file mode 100644 index c87ede1476..0000000000 --- a/OCH/taxi/driver/src/main/res/drawable/taxi_speed_selector.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_amap_navi_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_amap_navi_view.xml deleted file mode 100644 index b6d0282e06..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_amap_navi_view.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml deleted file mode 100644 index a71da62b6f..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_being_order.xml b/OCH/taxi/driver/src/main/res/layout/taxi_being_order.xml deleted file mode 100644 index b5de2ba236..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_being_order.xml +++ /dev/null @@ -1,306 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_map_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_map_view.xml deleted file mode 100644 index 07a25f406b..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_map_view.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_no_data_common_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_no_data_common_view.xml deleted file mode 100644 index 9ccbe981ef..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_no_data_common_view.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_item_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_item_view.xml deleted file mode 100644 index 30f972ca38..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_item_view.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_view.xml deleted file mode 100644 index 04c3b385de..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_operation_data_view.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_operation_tab_item_custom.xml b/OCH/taxi/driver/src/main/res/layout/taxi_operation_tab_item_custom.xml deleted file mode 100644 index 762a3346ab..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_operation_tab_item_custom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_order_cancel_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_order_cancel_view.xml deleted file mode 100644 index 0be1796d6d..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_order_cancel_view.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_order_checkbox_item.xml b/OCH/taxi/driver/src/main/res/layout/taxi_order_checkbox_item.xml deleted file mode 100644 index 6cc1730044..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_order_checkbox_item.xml +++ /dev/null @@ -1,10 +0,0 @@ - - diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_order_grab_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_order_grab_view.xml deleted file mode 100644 index 96f9445fe9..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_order_grab_view.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_order_list_boot_no_data_view.xml b/OCH/taxi/driver/src/main/res/layout/taxi_order_list_boot_no_data_view.xml deleted file mode 100644 index 47f9446ca7..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_order_list_boot_no_data_view.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_order_reserve_item.xml b/OCH/taxi/driver/src/main/res/layout/taxi_order_reserve_item.xml deleted file mode 100644 index 1890c0baa1..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_order_reserve_item.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_day_item.xml b/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_day_item.xml deleted file mode 100644 index c5e9947df0..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_day_item.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_item.xml b/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_item.xml deleted file mode 100644 index b9d6794ace..0000000000 --- a/OCH/taxi/driver/src/main/res/layout/taxi_orders_list_item.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -