[charter]
[3.2.0] [车门操作统一到一个地方]
This commit is contained in:
@@ -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.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.bean.LoopInfo
|
||||||
import com.mogo.och.bus.passenger.constant.CharterPassengerConst
|
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.Observable
|
||||||
import io.reactivex.disposables.Disposable
|
import io.reactivex.disposables.Disposable
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import androidx.lifecycle.LifecycleOwner
|
|||||||
import com.mogo.commons.mvp.IView
|
import com.mogo.commons.mvp.IView
|
||||||
import com.mogo.commons.mvp.Presenter
|
import com.mogo.commons.mvp.Presenter
|
||||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
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
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
abstract class BusBasePassengerFunctionDevicePresenter<V : IView?>(view: V) :
|
abstract class BusBasePassengerFunctionDevicePresenter<V : IView?>(view: V) :
|
||||||
|
|||||||
@@ -5,92 +5,15 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
|||||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||||
import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment
|
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
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) :
|
class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) :
|
||||||
BusBasePassengerFunctionDevicePresenter<M1CarUserNoOrderFragment?>(view),
|
BusBasePassengerFunctionDevicePresenter<M1CarUserNoOrderFragment?>(view){
|
||||||
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "BusPassengerFunctionPresenter"
|
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 "车辆正在运行、请稍后再试"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -7,16 +7,12 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
|||||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||||
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
import com.mogo.och.bus.passenger.model.CharterPassengerModel
|
||||||
import com.mogo.och.bus.passenger.ui.M1DeviceFragment
|
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
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
|
class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
|
||||||
BusBasePassengerFunctionDevicePresenter<M1DeviceFragment?>(view),
|
BusBasePassengerFunctionDevicePresenter<M1DeviceFragment?>(view) {
|
||||||
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
|
|
||||||
|
|
||||||
private var subscribe: Disposable? = null
|
|
||||||
private var subscribeDoorStatus: Disposable? = null
|
|
||||||
private var gnssSpeed =0.0
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "BusPassengerFunctionDevicePresenter"
|
private const val TAG = "BusPassengerFunctionDevicePresenter"
|
||||||
@@ -24,75 +20,10 @@ class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
|
|||||||
|
|
||||||
override fun onCreate(owner: LifecycleOwner) {
|
override fun onCreate(owner: LifecycleOwner) {
|
||||||
super.onCreate(owner)
|
super.onCreate(owner)
|
||||||
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this)
|
|
||||||
CharterPassengerModel.setControllerStatusCallback(TAG) { location ->
|
|
||||||
location?.let {
|
|
||||||
gnssSpeed = it.gnssInfo.vehicleSpeed
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy(owner: LifecycleOwner) {
|
override fun onDestroy(owner: LifecycleOwner) {
|
||||||
super.onDestroy(owner)
|
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 "车辆正在运行、请稍后再试"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 靠边停车
|
// 靠边停车
|
||||||
|
|||||||
@@ -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.ToastUtils
|
||||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||||
import com.mogo.och.bus.passenger.ui.M1SoftFragment
|
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
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
||||||
BusBasePassengerFunctionDevicePresenter<M1SoftFragment?>(view),
|
BusBasePassengerFunctionDevicePresenter<M1SoftFragment?>(view),
|
||||||
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
|
LightAirconditionDoorCallback {
|
||||||
companion object {
|
companion object {
|
||||||
private const val TAG = "BusPassengerFunctionSoftPresenter"
|
private const val TAG = "BusPassengerFunctionSoftPresenter"
|
||||||
}
|
}
|
||||||
@@ -26,23 +30,23 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
|
|
||||||
override fun onCreate(owner: LifecycleOwner) {
|
override fun onCreate(owner: LifecycleOwner) {
|
||||||
super.onCreate(owner)
|
super.onCreate(owner)
|
||||||
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this)
|
LightAirconditionDoorStatusManager.addListener(TAG, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy(owner: LifecycleOwner) {
|
override fun onDestroy(owner: LifecycleOwner) {
|
||||||
super.onDestroy(owner)
|
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,
|
CallerLogger.d(SceneConstant.M_BUS_P + TAG,
|
||||||
"回写--空调开关:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" +
|
"回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" +
|
||||||
"空调温度:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature}" +
|
"空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" +
|
||||||
"空调模式:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert}" +
|
"空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" +
|
||||||
"空调风速:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}")
|
"空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}")
|
||||||
UiThreadHandler.post {
|
UiThreadHandler.post {
|
||||||
if(airconditionStatus.isOpen){
|
if(airconditionStatus.isOpen){
|
||||||
mView?.setAirconditionHeaterView(
|
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,
|
CallerLogger.d(SceneConstant.M_BUS_P + TAG,
|
||||||
"回写--暖风机开关:${heaterStatue.isOpen}、" +
|
"回写--暖风机开关:${heaterStatue.isOpen}、" +
|
||||||
"风速:${heaterStatue.windSpeed}")
|
"风速:${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,
|
CallerLogger.d(SceneConstant.M_BUS_P + TAG,
|
||||||
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
||||||
"顶灯2开关:${lightStatus.isOpenLight2}、" +
|
"顶灯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,
|
CallerLogger.d(SceneConstant.M_BUS_P + TAG,
|
||||||
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
||||||
"顶灯2开关:${lightStatus.isOpenLight2}、" +
|
"顶灯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,
|
CallerLogger.d(SceneConstant.M_BUS_P + TAG,
|
||||||
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
"回写--顶灯1开关:${lightStatus.isOpenLight1}、" +
|
||||||
"顶灯2开关:${lightStatus.isOpenLight2}、" +
|
"顶灯2开关:${lightStatus.isOpenLight2}、" +
|
||||||
@@ -137,10 +141,10 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
|
||||||
disposeSubscribe(airconditionDisposable)
|
disposeSubscribe(airconditionDisposable)
|
||||||
airconditionDisposable = createSubscribe(10000){
|
airconditionDisposable = createSubscribe(10000){
|
||||||
if (!OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen&&
|
if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen&&
|
||||||
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
|
LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
|
||||||
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
|
LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
|
||||||
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) {
|
LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) {
|
||||||
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -150,7 +154,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd)
|
||||||
disposeSubscribe(airconditionDisposable)
|
disposeSubscribe(airconditionDisposable)
|
||||||
airconditionDisposable = createSubscribe(10000){
|
airconditionDisposable = createSubscribe(10000){
|
||||||
if (OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
|
if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
|
||||||
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,8 +167,8 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
|
||||||
disposeSubscribe(heaterDisposable)
|
disposeSubscribe(heaterDisposable)
|
||||||
heaterDisposable = createSubscribe(10000){
|
heaterDisposable = createSubscribe(10000){
|
||||||
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
|
if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
|
||||||
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
|
LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
|
||||||
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -175,7 +179,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0)
|
||||||
disposeSubscribe(heaterDisposable)
|
disposeSubscribe(heaterDisposable)
|
||||||
heaterDisposable = createSubscribe(10000){
|
heaterDisposable = createSubscribe(10000){
|
||||||
if (OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
|
if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
|
||||||
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的
|
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,14 +191,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
if(leftLight){
|
if(leftLight){
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1)
|
||||||
subscribeLightTop1 = createSubscribe{
|
subscribeLightTop1 = createSubscribe{
|
||||||
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
|
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2)
|
||||||
subscribeLightTop1 = createSubscribe{
|
subscribeLightTop1 = createSubscribe{
|
||||||
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
|
if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -206,14 +210,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
if(rightLight){
|
if(rightLight){
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1)
|
||||||
subscribeLightTop2 = createSubscribe{
|
subscribeLightTop2 = createSubscribe{
|
||||||
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
|
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2)
|
||||||
subscribeLightTop2 = createSubscribe{
|
subscribeLightTop2 = createSubscribe{
|
||||||
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
|
if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -225,14 +229,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
|
|||||||
if (atmosphereLight) {
|
if (atmosphereLight) {
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1)
|
||||||
subscribeLightAtmosphere = createSubscribe{
|
subscribeLightAtmosphere = createSubscribe{
|
||||||
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
|
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2)
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2)
|
||||||
subscribeLightAtmosphere = createSubscribe{
|
subscribeLightAtmosphere = createSubscribe{
|
||||||
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
|
if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
|
||||||
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
ToastUtils.showShort("操作未生效,请稍后重试吧~")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.bean.dpmsg.DPMsgType
|
||||||
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
|
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.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.manager.OCHPlanningStopSideStatusManager
|
||||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||||
import com.mogo.och.common.module.utils.NumberFormatUtil
|
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.voice.VoiceNotice
|
||||||
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
|
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
|
||||||
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
|
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 io.reactivex.disposables.Disposable
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class BusPassengerPresenter(view: MainFragment?) :
|
class BusPassengerPresenter(view: MainFragment?) :
|
||||||
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
|
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
|
||||||
IBusPassengerControllerStatusCallback, IDistanceTimeCallback, IOrderChangeCallback,
|
IDistanceTimeCallback, IOrderChangeCallback, IOrderStatusChangeListener,
|
||||||
IOrderStatusChangeListener, OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback {
|
OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback {
|
||||||
|
|
||||||
private var subscribe: Disposable? = null
|
|
||||||
private var gnssSpeed = 0.0f
|
|
||||||
override fun onCreate(owner: LifecycleOwner) {
|
override fun onCreate(owner: LifecycleOwner) {
|
||||||
super.onCreate(owner)
|
super.onCreate(owner)
|
||||||
CharterPassengerModel.init()
|
CharterPassengerModel.init()
|
||||||
// 定位监听
|
// 定位监听
|
||||||
CharterPassengerModel.setControllerStatusCallback(TAG,this)
|
|
||||||
CharterPassengerModel.setiDistanceTimeCallback(this)
|
CharterPassengerModel.setiDistanceTimeCallback(this)
|
||||||
CharterPassengerModel.setCarTypeChangeListener(this)
|
CharterPassengerModel.setCarTypeChangeListener(this)
|
||||||
CharterPassengerModel.setStatusChangeListener(TAG,this)
|
CharterPassengerModel.setStatusChangeListener(TAG,this)
|
||||||
@@ -59,7 +58,6 @@ class BusPassengerPresenter(view: MainFragment?) :
|
|||||||
|
|
||||||
override fun onDestroy(owner: LifecycleOwner) {
|
override fun onDestroy(owner: LifecycleOwner) {
|
||||||
super.onDestroy(owner)
|
super.onDestroy(owner)
|
||||||
CharterPassengerModel.setControllerStatusCallback(TAG,null)
|
|
||||||
CharterPassengerModel.setiDistanceTimeCallback(null)
|
CharterPassengerModel.setiDistanceTimeCallback(null)
|
||||||
CharterPassengerModel.setCarTypeChangeListener(null)
|
CharterPassengerModel.setCarTypeChangeListener(null)
|
||||||
CallerTelematicListenerManager.removeListener(TAG)
|
CallerTelematicListenerManager.removeListener(TAG)
|
||||||
@@ -81,12 +79,6 @@ class BusPassengerPresenter(view: MainFragment?) :
|
|||||||
mView?.setOrderTime(sumTime, arrivedTime)
|
mView?.setOrderTime(sumTime, arrivedTime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
override fun onCarLocationChanged(location: MogoLocation?) {
|
|
||||||
location?.let {
|
|
||||||
setSpeed(it.gnssSpeed)
|
|
||||||
gnssSpeed = it.gnssSpeed
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val msgReceived = object : IReceivedMsgListener {
|
val msgReceived = object : IReceivedMsgListener {
|
||||||
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
|
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
|
||||||
@@ -98,11 +90,11 @@ class BusPassengerPresenter(view: MainFragment?) :
|
|||||||
) as BaseDPMsg
|
) as BaseDPMsg
|
||||||
when (msg.type) {
|
when (msg.type) {
|
||||||
DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> {
|
DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> {
|
||||||
val doorStatus = OCHM1LightAirconditionDoorStatusManager.doorStatus
|
val doorStatus = LightAirconditionDoorStatusManager.doorStatus
|
||||||
if(doorStatus.isOpen){
|
if(doorStatus.isOpen){
|
||||||
closeDoor()
|
LightAirconditionDoorManager.go2OpenDoor(false)
|
||||||
}else{
|
}else{
|
||||||
openDoor()
|
LightAirconditionDoorManager.go2OpenDoor(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DPMsgType.TYPE_COMMON.type -> {
|
DPMsgType.TYPE_COMMON.type -> {
|
||||||
@@ -128,40 +120,6 @@ class BusPassengerPresenter(view: MainFragment?) :
|
|||||||
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.m1_voice_di)
|
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("已关门车门")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,7 @@ import android.os.Bundle
|
|||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.CompoundButton
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.Fragment
|
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.fragment.app.FragmentTransaction
|
import androidx.fragment.app.FragmentTransaction
|
||||||
import com.mogo.commons.mvp.MvpDialogFragment
|
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.CallerLogger
|
||||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
||||||
import com.mogo.eagle.core.utilcode.util.BarUtils
|
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.R
|
||||||
import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
|
import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
|
||||||
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter
|
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
|
||||||
import kotlinx.android.synthetic.m1.m1_contain_fragment.*
|
|
||||||
import kotlinx.android.synthetic.m1.m1_order_end.*
|
import kotlinx.android.synthetic.m1.m1_order_end.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -45,10 +41,10 @@ class M1CarUserNoOrderFragment :
|
|||||||
override fun initViews() {
|
override fun initViews() {
|
||||||
dialog?.setCancelable(false)
|
dialog?.setCancelable(false)
|
||||||
iv_end_order_opendoor.onClick {
|
iv_end_order_opendoor.onClick {
|
||||||
mPresenter?.openDoor()
|
LightAirconditionDoorManager.go2OpenDoor(true)
|
||||||
}
|
}
|
||||||
iv_end_order_closedoor.onClick {
|
iv_end_order_closedoor.onClick {
|
||||||
mPresenter?.closeDoor()
|
LightAirconditionDoorManager.go2OpenDoor(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,15 +36,6 @@ class M1DeviceFragment :
|
|||||||
mPresenter?.startStopSide()
|
mPresenter?.startStopSide()
|
||||||
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
|
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 =
|
override fun createPresenter(): BusPassengerFunctionDevicePresenter =
|
||||||
|
|||||||
@@ -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.M1ContainFragment
|
||||||
import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter
|
import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter
|
||||||
import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter
|
import com.mogo.och.bus.passenger.ui.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.bus.passenger.view.BottomDecoration
|
||||||
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
|
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
|
||||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||||
|
|||||||
@@ -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)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go"
|
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<com.mogo.och.bus.passenger.ui.view.door.CloseDoorView
|
||||||
android:id="@+id/tv_car_setting_opendoor"
|
android:id="@+id/tv_car_setting_opendoor"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_stopside"
|
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_stopside"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<com.mogo.och.bus.passenger.ui.view.door.OpenDoorView
|
||||||
android:id="@+id/tv_car_setting_closedoor"
|
android:id="@+id/tv_car_setting_closedoor"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.mogo.och.common.module.manager.devicemanage
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
interface LightAirconditionDoorCallback {
|
||||||
|
|
||||||
|
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) {}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
package com.mogo.och.common.module.manager.devicemanage
|
||||||
|
|
||||||
|
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.common.module.utils.RxUtils
|
||||||
|
import io.reactivex.disposables.Disposable
|
||||||
|
|
||||||
|
object LightAirconditionDoorManager {
|
||||||
|
private const val TAG = "LightAirconditionDoorManager"
|
||||||
|
|
||||||
|
private var dooorSubscribe: Disposable? = null
|
||||||
|
private var doorStatusSubscribe: Disposable? = null
|
||||||
|
|
||||||
|
fun go2OpenDoor(isOpen:Boolean){
|
||||||
|
val canOpenOrCloseDoor = canOpenOrCloseDoor()
|
||||||
|
if(!canOpenOrCloseDoor.isNullOrBlank()){
|
||||||
|
ToastUtils.showShort(canOpenOrCloseDoor)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
RxUtils.disposeSubscribe(dooorSubscribe)
|
||||||
|
dooorSubscribe = RxUtils.createSubscribe(1000) {
|
||||||
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
|
||||||
|
}
|
||||||
|
if(isOpen) {
|
||||||
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
|
||||||
|
}else{
|
||||||
|
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
|
||||||
|
}
|
||||||
|
RxUtils.disposeSubscribe(doorStatusSubscribe)
|
||||||
|
doorStatusSubscribe = RxUtils.createSubscribe(6000) {
|
||||||
|
if (LightAirconditionDoorStatusManager.doorStatus.isOpen) {
|
||||||
|
ToastUtils.showShort("车门无法关闭,请使用车内物理按钮")
|
||||||
|
}else{
|
||||||
|
ToastUtils.showShort("车门无法开启,请使用车内物理按钮")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun canOpenOrCloseDoor(): String? {
|
||||||
|
val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
|
||||||
|
return if(location.gnssSpeed<0.01){
|
||||||
|
null
|
||||||
|
}else{
|
||||||
|
"车辆正在运行、请稍后再试"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.mogo.och.common.module.manager
|
package com.mogo.och.common.module.manager.devicemanage
|
||||||
|
|
||||||
import chassis.VehicleStateOuterClass
|
import chassis.VehicleStateOuterClass
|
||||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener
|
import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener
|
||||||
import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager
|
import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager
|
||||||
|
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
|
||||||
|
import com.mogo.och.common.module.manager.devicemanage.data.DoorStatus
|
||||||
|
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
|
||||||
|
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
|
||||||
object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
|
object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
|
||||||
private const val TAG = "OCHM1LightAirconditionDoorStatusManager"
|
private const val TAG = "OCHM1LightAirconditionDoorStatusManager"
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@@ -13,7 +17,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
|
|||||||
CallerRoboBusJinlvM1StatesListenerManager.setListenerHz(TAG,5)
|
CallerRoboBusJinlvM1StatesListenerManager.setListenerHz(TAG,5)
|
||||||
}
|
}
|
||||||
|
|
||||||
val M_LISTENERS: ConcurrentHashMap<String, OCHM1LightAirconditionDoorCallback> =
|
val M_LISTENERS: ConcurrentHashMap<String, LightAirconditionDoorCallback> =
|
||||||
ConcurrentHashMap()
|
ConcurrentHashMap()
|
||||||
|
|
||||||
val airconditionStatus = AirconditionStatus(false, 0, 26, 2)
|
val airconditionStatus = AirconditionStatus(false, 0, 26, 2)
|
||||||
@@ -23,7 +27,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
|
|||||||
|
|
||||||
fun addListener(
|
fun addListener(
|
||||||
tag: String,
|
tag: String,
|
||||||
listener: OCHM1LightAirconditionDoorCallback
|
listener: LightAirconditionDoorCallback
|
||||||
) {
|
) {
|
||||||
if (M_LISTENERS.containsKey(tag)) {
|
if (M_LISTENERS.containsKey(tag)) {
|
||||||
return
|
return
|
||||||
@@ -47,7 +51,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
|
|||||||
* 删除监听
|
* 删除监听
|
||||||
* @param listener 要删除的监听对象
|
* @param listener 要删除的监听对象
|
||||||
*/
|
*/
|
||||||
fun removeListener(listener: OCHM1LightAirconditionDoorCallback) {
|
fun removeListener(listener: LightAirconditionDoorCallback) {
|
||||||
if (!M_LISTENERS.containsValue(listener)) {
|
if (!M_LISTENERS.containsValue(listener)) {
|
||||||
return
|
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) {
|
override fun onRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) {
|
||||||
val airConditionerState = states.airConditionerState
|
val airConditionerState = states.airConditionerState
|
||||||
val heaterState = states.heaterState
|
val heaterState = states.heaterState
|
||||||
@@ -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
|
||||||
|
)
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package com.mogo.och.common.module.manager.devicemanage.data
|
||||||
|
|
||||||
|
data class DoorStatus(var isOpen: Boolean)
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package com.mogo.och.common.module.manager.devicemanage.data
|
||||||
|
|
||||||
|
data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int)
|
||||||
@@ -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
|
||||||
|
)
|
||||||
@@ -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.Observable
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
Reference in New Issue
Block a user