[m1]
[1.1.2] [登录状态查询轮训]
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
package com.mogo.och.bus.passenger.bean
|
||||
|
||||
data class LoopInfo(val interval:Long,val function: () -> Unit)
|
||||
@@ -20,12 +20,15 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.bean.LoopInfo
|
||||
import com.mogo.och.bus.passenger.bean.response.M1DriverLoginStatusResponse
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback
|
||||
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback
|
||||
import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager
|
||||
import com.mogo.och.bus.passenger.net.BusPassengerServiceManager
|
||||
import com.mogo.och.bus.passenger.utils.RxUtils
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import io.reactivex.disposables.Disposable
|
||||
import mogo.telematics.pad.MessagePad
|
||||
@@ -40,6 +43,7 @@ import java.util.concurrent.ConcurrentHashMap
|
||||
object BusPassengerModel {
|
||||
|
||||
private const val TAG = "BusPassengerModel"
|
||||
private const val TAGLOGIN = "BusPassengerModelLogin"
|
||||
|
||||
private lateinit var mContext: Context
|
||||
|
||||
@@ -47,47 +51,45 @@ object BusPassengerModel {
|
||||
var mADASStatusCallback: IBusPassengerADASStatusCallback? = null
|
||||
|
||||
// bus路线信息更新
|
||||
private val mControllerStatusCallbackMap = ConcurrentHashMap<String, IBusPassengerControllerStatusCallback>()
|
||||
private val mControllerStatusCallbackMap =
|
||||
ConcurrentHashMap<String, IBusPassengerControllerStatusCallback>()
|
||||
|
||||
// 当前位置坐标
|
||||
private var mLocation: MogoLocation? = null
|
||||
|
||||
private var sub4LoginStatus: Disposable? = null
|
||||
|
||||
fun init() {
|
||||
AbsMogoApplication.getApp().also { this.mContext = it }
|
||||
initListeners()
|
||||
// 启动轮询查询司机登录状态
|
||||
queryDriverOperationStatus()
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动轮询查询司机登录状态
|
||||
*/
|
||||
private fun listenerLoginStatus() {
|
||||
LoginStatusManager.setControllerStatusCallback(TAG,
|
||||
object : LoginStatusManager.ILoginStatusChangeListener {
|
||||
override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
BusPassengerModelLoopManager.setControllerStatusCallback(TAGLOGIN)
|
||||
} else {
|
||||
BusPassengerModelLoopManager.setControllerStatusCallback(TAGLOGIN, LoopInfo(3,::queryDriverOperationStatus))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆登录状态、车牌、司机手机号、司机sn
|
||||
*/
|
||||
private fun queryDriverOperationStatus() {
|
||||
fun queryDriverOperationStatus() {
|
||||
BusPassengerServiceManager.queryDriverOperationStatus(
|
||||
mContext, object : OchCommonServiceCallback<M1DriverLoginStatusResponse> {
|
||||
override fun onSuccess(data: M1DriverLoginStatusResponse?) {
|
||||
if (data?.data == null) return
|
||||
LoginStatusManager.setLoginStatus(data.data.driverStatus)
|
||||
}
|
||||
override fun onError() {
|
||||
if (!NetworkUtils.isConnected(mContext)) {
|
||||
ToastUtils.showShort(mContext.getString(R.string.network_error_tip))
|
||||
} else {
|
||||
ToastUtils.showShort(mContext.getString(R.string.request_error_tip))
|
||||
}
|
||||
sub4LoginStatus = RxUtils.createSubscribe(3000) {
|
||||
queryDriverOperationStatus()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String) {
|
||||
//延迟3s再次查询
|
||||
sub4LoginStatus = RxUtils.createSubscribe(3000) {
|
||||
queryDriverOperationStatus()
|
||||
}
|
||||
}
|
||||
override fun onFail(code: Int, msg: String) {}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -102,14 +104,18 @@ object BusPassengerModel {
|
||||
|
||||
private fun initListeners() {
|
||||
// 网络状态变更
|
||||
IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
|
||||
IntentManager.getInstance()
|
||||
.registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener)
|
||||
// 自动驾驶状态变化监听
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener)
|
||||
// 定位监听
|
||||
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener)
|
||||
// 自动驾驶路线规划接口 返回自动驾驶轨迹
|
||||
CallerPlanningRottingListenerManager.addListener(TAG, moGoAutopilotPlanningListener)
|
||||
// 登录状态监听
|
||||
listenerLoginStatus()
|
||||
}
|
||||
|
||||
fun release() {
|
||||
releaseListeners()
|
||||
startOrStopCalculateRouteInfo(false)
|
||||
@@ -148,7 +154,8 @@ object BusPassengerModel {
|
||||
private var mPreAutoStatus = -1
|
||||
|
||||
// 自动驾驶状态监听
|
||||
private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener = object : IMoGoAutopilotStatusListener {
|
||||
private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener =
|
||||
object : IMoGoAutopilotStatusListener {
|
||||
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {}
|
||||
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {}
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
@@ -167,6 +174,7 @@ object BusPassengerModel {
|
||||
override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {
|
||||
mADASStatusCallback?.onAutopilotArriveEnd()
|
||||
}
|
||||
|
||||
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {}
|
||||
}
|
||||
|
||||
@@ -176,7 +184,10 @@ object BusPassengerModel {
|
||||
private val moGoAutopilotPlanningListener: IMoGoPlanningRottingListener =
|
||||
object : IMoGoPlanningRottingListener {
|
||||
override fun onAutopilotRotting(globalPathResp: MessagePad.GlobalPathResp?) {
|
||||
CallerLogger.d(M_BUS_P + TAG, "onAutopilotRotting = ${GsonUtil.jsonFromObject(globalPathResp)}")
|
||||
CallerLogger.d(
|
||||
M_BUS_P + TAG,
|
||||
"onAutopilotRotting = ${GsonUtil.jsonFromObject(globalPathResp)}"
|
||||
)
|
||||
globalPathResp?.wayPointsList?.let {
|
||||
|
||||
}
|
||||
|
||||
@@ -2,12 +2,10 @@ package com.mogo.och.bus.passenger.net
|
||||
|
||||
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.callback.IBusPassengerControllerStatusCallback
|
||||
import com.mogo.och.bus.passenger.bean.LoopInfo
|
||||
import com.mogo.och.bus.passenger.constant.BusPassengerConst
|
||||
import com.mogo.och.bus.passenger.model.BusPassengerModel
|
||||
import com.mogo.och.bus.passenger.utils.RxUtils
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
@@ -22,24 +20,25 @@ object BusPassengerModelLoopManager {
|
||||
|
||||
private val TAG = "BusPassengerModelLoopManager"
|
||||
|
||||
private val mControllerStatusCallbackMap = ConcurrentHashMap<String, (index:Long) -> Unit>()
|
||||
private val mControllerStatusCallbackMap = ConcurrentHashMap<String, LoopInfo>()
|
||||
|
||||
|
||||
fun setControllerStatusCallback(tag: String,function:((index:Long) -> Unit)?) {
|
||||
fun setControllerStatusCallback(tag: String, function: LoopInfo) {
|
||||
if (tag.isBlank()) return
|
||||
if (function == null) {
|
||||
mControllerStatusCallbackMap.remove(tag)
|
||||
if(mControllerStatusCallbackMap.size==0){
|
||||
stopLineLoop()
|
||||
}
|
||||
return
|
||||
}
|
||||
mControllerStatusCallbackMap[tag] = function
|
||||
if(mControllerStatusCallbackMap.size>0){
|
||||
if (mControllerStatusCallbackMap.size > 0) {
|
||||
startLineLoop()
|
||||
}
|
||||
}
|
||||
|
||||
fun setControllerStatusCallback(tag: String) {
|
||||
if (tag.isBlank()) return
|
||||
mControllerStatusCallbackMap.remove(tag)
|
||||
if (mControllerStatusCallbackMap.size == 0) {
|
||||
stopLineLoop()
|
||||
}
|
||||
}
|
||||
|
||||
// 订单 轮训
|
||||
// 订单时间轮训
|
||||
// 车辆状态轮训
|
||||
@@ -58,9 +57,16 @@ object BusPassengerModelLoopManager {
|
||||
.map { aLong: Long -> aLong + 1 }
|
||||
.subscribeOn(Schedulers.io())
|
||||
.subscribe { aLong: Long? ->
|
||||
mControllerStatusCallbackMap.forEach { (_, function) ->
|
||||
mControllerStatusCallbackMap.forEach { (tag, loopInfo) ->
|
||||
aLong?.let {
|
||||
function.invoke(it)
|
||||
if (it % loopInfo.interval == 0L) {
|
||||
try {
|
||||
loopInfo.function.invoke()
|
||||
CallerLogger.d(TAG, "${aLong}正在执行方法${tag}")
|
||||
}catch (e:Throwable){
|
||||
CallerLogger.e(TAG,"$tag:--$e")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
package com.mogo.och.bus.passenger.net
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.getServerToken
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.och.bus.passenger.bean.response.M1DriverLoginStatusResponse
|
||||
import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse
|
||||
import com.mogo.och.bus.passenger.bean.response.*
|
||||
import com.mogo.och.common.module.biz.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl
|
||||
@@ -20,45 +18,65 @@ object BusPassengerServiceManager {
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl())
|
||||
.create(PassengerServiceApi::class.java)
|
||||
|
||||
/**
|
||||
* 获取Bus司机端的sn
|
||||
* @return
|
||||
*/
|
||||
private val driverAppSn: String
|
||||
get() = getServerToken()
|
||||
|
||||
|
||||
/**
|
||||
* 查询司机端出车收车状态,以及车牌号
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryDriverOperationStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<M1DriverLoginStatusResponse>?
|
||||
) {
|
||||
mBusPassengerServiceApi.queryDriverOperationStatus(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
MoGoAiCloudClientConfig.getInstance().token,
|
||||
driverAppSn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverOperationStatus"))
|
||||
mBusPassengerServiceApi.queryDriverOperationStatus().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "loginStatus"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询司机端出车收车状态,以及车牌号
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryOrderInfo(
|
||||
fun queryLineList(context: Context, callback: OchCommonServiceCallback<LineInfoResponse>?) {
|
||||
mBusPassengerServiceApi.queryLineList().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "lineList"))
|
||||
}
|
||||
|
||||
|
||||
@JvmStatic
|
||||
fun queryLineSiteList(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<OrderInfoResponse>?
|
||||
lindId: String,
|
||||
callback: OchCommonServiceCallback<SiteInfoResponse>?
|
||||
) {
|
||||
mBusPassengerServiceApi.queryOrderInfo(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
MoGoAiCloudClientConfig.getInstance().token,
|
||||
driverAppSn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryDriverOperationStatus"))
|
||||
mBusPassengerServiceApi.queryLineSiteList(lineId = lindId).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "siteList"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusinessStatus(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<BusinessStatusResponse>?
|
||||
) {
|
||||
mBusPassengerServiceApi.queryBusinessStatus().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "businessStatus"))
|
||||
}
|
||||
|
||||
|
||||
@JvmStatic
|
||||
fun endOrder(context: Context, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
mBusPassengerServiceApi.endOrder().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "serviceEnd"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryLocusByLineId(
|
||||
context: Context,
|
||||
lindId: String,
|
||||
callback: OchCommonServiceCallback<LocusResponse>?
|
||||
) {
|
||||
mBusPassengerServiceApi.queryLocusByLineId(lineId = lindId).transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "contrail"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusinessTime(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<BusinessTimeResponse>?
|
||||
) {
|
||||
mBusPassengerServiceApi.queryBusinessTime().transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusinessTime"))
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package com.mogo.och.bus.passenger.net;
|
||||
|
||||
import com.mogo.och.bus.passenger.bean.response.BusinessStatusResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.BusinessTimeResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.LineInfoResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.LocusResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.M1DriverLoginStatusResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse;
|
||||
import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.Header;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* 包车乘客端接口定义
|
||||
*/
|
||||
interface PassengerServiceApi {
|
||||
|
||||
/**
|
||||
* 01查询司机端的登陆状态 06
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/loginStatus")
|
||||
Observable<M1DriverLoginStatusResponse> queryDriverOperationStatus(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 02查询服务中的订单 08
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/order")
|
||||
Observable<OrderInfoResponse> queryOrderInfo(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 03查询所在城市的所有线路 09
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/lineList")
|
||||
Observable<LineInfoResponse> queryLineList(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 04查询所选线路的站点 10
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/siteList")
|
||||
Observable<SiteInfoResponse> queryLineSiteList(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn, @Query("sn") String lineId);
|
||||
|
||||
/**
|
||||
* 05查询车辆服务状态 07
|
||||
* 轮训查询订单状态和状态流转
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/businessStatus")
|
||||
Observable<BusinessStatusResponse> queryBusinessStatus(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 06结束订单 03
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/flow/v1/driver/serviceEnd")
|
||||
Observable<BaseData> endOrder(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 07查询线路的轨迹文件信息 12
|
||||
* 启动自动驾驶使用
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/contrail")
|
||||
Observable<LocusResponse> queryLocusByLineId(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn, @Query("lineId") String lineId);
|
||||
|
||||
/**
|
||||
* 08查询包车业务时间 11
|
||||
* 倒计时5分钟 消息盒子、倒计时结束弹窗
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/queryBusinessTime")
|
||||
Observable<BusinessTimeResponse> queryBusinessTime(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.mogo.och.bus.passenger.net
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
|
||||
import com.mogo.och.bus.passenger.bean.response.*
|
||||
import io.reactivex.Observable
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Header
|
||||
import retrofit2.http.Query
|
||||
|
||||
/**
|
||||
* 包车乘客端接口定义
|
||||
*/
|
||||
internal interface PassengerServiceApi {
|
||||
/**
|
||||
* 01查询司机端的登陆状态 06
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/loginStatus")
|
||||
fun queryDriverOperationStatus(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<M1DriverLoginStatusResponse>
|
||||
|
||||
/**
|
||||
* 02查询服务中的订单 08
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/order")
|
||||
fun queryOrderInfo(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<OrderInfoResponse>
|
||||
|
||||
/**
|
||||
* 03查询所在城市的所有线路 09
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/lineList")
|
||||
fun queryLineList(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<LineInfoResponse>
|
||||
|
||||
/**
|
||||
* 04查询所选线路的站点 10
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/siteList")
|
||||
fun queryLineSiteList(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken(),
|
||||
@Query("lineId") lineId: String?
|
||||
): Observable<SiteInfoResponse>
|
||||
|
||||
/**
|
||||
* 05查询车辆服务状态 07
|
||||
* 轮训查询订单状态和状态流转
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/businessStatus")
|
||||
fun queryBusinessStatus(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<BusinessStatusResponse>
|
||||
|
||||
/**
|
||||
* 06结束订单 03
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/flow/v1/driver/serviceEnd")
|
||||
fun endOrder(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 07查询线路的轨迹文件信息 12
|
||||
* 启动自动驾驶使用
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/contrail")
|
||||
fun queryLocusByLineId(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken(),
|
||||
@Query("lineId") lineId: String?
|
||||
): Observable<LocusResponse>
|
||||
|
||||
/**
|
||||
* 08查询包车业务时间 11
|
||||
* 倒计时5分钟 消息盒子、倒计时结束弹窗
|
||||
*/
|
||||
@GET("/och-rental-cabin/api/business/v1/driver/queryBusinessTime")
|
||||
fun queryBusinessTime(
|
||||
@Header("appId") appId: String = MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
@Header("ticket") ticket: String=MoGoAiCloudClientConfig.getInstance().token,
|
||||
@Query("sn") sn: String = CallerTelematicManager.getServerToken()
|
||||
): Observable<BusinessTimeResponse>
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.eagle.core.function.hmi.ui.msgbox.MMsgBoxButtonView
|
||||
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
|
||||
@@ -12,8 +13,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.AppStateManager
|
||||
import com.mogo.eagle.core.utilcode.util.ClickUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.bus.passenger.R
|
||||
import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import kotlinx.android.synthetic.m1.m1_main_fragment.*
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
@@ -45,14 +48,22 @@ class MainFragment :
|
||||
openSettingPage(M1ContainFragment.SETTINGDEVICETAB)
|
||||
}
|
||||
cb_bp_setting_order.onClick {
|
||||
openSettingPage(M1ContainFragment.SETTINGORDERTAB)
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
openSettingPage(M1ContainFragment.SETTINGORDERTAB)
|
||||
}else{
|
||||
ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver))
|
||||
}
|
||||
}
|
||||
iv_end_order.onClick {
|
||||
if (LoginStatusManager.isLogin()) {
|
||||
// TODO: 结束订单
|
||||
}else{
|
||||
ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver))
|
||||
}
|
||||
}
|
||||
v_debug.setOnLongClickListener {
|
||||
ToggleDebugView.toggleDebugView.toggle(requireContext())
|
||||
true
|
||||
}
|
||||
viewBusPM1MsgBoxButton.onClick {
|
||||
|
||||
}
|
||||
viewBusPM1MsgBoxButton.setClickListener(object : MMsgBoxButtonView.ClickListener {
|
||||
override fun showMsgBoxList(show: Boolean) {
|
||||
|
||||
@@ -207,6 +207,7 @@
|
||||
android:layout_height="@dimen/dp_179"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_end_order"
|
||||
android:src="@drawable/m1_order_end"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
||||
@@ -24,5 +24,9 @@
|
||||
<string name="bus_p_m1_speed_unit">KM/h</string>
|
||||
|
||||
|
||||
<string name="m1_please_login_driver">请安全员登录司机屏</string>
|
||||
|
||||
|
||||
|
||||
|
||||
</resources>
|
||||
@@ -1,28 +1,36 @@
|
||||
package com.mogo.och.common.module.biz.constant
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
object LoginStatusManager {
|
||||
/**
|
||||
* 登录状态
|
||||
*/
|
||||
private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
|
||||
private val mStatusChangeListener = ConcurrentHashMap<String, ILoginStatusChangeListener>()
|
||||
|
||||
@JvmStatic
|
||||
fun setLoginStatus(status: Int) {
|
||||
when (status) {
|
||||
0 -> {
|
||||
this.loginStatus = TaxiLoginStatusEnum.Logout
|
||||
setLoginStatus(TaxiLoginStatusEnum.Logout)
|
||||
}
|
||||
1 -> {
|
||||
this.loginStatus = TaxiLoginStatusEnum.Login
|
||||
setLoginStatus(TaxiLoginStatusEnum.Login)
|
||||
}
|
||||
else -> {
|
||||
this.loginStatus = TaxiLoginStatusEnum.None
|
||||
setLoginStatus(TaxiLoginStatusEnum.None)
|
||||
}
|
||||
}
|
||||
}
|
||||
@JvmStatic
|
||||
fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
|
||||
this.loginStatus = loginStatus
|
||||
if(loginStatus!=this.loginStatus){
|
||||
this.loginStatus = loginStatus
|
||||
for (callback in mStatusChangeListener.values) {
|
||||
callback.onStatusChange(loginStatus)
|
||||
}
|
||||
}
|
||||
}
|
||||
@JvmStatic
|
||||
fun getLoginStatus(): TaxiLoginStatusEnum {
|
||||
@@ -35,4 +43,17 @@ object LoginStatusManager {
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun setControllerStatusCallback(tag: String, callback: ILoginStatusChangeListener?) {
|
||||
if (tag.isBlank()) return
|
||||
if (callback == null) {
|
||||
mStatusChangeListener.remove(tag)
|
||||
return
|
||||
}
|
||||
mStatusChangeListener[tag] = callback
|
||||
}
|
||||
|
||||
interface ILoginStatusChangeListener{
|
||||
fun onStatusChange(currentStatus:TaxiLoginStatusEnum)
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@ package com.mogo.och.common.module.biz.network.interceptor
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.functions.Function
|
||||
@@ -13,6 +15,8 @@ class FRetryWithTime<T : BaseData> : Function<T, ObservableSource<T>> {
|
||||
if (it.code == 100046 || it.code == 100045 || it.code == 100005 || it.code == 100006 || it.code == 520003) {
|
||||
MoGoAiCloudClient.getInstance().refreshToken()
|
||||
return Observable.error(OchCommonRetryException())
|
||||
}else if(it.code == 1003){
|
||||
LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Logout)
|
||||
}
|
||||
}
|
||||
return Observable.just(baseData)
|
||||
|
||||
Reference in New Issue
Block a user