[charter] 消息推送

This commit is contained in:
wangmingjun
2023-02-28 21:16:24 +08:00
parent d7e883b569
commit 3645f73b4a
4 changed files with 72 additions and 59 deletions

View File

@@ -8,6 +8,6 @@ import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
*/
interface DriverM1OrderCallback {
fun updateOrderUI(orderStatus: QueryCurrentOrderResponse.Result) // 到达站
fun updateOverCountDown(minutes: Int) //倒计时 分钟
fun updateOverCountDown(minutes: Long) //倒计时ms
fun updateReturnCarStatus(returnSuccess: Boolean)
}

View File

@@ -2,13 +2,13 @@ package com.magic.mogo.och.charter.fragment
import android.os.Bundle
import android.os.CountDownTimer
import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import com.alibaba.android.arouter.launcher.ARouter
import com.magic.mogo.och.charter.R
import com.magic.mogo.och.charter.base.CharterBaseFragment
import com.magic.mogo.och.charter.bean.QueryCurrentOrderResponse
import com.magic.mogo.och.charter.constant.CharterConst.Companion.LOOP_PERIOD_60S
import com.magic.mogo.och.charter.net.login.LoginDriverM1Impl
import com.magic.mogo.och.charter.presenter.DriverM1Presenter
import com.magic.mogo.och.charter.view.SlidePanelView
@@ -47,12 +47,7 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
}
}
override fun initViews() {
super.initViews()
}
fun showOrHideOrderUI(show:Boolean){
private fun showOrHideOrderUI(show:Boolean){
if (show && group_stations_panel.visibility == GONE){
group_stations_panel.visibility = VISIBLE
no_line_data_view.visibility = GONE
@@ -79,11 +74,8 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
}
}
fun updateCountDown(minutes: Int) {
requireActivity().runOnUiThread {
driverm1_order_count_down.text = String.format(resources.getString(R.string.count_down_txt),
minutes)
}
fun updateCountDown(minutes: Long) {
startCountDownTimer(minutes,LOOP_PERIOD_60S)
}
override fun onDestroyView() {
@@ -161,9 +153,10 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
fun updateReturnCarStatus(returnSuccess: Boolean) {
requireActivity().runOnUiThread {
group_stations_panel.visibility = GONE
if (returnSuccess){
group_stations_panel.visibility = GONE
no_line_data_view.visibility = VISIBLE
slidePanelView?.visibility = GONE
}else{
slidePanelView?.visibility = VISIBLE
}
@@ -171,10 +164,15 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
}
fun startCountDownTimer(total: Long,countDownInterval:Long){
private fun startCountDownTimer(total: Long, countDownInterval:Long){
if (countDownTimer != null){
countDownTimer?.cancel()
countDownTimer = null
}
countDownTimer = object : CountDownTimer(total,countDownInterval){
override fun onTick(millisUntilFinished: Long) {
var minute=millisUntilFinished/1000/60%60
var minute = millisUntilFinished/1000/60%60
driverm1_order_count_down.text = String.format(
resources.getString(R.string.count_down_txt)
,minute)
@@ -185,6 +183,6 @@ class DriverM1Fragment : CharterBaseFragment<DriverM1Fragment?, DriverM1Presente
d(SceneConstant.M_CHARTER_D + TAG, "倒计时结束")
}
}
}.start()
}
}

View File

@@ -128,15 +128,15 @@ class DriverM1Model {
// 监听运营信息
OCHSocketMessageManager.registerSocketMessageListener(
OCHSocketMessageManager.msgMonitorType,
mMogoOnMessageListener)
mOnSystemMessageListener)
//监听开门
OCHSocketMessageManager.registerSocketMessageListener(
OCHSocketMessageManager.msgOperateDoorType,
mMogoOnMessageListener)
mOnDoorMessageListener)
//监听订单结束
OCHSocketMessageManager.registerSocketMessageListener(
OCHSocketMessageManager.msgOrderClosedType,
mMogoOnMessageListener)
mOnOrderClosedMessageListener)
//监听乘客屏发来的消息
CallerTelematicListenerManager.addListener(TAG,mReceivedMsgListener)
@@ -259,39 +259,50 @@ class DriverM1Model {
}
}
private val mMogoOnMessageListener =
object : IMogoOnMessageListener<DataBaseMsg> {
override fun onMsgReceived(obj: DataBaseMsg) {
if (obj == null) {
d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = null")
return
}
d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + obj.msgType)
private val mOnSystemMessageListener =
object : IMogoOnMessageListener<SystemMsg> {
override fun onMsgReceived(obj: SystemMsg) {
when(obj.msgType){
OCHSocketMessageManager.msgMonitorType ->{ //运营消息
val msg = obj as SystemMsg
pushOperationalToMsgBox(obj.pushTimeStamp, msg.context)
val list = msg.screenList
if (list.size > 1){ //发送乘客屏
sendMsgToClient(DPCommonOperationMsg(msg.context))
}
}
OCHSocketMessageManager.msgOperateDoorType ->{
sendMsgToClient(DPOperateDoorMsg(true))
}
OCHSocketMessageManager.msgOrderClosedType ->{ //订单结束
val msg = obj as OrderCloseMsg
pushOperationalToMsgBox(obj.pushTimeStamp, msg.message
,OCHSocketMessageManager.OPERATION_ORDER_TYPE)
sendMsgToClient(DPOrderClosedMsg())
}
d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + obj.context)
pushOperationalToMsgBox(obj.pushTimeStamp, obj.context)
val list = obj.screenList
if (list.size > 1){ //发送乘客屏
sendMsgToClient(DPCommonOperationMsg(obj.context))
}
}
override fun target(): Class<DataBaseMsg> {
return DataBaseMsg::class.java
override fun target(): Class<SystemMsg> {
return SystemMsg::class.java
}
}
private val mOnDoorMessageListener =
object : IMogoOnMessageListener<OperateDoorMsg> {
override fun onMsgReceived(obj: OperateDoorMsg) {
d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + obj.message)
sendMsgToClient(DPOperateDoorMsg(true))
}
override fun target(): Class<OperateDoorMsg> {
return OperateDoorMsg::class.java
}
}
private val mOnOrderClosedMessageListener =
object : IMogoOnMessageListener<OrderCloseMsg> {
override fun onMsgReceived(obj: OrderCloseMsg) {
//订单结束
pushOperationalToMsgBox(obj.pushTimeStamp, obj.message
,OCHSocketMessageManager.OPERATION_ORDER_TYPE)
sendMsgToClient(DPOrderClosedMsg())
}
override fun target(): Class<OrderCloseMsg> {
return OrderCloseMsg::class.java
}
}
@@ -579,9 +590,10 @@ class DriverM1Model {
GsonUtils.toJson(data.data))
mCurrentOrder = data.data
mOrderCallback?.updateOrderUI(data.data)
// 倒计时校验开始
//给工控机发轨迹
checkoutContrail()
checkOrderCountDown()
// 倒计时校验开始
startOrStopCheckCountDown(true)
}
override fun onFail(code: Int, msg: String?) {
@@ -591,11 +603,11 @@ class DriverM1Model {
}
private fun startOrStopCheckCountDown(start: Boolean) {
// if (start){
// DriverM1LooperManager.starCountDownLoop()
// }else{
// DriverM1LooperManager.stopCountDownLoop()
// }
if (start){
DriverM1LooperManager.starCountDownLoop()
}else{
DriverM1LooperManager.stopCountDownLoop()
}
}
fun checkOrderCountDown() {
@@ -608,12 +620,12 @@ class DriverM1Model {
d(SceneConstant.M_CHARTER_D,"checkOrderCountDown = "+ GsonUtils.toJson(data.data))
val gap = data.data.endTime - data.data.currentTime
if (gap >= 0){
mOrderCallback?.updateOverCountDown((gap/1000/60).toInt())
mOrderCallback?.updateOverCountDown(gap)
}
}
override fun onFail(code: Int, msg: String?) {
TODO("Not yet implemented")
d(SceneConstant.M_CHARTER_D + TAG, "checkOrderCountDown-onFail== $msg .")
}
})
@@ -639,11 +651,14 @@ class DriverM1Model {
}
override fun onFail(code: Int, msg: String?) {
TODO("Not yet implemented")
d(SceneConstant.M_CHARTER_D + TAG, "changeDest-onFail== $msg .")
}
})
}
/**
* 后台配置的轨迹路线信息
*/
fun checkoutContrail(){
if (mCurrentOrder == null) return
DriverM1ServiceManager.checkoutContrail(mContext,mCurrentOrder!!.lineId,

View File

@@ -95,7 +95,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
mView?.updateOrderUI(orderStatus)
}
override fun updateOverCountDown(minutes: Int) {
override fun updateOverCountDown(minutes: Long) {
mView?.updateCountDown(minutes)
}