From 2080efee38a8ffaea2e800aa48605438462e6278 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 11 Apr 2024 18:48:03 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0]=20[=E6=A8=A1=E5=BC=8F=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E3=80=81=E8=BD=A6=E5=9E=8B=E5=90=8D=E7=A7=B0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E3=80=81=E6=B8=85=E6=89=AB=E8=BD=A6=E8=B7=AF=E7=94=B1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/util/BusVoiceManager.kt | 2 +- .../java/com/mogo/och/bus/view/BizMapView.kt | 4 +- .../och/bus/passenger/BusPassengerProvider.kt | 11 +- .../passenger/model/CharterPassengerModel.kt | 4 +- .../com/mogo/och/biz/login/LoginProvider.kt | 81 ++++++-- .../login/bean/DriverStatusQueryRespBean.java | 6 + .../biz/login/callback/ILoginViewCallback.kt | 5 + .../login/callback/ITaxiLoginCallback.java | 1 - .../mogo/och/biz/login/model/LoginModel.kt | 5 +- .../och/biz/login/model/LoginStatusModel.java | 15 +- .../biz/login/net/OchCommonServiceManager.kt | 4 + .../presenter/LoginPassengerPresenter.kt | 4 - .../och/biz/login/presenter/LoginPresenter.kt | 4 - .../mogo/och/biz/login/ui/LoginFragment.kt | 49 +++-- .../biz/login/ui/LoginPassengerFragment.kt | 10 +- .../biz/login/ui/errorview/ErrorInfoView.kt | 67 ++++++ .../login/ui/errorview/ErrorInfoViewModel.kt | 66 ++++++ .../res/drawable/biz_login_error_info.xml | 6 + .../main/res/drawable/biz_login_error_see.xml | 6 + .../res/layout/biz_login_errorinfo_view.xml | 65 ++++++ .../src/main/res/layout/biz_login_view.xml | 10 + OCH/common/biz/src/main/res/values/colors.xml | 8 + .../biz/src/main/res/values/strings.xml | 2 + .../och/common/module/bean/dpmsg/DPMsgType.kt | 4 +- ...TaxiLoginStatusEnum.kt => BusinessEnum.kt} | 10 +- .../module/biz/login/ILoginCallback.java | 4 +- .../common/module/biz/login/LoginInfo.java | 1 + .../common/module/biz/login/LoginService.kt | 10 +- .../module/biz/login/LoginStatusEnum.kt | 27 +++ .../module/biz/login/LoginStatusManager.kt | 41 +++- .../{TaxiDriverRoleEnum.kt => RoleEnum.kt} | 8 +- .../biz/network/OchCommonSubscribeImpl.kt | 9 + .../biz/network/interceptor/FRetryWithTime.kt | 4 +- .../module/biz/provider/CommonService.kt | 2 + .../orderlogmanager/OchChainLogManager.kt | 7 + OCH/facade/script/och.gradle | 15 +- .../och/facade/route/FacadeDriverProvider.kt | 45 +++-- .../mogo/och/facade/route/FacadeProvider.kt | 25 ++- .../och/facade/route/SweeperFacadeProvider.kt | 73 +++++++ .../bus/fragment/BaseShuttleTabFragment.java | 5 +- .../mogo/och/bus/util/ShuttleVoiceManager.kt | 2 +- .../java/com/mogo/och/bus/view/BizMapView.kt | 4 +- .../passenger/src/m2/AndroidManifest.xml | 12 -- .../passenger/ShuttlePassengerProvider.kt | 11 +- .../shuttle/passenger/model/TicketModel.kt | 4 +- OCH/sweeper/driver/build.gradle | 13 +- .../java/com/mogo/och/sweeper/IMogoOCH.java | 24 --- .../com/mogo/och/sweeper/SweeperProvider.java | 191 ------------------ .../com/mogo/och/sweeper/SweeperProvider.kt | 122 +++++++++++ .../mogo/och/taxi/ui/base/TaxiPresenter.java | 6 +- app/build.gradle | 12 -- app/config/productWithVehicle.json | 24 +++ app/script/projectFlavors/project.gradle | 4 + app/script/utils.gradle | 46 ++++- app/script/vehicleFlavors/B1.gradle | 4 +- app/script/vehicleFlavors/B2.gradle | 4 +- app/script/vehicleFlavors/C1.gradle | 10 +- app/script/vehicleFlavors/T1T2.gradle | 4 +- .../mogo/launcher/startup/ConfigStartUp.kt | 11 +- .../core/function/smp/view/SmallMapView.kt | 4 +- .../core/data/config/FunctionBuildConfig.kt | 6 + .../utilcode/mogo/AppIdentityModeUtils.kt | 42 ++-- .../com/mogo/commons/screen/ScreenHelper.java | 4 +- 63 files changed, 885 insertions(+), 404 deletions(-) create mode 100644 OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt create mode 100644 OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt create mode 100644 OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt create mode 100644 OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml create mode 100644 OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml create mode 100644 OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view.xml create mode 100644 OCH/common/biz/src/main/res/values/colors.xml rename OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/{TaxiLoginStatusEnum.kt => BusinessEnum.kt} (71%) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt rename OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/{TaxiDriverRoleEnum.kt => RoleEnum.kt} (62%) create mode 100644 OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt delete mode 100644 OCH/shuttle/passenger/src/m2/AndroidManifest.xml delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/IMogoOCH.java delete mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java create mode 100644 OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt create mode 100644 app/config/productWithVehicle.json diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt index 71a562a555..999aaa4f7a 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt @@ -21,7 +21,7 @@ object BusVoiceManager { } fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { return } val context = AbsMogoApplication.getApp() diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt index 47a515da4b..fe5d97bbcc 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/view/BizMapView.kt @@ -20,9 +20,9 @@ class BizMapView @JvmOverloads constructor( private lateinit var mapBizView: MapBizView init { - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { LayoutInflater.from(context).inflate(R.layout.bus_m2_bizmap_map, this, true) - }else if(AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){ + }else if(AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){ LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true) }else{ LayoutInflater.from(context).inflate(R.layout.bus_jl_bizmap_map, this, true) diff --git a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt index f6b5166313..a72be20a55 100644 --- a/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt +++ b/OCH/bus/passenger/src/main/java/com/mogo/och/bus/passenger/BusPassengerProvider.kt @@ -16,7 +16,6 @@ import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView import com.mogo.och.bus.passenger.ui.BusPStatusBarView import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.provider.CommonService import com.mogo.och.common.module.biz.provider.CommonServiceImpl import com.mogo.och.common.module.wigets.media.MediaPlayerActivity @@ -33,7 +32,7 @@ class BusPassengerProvider : CommonServiceImpl() { private lateinit var mPM2Fragment: Fragment override fun getFragment(): Fragment { - if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) } return mPM2Fragment @@ -41,9 +40,9 @@ class BusPassengerProvider : CommonServiceImpl() { override fun getStatusBarView(context: Context): View { if(statusBarView==null) { - statusBarView = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + statusBarView = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { M2StatusBarView(context) - } else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { BusPStatusBarView(context) } else{ StatusBarView(context) @@ -54,9 +53,9 @@ class BusPassengerProvider : CommonServiceImpl() { override fun init(context: Context) { CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init") - mPM2Fragment = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { PM2BaseFragment() - } else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { BusPassengerRouteFragment() } else { BusPassengerRouteFragment() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index 7695645f93..08c2a8485c 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -40,7 +40,7 @@ import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManag import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.login.ILoginCallback -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.CharterSendTripInfoManager import com.mogo.och.common.module.manager.CharterSendTripInfoManager.LEAVE_STATION @@ -164,7 +164,7 @@ object CharterPassengerModel { */ private fun listenerLoginStatus() { LoginStatusManager.addListener(TAG,object : ILoginCallback{ - override fun onStatusChange(currentStatus: TaxiLoginStatusEnum?) { + override fun onStatusChange(currentStatus: LoginStatusEnum?) { if (LoginStatusManager.isLogin()) { // 1、打开视频播放、 // 2 、打开空调暖风机灯设置页面 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 6c2b3d2e80..e626b292b7 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 @@ -7,15 +7,18 @@ 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.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.biz.login.callback.ILoginViewCallback +import com.mogo.och.biz.login.callback.ITaxiLoginCallback import com.mogo.och.biz.login.model.LoginStatusDefaultModel import com.mogo.och.biz.login.ui.LoginFragment import com.mogo.och.biz.login.ui.LoginPassengerFragment import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.LoginInfo 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.TaxiDriverRoleEnum -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum +import com.mogo.och.common.module.biz.login.RoleEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum /** * 网约车小巴业务实现入口 @@ -27,7 +30,8 @@ class LoginProvider : LoginService { private val tag = LoginProvider::class.java.simpleName private lateinit var loginFragment: Fragment - private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None + private var loginStatus: LoginStatusEnum = LoginStatusEnum.None + private var businessEnum: BusinessEnum = BusinessEnum.None private var loginInfo: LoginInfo?=null override fun init(context: Context) { @@ -54,13 +58,13 @@ class LoginProvider : LoginService { CallerLogger.d(tag,"setLoginStatus:${status}") when (status) { 0 -> { - setLoginStatus(TaxiLoginStatusEnum.Logout) + setLoginStatus(LoginStatusEnum.Logout) } 1 -> { - setLoginStatus(TaxiLoginStatusEnum.Login) + setLoginStatus(LoginStatusEnum.Login) } else -> { - setLoginStatus(TaxiLoginStatusEnum.None) + setLoginStatus(LoginStatusEnum.None) } } } @@ -75,6 +79,42 @@ class LoginProvider : LoginService { LoginStatusDefaultModel.logout(mLatitude, mLongitude) } + override fun checkBusiness(data: LoginInfo): Boolean { + val businessEnum = BusinessEnum.valueOf(data.businessType) + FunctionBuildConfig.supportBusiness.forEach { + when (it) { + "shuttle" -> { + return checkBusiness(businessEnum==BusinessEnum.Shuttle) + } + "bus" -> { + return checkBusiness(businessEnum==BusinessEnum.Bus) + } + "taxi" -> { + return checkBusiness(businessEnum==BusinessEnum.Taxi) + } + "charter" -> { + return checkBusiness(businessEnum==BusinessEnum.Charter) + } + else -> {} + } + } + if(loginFragment is ILoginViewCallback){ + (loginFragment as ILoginViewCallback).showErrorInfo("业务模式不支持") + } + return false + } + + private fun checkBusiness(isSupply:Boolean):Boolean{ + return if(isSupply){ + true + }else{ + if(loginFragment is ILoginViewCallback){ + (loginFragment as ILoginViewCallback).showErrorInfo("业务模式不支持") + } + false + } + } + override fun setLoginInfo(loginInfo: LoginInfo) { CallerLogger.d(tag,"setLoginInfo:${loginInfo}") this.loginInfo = loginInfo @@ -85,28 +125,43 @@ class LoginProvider : LoginService { return loginInfo } - override fun getPurpose(): TaxiDriverRoleEnum { + override fun getPurpose(): RoleEnum { CallerLogger.d(tag,"getPurpose") - return TaxiDriverRoleEnum.valueOf(loginInfo?.purpose) + return RoleEnum.valueOf(loginInfo?.purpose) } override fun isLogin(): Boolean { - CallerLogger.d(tag,"isLogin") - return loginStatus == TaxiLoginStatusEnum.Login + CallerLogger.d(tag,"isLogin:${loginStatus == LoginStatusEnum.Login}") + return loginStatus == LoginStatusEnum.Login } - override fun getLoginStatus(): TaxiLoginStatusEnum { + override fun getLoginStatus(): LoginStatusEnum { CallerLogger.d(tag,"getLoginStatus:${loginStatus}") return loginStatus } - override fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) { - CallerLogger.d(tag,"setLoginStatus:${loginStatus}") + override fun setLoginStatus(loginStatus: LoginStatusEnum) { + CallerLogger.d(tag,"setLoginStatus:${loginStatus}----old${this.loginStatus}") if(loginStatus!=this.loginStatus){ this.loginStatus = loginStatus LoginStatusManager.invokeLoginStatusChange(loginStatus) } } + + override fun setBusinessType(type: Int) { + CallerLogger.d(tag,"setBusinessType:${type}") + if (businessEnum.code!=type) { + this.businessEnum = BusinessEnum.valueOf(type) + LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum) + } + } + + override fun getBusinessType(): BusinessEnum { + CallerLogger.d(tag,"getBusinessType") + return businessEnum + } + + } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java index 4e6173b0ed..48966c7b5b 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/bean/DriverStatusQueryRespBean.java @@ -11,4 +11,10 @@ import com.mogo.och.common.module.biz.login.LoginInfo; public class DriverStatusQueryRespBean extends BaseData { public LoginInfo data; + @Override + public String toString() { + return "DriverStatusQueryRespBean{" + + "data=" + data + + '}'; + } } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt new file mode 100644 index 0000000000..553217bdf3 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ILoginViewCallback.kt @@ -0,0 +1,5 @@ +package com.mogo.och.biz.login.callback + +interface ILoginViewCallback { + fun showErrorInfo(errorInfo: String) +} diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java index bedbc2580e..ee4a439542 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/callback/ITaxiLoginCallback.java @@ -7,5 +7,4 @@ package com.mogo.och.biz.login.callback; */ public interface ITaxiLoginCallback { void getPhoneCodeSuccess(); - void loginSuccess(); } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt index 65267fbe42..865ae404d7 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -11,8 +11,6 @@ import com.mogo.och.biz.login.bean.TaxiLoginReqBean import com.mogo.och.biz.login.bean.TaxiLoginRespBean import com.mogo.och.biz.login.callback.ITaxiLoginCallback import com.mogo.och.biz.login.net.OchCommonServiceManager -import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.ToastUtilsOch import com.mogo.och.common.module.wigets.toast.ToastCharterUtils @@ -98,11 +96,10 @@ object LoginModel { if (null != data && 0 == data.code) { // 获取验证码成功 ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) - LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login) + LoginStatusDefaultModel.queryCarStatus() mContext?.let { c -> SharedPrefsMgr.getInstance().putString("och_account", phone) } - iTaxiLoginCallback?.loginSuccess() } else { if (data != null) { ToastCharterUtils.showToastShort(data.code.toString()) 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 a5cf118265..e489777261 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 @@ -5,12 +5,14 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAX import android.content.Context; import com.mogo.eagle.core.data.BaseData; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.och.biz.R; import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean; import com.mogo.och.biz.login.bean.TaxiLogoutReqBean; import com.mogo.och.biz.login.net.OchCommonServiceManager; +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.constant.OchCommonConst; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; @@ -52,9 +54,20 @@ public abstract class LoginStatusModel { @Override public void onSuccess(DriverStatusQueryRespBean data) { if (null != data && 0 == data.code) { + // 业务不支持 + if (!LoginStatusManager.checkBusiness(data.data)) { + // 后台已登录 去退出登录 + if (LoginStatusEnum.valueOf(data.data.driverStatus)==LoginStatusEnum.Login) { + double mLatitude = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLatitude(); + double mLongitude =CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02().getLongitude(); + LoginStatusManager.loginOut(mLatitude,mLongitude); + return; + } + } + LoginStatusManager.setBusinessType(data.data.businessType); LoginStatusManager.setLoginStatus(data.data.driverStatus); LoginStatusManager.setLoginInfo(data.data); - CallerLogger.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus()); + CallerLogger.d(M_TAXI + TAG, "登录信息:" + data); loginSuccess(data); } } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt index 3cfa70e051..f8ddec4542 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.biz.login.bean.TaxiLoginRespBean import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean import com.mogo.och.biz.login.bean.TaxiLogoutReqBean @@ -88,6 +89,7 @@ object OchCommonServiceManager { location4Login: TaxiLoginReqBean.Location4Login, callback: OchCommonServiceCallback? ) { + CallerLogger.d(TAG, "gotoLoginBycode:通过手机验证码登录:${phone}---${code}"); val sn = SharedPrefsMgr.getInstance().sn if (ProjectUtils.isMogo()) { ochLoginServiceMogo.gotoLoginBycode( @@ -113,6 +115,7 @@ object OchCommonServiceManager { location4Login: TaxiLogoutReqBean.Location4Login?, callback: OchCommonServiceCallback? ) { + CallerLogger.d(TAG, "logout:登出"); if (ProjectUtils.isMogo()) { ochLoginServiceMogo.logout( MoGoAiCloudClientConfig.getInstance().serviceAppId, @@ -145,6 +148,7 @@ object OchCommonServiceManager { context: Context, callback: OchCommonServiceCallback? ) { + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态"); val sn = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { SharedPrefsMgr.getInstance().sn diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt index a13ebc218c..20b07d8b7b 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPassengerPresenter.kt @@ -43,8 +43,4 @@ class LoginPassengerPresenter(view: LoginPassengerFragment?) : Presenter(view), IT }) } - override fun loginSuccess() { - mView?.loginSuccess() - } - fun gotoLogin(phone: String, code: String) { if(!LoginModel.hasInit()){ initListeners() diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt index efdf036012..36fcc0ab85 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginFragment.kt @@ -3,6 +3,7 @@ package com.mogo.och.biz.login.ui import android.graphics.Rect import android.os.SystemClock import android.view.* +import android.view.ViewTreeObserver.OnGlobalLayoutListener import androidx.core.content.ContextCompat import androidx.core.widget.addTextChangedListener import com.mogo.commons.mvp.MvpFragment @@ -12,7 +13,9 @@ 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.ActivityUtils import com.mogo.eagle.core.utilcode.util.KeyboardUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.biz.R +import com.mogo.och.biz.login.callback.ILoginViewCallback import com.mogo.och.biz.login.presenter.LoginPresenter import com.mogo.och.common.module.utils.RxUtils import kotlinx.android.synthetic.main.biz_login_view.biz_acbtn_login @@ -22,13 +25,14 @@ import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_get_code import kotlinx.android.synthetic.main.biz_login_view.biz_actv_login_show_sn import kotlinx.android.synthetic.main.biz_login_view.biz_actv_welcome_login_title import kotlinx.android.synthetic.main.biz_login_view.biz_cl_driver_main +import kotlinx.android.synthetic.main.biz_login_view.eiv_Info /** * @author: yangyakun * @date: 2022/8/15 */ -class LoginFragment : MvpFragment(){ +class LoginFragment : MvpFragment(), ILoginViewCallback { override fun getLayoutId(): Int { return R.layout.biz_login_view @@ -65,22 +69,32 @@ class LoginFragment : MvpFragment(){ biz_actv_welcome_login_title.setOnClickListener { continuousClick() } - biz_cl_driver_main.viewTreeObserver.addOnGlobalLayoutListener { - val rect = Rect() - biz_cl_driver_main.getWindowVisibleDisplayFrame(rect) - val mainInvisibleHeight = biz_cl_driver_main.rootView.height - rect.bottom - if (mainInvisibleHeight > 100) { - val outLocation = IntArray(2) - biz_acbtn_login.getLocationInWindow(outLocation) - val srollHeight = (outLocation[1] + biz_acbtn_login.height) - rect.bottom - if (srollHeight > 0) { - biz_cl_driver_main.scrollTo(0, srollHeight) + biz_cl_driver_main.viewTreeObserver.addOnGlobalLayoutListener(object :OnGlobalLayoutListener{ + override fun onGlobalLayout() { + try { + if (biz_cl_driver_main==null) { + biz_cl_driver_main.viewTreeObserver.removeOnGlobalLayoutListener(this) + }else{ + val rect = Rect() + biz_cl_driver_main.getWindowVisibleDisplayFrame(rect) + val mainInvisibleHeight = biz_cl_driver_main.rootView.height - rect.bottom + if (mainInvisibleHeight > 100) { + val outLocation = IntArray(2) + biz_acbtn_login.getLocationInWindow(outLocation) + val srollHeight = (outLocation[1] + biz_acbtn_login.height) - rect.bottom + if (srollHeight > 0) { + biz_cl_driver_main.scrollTo(0, srollHeight) + } + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight") + } else { + biz_cl_driver_main.scrollTo(0, 0) + } + } + }catch (e:Exception){ + e.printStackTrace() } - CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "滚动的距离:$srollHeight") - } else { - biz_cl_driver_main.scrollTo(0, 0) } - } + }) biz_actv_login_get_code.onClick { mPresenter?.getPhoneCode(biz_ace_login_phone_value.text.toString()) } @@ -159,8 +173,9 @@ class LoginFragment : MvpFragment(){ } } - fun loginSuccess() { - + override fun showErrorInfo(errorInfo: String) { + ToastUtils.showLong(errorInfo) + eiv_Info.visibility = View.VISIBLE } override fun onResume() { diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt index b865280149..b8b0f63bc1 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/LoginPassengerFragment.kt @@ -5,6 +5,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.biz.R +import com.mogo.och.biz.login.callback.ILoginViewCallback import com.mogo.och.biz.login.presenter.LoginPassengerPresenter import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main @@ -13,7 +14,8 @@ import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_ * @author: yangyakun * @date: 2022/8/15 */ -class LoginPassengerFragment : MvpFragment(){ +class LoginPassengerFragment : MvpFragment(), + ILoginViewCallback { override fun getLayoutId(): Int { return R.layout.biz_login_passenger_view @@ -24,7 +26,7 @@ class LoginPassengerFragment : MvpFragment countDownSeconds - aLong } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ + viewCallback?.setCountDownText("${it}s",false) + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时:$it") + }, { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onError:${it}") + it.printStackTrace() + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + }, { + CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onComplete") + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + }) + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + + } + + interface IErrorInfoViewCallback { + fun setCountDownText(s: String, b: Boolean) + + } + + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml b/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml new file mode 100644 index 0000000000..252c42a791 --- /dev/null +++ b/OCH/common/biz/src/main/res/drawable/biz_login_error_info.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml b/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml new file mode 100644 index 0000000000..6725501574 --- /dev/null +++ b/OCH/common/biz/src/main/res/drawable/biz_login_error_see.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view.xml b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view.xml new file mode 100644 index 0000000000..e4c613e28f --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_errorinfo_view.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_view.xml b/OCH/common/biz/src/main/res/layout/biz_login_view.xml index b8c4510382..530b02862d 100644 --- a/OCH/common/biz/src/main/res/layout/biz_login_view.xml +++ b/OCH/common/biz/src/main/res/layout/biz_login_view.xml @@ -128,5 +128,15 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"/> + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/values/colors.xml b/OCH/common/biz/src/main/res/values/colors.xml new file mode 100644 index 0000000000..0b4e8be82d --- /dev/null +++ b/OCH/common/biz/src/main/res/values/colors.xml @@ -0,0 +1,8 @@ + + + + #5F6582 + #72A7FF + #A0B3DA + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/values/strings.xml b/OCH/common/biz/src/main/res/values/strings.xml index 60dcf03c44..56bbdcd277 100644 --- a/OCH/common/biz/src/main/res/values/strings.xml +++ b/OCH/common/biz/src/main/res/values/strings.xml @@ -17,4 +17,6 @@ 取消 扫描二维码完成车辆绑定 + + 我知道了 \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index cada587957..a015fd5d97 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -14,5 +14,7 @@ enum class DPMsgType(val type: Int) { TYPE_ARRIVEDEST_STATUS(6), //到站通知 status TYPE_ORDER_CLOSED_BY_M1_STATUS(7), //到站通知 status TYPE_WRITEOFF_INFO(8), //核销信息 - TYPE_WRITEOFF_DEVICES_INFO(9) //核销设备信息 + TYPE_WRITEOFF_DEVICES_INFO(9), //核销设备信息 + TYPE_CHANGE_BUSINESS_TYPE(10), //业务模式切换 + TYPE_ENV_CHECK(11) //环境核验 } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiLoginStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt similarity index 71% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiLoginStatusEnum.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt index b29afbbeca..420c9bbc9c 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiLoginStatusEnum.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/BusinessEnum.kt @@ -8,14 +8,16 @@ package com.mogo.och.common.module.biz.login * 10 已登录, * 20 已登出, */ -enum class TaxiLoginStatusEnum(val code: Int) { +enum class BusinessEnum(val code: Int) { None( 0 ), - Login( 10), - Logout( 20),; + Taxi( 9), + Bus( 10), + Shuttle( 11), + Charter( 13),; companion object { @JvmStatic - fun valueOf(code: Int): TaxiLoginStatusEnum? { + fun valueOf(code: Int): BusinessEnum { for (value in values()) { if (value.code == code) { return value 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 1b3e385d12..4f9c821b3d 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 @@ -5,6 +5,8 @@ public interface ILoginCallback { default void loginFail(){} - default void onStatusChange(TaxiLoginStatusEnum currentStatus){} + default void onStatusChange(LoginStatusEnum currentStatus){} + + default void onBusinessChange(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 d45338d947..cdfe771a3e 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 businessType; //9: taxi. 10: bus公交 11:接驳 13:包车 public String orderNo; public int purpose; // 1 运营, 2 测试, 3演示 public String sn; 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 eaf4b243a1..5bae3760bd 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 @@ -6,12 +6,15 @@ interface LoginService :CommonService { fun setLoginInfo(loginInfo: LoginInfo) fun getLoginInfo():LoginInfo? - fun getPurpose():TaxiDriverRoleEnum + fun getPurpose():RoleEnum fun isLogin():Boolean - fun getLoginStatus(): TaxiLoginStatusEnum - fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) + fun getLoginStatus(): LoginStatusEnum + fun setLoginStatus(loginStatus: LoginStatusEnum) fun setLoginStatus(status: Int) + fun setBusinessType(type: Int) + + fun getBusinessType():BusinessEnum fun queryLoginStatusByNet() @@ -19,5 +22,6 @@ interface LoginService :CommonService { * 登出 */ fun loginOut(mLatitude:Double,mLongitude:Double) + fun checkBusiness(data: LoginInfo): Boolean } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt new file mode 100644 index 0000000000..7ec1da16f6 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusEnum.kt @@ -0,0 +1,27 @@ +package com.mogo.och.common.module.biz.login + +/** + * Created on 2022/08/19 + * + * + * 0 初始状态, + * 10 已登录, + * 20 已登出, + */ +enum class LoginStatusEnum(val code: Int) { + None( -1 ), + Login( 1), + Logout( 0),; + + companion object { + @JvmStatic + fun valueOf(code: Int): LoginStatusEnum? { + for (value in values()) { + if (value.code == code) { + return value + } + } + return None + } + } +} \ 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 621947f37c..fb5c14cb7a 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 @@ -3,10 +3,8 @@ package com.mogo.och.common.module.biz.login import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.utils.CallerBase -import java.util.concurrent.ConcurrentHashMap object LoginStatusManager : CallerBase() { @@ -31,11 +29,11 @@ object LoginStatusManager : CallerBase() { loginService?.queryLoginStatusByNet() } @JvmStatic - fun getPurpose(): TaxiDriverRoleEnum { + fun getPurpose(): RoleEnum { loginService?.let { return it.getPurpose() } - return TaxiDriverRoleEnum.None + return RoleEnum.None } @JvmStatic @@ -51,18 +49,29 @@ object LoginStatusManager : CallerBase() { fun setLoginStatus(status: Int) { loginService?.setLoginStatus(status) } + @JvmStatic + fun setBusinessType(type: Int) { + loginService?.setBusinessType(type) + } + + fun getBusInessType():BusinessEnum{ + loginService?.let { + return it.getBusinessType() + } + return BusinessEnum.None + } @JvmStatic - fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) { + fun setLoginStatus(loginStatus: LoginStatusEnum) { loginService?.setLoginStatus(loginStatus) } @JvmStatic - fun getLoginStatus(): TaxiLoginStatusEnum { + fun getLoginStatus(): LoginStatusEnum { loginService?.let { return it.getLoginStatus() } - return TaxiLoginStatusEnum.None + return LoginStatusEnum.None } @JvmStatic @@ -73,11 +82,27 @@ object LoginStatusManager : CallerBase() { return false } - fun invokeLoginStatusChange(currentStatus: TaxiLoginStatusEnum) { + fun invokeLoginStatusChange(currentStatus: LoginStatusEnum) { M_LISTENERS.forEach { val listener = it.value listener.onStatusChange(currentStatus) } } + fun invokeLBusinessTypeChange(currentStatus: BusinessEnum) { + M_LISTENERS.forEach { + val listener = it.value + listener.onBusinessChange(currentStatus) + } + } + + @JvmStatic + fun checkBusiness(data: LoginInfo):Boolean { + loginService?.let { + return it.checkBusiness(data) + } + return false + } + + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiDriverRoleEnum.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt similarity index 62% rename from OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiDriverRoleEnum.kt rename to OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt index c909366ed1..4ef732cb09 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/TaxiDriverRoleEnum.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/RoleEnum.kt @@ -4,7 +4,7 @@ package com.mogo.och.common.module.biz.login * Created on 2021/12/7 * 1 运营, 2 测试, 3演示 */ -enum class TaxiDriverRoleEnum(val code: Int) { +enum class RoleEnum(val code: Int) { None( 0), OPERATION( 1), TEST( 2), @@ -13,13 +13,13 @@ enum class TaxiDriverRoleEnum(val code: Int) { companion object { @JvmStatic - fun valueOf(code: Int?): TaxiDriverRoleEnum { - for (value in TaxiDriverRoleEnum.values()) { + fun valueOf(code: Int?): RoleEnum { + for (value in RoleEnum.values()) { if (value.code == code) { return value } } - return TaxiDriverRoleEnum.None + return RoleEnum.None } } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt index 3345bd2980..053c47766e 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/OchCommonSubscribeImpl.kt @@ -4,6 +4,7 @@ import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.RequestOptions import com.mogo.eagle.core.network.SubscribeImpl import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.utils.CallerLoggerUtils.flavorTag class OchCommonSubscribeImpl( @@ -16,21 +17,29 @@ class OchCommonSubscribeImpl( const val TAG = "OchCommonSubscribeImpl" } + init { + CallerLogger.e("$flavorTag$TAG", "$apiName: 去请求()") + OchChainLogManager.writeChainLogNet("接口:${apiName}","去请求") + } + override fun onSuccess(o: T) { super.onSuccess(o) CallerLogger.d("$flavorTag$TAG", "$apiName: onSuccess() ${o.msg}") + OchChainLogManager.writeChainLogNet("接口:${apiName}","请求成功:${o}") callback?.onSuccess(o) } override fun onError(e: Throwable) { super.onError(e) CallerLogger.e("$flavorTag$TAG", "$apiName: onError() ${e.message}") + OchChainLogManager.writeChainLogNet("接口:${apiName}","请求失败:${e.message}") callback?.onError("$apiName: onError() ${e.message}") } override fun onError(message: String, code: Int) { super.onError(message, code) CallerLogger.e("$flavorTag$TAG", "$apiName: onError() code = $code; message = $message") + OchChainLogManager.writeChainLogNet("接口:${apiName}","请求失败: onError() code = $code; message = $message\"") callback?.onFail(code, message) } } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt index 38dd32ffb6..ed94bbfba7 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/network/interceptor/FRetryWithTime.kt @@ -3,7 +3,7 @@ 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.login.LoginStatusManager -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum import io.reactivex.Observable import io.reactivex.ObservableSource import io.reactivex.functions.Function @@ -16,7 +16,7 @@ class FRetryWithTime : Function> { MoGoAiCloudClient.getInstance().refreshToken() return Observable.error(OchCommonRetryException()) }else if(it.code == 1003){ - LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Logout) + LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout) } } return Observable.just(baseData) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt index 0cb3a48a95..6e3e70fc90 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/provider/CommonService.kt @@ -11,4 +11,6 @@ interface CommonService : IProvider { fun getStatusBarView(context: Context): View + fun invokeByName(type:String,value:Any){} + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt index 0162529472..536eb2788b 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt @@ -22,6 +22,13 @@ object OchChainLogManager { // 需要举行观察的 const val EVENT_KEY_INFE_ERROR = "event_key_och_error" + const val EVENT_KEY_INFO_Net = "event_key_och_net" + + + fun writeChainLogNet(info: String, changeInfo: String){ + writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_Net) + } + /** * @param Info 订单详细信息 * @param changeInfo 变化信息 diff --git a/OCH/facade/script/och.gradle b/OCH/facade/script/och.gradle index 86583651c9..dd8c3488f0 100644 --- a/OCH/facade/script/och.gradle +++ b/OCH/facade/script/och.gradle @@ -5,33 +5,40 @@ project.dependencies { } else { if (isCurrentDriver("C1")) { + println "och.gradle---Driver---C1" implementation project.project(':OCH:sweeper:driver') } else if (isCurrentDriver("B1")) { + println "och.gradle---Driver---B1" implementation project.project(':OCH:shuttle:driver') implementation project.project(':OCH:bus:driver') } else if (isCurrentPassenger("B1")) { + println "och.gradle---Passenger---B1" implementation project.project(':OCH:bus:passenger') implementation project.project(':OCH:shuttle:passenger') } else if (isCurrentDriver("M1")) { - println "utils.gradle------isDriverM1" + println "och.gradle---Driver---M1" implementation project.project(':OCH:charter:driver') } else if (isCurrentPassenger("M1")) { + println "och.gradle---Passenger---M1" implementation project.project(':OCH:charter:passenger') - println "utils.gradle------isPassengerM1" } else if (isCurrentDriver("B2")) { + println "och.gradle---Driver---B2" implementation project.project(':OCH:shuttle:driver') implementation project.project(':OCH:bus:driver') } else if (isCurrentPassenger("B2")) { + println "och.gradle---Passenger---B2" implementation project.project(':OCH:bus:passenger') implementation project.project(':OCH:shuttle:passenger') - } else if (isCurrentDriver("ochT1T2")) { + } else if (isCurrentDriver("T1T2")) { + println "och.gradle---Driver---T1T2" if(isCurrentDriver("saas")){ implementation project.project(':OCH:taxi:unmanned-driver') } if(isCurrentDriver("mogo")){ implementation project.project(':OCH:taxi:driver') } - } else if (isCurrentPassenger("ochT1T2")) { + } else if (isCurrentPassenger("T1T2")) { + println "och.gradle---Passenger---T1T2" if(isCurrentDriver("saas")){ implementation project.project(':OCH:taxi:unmanned-passenger') } 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 02d2ab1350..cbec05d18a 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 @@ -1,28 +1,12 @@ package com.mogo.och.facade.route import android.content.Context -import android.view.Gravity -import android.view.View -import android.view.ViewGroup -import android.widget.FrameLayout import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity -import androidx.fragment.app.FragmentManager import com.alibaba.android.arouter.facade.annotation.Route -import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider -import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.login.ILoginCallback -import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.biz.login.LoginStatusManager.queryLoginStatusByNet -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum -import com.mogo.och.common.module.biz.provider.CommonService -import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager +import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.facade.constant.FacadeConst /** @@ -34,7 +18,34 @@ import com.mogo.och.facade.constant.FacadeConst class FacadeDriverProvider : FacadeProvider() { private val TAG = "FacadeDriverProvider" + private val sweeperFacadeProvider:SweeperFacadeProvider by lazy { + SweeperFacadeProvider() + } + override val functionName: String get() = TAG + override fun init(context: Context) { + if (AppIdentityModeUtils.isC1(FunctionBuildConfig.appIdentityMode)) { + sweeperFacadeProvider.init(context) + }else { + super.init(context) + } + } + + override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { + if (AppIdentityModeUtils.isC1(FunctionBuildConfig.appIdentityMode)) { + return sweeperFacadeProvider.createCoverage(fragmentActivity,integer) + }else { + return super.createCoverage(fragmentActivity, integer) + } + } + + override fun onDestroy() { + super.onDestroy() + } + + override fun onStatusChange(currentStatus: LoginStatusEnum) { + super.onStatusChange(currentStatus) + } } 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 7dca684da0..b6dcd43d56 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 @@ -11,17 +11,22 @@ import androidx.fragment.app.FragmentManager import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.hmi.ui.setting.SopView +import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.login.BusinessEnum import com.mogo.och.common.module.biz.login.ILoginCallback import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.biz.login.LoginStatusManager.queryLoginStatusByNet -import com.mogo.och.common.module.biz.login.TaxiLoginStatusEnum +import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.provider.CommonService import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.utils.ProjectUtils +import org.greenrobot.eventbus.EventBus /** * 网约车小巴业务实现入口 @@ -48,10 +53,12 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { private fun showFragment() { val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager - val fragment = if (LoginStatusManager.isLogin()) { getFragment() } else { + CallerHmiManager.hideToolsView() + ToggleDebugView.toggleDebugView.dismiss() + SopView.sopView.dismiss() LoginStatusManager.getFragment() } @@ -123,11 +130,23 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { activity!!.finish() } - override fun onStatusChange(currentStatus: TaxiLoginStatusEnum) { + override fun onStatusChange(currentStatus: LoginStatusEnum) { d(TAG, "登录状态发生改变 ${currentStatus}") showFragment() } + override fun onBusinessChange(businessEnum: BusinessEnum) { + super.onBusinessChange(businessEnum) + val (bussness, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) + when (businessEnum) { + BusinessEnum.None -> {} + BusinessEnum.Taxi -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.TAXI}_${identity}_${model}" + BusinessEnum.Bus -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.BUS}_${identity}_${model}" + BusinessEnum.Shuttle -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SHUTTLE}_${identity}_${model}" + BusinessEnum.Charter -> FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.CHARTER}_${identity}_${model}" + } + } + private fun injectStatusBar() { activity?.let { diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt new file mode 100644 index 0000000000..b6001a9d34 --- /dev/null +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/SweeperFacadeProvider.kt @@ -0,0 +1,73 @@ +package com.mogo.och.facade.route + +import android.content.Context +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import androidx.fragment.app.FragmentManager +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider +import com.mogo.eagle.core.function.api.vehicle.IMoGoSweeperModeListener +import com.mogo.eagle.core.function.call.vehicle.CallerSweeperModeListenerManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonService + +/** + * 网约车小巴业务实现入口 + * + * @author tongchenfei + */ + class SweeperFacadeProvider : IMoGoFunctionProvider, IMoGoSweeperModeListener { + private var containerId = 0 + private var activity: FragmentActivity? = null + private val TAG = "SweeperFacadeProvider" + private var commonService: CommonService? = null + + override val functionName: String + get() = TAG + + override fun init(context: Context) { + d(TAG, "SweeperFacadeProvider:init") + CallerSweeperModeListenerManager.addListener(TAG, this) + } + + override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? { + containerId = integer!! + activity = fragmentActivity + showFragment() + return null + } + + private fun showFragment() { + val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager + val (_, identity, model) =AppIdentityModeUtils.getInfo(FunctionBuildConfig.appIdentityMode) + FunctionBuildConfig.appIdentityMode = "${AppIdentityModeUtils.SWEEPER}_${identity}_${model}" + val fragment = getFragmentByServeName(OchCommonConst.SWEEPER_DRIVER) + + d(TAG, "切换 fragment:${fragment}") + + if (supportFragmentManager != null) { + val back = supportFragmentManager.beginTransaction() + back.replace(containerId, fragment, fragment.tag) + back.commit() + } + } + + private fun getFragmentByServeName(serviceName: String): Fragment { + commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService? + return commonService!!.getFragment() + } + + override fun onDestroy() { + //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 + if (activity == null) return + activity!!.finish() + } + + override fun onSweeperCurrentModeChanged(currentMode: String) { + commonService?.invokeByName("reStart",currentMode) + } + +} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java index 5f69222cbd..65df210214 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BaseShuttleTabFragment.java @@ -32,7 +32,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxBubbleView; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView; import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView; -import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; import com.mogo.eagle.core.function.smp.view.SmallMapView; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; @@ -257,10 +256,10 @@ public abstract class BaseShuttleTabFragment - - - - - - - \ No newline at end of file diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt index a84ff97c23..1f39f002ba 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/ShuttlePassengerProvider.kt @@ -9,7 +9,6 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.provider.CommonService import com.mogo.och.common.module.biz.provider.CommonServiceImpl import com.mogo.och.common.module.wigets.media.MediaPlayerActivity import com.mogo.och.shuttle.passenger.model.TicketModel @@ -31,9 +30,9 @@ class ShuttlePassengerProvider : CommonServiceImpl() { override fun init(context: Context) { TicketModel.load() - mPM2Fragment = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + mPM2Fragment = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { PM2BaseFragment() - }else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + }else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { BusPassengerRouteFragment() }else{ BusPassengerRouteFragment() @@ -42,9 +41,9 @@ class ShuttlePassengerProvider : CommonServiceImpl() { override fun getStatusBarView(context: Context): View { if(statusBarView==null){ - statusBarView = if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + statusBarView = if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { M2StatusBarView(context); - } else if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { BusPStatusBarView(context); }else{ BusPStatusBarView(context); @@ -54,7 +53,7 @@ class ShuttlePassengerProvider : CommonServiceImpl() { } override fun getFragment(): Fragment { - if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java) } return mPM2Fragment diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt index 250d5ecd65..8c89181dca 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/model/TicketModel.kt @@ -55,7 +55,7 @@ object TicketModel : StateChangeListener { override fun onFail(code: Int, msg: String?) { CallerLogger.d(M_BUS_P + TAG, "核销失败 ${code}-----${msg}") when (code) { - 6002 -> {sendMessage2Driver("同一订单核销间隔时间需大于5分钟")} + 6002 -> {sendMessage2Driver("同一订单核销间隔时间需大于2分钟")} 1009 -> {sendMessage2Driver("车票所选乘车日期非今日")} 1005 -> {sendMessage2Driver("车辆未登录、或没有任务")} 1006 -> {sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合")} @@ -64,7 +64,7 @@ object TicketModel : StateChangeListener { 1012 -> {sendMessage2Driver("当前用户下单路线非当前的车辆所属公司")} else -> { when (msg) { - "6002" -> {sendMessage2Driver("同一订单核销间隔时间需大于5分钟")} + "6002" -> {sendMessage2Driver("同一订单核销间隔时间需大于2分钟")} "1009" -> {sendMessage2Driver("车票所选乘车日期非今日")} "1005" -> {sendMessage2Driver("车辆未登录、或没有任务")} "1006" -> {sendMessage2Driver("车票路线信息与当前车辆执行任务的路线信息不符合")} diff --git a/OCH/sweeper/driver/build.gradle b/OCH/sweeper/driver/build.gradle index 0cd431d266..45843f5a15 100644 --- a/OCH/sweeper/driver/build.gradle +++ b/OCH/sweeper/driver/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -15,9 +16,11 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles "consumer-rules.pro" - javaCompileOptions { - annotationProcessorOptions { - arguments = [AROUTER_MODULE_NAME: project.getName(),"room.schemaLocation": "$projectDir/schemas".toString()] + kapt { + useBuildCache = false + arguments { + arg("AROUTER_MODULE_NAME", project.getName()) + arg("room.schemaLocation", "$projectDir/schemas".toString()) } } } @@ -49,7 +52,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.arouter testImplementation 'junit:junit:4.12' - annotationProcessor rootProject.ext.dependencies.aroutercompiler + kapt rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap @@ -58,7 +61,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxrecyclerview implementation rootProject.ext.dependencies.androidxcardview implementation rootProject.ext.dependencies.androidxroomruntime - annotationProcessor rootProject.ext.dependencies.androidxroomcompiler + kapt rootProject.ext.dependencies.androidxroomcompiler implementation rootProject.ext.dependencies.localbroadcastmanager implementation project(":OCH:common:common") diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/IMogoOCH.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/IMogoOCH.java deleted file mode 100644 index 0f584c6b1d..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/IMogoOCH.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.och.sweeper; - -import androidx.annotation.IdRes; -import androidx.fragment.app.FragmentActivity; - -import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; - -public -/** - * @author congtaowang - * @since 2021/1/15 - * - * 网约车抽象接口 - */ -interface IMogoOCH extends IMoGoFunctionProvider { - - /** - * 初始化网约车容器 - * - * @param activity - * @param containerId 容器ID - */ - void createCoverage(FragmentActivity activity, @IdRes int containerId); -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java deleted file mode 100644 index 86502102e6..0000000000 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.mogo.och.sweeper; - - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_SWEEPER; - -import android.annotation.SuppressLint; -import android.content.Context; - -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.function.api.vehicle.IMoGoSweeperModeListener; -import com.mogo.eagle.core.function.call.vehicle.CallerSweeperModeListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils; -import com.mogo.eagle.core.utilcode.util.AppUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.common.module.biz.constant.OchCommonConst; -import com.mogo.och.common.module.utils.ToastUtilsOch; -import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment; -import com.mogo.och.sweeper.common.constant.SweeperConst; -import com.mogo.och.sweeper.common.database.MyDataBase; -import com.mogo.och.sweeper.common.util.SweeperAnalyticsManager; -import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import io.reactivex.Observable; -import io.reactivex.functions.Consumer; -import io.reactivex.schedulers.Schedulers; - -/** - * 清扫车业务实现入口 - * - * @author tongchenfei - */ -@Route(path = OchCommonConst.SWEEPER_DRIVER) -public class SweeperProvider implements IMogoOCH, IMoGoSweeperModeListener { - - private static final String TAG = "SweeperProvider"; - - private SweeperOperateFragment sweeperOperateFragment; - private SweeperCloudFragment sweeperCloudFragment; - private int containerId; - private FragmentActivity activity; - - @Override - public void init(Context context) { - } - - private void showOperateFragment() { - FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); - if (sweeperOperateFragment == null) { - CallerLogger.d(TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(SweeperOperateFragment.TAG); - if (fragmentByTag instanceof SweeperOperateFragment) { - sweeperOperateFragment = (SweeperOperateFragment) fragmentByTag; - } else { - sweeperOperateFragment = new SweeperOperateFragment(); - } - if (!sweeperOperateFragment.isAdded()) { - supportFragmentManager.beginTransaction().add(containerId, sweeperOperateFragment, SweeperOperateFragment.TAG).commitAllowingStateLoss(); - } - return; - } - CallerLogger.d(TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(sweeperOperateFragment).commitAllowingStateLoss(); - } - - private void showCloudFragment() { - FragmentManager supportFragmentManager = activity.getSupportFragmentManager(); - if (sweeperCloudFragment == null) { - CallerLogger.d(TAG, "准备add fragment======"); - Fragment fragmentByTag = supportFragmentManager.findFragmentByTag(SweeperCloudFragment.TAG); - if (fragmentByTag instanceof SweeperCloudFragment) { - sweeperCloudFragment = (SweeperCloudFragment) fragmentByTag; - } else { - sweeperCloudFragment = new SweeperCloudFragment(); - } - if (!sweeperCloudFragment.isAdded()) { - supportFragmentManager.beginTransaction().add(containerId, sweeperCloudFragment, SweeperCloudFragment.TAG).commitAllowingStateLoss(); - } - return; - } - CallerLogger.d(TAG, "准备show fragment"); - supportFragmentManager.beginTransaction().show(sweeperCloudFragment).commitAllowingStateLoss(); - } - - private void hideFragment() { - if (sweeperOperateFragment != null) { - CallerLogger.d(TAG, "准备hide operate fragment"); - activity.getSupportFragmentManager().beginTransaction().hide(sweeperOperateFragment).commitAllowingStateLoss(); - } else if (sweeperCloudFragment != null) { - CallerLogger.d(TAG, "准备hide cloud fragment"); - activity.getSupportFragmentManager().beginTransaction().hide(sweeperCloudFragment).commitAllowingStateLoss(); - } - CallerSweeperModeListenerManager.INSTANCE.removeListener(TAG); - } - - @Override - public void createCoverage(FragmentActivity activity, int containerId) { - } - - @NotNull - @Override - public String getFunctionName() { - return null; - } - - @Nullable - @Override - public Fragment createCoverage(@Nullable FragmentActivity fragmentActivity, @Nullable Integer integer) { - this.containerId = integer; - this.activity = fragmentActivity; - - // 第一优先级:需要默认能切换清扫业务模式 - // 第二优先级:如果能切换清扫模式,查询SP中缓存的当前模式(用户切换后会在SP中写入当前模式,切换完后清除,因为现在产品确认还不需要每次启动时首先使用用户上次选择的模式,目前优先还是使用gradle中默认配置的模式打开) - // 第三优先级:如果不能切换清扫模式或者SP中没有用户选择的当前模式,查询gradle中默认配置的当前模式(用户不进行切换时SP中没有配置,默认使用的gradle中默认当前模式) - CallerLogger.i(M_SWEEPER + TAG, "清扫车启动,当前业务模式:isSPCurrentSweeperOperateMode=" - + SweeperVehicleConfigUtils.isSPCurrentSweeperOperateMode() - + ", isSPCurrentSweeperCloudMode=" + SweeperVehicleConfigUtils.isSPCurrentSweeperCloudMode()); - if (SweeperVehicleConfigUtils.isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) - && SweeperVehicleConfigUtils.isSPCurrentSweeperOperateMode()) { - FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE; - showOperateFragment(); - ToastUtils.showLong("当前清扫业务模式:运营"); - } else if (SweeperVehicleConfigUtils.isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) - && SweeperVehicleConfigUtils.isSPCurrentSweeperCloudMode()) { - FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD; - showCloudFragment(); - ToastUtils.showLong("当前清扫业务模式:云控"); - } else if (SweeperVehicleConfigUtils.isDefaultSweeperOperateMode(FunctionBuildConfig.sweeperDefaultMode)) { - FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE; - showOperateFragment(); - ToastUtils.showLong("当前清扫业务模式:运营"); - } else if (SweeperVehicleConfigUtils.isDefaultSweeperCloudMode(FunctionBuildConfig.sweeperDefaultMode)) { - FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD; - showCloudFragment(); - ToastUtils.showLong("当前清扫业务模式:云控"); - } else { - // 默认云控模式 - FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD; - showCloudFragment(); - ToastUtils.showLong("当前清扫业务模式:云控"); - } - - CallerSweeperModeListenerManager.INSTANCE.addListener(TAG, this); - return null; - } - - @Override - public void onDestroy() { - //若不调用finish, 设置中打开关闭UITouch,会造成och fragment 重叠 - if (activity == null) return; - activity.finish(); - } - - @SuppressLint("CheckResult") - @Override - public void onSweeperCurrentModeChanged(@NonNull String currentMode) { - // 日志、埋点 - CallerLogger.i(M_SWEEPER + TAG, "切换清扫车业务模式,当前切换的模式:" + currentMode); - SweeperAnalyticsManager.getInstance().trackSweeperModeChangeEvent(currentMode); - - Observable.just(currentMode) - .observeOn(Schedulers.io()) - .subscribeOn(Schedulers.io()) - .subscribe(new Consumer() { - @Override - public void accept(String s) throws Exception { - // 写入SP当前模式 - SweeperVehicleConfigUtils.setSPCurrentSweeperMode(currentMode); - // 清除本地业务缓存数据 - MyDataBase.getInstance().getWeltDataDao().deleteAllWeltData(); - // 等清除完数据库数据后,重启App - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - AppUtils.relaunchApp(true); - } - }, 1000L); - } - }); - } -} diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt new file mode 100644 index 0000000000..44fdce3a36 --- /dev/null +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/SweeperProvider.kt @@ -0,0 +1,122 @@ +package com.mogo.och.sweeper + +import android.annotation.SuppressLint +import android.content.Context +import androidx.fragment.app.Fragment +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.function.api.vehicle.IMoGoSweeperModeListener +import com.mogo.eagle.core.function.call.vehicle.CallerSweeperModeListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperCanSwitchMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperCloudMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isDefaultSweeperOperateMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isSPCurrentSweeperCloudMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.isSPCurrentSweeperOperateMode +import com.mogo.eagle.core.utilcode.mogo.vehicle.SweeperVehicleConfigUtils.setSPCurrentSweeperMode +import com.mogo.eagle.core.utilcode.util.AppUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.sweeper.cloud.fragment.SweeperCloudFragment +import com.mogo.och.sweeper.common.database.MyDataBase +import com.mogo.och.sweeper.common.util.SweeperAnalyticsManager +import com.mogo.och.sweeper.operate.fragment.SweeperOperateFragment +import io.reactivex.Observable +import io.reactivex.schedulers.Schedulers + +/** + * 清扫车业务实现入口 + * + * @author tongchenfei + */ +@Route(path = OchCommonConst.SWEEPER_DRIVER) +class SweeperProvider : CommonServiceImpl() { + private var sweeperOperateFragment: SweeperOperateFragment? = null + private var sweeperCloudFragment: SweeperCloudFragment? = null + + override fun getFragment(): Fragment { + // 第一优先级:需要默认能切换清扫业务模式 + // 第二优先级:如果能切换清扫模式,查询SP中缓存的当前模式(用户切换后会在SP中写入当前模式,切换完后清除,因为现在产品确认还不需要每次启动时首先使用用户上次选择的模式,目前优先还是使用gradle中默认配置的模式打开) + // 第三优先级:如果不能切换清扫模式或者SP中没有用户选择的当前模式,查询gradle中默认配置的当前模式(用户不进行切换时SP中没有配置,默认使用的gradle中默认当前模式) + i( + SceneConstant.M_SWEEPER + TAG, "清扫车启动,当前业务模式:isSPCurrentSweeperOperateMode=" + + isSPCurrentSweeperOperateMode() + + ", isSPCurrentSweeperCloudMode=" + isSPCurrentSweeperCloudMode() + ) + if (isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) + && isSPCurrentSweeperOperateMode() + ) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE + ToastUtils.showLong("当前清扫业务模式:运营") + return showOperateFragment() + } else if (isDefaultSweeperCanSwitchMode(FunctionBuildConfig.sweeperCanSwitchMode) + && isSPCurrentSweeperCloudMode() + ) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } else if (isDefaultSweeperOperateMode(FunctionBuildConfig.sweeperDefaultMode)) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_OPERATE + ToastUtils.showLong("当前清扫业务模式:运营") + return showOperateFragment() + } else if (isDefaultSweeperCloudMode(FunctionBuildConfig.sweeperDefaultMode)) { + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } else { + // 默认云控模式 + FunctionBuildConfig.sweeperCurrentMode = SweeperVehicleConfigUtils.BUSINESS_MODE_CLOUD + ToastUtils.showLong("当前清扫业务模式:云控") + return showCloudFragment() + } + } + + override fun init(context: Context) { + + } + private fun showOperateFragment():Fragment { + if(sweeperOperateFragment==null){ + sweeperOperateFragment = SweeperOperateFragment() + } + return sweeperOperateFragment!! + } + + private fun showCloudFragment():Fragment { + if(sweeperCloudFragment==null){ + sweeperCloudFragment = SweeperCloudFragment() + } + return sweeperCloudFragment!! + } + @SuppressLint("CheckResult") + fun onSweeperCurrentModeChanged(currentMode: String) { + // 日志、埋点 + i(SceneConstant.M_SWEEPER + TAG, "切换清扫车业务模式,当前切换的模式:$currentMode") + SweeperAnalyticsManager.getInstance().trackSweeperModeChangeEvent(currentMode) + Observable.just(currentMode) + .observeOn(Schedulers.io()) + .subscribeOn(Schedulers.io()) + .subscribe { // 写入SP当前模式 + setSPCurrentSweeperMode(currentMode) + // 清除本地业务缓存数据 + MyDataBase.getInstance().weltDataDao.deleteAllWeltData() + // 等清除完数据库数据后,重启App + UiThreadHandler.postDelayed({ AppUtils.relaunchApp(true) }, 1000L) + } + } + + override fun invokeByName(type: String,value: Any) { + if (value is String && type=="reStart") { + onSweeperCurrentModeChanged(value) + } + } + + companion object { + private const val TAG = "SweeperProvider" + } +} diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java index d9a7e154bb..0cffcc5aac 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java @@ -18,7 +18,7 @@ import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.taxi.callback.ITaxiADASStatusCallback; import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; -import com.mogo.och.common.module.biz.login.TaxiDriverRoleEnum; +import com.mogo.och.common.module.biz.login.RoleEnum; import com.mogo.och.taxi.constant.TaxiUnmannedConst; import com.mogo.och.taxi.ui.routing.TaxiRoutingModel; import com.mogo.och.taxi.ui.task.TaxiTaskModel; @@ -203,9 +203,9 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS // 设置当前用户角色 String role = ""; - if (TaxiDriverRoleEnum.DEMO == LoginStatusManager.getPurpose()) { + if (RoleEnum.DEMO == LoginStatusManager.getPurpose()) { role = TaxiUnmannedConst.DEMO_USER; - } else if (TaxiDriverRoleEnum.TEST == LoginStatusManager.getPurpose()) { + } else if (RoleEnum.TEST == LoginStatusManager.getPurpose()) { role = TaxiUnmannedConst.TEST_USER; } String finalRole = role; diff --git a/app/build.gradle b/app/build.gradle index b82c46a2e9..a385002589 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -351,15 +351,3 @@ def variantName() { } - -def variantVehicleName() { - if(gradle.startParameter.taskNames.size()>0) { - for (String taskName : gradle.startParameter.taskNames) { - if (taskName.contains("Debug") | taskName.contains("Release")) { - return taskName - } - } - } - return "buspassenger" -} - diff --git a/app/config/productWithVehicle.json b/app/config/productWithVehicle.json new file mode 100644 index 0000000000..e5d6c670b5 --- /dev/null +++ b/app/config/productWithVehicle.json @@ -0,0 +1,24 @@ +{ + "mogo": { + "B1":["shuttle","bus"], + "B2":["shuttle","bus"], + "T1T2":["taxi"], + "M1":["charter"] + }, + "dali": { + "B1":["shuttle"], + "B2":["shuttle"], + "M1":["charter"] + }, + "yantai": { + "B1":["shuttle"], + "B2":["shuttle"], + "M1":["charter"] + }, + "saas": { + "T1T2":["taxi"], + "B1":["shuttle","bus"], + "B2":["shuttle","bus"], + "M1":["charter"] + } +} diff --git a/app/script/projectFlavors/project.gradle b/app/script/projectFlavors/project.gradle index 52ee299d25..48d4c65251 100644 --- a/app/script/projectFlavors/project.gradle +++ b/app/script/projectFlavors/project.gradle @@ -8,6 +8,7 @@ project.android.productFlavors { buildConfigField 'String', 'URLs', "\"${readFileToJson("mogo").replace("\"", "\\\"")}\"" buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("mogo").replace("\"", "\\\"")}\"" buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("mogo").replace("\"", "\\\"")}\"" + buildConfigField 'String', 'supportProduct', "\"${readProductWithVehicleConfigFromJsonFile("mogo").replace("\"", "\\\"")}\"" } yantai { dimension "project" @@ -15,6 +16,7 @@ project.android.productFlavors { buildConfigField 'String', 'URLs', "\"${readFileToJson("yantai").replace("\"", "\\\"")}\"" buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("yantai").replace("\"", "\\\"")}\"" buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("yantai").replace("\"", "\\\"")}\"" + buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("yantai").replace("\"", "\\\"")}\"" } dali { @@ -23,6 +25,7 @@ project.android.productFlavors { buildConfigField 'String', 'URLs', "\"${readFileToJson("dali").replace("\"", "\\\"")}\"" buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("dali").replace("\"", "\\\"")}\"" buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("dali").replace("\"", "\\\"")}\"" + buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("dali").replace("\"", "\\\"")}\"" } saas { dimension "project" @@ -30,6 +33,7 @@ project.android.productFlavors { buildConfigField 'String', 'URLs', "\"${readFileToJson("saas").replace("\"", "\\\"")}\"" buildConfigField 'String', 'mediaUrlConfig', "\"${readMediaUrlConfigFromJsonFile("saas").replace("\"", "\\\"")}\"" buildConfigField 'String', 'musicUrlConfig', "\"${readMusicUrlConfigFromJsonFile("saas").replace("\"", "\\\"")}\"" + buildConfigField 'String', 'supportBusiness', "\"${readProductWithVehicleConfigFromJsonFile("saas").replace("\"", "\\\"")}\"" } // 配置网络环境,QA、线上、演示 diff --git a/app/script/utils.gradle b/app/script/utils.gradle index 7f24b9368a..0269fc2bbf 100644 --- a/app/script/utils.gradle +++ b/app/script/utils.gradle @@ -18,7 +18,6 @@ Object readMediaUrlConfigFromJsonFile(env){ def getKey = flavorNames config.get(env).each {key, value -> // 匹配flavor对应的 json - println "--------${flavorNames.toLowerCase()}---------${key}" if(flavorNames.toLowerCase().contains(key)){ getKey = key return true @@ -31,6 +30,39 @@ Object readMediaUrlConfigFromJsonFile(env){ return null } +/** + * 读取各车型宣传视频本地配置 + * @param env + * @return + */ +Object readProductWithVehicleConfigFromJsonFile(env){ + try { + // 加载config.json 文件 + File file = new File("${rootDir}/app/config/productWithVehicle.json") + def jsonSlurper = new JsonSlurper() + // 解析json + def config = jsonSlurper.parse(file) + def flavorNames = variantVehicleName() + def jsonOutput = new JsonOutput() + def getKey = flavorNames + config.get(env).each {key, value -> + // 匹配flavor对应的 json + println "对比${flavorNames.toLowerCase()}---------${key}---${value}" + if(flavorNames.toLowerCase().contains("${env}${key.toLowerCase()}")){ + getKey = key + println "对比结果${flavorNames.toLowerCase()}---------${key}" + return true + } + } + + return jsonOutput.toJson(config.get(env).get(getKey)) + } catch (IOException e) { + e.printStackTrace() + } + return null +} + + /** * 读取各车型宣传视频本地配置 @@ -61,6 +93,17 @@ Object readMusicUrlConfigFromJsonFile(env){ return null } +def variantVehicleName() { + if(gradle.startParameter.taskNames.size()>0) { + for (String taskName : gradle.startParameter.taskNames) { + if (taskName.contains("Debug") | taskName.contains("Release")) { + return taskName + } + } + } + return "buspassenger" +} + boolean isCurrentDriver(String flavors) { if(isDriver() && isCurrentFlavors(flavors)){ @@ -114,4 +157,5 @@ ext { isCurrentPassenger = this.&isCurrentPassenger readMediaUrlConfigFromJsonFile = this.&readMediaUrlConfigFromJsonFile readMusicUrlConfigFromJsonFile = this.&readMusicUrlConfigFromJsonFile + readProductWithVehicleConfigFromJsonFile = this.&readProductWithVehicleConfigFromJsonFile } \ No newline at end of file diff --git a/app/script/vehicleFlavors/B1.gradle b/app/script/vehicleFlavors/B1.gradle index 473a87d019..5ec6614eff 100644 --- a/app/script/vehicleFlavors/B1.gradle +++ b/app/script/vehicleFlavors/B1.gradle @@ -7,11 +7,11 @@ project.android.productFlavors { // 配置AndroidManifest.xml中用到的参数 manifestPlaceholders = [ - CHANNEL_VALUE_TAIL : "JL", + CHANNEL_VALUE_TAIL : "B1", ] // ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 - buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"JL\"" + buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"B1\"" // ②构建的是否要动态更换模型 buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true' diff --git a/app/script/vehicleFlavors/B2.gradle b/app/script/vehicleFlavors/B2.gradle index b34721334d..c98004a209 100644 --- a/app/script/vehicleFlavors/B2.gradle +++ b/app/script/vehicleFlavors/B2.gradle @@ -14,11 +14,11 @@ project.android.productFlavors { } //高德地图鉴权信息 manifestPlaceholders = [ - CHANNEL_VALUE_TAIL: "M2", + CHANNEL_VALUE_TAIL: "B2", ] // ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 - buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"M2\"" + buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"B2\"" // ②构建的是否要动态更换模型 buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'false' diff --git a/app/script/vehicleFlavors/C1.gradle b/app/script/vehicleFlavors/C1.gradle index 65b3f95061..c53d59f1b4 100644 --- a/app/script/vehicleFlavors/C1.gradle +++ b/app/script/vehicleFlavors/C1.gradle @@ -7,16 +7,22 @@ project.android.productFlavors { // 配置AndroidManifest.xml中用到的参数 manifestPlaceholders = [ - CHANNEL_VALUE_TAIL: "FT", + CHANNEL_VALUE_TAIL: "C1", ] // ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 - buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"FT\"" + buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"C1\"" // ②构建的是否要动态更换模型 buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true' // ③不能启动自驾的档位 buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' + + // ⑤清扫车 默认模式(运营/云控) + buildConfigField 'String', 'SWEEPER_DEFAULT_MODE', '\"Cloud\"' + + // ⑥清扫车 是否能切换模式 + buildConfigField 'boolean', 'SWEEPER_CAN_SWITCH_MODE', 'true' } } \ No newline at end of file diff --git a/app/script/vehicleFlavors/T1T2.gradle b/app/script/vehicleFlavors/T1T2.gradle index 98611f8ea2..b3542cab29 100644 --- a/app/script/vehicleFlavors/T1T2.gradle +++ b/app/script/vehicleFlavors/T1T2.gradle @@ -7,12 +7,12 @@ project.android.productFlavors { // 配置AndroidManifest.xml中用到的参数 manifestPlaceholders = [ - CHANNEL_VALUE_TAIL: "DFHQ", + CHANNEL_VALUE_TAIL: "T1T2", ] // ①标识构建的应用身份类型,具体查看 README.md APP_IDENTITY_MODE规则 - buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"DFHQ\"" + buildConfigField 'String', 'APP_IDENTITY_MODE_TAIL', "\"T1T2\"" // ②构建的是否要动态更换模型 buildConfigField 'boolean', 'IS_CAR_MODEL_CHANGE', 'true' diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index f0b843b112..736547180b 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -1,6 +1,7 @@ package com.mogo.launcher.startup import android.content.Context +import com.google.gson.reflect.TypeToken import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -40,8 +41,10 @@ object ConfigStartUp { FunctionBuildConfig.gpsProvider = BuildConfig.GPS_PROVIDER // 演示模式,上一次勾选的数据 FunctionBuildConfig.isDemoMode = BuildConfig.IS_DEMO_MODE -// // app安装的身份信息 + // app安装的身份信息 FunctionBuildConfig.appIdentityMode = "Product_${BuildConfig.APP_IDENTITY_MODE_BODY}_${BuildConfig.APP_IDENTITY_MODE_TAIL}" + // 支持的业务类型 + FunctionBuildConfig.supportBusiness = GsonUtils.fromJson(BuildConfig.supportBusiness, object : TypeToken>() {}.type) // 各个module需要的url FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) //不能启动自动驾驶的档位 @@ -105,13 +108,13 @@ object ConfigStartUp { } else if (AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei } - if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)){ + if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaoba } if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.m1 } - if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { HdMapBuildConfig.currentCarVrIconRes = R.raw.m2 } @@ -119,7 +122,7 @@ object ConfigStartUp { if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) || - AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false //白天模式 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt index e102f53524..91c9defb68 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt @@ -174,9 +174,9 @@ class SmallMapView @JvmOverloads constructor( // 关闭显示实时路况图层,aMap是地图控制器对象。 mAMap?.isTrafficEnabled = false // 设置 锚点 图标 - iconRes = if (AppIdentityModeUtils.isJL(FunctionBuildConfig.appIdentityMode)) { + iconRes = if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { R.drawable.map_bus_icon - } else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { R.drawable.map_m2_icon } else { R.drawable.map_car_icon diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 8adf15a6c3..228323c91a 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -119,6 +119,12 @@ object FunctionBuildConfig { @JvmField var appIdentityMode = "Taxi_Driver_Base" + + @Volatile + @JvmField + var supportBusiness = mutableListOf() + + /** * 各车型宣传视频本地配置 * 广告json diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index 909f9957d1..290a0db2bd 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -11,13 +11,13 @@ fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: String): Int { isCharter(appIdentityMode) && isPassenger(appIdentityMode) -> 8 // 包车乘客端 isCharter(appIdentityMode) && isDriver(appIdentityMode) -> 9 // 包车司机端 - isShuttle(appIdentityMode) && isPassenger(appIdentityMode) && isJL(appIdentityMode) -> 10 // B1接驳乘客端 - isShuttle(appIdentityMode) && isDriver(appIdentityMode) && isJL(appIdentityMode) -> 11 // B1接驳司机端 + isShuttle(appIdentityMode) && isPassenger(appIdentityMode) && isB1(appIdentityMode) -> 10 // B1接驳乘客端 + isShuttle(appIdentityMode) && isDriver(appIdentityMode) && isB1(appIdentityMode) -> 11 // B1接驳司机端 isSweeper(appIdentityMode) && isDriver(appIdentityMode) -> 12 // 清扫车司机端 - isShuttle(appIdentityMode) && isPassenger(appIdentityMode) && isM2(appIdentityMode) -> 17 // B2接驳乘客端 - isShuttle(appIdentityMode) && isDriver(appIdentityMode) && isM2(appIdentityMode) -> 15 // B2接驳司机端 + isShuttle(appIdentityMode) && isPassenger(appIdentityMode) && isB2(appIdentityMode) -> 17 // B2接驳乘客端 + isShuttle(appIdentityMode) && isDriver(appIdentityMode) && isB2(appIdentityMode) -> 15 // B2接驳司机端 else -> 0 } @@ -34,21 +34,21 @@ object AppIdentityModeUtils { private const val PASSENGER = "Passenger" // 业务 - private const val TAXI = "Taxi" - private const val BUS = "Bus" - private const val SWEEPER = "Sweeper" - private const val SHUTTLE = "Shuttle" - private const val CHARTER = "Charter" + const val TAXI = "Taxi" + const val BUS = "Bus" + const val SWEEPER = "Sweeper" + const val SHUTTLE = "Shuttle" + const val CHARTER = "Charter" // 车型 private const val M1 = "M1" - private const val M2 = "M2" - private const val JL = "JL" - private const val DFHQ = "DFHQ" - private const val FT = "FT" + private const val B2 = "B2" + private const val B1 = "B1" + private const val T1T2 = "T1T2" + private const val C1 = "C1" - private fun getInfo(appIdentityMode: String): Array { + fun getInfo(appIdentityMode: String): Array { val split = appIdentityMode.split("_") if (split.size == 3) { return split.toTypedArray() @@ -244,24 +244,24 @@ object AppIdentityModeUtils { fun isDFHQ(appIdentityMode: String): Boolean { val (_, _, model) = getInfo(appIdentityMode) if (model.isNotEmpty()) { - return model == DFHQ + return model == T1T2 } return false } @JvmStatic - fun isFT(appIdentityMode: String): Boolean { + fun isC1(appIdentityMode: String): Boolean { val (_, _, model) = getInfo(appIdentityMode) if (model.isNotEmpty()) { - return model == FT + return model == C1 } return false } @JvmStatic - fun isJL(appIdentityMode: String): Boolean { + fun isB1(appIdentityMode: String): Boolean { val (_, _, model) = getInfo(appIdentityMode) if (model.isNotEmpty()) { - return model == JL + return model == B1 } return false } @@ -276,10 +276,10 @@ object AppIdentityModeUtils { } @JvmStatic - fun isM2(appIdentityMode: String): Boolean { + fun isB2(appIdentityMode: String): Boolean { val (_, _, model) = getInfo(appIdentityMode) if (model.isNotEmpty()) { - return model == M2 + return model == B2 } return false } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/screen/ScreenHelper.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/screen/ScreenHelper.java index 9871608332..18356f83bf 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/screen/ScreenHelper.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/screen/ScreenHelper.java @@ -1,6 +1,5 @@ package com.mogo.commons.screen; -import android.app.Application; import android.content.Context; @@ -8,7 +7,6 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import me.jessyan.autosize.AutoSizeConfig; -import me.jessyan.autosize.utils.AutoSizeUtils; public class ScreenHelper { @@ -25,7 +23,7 @@ public class ScreenHelper { AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) { baseWidth = 1920; baseHeight = 1080; - } else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode) && + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode))) { baseWidth = 1080; baseHeight = 1920;