From cb3f29336dba00a6a3c814427ae132d99afa96dd Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 24 Apr 2023 19:45:10 +0800 Subject: [PATCH] =?UTF-8?q?[charter]=20[3.2.0]=20[=E8=BD=A6=E9=97=A8?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E7=BB=9F=E4=B8=80=E5=88=B0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E5=9C=B0=E6=96=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/BusPassengerModelLoopManager.kt | 2 +- ...BusBasePassengerFunctionDevicePresenter.kt | 2 +- .../BusPassengerCarUseAndNoOrderPresenter.kt | 83 +------------------ .../BusPassengerFunctionDevicePresenter.kt | 75 +---------------- .../BusPassengerFunctionSoftPresenter.kt | 58 +++++++------ .../presenter/BusPassengerPresenter.kt | 67 ++++----------- .../passenger/ui/M1CarUserNoOrderFragment.kt | 10 +-- .../och/bus/passenger/ui/M1DeviceFragment.kt | 9 -- .../och/bus/passenger/ui/view/LineSiteView.kt | 2 +- .../passenger/ui/view/door/CloseDoorView.kt | 32 +++++++ .../passenger/ui/view/door/OpenDoorView.kt | 27 ++++++ .../src/m1/res/layout/m1_devices_fragment.xml | 4 +- .../LightAirconditionDoorCallback.kt | 26 ++++++ .../LightAirconditionDoorManager.kt | 48 +++++++++++ .../LightAirconditionDoorStatusManager.kt} | 44 ++-------- .../devicemanage/data/AirconditionStatus.kt | 8 ++ .../manager/devicemanage/data/DoorStatus.kt | 3 + .../manager/devicemanage/data/HeaterStatue.kt | 3 + .../manager/devicemanage/data/LightStatus.kt | 7 ++ .../mogo/och/common/module}/utils/RxUtils.kt | 2 +- 20 files changed, 226 insertions(+), 286 deletions(-) create mode 100644 OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt create mode 100644 OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorCallback.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/LightAirconditionDoorManager.kt rename OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/{OCHM1LightAirconditionDoorStatusManager.kt => devicemanage/LightAirconditionDoorStatusManager.kt} (76%) create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt rename OCH/{mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger => mogo-och-common-module/src/main/java/com/mogo/och/common/module}/utils/RxUtils.kt (95%) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt index 4c1985ad4e..8b7ce2e2b8 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt @@ -4,7 +4,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.och.bus.passenger.bean.LoopInfo import com.mogo.och.bus.passenger.constant.CharterPassengerConst -import com.mogo.och.bus.passenger.utils.RxUtils +import com.mogo.och.common.module.utils.RxUtils import io.reactivex.Observable import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt index 88290a678d..1596ef34b0 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusBasePassengerFunctionDevicePresenter.kt @@ -4,7 +4,7 @@ import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.Presenter import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.utils.RxUtils +import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable abstract class BusBasePassengerFunctionDevicePresenter(view: V) : diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt index fe2279cf13..4061a63b90 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt @@ -5,92 +5,15 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment -import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager import io.reactivex.disposables.Disposable class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) : - BusBasePassengerFunctionDevicePresenter(view), - OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback { + BusBasePassengerFunctionDevicePresenter(view){ companion object { private const val TAG = "BusPassengerFunctionPresenter" } - private var subscribe: Disposable? = null - private var subscribeDoorStatus: Disposable? = null - private var gnssSpeed = 0.0 - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this) - CharterPassengerModel.setControllerStatusCallback(TAG) { location -> - location?.let { - gnssSpeed = it.gnssInfo.vehicleSpeed - } - } - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - OCHM1LightAirconditionDoorStatusManager.removeListener(TAG) - disposeSubscribe(subscribe) - disposeSubscribe(subscribeDoorStatus) - } - - override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) { - if (!isFirst) { - if (isOpen) { - ToastUtils.showShort("已开启车门") - } else { - ToastUtils.showShort("已关门车门") - } - } - } - - - fun openDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if (!canOpenOrCloseDoor.isNullOrEmpty()) { - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1) - disposeSubscribe(subscribeDoorStatus) - subscribeDoorStatus = createSubscribe { - if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) { - ToastUtils.showShort("车门无法开启,请使用车内物理按钮") - } - } - } - - fun closeDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if (!canOpenOrCloseDoor.isNullOrBlank()) { - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2) - disposeSubscribe(subscribeDoorStatus) - subscribeDoorStatus = createSubscribe { - if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) { - ToastUtils.showShort("车门无法关闭,请使用车内物理按钮") - } - } - } - - private fun canOpenOrCloseDoor(): String? { - if (gnssSpeed < 0.01) { - return null - } else { - return "车辆正在运行、请稍后再试" - } - } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt index 98ea80709d..130365e0be 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt @@ -7,16 +7,12 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.M1DeviceFragment -import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager import io.reactivex.disposables.Disposable class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) : - BusBasePassengerFunctionDevicePresenter(view), - OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback { - - private var subscribe: Disposable? = null - private var subscribeDoorStatus: Disposable? = null - private var gnssSpeed =0.0 + BusBasePassengerFunctionDevicePresenter(view) { companion object { private const val TAG = "BusPassengerFunctionDevicePresenter" @@ -24,75 +20,10 @@ class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) : override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) - OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this) - CharterPassengerModel.setControllerStatusCallback(TAG) { location -> - location?.let { - gnssSpeed = it.gnssInfo.vehicleSpeed - } - } } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - OCHM1LightAirconditionDoorStatusManager.removeListener(TAG) - disposeSubscribe(subscribe) - disposeSubscribe(subscribeDoorStatus) - } - - override fun onDoorStatusCallback(isOpen: Boolean,isFirst: Boolean) { - if(!isFirst) { - if (isOpen) { - ToastUtils.showShort("已开启车门") - } else { - ToastUtils.showShort("已关门车门") - } - } - } - - fun openDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if(!canOpenOrCloseDoor.isNullOrEmpty()){ - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1) - disposeSubscribe(subscribeDoorStatus) - subscribeDoorStatus = createSubscribe(6000) { - if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) { - ToastUtils.showShort("车门无法开启,请使用车内物理按钮") - } - } - } - - fun closeDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if(!canOpenOrCloseDoor.isNullOrBlank()){ - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2) - disposeSubscribe(subscribeDoorStatus) - subscribeDoorStatus = createSubscribe(6000) { - if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) { - ToastUtils.showShort("车门无法关闭,请使用车内物理按钮") - } - } - } - - private fun canOpenOrCloseDoor():String?{ - if(gnssSpeed<0.01){ - return null - }else{ - return "车辆正在运行、请稍后再试" - } } // 靠边停车 diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt index c5f1600d00..44fbc001b9 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt @@ -7,12 +7,16 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.ui.M1SoftFragment -import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus +import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue +import com.mogo.och.common.module.manager.devicemanage.data.LightStatus import io.reactivex.disposables.Disposable class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : BusBasePassengerFunctionDevicePresenter(view), - OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback { + LightAirconditionDoorCallback { companion object { private const val TAG = "BusPassengerFunctionSoftPresenter" } @@ -26,23 +30,23 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) - OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this) + LightAirconditionDoorStatusManager.addListener(TAG, this) } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - OCHM1LightAirconditionDoorStatusManager.removeListener(TAG) + LightAirconditionDoorStatusManager.removeListener(TAG) } /** * 空调状态变化 */ - override fun onAirconditionStatusCallback(heaterIsOpen: Boolean,airconditionStatus: OCHM1LightAirconditionDoorStatusManager.AirconditionStatus,isFirst: Boolean) { + override fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean) { CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--空调开关:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + - "空调温度:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + - "空调模式:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + - "空调风速:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}") + "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + + "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + + "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + + "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}") UiThreadHandler.post { if(airconditionStatus.isOpen){ mView?.setAirconditionHeaterView( @@ -66,7 +70,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : /** * 暖风机状态变化 */ - override fun onHeaterStatusCallback(airconditionIsOpen:Boolean,heaterStatue: OCHM1LightAirconditionDoorStatusManager.HeaterStatue,isFirst: Boolean) { + override fun onHeaterStatusCallback(airconditionIsOpen:Boolean, heaterStatue: HeaterStatue, isFirst: Boolean) { CallerLogger.d(SceneConstant.M_BUS_P + TAG, "回写--暖风机开关:${heaterStatue.isOpen}、" + "风速:${heaterStatue.windSpeed}") @@ -93,7 +97,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : /** * 灯状态变化 */ - override fun onLightTop1Callback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { + override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d(SceneConstant.M_BUS_P + TAG, "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + @@ -105,7 +109,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : /** * 灯状态变化 */ - override fun onLightTop2Callback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { + override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d(SceneConstant.M_BUS_P + TAG, "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + @@ -118,7 +122,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : /** * 灯状态变化 */ - override fun onLightAtmosphereCallback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { + override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) { CallerLogger.d(SceneConstant.M_BUS_P + TAG, "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + "顶灯2开关:${lightStatus.isOpenLight2}、" + @@ -137,10 +141,10 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd) disposeSubscribe(airconditionDisposable) airconditionDisposable = createSubscribe(10000){ - if (!OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen&& - OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&& - OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&& - OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) { + if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen&& + LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&& + LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&& + LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) { ToastUtils.showShort("空调操作未生效,请稍后重试吧~") } } @@ -150,7 +154,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd) disposeSubscribe(airconditionDisposable) airconditionDisposable = createSubscribe(10000){ - if (OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { + if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { ToastUtils.showShort("空调操作未生效,请稍后重试吧~") } } @@ -163,8 +167,8 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd) disposeSubscribe(heaterDisposable) heaterDisposable = createSubscribe(10000){ - if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&& - OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) { + if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen&& + LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) { ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~") } } @@ -175,7 +179,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0) disposeSubscribe(heaterDisposable) heaterDisposable = createSubscribe(10000){ - if (OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) { + if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) { ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的 } } @@ -187,14 +191,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : if(leftLight){ CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1) subscribeLightTop1 = createSubscribe{ - if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } }else{ CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2) subscribeLightTop1 = createSubscribe{ - if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } @@ -206,14 +210,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : if(rightLight){ CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1) subscribeLightTop2 = createSubscribe{ - if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } }else{ CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2) subscribeLightTop2 = createSubscribe{ - if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } @@ -225,14 +229,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : if (atmosphereLight) { CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1) subscribeLightAtmosphere = createSubscribe{ - if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { + if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } } else { CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2) subscribeLightAtmosphere = createSubscribe{ - if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { + if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { ToastUtils.showShort("操作未生效,请稍后重试吧~") } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index d6d6538d9d..42d71ccc95 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -24,7 +24,7 @@ import com.mogo.och.bus.passenger.ui.MainFragment import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil @@ -32,21 +32,20 @@ import com.mogo.och.common.module.utils.SoundPoolHelper import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import io.reactivex.disposables.Disposable import java.util.* class BusPassengerPresenter(view: MainFragment?) : BusBasePassengerFunctionDevicePresenter(view), - IBusPassengerControllerStatusCallback, IDistanceTimeCallback, IOrderChangeCallback, - IOrderStatusChangeListener, OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback { + IDistanceTimeCallback, IOrderChangeCallback, IOrderStatusChangeListener, + OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback { - private var subscribe: Disposable? = null - private var gnssSpeed = 0.0f override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) CharterPassengerModel.init() // 定位监听 - CharterPassengerModel.setControllerStatusCallback(TAG,this) CharterPassengerModel.setiDistanceTimeCallback(this) CharterPassengerModel.setCarTypeChangeListener(this) CharterPassengerModel.setStatusChangeListener(TAG,this) @@ -59,7 +58,6 @@ class BusPassengerPresenter(view: MainFragment?) : override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - CharterPassengerModel.setControllerStatusCallback(TAG,null) CharterPassengerModel.setiDistanceTimeCallback(null) CharterPassengerModel.setCarTypeChangeListener(null) CallerTelematicListenerManager.removeListener(TAG) @@ -81,12 +79,6 @@ class BusPassengerPresenter(view: MainFragment?) : mView?.setOrderTime(sumTime, arrivedTime) } } - override fun onCarLocationChanged(location: MogoLocation?) { - location?.let { - setSpeed(it.gnssSpeed) - gnssSpeed = it.gnssSpeed - } - } val msgReceived = object : IReceivedMsgListener { override fun onReceivedMsg(type: Int, byteArray: ByteArray) { @@ -98,11 +90,11 @@ class BusPassengerPresenter(view: MainFragment?) : ) as BaseDPMsg when (msg.type) { DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> { - val doorStatus = OCHM1LightAirconditionDoorStatusManager.doorStatus + val doorStatus = LightAirconditionDoorStatusManager.doorStatus if(doorStatus.isOpen){ - closeDoor() + LightAirconditionDoorManager.go2OpenDoor(false) }else{ - openDoor() + LightAirconditionDoorManager.go2OpenDoor(true) } } DPMsgType.TYPE_COMMON.type -> { @@ -128,40 +120,6 @@ class BusPassengerPresenter(view: MainFragment?) : SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.m1_voice_di) } - fun openDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if(!canOpenOrCloseDoor.isNullOrEmpty()){ - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1) - } - - fun closeDoor() { - val canOpenOrCloseDoor = canOpenOrCloseDoor() - if(!canOpenOrCloseDoor.isNullOrBlank()){ - ToastUtils.showShort(canOpenOrCloseDoor) - return - } - disposeSubscribe(subscribe) - subscribe = createSubscribe(1000) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0) - } - CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2) - } - - private fun canOpenOrCloseDoor():String?{ - if(gnssSpeed<0.01){ - return null - }else{ - return "车辆正在运行、请稍后再试" - } - } - /** * 计算剩余距离和剩余时间 */ @@ -290,4 +248,13 @@ class BusPassengerPresenter(view: MainFragment?) : } } + override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) { + if (!isFirst) { + if (isOpen) { + ToastUtils.showShort("已开启车门") + } else { + ToastUtils.showShort("已关门车门") + } + } + } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt index 1cffc70857..1535546529 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt @@ -4,9 +4,7 @@ import android.os.Bundle import android.util.Log import android.view.View import android.view.WindowManager -import android.widget.CompoundButton import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentTransaction import com.mogo.commons.mvp.MvpDialogFragment @@ -14,11 +12,9 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.eagle.core.utilcode.util.BarUtils -import com.mogo.eagle.core.utilcode.util.SharedPrefs import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter -import kotlinx.android.synthetic.m1.m1_contain_fragment.* +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import kotlinx.android.synthetic.m1.m1_order_end.* /** @@ -45,10 +41,10 @@ class M1CarUserNoOrderFragment : override fun initViews() { dialog?.setCancelable(false) iv_end_order_opendoor.onClick { - mPresenter?.openDoor() + LightAirconditionDoorManager.go2OpenDoor(true) } iv_end_order_closedoor.onClick { - mPresenter?.closeDoor() + LightAirconditionDoorManager.go2OpenDoor(false) } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt index 297a1c14c3..0d53a22e6e 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt @@ -36,15 +36,6 @@ class M1DeviceFragment : mPresenter?.startStopSide() SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) } - tv_car_setting_opendoor.onClick { - // 开门 AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(2); - mPresenter?.openDoor() - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - } - tv_car_setting_closedoor.onClick { - mPresenter?.closeDoor() - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - } } override fun createPresenter(): BusPassengerFunctionDevicePresenter = diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt index f1319e0a7d..b8b5a1e113 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt @@ -28,7 +28,7 @@ import com.mogo.och.bus.passenger.net.BusPassengerServiceManager import com.mogo.och.bus.passenger.ui.M1ContainFragment import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter -import com.mogo.och.bus.passenger.utils.RxUtils +import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.bus.passenger.view.BottomDecoration import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.constant.OchCommonConst diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt new file mode 100644 index 0000000000..2a40c14a48 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt @@ -0,0 +1,32 @@ +package com.mogo.och.bus.passenger.ui.view.door + +import android.content.Context +import android.util.AttributeSet +import androidx.appcompat.widget.AppCompatTextView +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.bus.passenger.R +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.utils.RxUtils +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager +import com.mogo.och.common.module.utils.SoundPoolHelper +import io.reactivex.disposables.Disposable + +class CloseDoorView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : AppCompatTextView(context, attrs, defStyleAttr) { + + init { + setOnClickListener { + go2OpenDoor() + } + } + + private fun go2OpenDoor(){ + LightAirconditionDoorManager.go2OpenDoor(false) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt new file mode 100644 index 0000000000..a9207bc376 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt @@ -0,0 +1,27 @@ +package com.mogo.och.bus.passenger.ui.view.door + +import android.content.Context +import android.util.AttributeSet +import androidx.appcompat.widget.AppCompatTextView +import com.mogo.och.bus.passenger.R +import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager +import com.mogo.och.common.module.utils.SoundPoolHelper + +class OpenDoorView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : AppCompatTextView(context, attrs, defStyleAttr) { + + init { + setOnClickListener { + go2OpenDoor() + } + } + + private fun go2OpenDoor(){ + LightAirconditionDoorManager.go2OpenDoor(true) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_devices_fragment.xml b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_devices_fragment.xml index 9712189711..65c1f4571b 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_devices_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_devices_fragment.xml @@ -47,7 +47,7 @@ app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go" app:layout_constraintTop_toTopOf="parent" /> - - = + val M_LISTENERS: ConcurrentHashMap = ConcurrentHashMap() val airconditionStatus = AirconditionStatus(false, 0, 26, 2) @@ -23,7 +27,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen fun addListener( tag: String, - listener: OCHM1LightAirconditionDoorCallback + listener: LightAirconditionDoorCallback ) { if (M_LISTENERS.containsKey(tag)) { return @@ -47,7 +51,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen * 删除监听 * @param listener 要删除的监听对象 */ - fun removeListener(listener: OCHM1LightAirconditionDoorCallback) { + fun removeListener(listener: LightAirconditionDoorCallback) { if (!M_LISTENERS.containsValue(listener)) { return } @@ -58,36 +62,6 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen } } - - interface OCHM1LightAirconditionDoorCallback { - - fun onAirconditionStatusCallback(heaterIsOpen:Boolean,airconditionStatus: AirconditionStatus,isFirst: Boolean){} - - fun onHeaterStatusCallback(airconditionIsOpen: Boolean,heaterStatue: HeaterStatue,isFirst: Boolean){} - - fun onDoorStatusCallback(isOpen: Boolean,isFirst: Boolean){} - - fun onLightTop1Callback(lightStatus: LightStatus,isFirst: Boolean){} - fun onLightTop2Callback(lightStatus: LightStatus,isFirst: Boolean){} - fun onLightAtmosphereCallback(lightStatus: LightStatus,isFirst: Boolean){} - - } - - data class AirconditionStatus( - var isOpen: Boolean, - var pattert: Int, - var temperature: Int, - var windSpeed: Int - ) - - data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int) - data class DoorStatus(var isOpen: Boolean) - data class LightStatus( - var isOpenLight1: Boolean, - var isOpenLight2: Boolean, - var isOpenatmosphere: Boolean - ) - override fun onRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) { val airConditionerState = states.airConditionerState val heaterState = states.heaterState diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt new file mode 100644 index 0000000000..31bc8a474a --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/AirconditionStatus.kt @@ -0,0 +1,8 @@ +package com.mogo.och.common.module.manager.devicemanage.data + +data class AirconditionStatus( + var isOpen: Boolean, + var pattert: Int, + var temperature: Int, + var windSpeed: Int +) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt new file mode 100644 index 0000000000..370f8a5dac --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/DoorStatus.kt @@ -0,0 +1,3 @@ +package com.mogo.och.common.module.manager.devicemanage.data + +data class DoorStatus(var isOpen: Boolean) \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt new file mode 100644 index 0000000000..80d2ef5690 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/HeaterStatue.kt @@ -0,0 +1,3 @@ +package com.mogo.och.common.module.manager.devicemanage.data + +data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt new file mode 100644 index 0000000000..69f047a7cf --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/devicemanage/data/LightStatus.kt @@ -0,0 +1,7 @@ +package com.mogo.och.common.module.manager.devicemanage.data + +data class LightStatus( + var isOpenLight1: Boolean, + var isOpenLight2: Boolean, + var isOpenatmosphere: Boolean +) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/RxUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt similarity index 95% rename from OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/RxUtils.kt rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt index 9f3e691023..cb6cbd7dbd 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/RxUtils.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/RxUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.utils +package com.mogo.och.common.module.utils import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers