[charter] 消息推送
This commit is contained in:
@@ -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)
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
|
||||
@@ -95,7 +95,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
|
||||
mView?.updateOrderUI(orderStatus)
|
||||
}
|
||||
|
||||
override fun updateOverCountDown(minutes: Int) {
|
||||
override fun updateOverCountDown(minutes: Long) {
|
||||
mView?.updateCountDown(minutes)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user