From 5a214a99d01623be51c2bb3b1ae32f4895cc551e Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 18 Apr 2024 19:04:33 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0]=20[=E6=81=A2=E5=A4=8D=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=87=BA=E8=BD=A6=E3=80=81=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9B=91=E5=90=AC]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bus/presenter/BusPresenter.java | 4 ++- .../charter/presenter/DriverM1Presenter.kt | 15 ++++---- .../com/mogo/och/biz/login/LoginProvider.kt | 20 +++++++++++ .../och/biz/login/model/LoginStatusModel.java | 1 + .../biz/lansocket/LoginLanDriverSocket.kt | 1 - .../module/biz/login/ILoginCallback.java | 6 ++-- .../common/module/biz/login/LoginInfo.java | 2 ++ .../common/module/biz/login/LoginService.kt | 6 ++++ .../module/biz/login/LoginStatusManager.kt | 34 +++++++++++++++++++ .../module/biz/login/OpenOrderStatusEnum.kt | 27 +++++++++++++++ .../och/facade/route/FacadeDriverProvider.kt | 4 +++ .../facade/route/FacadePassengerProvider.kt | 7 ++++ .../mogo/och/facade/route/FacadeProvider.kt | 9 +---- .../och/shuttle/presenter/BusPresenter.java | 5 ++- .../com/mogo/och/taxi/model/TaxiModel.java | 4 +-- .../och/taxi/presenter/TaxiPresenter.java | 22 ++++++++---- .../com/mogo/och/taxi/ui/TaxiFragment.java | 23 +++++++------ .../mogo/och/taxi/ui/base/TaxiPresenter.java | 8 ++--- .../mogo/och/taxi/ui/task/TaxiTaskModel.kt | 10 +++--- 19 files changed, 158 insertions(+), 50 deletions(-) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index f6d72cb509..f5e5a35c64 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -28,6 +28,7 @@ import com.mogo.och.bus.model.OrderModel; import com.mogo.och.bus.util.BusTrajectoryManager; import com.mogo.och.bus.util.BusVoiceManager; import com.mogo.och.common.module.biz.login.ILoginCallback; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; import com.mogo.och.common.module.biz.login.LoginStatusManager; import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; @@ -61,6 +62,7 @@ public class BusPresenter extends Presenter OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this); OrderModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + LoginStatusManager.INSTANCE.addListener(TAG,this); } @Override @@ -265,7 +267,7 @@ public class BusPresenter extends Presenter } @Override - public void loginSuccess() { + public void onStatusChange(LoginStatusEnum currentStatus) { CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ OrderModel.getInstance().startOrStopOrderLoop(true); diff --git a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt index 609aae3d0d..ed63920374 100644 --- a/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt +++ b/OCH/charter/driver/src/main/java/com/magic/mogo/och/charter/presenter/DriverM1Presenter.kt @@ -16,8 +16,9 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE -import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.common.module.manager.beautifymode.BeautifyManager import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback @@ -44,6 +45,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) : DriverM1Model.get().init(context) OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()) registerListener() + LoginStatusManager.addListener(TAG,this) } private fun registerListener() { @@ -67,21 +69,18 @@ class DriverM1Presenter(view: DriverM1Fragment?) : DriverM1Model.get().release() } - override fun loginSuccess() { - d(SceneConstant.M_BUS + TAG, " loginStatus =" + isLogin()) - if(isLogin()){ + override fun onStatusChange(currentStatus: LoginStatusEnum?) { + d(SceneConstant.M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()) + if(LoginStatusManager.isLogin()){ // 查询服务状态 DriverM1Model.get().queryCurrentServiceStatus() DriverM1Model.get().startQueryCurrentOrder() }else{ CharterTrajectoryManager.stopTrajReqLoop() + DriverM1Model.get().stopQueryCurrentOrder() } } - override fun loginFail() { - DriverM1Model.get().stopQueryCurrentOrder() - } - // 登出 fun logout() { DriverM1Model.get().logout() diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt index 95849e138d..2177a0fdb9 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/LoginProvider.kt @@ -19,6 +19,7 @@ import com.mogo.och.common.module.biz.login.LoginService import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.biz.login.RoleEnum import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.EnvType import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType @@ -37,6 +38,7 @@ class LoginProvider : LoginService { private lateinit var loginFragment: Fragment private var loginStatus: LoginStatusEnum = LoginStatusEnum.None private var businessEnum: BusinessEnum = BusinessEnum.None + private var openOrderStatusEnum: OpenOrderStatusEnum = OpenOrderStatusEnum.None private var loginInfo: LoginInfo? = null override fun init(context: Context) { @@ -175,5 +177,23 @@ class LoginProvider : LoginService { return businessEnum } + override fun setOpenOrderStatusType(type: Int) { + CallerLogger.d(tag, "setOpenOrderStatusType:${type}") + if (openOrderStatusEnum.code != type) { + this.openOrderStatusEnum = OpenOrderStatusEnum.valueOf(type) + LoginStatusManager.invokeLOpenOrderStatusChange(this.openOrderStatusEnum) + } + } + + override fun getOpenOrderStatusType(): OpenOrderStatusEnum { + CallerLogger.d(tag, "getOpenOrderStatusType") + return openOrderStatusEnum + } + + override fun isOpenOrderType(): Boolean { + CallerLogger.d(tag, "isOpenOrderType:${openOrderStatusEnum == OpenOrderStatusEnum.Ordering}") + return openOrderStatusEnum == OpenOrderStatusEnum.Ordering + } + } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusModel.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusModel.java index ebd11e4238..e7809ba4f6 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusModel.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginStatusModel.java @@ -66,6 +66,7 @@ public abstract class LoginStatusModel { return; } } + LoginStatusManager.setOpenOrderType(data.data.servingStatus); LoginStatusManager.setLoginStatus(data.data.driverStatus); LoginStatusManager.setLoginInfo(data.data); CallerLogger.d(M_TAXI + TAG, "登录信息:" + data); diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt index c9b733522b..cd1188a899 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanDriverSocket.kt @@ -58,7 +58,6 @@ object LoginLanDriverSocket : ILoginCallback { // 司机端发送业务模式更改和环境校验 override fun onStatusChange(currentStatus: LoginStatusEnum?) { - super.onStatusChange(currentStatus) when (currentStatus) { LoginStatusEnum.Login -> { FlavorUtils.getEnvCheck() diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java index c8427ea07f..85e78b76e0 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/ILoginCallback.java @@ -1,13 +1,13 @@ package com.mogo.och.common.module.biz.login; public interface ILoginCallback { - default void loginSuccess(){} - - default void loginFail(){} default void onStatusChange(LoginStatusEnum currentStatus){} default void onBusinessChange(BusinessEnum businessEnum){} + + default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){} + default void onBusinessChangeDebug(BusinessEnum businessEnum){} } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java index d5965f0105..64841b8c13 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginInfo.java @@ -2,6 +2,7 @@ package com.mogo.och.common.module.biz.login; public class LoginInfo { public int driverStatus; //1登录,0登出 + public int servingStatus;//1接单中,0暂停接单 public int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车 public String orderNo; public int purpose; // 1 运营, 2 测试, 3演示 @@ -79,6 +80,7 @@ public class LoginInfo { public String toString() { return "LoginInfo{" + "driverStatus=" + driverStatus + + ", servingStatus=" + servingStatus + ", businessType=" + businessType + ", orderNo='" + orderNo + '\'' + ", purpose=" + purpose + diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt index 23525828f1..d7e53c0832 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginService.kt @@ -36,4 +36,10 @@ interface LoginService :CommonService { fun changeStatus(currentStatus: String) + fun setOpenOrderStatusType(type: Int) + + fun getOpenOrderStatusType(): OpenOrderStatusEnum + + fun isOpenOrderType(): Boolean + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt index 61c3d3a4af..2ad7abd155 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt @@ -65,6 +65,26 @@ object LoginStatusManager : CallerBase() { return BusinessEnum.None } + @JvmStatic + fun setOpenOrderType(type: Int) { + loginService?.setOpenOrderStatusType(type) + } + + @JvmStatic + fun getOpenOrderType():OpenOrderStatusEnum{ + loginService?.let { + return it.getOpenOrderStatusType() + } + return OpenOrderStatusEnum.None + } + @JvmStatic + fun isOpenOrderType():Boolean{ + loginService?.let { + return it.isOpenOrderType() + } + return false + } + @JvmStatic fun setLoginStatus(loginStatus: LoginStatusEnum) { loginService?.setLoginStatus(loginStatus) @@ -106,6 +126,13 @@ object LoginStatusManager : CallerBase() { } } + fun invokeLOpenOrderStatusChange(currentStatus: OpenOrderStatusEnum) { + M_LISTENERS.forEach { + val listener = it.value + listener.onOpenOrderStatusEnumChange(currentStatus) + } + } + @JvmStatic fun checkBusiness(businessType: Int):Boolean { loginService?.let { @@ -132,5 +159,12 @@ object LoginStatusManager : CallerBase() { } } + override fun doSomeAfterAddListener(tag: String, listener: ILoginCallback) { + super.doSomeAfterAddListener(tag, listener) + listener.onStatusChange(getLoginStatus()) + listener.onBusinessChange(getBusInessType()) + listener.onOpenOrderStatusEnumChange(getOpenOrderType()) + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt new file mode 100644 index 0000000000..7ab675ba2d --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/OpenOrderStatusEnum.kt @@ -0,0 +1,27 @@ +package com.mogo.och.common.module.biz.login + +/** + * Created on 2022/08/19 + * + * + * 0 初始状态, + * 10 接单状态 可接单, + * 20 暂停接到哪 不可接单, + */ +enum class OpenOrderStatusEnum(val code: Int) { + UnOrdering( 0 ), + Ordering( 1), + None( -1),; + + companion object { + @JvmStatic + fun valueOf(code: Int): OpenOrderStatusEnum { + for (value in values()) { + if (value.code == code) { + return value + } + } + return None + } + } +} \ No newline at end of file diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt index cbec05d18a..f8f2e04638 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeDriverProvider.kt @@ -6,7 +6,9 @@ import androidx.fragment.app.FragmentActivity import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.facade.constant.FacadeConst /** @@ -30,6 +32,8 @@ class FacadeDriverProvider : FacadeProvider() { sweeperFacadeProvider.init(context) }else { super.init(context) + LoginStatusManager.queryLoginStatusByNet() + LoginLanDriverSocket.load() } } diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt index 02f9bae3b3..7d27e9bebf 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadePassengerProvider.kt @@ -1,6 +1,8 @@ package com.mogo.och.facade.route +import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket import com.mogo.och.facade.constant.FacadeConst /** @@ -15,5 +17,10 @@ class FacadePassengerProvider : FacadeProvider() { override val functionName: String get() = TAG + override fun init(context: Context) { + super.init(context) + LoginLanPassengerSocket.load() + } + } diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index 53f3a9b663..31c5e4c81f 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -42,13 +42,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { override fun init(context: Context) { d(TAG, "FacadeProvider:init") LoginStatusManager.addListener(TAG, this) - - if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ - LoginStatusManager.queryLoginStatusByNet() - LoginLanDriverSocket.load() - }else{ - LoginLanPassengerSocket.load() - } } override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { @@ -149,7 +142,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { override fun onBusinessChange(businessEnum: BusinessEnum) { super.onBusinessChange(businessEnum) - val (bussness, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) + val (_, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) when (businessEnum) { BusinessEnum.None -> {} BusinessEnum.Taxi -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}" diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java index a4431ef6df..c8549b28ad 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/shuttle/presenter/BusPresenter.java @@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener; import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager; @@ -61,6 +62,7 @@ public class BusPresenter extends Presenter OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this); OrderModel.getInstance().init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + LoginStatusManager.INSTANCE.addListener(TAG,this); } @Override @@ -257,7 +259,8 @@ public class BusPresenter extends Presenter } @Override - public void loginSuccess() { + public void onStatusChange(LoginStatusEnum currentStatus) { + ILoginCallback.super.onStatusChange(currentStatus); CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ // OrderModel.getInstance().queryBusRoutes(); diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index d0697b0633..4d986c3571 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -286,7 +286,7 @@ public class TaxiModel { LoginStatusManager.queryLoginStatusByNet(); return; } - boolean currentOrderStatus = LoginStatusManager.isLogin(); + boolean currentOrderStatus = LoginStatusManager.isOpenOrderType(); TaxiServiceManager.changeOrderServing(mContext, currentOrderStatus, new OchCommonServiceCallback() { @@ -1058,7 +1058,7 @@ public class TaxiModel { CallerLogger.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) { if (NetworkUtils.isConnected(mContext)) { - startOrStopOrderLoop(LoginStatusManager.isLogin()); + startOrStopOrderLoop(LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType()); LoginStatusManager.queryLoginStatusByNet(); } } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index 15f7f1eb31..90d9fdedc7 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -17,7 +17,9 @@ import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.common.module.biz.login.ILoginCallback; +import com.mogo.och.common.module.biz.login.LoginStatusEnum; import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.taxi.bean.OrderQueryRespBean; @@ -50,19 +52,22 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS super(view); TaxiModel.getInstance().init(AbsMogoApplication.getApp()); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + LoginStatusManager.INSTANCE.addListener(TAG,this); + onStatusChange(LoginStatusManager.getLoginStatus()); + onOpenOrderStatusEnumChange(LoginStatusManager.getOpenOrderType()); initListeners(); } @Override public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); - CallerLogger.d(M_TAXI + TAG, "网约车-出租车拿到订单"); + CallerLogger.d(M_TAXI + TAG, "网约车-onCreate"); } @Override public void onDestroy(@NonNull LifecycleOwner owner) { super.onDestroy(owner); - + CallerLogger.d(M_TAXI + TAG, "网约车-onDestroy"); releaseListeners(); TaxiModel.getInstance().release(); } @@ -333,10 +338,9 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } @Override - public void loginSuccess() { + public void onStatusChange(LoginStatusEnum currentStatus) { //设置 是否启动订单轮训 - TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()); - + TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); // 设置当前用户角色 String role = ""; if (TaxiDriverRoleEnum.DEMO.getCode() == LoginStatusManager.getPurpose().getCode()) { @@ -346,8 +350,14 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } String finalRole = role; runOnUIThread(() -> { - mView.updateOperationStatus(LoginStatusManager.isLogin(), finalRole); + mView.setRole(finalRole); }); } + @Override + public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) { + runOnUIThread(() -> { + mView.updateOperationStatus(LoginStatusManager.getOpenOrderType()); + }); + } } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 1e3b0d2e2d..2fa5b927fa 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -17,6 +17,8 @@ import androidx.fragment.app.FragmentTransaction; import com.mogo.eagle.core.data.temp.EventLogout; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.och.common.module.biz.login.LoginStatusManager; +import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum; import com.mogo.och.taxi.R; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; @@ -145,7 +147,6 @@ public class TaxiFragment extends BaseTaxiTabFragment implements ITaxiADASS super(view); TaxiTaskModel.INSTANCE.init(); OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp()); + onStatusChange(LoginStatusManager.getLoginStatus()); initListeners(); } @@ -197,10 +199,8 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS }); } - @Override - public void loginSuccess() { - + public void onStatusChange(LoginStatusEnum currentStatus) { // 设置当前用户角色 String role = ""; if (RoleEnum.DEMO == LoginStatusManager.getPurpose()) { @@ -210,7 +210,7 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } String finalRole = role; runOnUIThread(() -> { - mView.updateOperationStatus(LoginStatusManager.isLogin(), finalRole); + mView.updateOperationStatus(LoginStatusManager.isOpenOrderType(), finalRole); }); if (!TaxiTaskModel.INSTANCE.checkCurrentTaskCondition()) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index 5c0773413b..5f9ec8d534 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -990,7 +990,7 @@ object TaxiTaskModel { d( TAG, "prepareNextTask onSuccess:${GsonUtil.jsonFromObject(data)}, " + - "isCarServingStatus = ${LoginStatusManager.isLogin()}" + "isCarServingStatus = ${LoginStatusManager.isOpenOrderType()}" ) DebugView.printInfoMsg("[PrepareNextTask] 请求success") isPrepareingNextTask = false @@ -1000,7 +1000,7 @@ object TaxiTaskModel { DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg") d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg") isPrepareingNextTask = false - if (LoginStatusManager.isLogin() + if (LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType() && QueryCurrentTaskRespBean.isTaskCompleteTaskType(mCurrentTaskWithOrder)) { mCurrentTaskWithOrder?.endSite?.siteId?.also { startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it) @@ -1014,7 +1014,7 @@ object TaxiTaskModel { "net = ${NetworkUtils.isConnected(mContext)}") d(TAG, "prepareNextTask onError, , net = ${NetworkUtils.isConnected(mContext)}") isPrepareingNextTask = false - if (LoginStatusManager.isLogin() + if (LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType() && QueryCurrentTaskRespBean.isTaskCompleteTaskType(mCurrentTaskWithOrder)) { mCurrentTaskWithOrder?.endSite?.siteId?.also { startPrepareTaskDelay(TaxiUnmannedConst.START_PREPARE_TASK_RETRY_INTERVAL,it) @@ -1103,7 +1103,7 @@ object TaxiTaskModel { LoginStatusManager.queryLoginStatusByNet() return } - if (LoginStatusManager.isLogin()) {//接单状态下,去结束 + if (LoginStatusManager.isOpenOrderType()) {//接单状态下,去结束 DebugView.printInfoMsg("[暂停接单] 准备发送请求") TaxiTaskWithOrderServiceManager.endService( mContext, @@ -1533,7 +1533,7 @@ object TaxiTaskModel { } fun updatePrepareTaskDelayUI() { - if (!LoginStatusManager.isLogin()){ + if (!LoginStatusManager.isOpenOrderType()){ mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value listener.onStartPrepareTaskUI(0, false)