From ebf9cd4220786e97d3a011bf5ceef4030d8906c5 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Sat, 25 Feb 2023 14:47:07 +0800 Subject: [PATCH] =?UTF-8?q?[m1]=20[1.1.2]=20[=E7=99=BB=E5=BD=95=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2=E8=BD=AE=E8=AE=AD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bus/passenger/bean/LoopInfo.kt | 3 + .../bus/passenger/model/BusPassengerModel.kt | 61 ++++++----- .../net/BusPassengerModelLoopManager.kt | 36 ++++--- .../net/BusPassengerServiceManager.kt | 84 +++++++++------ .../passenger/net/PassengerServiceApi.java | 73 ------------- .../bus/passenger/net/PassengerServiceApi.kt | 100 ++++++++++++++++++ .../mogo/och/bus/passenger/ui/MainFragment.kt | 19 +++- .../src/m1/res/layout/m1_main_fragment.xml | 1 + .../src/m1/res/values/strings.xml | 4 + .../module/biz/constant/LoginStatusManager.kt | 29 ++++- .../biz/network/interceptor/FRetryWithTime.kt | 4 + 11 files changed, 260 insertions(+), 154 deletions(-) create mode 100644 OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/LoopInfo.kt delete mode 100644 OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.java create mode 100644 OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/LoopInfo.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/LoopInfo.kt new file mode 100644 index 0000000000..9baf1d93c7 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/LoopInfo.kt @@ -0,0 +1,3 @@ +package com.mogo.och.bus.passenger.bean + +data class LoopInfo(val interval:Long,val function: () -> Unit) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt index a2cb2ba967..9d3ad359a6 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/BusPassengerModel.kt @@ -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() + private val mControllerStatusCallbackMap = + ConcurrentHashMap() // 当前位置坐标 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 { 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 { } 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 651ebc7ddc..bff9e31a93 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 @@ -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 Unit>() + private val mControllerStatusCallbackMap = ConcurrentHashMap() - 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") + } + } } } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt index 9bbcca5569..8054bb543a 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt @@ -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? ) { - 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?) { + mBusPassengerServiceApi.queryLineList().transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "lineList")) + } + + + @JvmStatic + fun queryLineSiteList( context: Context, - callback: OchCommonServiceCallback? + lindId: String, + callback: OchCommonServiceCallback? ) { - 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? + ) { + mBusPassengerServiceApi.queryBusinessStatus().transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "businessStatus")) + } + + + @JvmStatic + fun endOrder(context: Context, callback: OchCommonServiceCallback?) { + mBusPassengerServiceApi.endOrder().transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "serviceEnd")) + } + + @JvmStatic + fun queryLocusByLineId( + context: Context, + lindId: String, + callback: OchCommonServiceCallback? + ) { + mBusPassengerServiceApi.queryLocusByLineId(lineId = lindId).transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "contrail")) + } + + @JvmStatic + fun queryBusinessTime( + context: Context, + callback: OchCommonServiceCallback? + ) { + mBusPassengerServiceApi.queryBusinessTime().transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusinessTime")) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.java b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.java deleted file mode 100644 index 9ce79864f0..0000000000 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.java +++ /dev/null @@ -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 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 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 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 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 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 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 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 queryBusinessTime(@Header("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn); - -} diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt new file mode 100644 index 0000000000..cc7dbbc0eb --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/net/PassengerServiceApi.kt @@ -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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 + + /** + * 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 +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/MainFragment.kt index 07d9e0ab70..6988e61903 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/MainFragment.kt @@ -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) { diff --git a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_main_fragment.xml b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_main_fragment.xml index d5e5f00aaa..493903cfa2 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_main_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/m1/res/layout/m1_main_fragment.xml @@ -207,6 +207,7 @@ android:layout_height="@dimen/dp_179"/> KM/h + 请安全员登录司机屏 + + + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt index 8f290529b7..8f339cebde 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt @@ -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() @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) + } } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt index 93869d6edc..5e7796806e 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt @@ -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 : Function> { 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)