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 198d9e51ef..2490efe9b7 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 @@ -4,11 +4,11 @@ import android.content.Context import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.commons.debug.DebugConfig 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 @@ -19,6 +19,12 @@ import com.mogo.och.common.module.biz.login.LoginService import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.biz.login.RoleEnum import com.mogo.och.common.module.biz.login.LoginStatusEnum +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.Project +import com.mogo.och.common.module.utils.ProjectUtils /** * 网约车小巴业务实现入口 @@ -117,7 +123,76 @@ class LoginProvider : LoginService { } } if (loginFragment is ILoginViewCallback) { - (loginFragment as ILoginViewCallback).showErrorInfo("业务模式不支持") + val reaseon = when (businessEnum) { + BusinessEnum.Taxi -> "后台配置为:出租车模式、请检查应用或配置" + BusinessEnum.Bus -> "后台配置为:小巴模式、请检查应用或配置" + BusinessEnum.Shuttle -> "后台配置为:接驳模式、请检查应用或配置" + BusinessEnum.Charter -> "后台配置为:包车模式、请检查应用或配置" + else -> "后台配置为:未知模式${businessType}、请检查应用或配置" + } + (loginFragment as ILoginViewCallback).showErrorInfo(reaseon) + } + return false + } + + override fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean { + + val isProjectSupply = when (ProjectUtils.getProjectType()) { + Project.SAAS -> projectType == ProjectType.saas + Project.DALI -> projectType == ProjectType.dali + Project.MOGO -> projectType == ProjectType.mogo + Project.YANTAI -> projectType == ProjectType.yantai + } + + val envTypeSupply = when (DebugConfig.getNetMode()) { + 2 -> { + envType == EnvType.qa + } + + 3 -> { + envType == EnvType.online + } + + 4 -> { + envType == EnvType.demo + } + + else -> { + envType == EnvType.qa + } + } + val vehicleTypeSupply = + if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { + vehicleType == VehicleType.T1T2 + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + vehicleType == VehicleType.M1 + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + vehicleType == VehicleType.B1 + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + vehicleType == VehicleType.B2 + } else { + vehicleType == VehicleType.C1 + } + + val businessTypeSupply = checkBusinessMine(businessType) + + if (loginFragment is ILoginViewCallback) { + (loginFragment as ILoginViewCallback).checkAllEnv(projectType,envType,vehicleType,businessType) + } + + return isProjectSupply&&envTypeSupply&&vehicleTypeSupply&&businessTypeSupply + } + + fun checkBusinessMine(businessType: BusinessType) :Boolean{ + FunctionBuildConfig.supportBusiness.forEach { + if (businessType.name == it) { + return true + } } return false } 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 index 553217bdf3..b973dceacb 100644 --- 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 @@ -1,5 +1,20 @@ package com.mogo.och.biz.login.callback +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType + interface ILoginViewCallback { fun showErrorInfo(errorInfo: String) + + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ){} + + fun updateStatus(status:String){} + } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt index 5eb06f58d4..d9b2d52a92 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/presenter/LoginPresenter.kt @@ -105,7 +105,6 @@ class LoginPresenter(view: LoginFragment?) : Presenter(view), IT return } if(!LoginStatusManager.checkBusiness(LoginStatusManager.getBusInessType().code)){ - mView?.showErrorInfo("不支持的类型") LoginStatusDefaultModel.queryCarStatus() return } 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 f58a19fd16..7859211d65 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 @@ -19,6 +19,10 @@ 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.biz.login.BusinessEnum +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType import com.mogo.och.common.module.utils.RxUtils import kotlinx.android.synthetic.main.biz_login_view.biz_acbtn_login import kotlinx.android.synthetic.main.biz_login_view.biz_ace_login_phone_value @@ -183,6 +187,16 @@ class LoginFragment : MvpFragment(), ILoginView override fun showErrorInfo(errorInfo: String) { ToastUtils.showLong(errorInfo) eiv_Info.visibility = View.VISIBLE + eiv_Info.showErrinfo(errorInfo) + } + + override fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ) { + // 司机屏不用处理 只处理 后台返回的业务模型就行 } 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 f2f1ea14d0..8be908fac9 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 @@ -1,16 +1,24 @@ package com.mogo.och.biz.login.ui +import android.view.View +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.storage.SharedPrefsMgr 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.eagle.core.utilcode.util.AppUtils 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_actv_login_show_sn -import kotlinx.android.synthetic.main.biz_login_passenger_view.biz_cl_passenger_main -import kotlinx.android.synthetic.main.biz_login_passenger_view.bv_switch_business +import com.mogo.och.biz.login.ui.debugview.BusinessView +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import kotlinx.android.synthetic.main.biz_login_view.eiv_Info +import java.lang.StringBuilder /** @@ -20,29 +28,43 @@ import kotlinx.android.synthetic.main.biz_login_passenger_view.bv_switch_busines class LoginPassengerFragment : MvpFragment(), ILoginViewCallback { - override fun getLayoutId(): Int { - return R.layout.biz_login_passenger_view - } + private var biz_cl_passenger_main: ConstraintLayout?=null + private var biz_actv_login_show_sn: AppCompatTextView?=null + private var bv_switch_business: BusinessView?=null + private var actv_app_version: AppCompatTextView?=null + private var actv_connect_status: AppCompatTextView?=null + + override fun getLayoutId(): Int { - override fun initViews() { if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) ) { - biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_1920x1080) + return R.layout.biz_login_passenger_view_1920x1080 } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger((FunctionBuildConfig.appIdentityMode)) ) { - biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_1080x1920) + return R.layout.biz_login_passenger_view_1080x1920 } else { - biz_cl_passenger_main.setBackgroundResource(R.drawable.biz_login_passenger_2560x1600) - } - biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn - biz_actv_login_show_sn.setOnLongClickListener { - bv_switch_business.selectBusniess() - true + return R.layout.biz_login_passenger_view_2560x1600 } - CallerLogger.d(TAG,"init") + } + + override fun initViews() { + + biz_cl_passenger_main = findViewById(R.id.biz_cl_passenger_main) + biz_actv_login_show_sn= findViewById(R.id.biz_actv_login_show_sn) + bv_switch_business= findViewById(R.id.bv_switch_business) + actv_app_version= findViewById(R.id.actv_app_version) + actv_connect_status= findViewById(R.id.actv_connect_status) + + biz_actv_login_show_sn?.text = SharedPrefsMgr.getInstance().sn + biz_actv_login_show_sn?.setOnLongClickListener { + bv_switch_business?.selectBusniess() + true + } + actv_app_version?.text = "版本号:${AppUtils.getAppVersionName()}" + CallerLogger.d(TAG, "init") } override fun createPresenter(): LoginPassengerPresenter { @@ -62,13 +84,61 @@ class LoginPassengerFragment : MvpFragment info.append("大理环境") + ProjectType.mogo -> info.append("衡阳环境") + ProjectType.saas -> info.append("saas环境") + ProjectType.yantai -> info.append("烟台环境") + } + when (envType) { + EnvType.qa -> info.append("、qa测试环境") + EnvType.online -> info.append("、正式环境环境") + EnvType.demo -> info.append("、开发环境环境") + } + when (vehicleType) { + VehicleType.T1T2 -> info.append("、车型是:T1T2") + VehicleType.C1 -> info.append("、车型是:B2") + VehicleType.B1 -> info.append("、车型是:B1") + VehicleType.B2 -> info.append("、车型是:B2") + VehicleType.M1 -> info.append("、车型是:M1") + } + + info.append("、支持的业务类型有:") + when (businessType) { + BusinessType.none -> info.append("没有登录") + BusinessType.bus -> info.append("小巴车") + BusinessType.shuttle -> info.append("接驳车") + BusinessType.charter -> info.append("包车") + BusinessType.taxi -> info.append("出租车") + BusinessType.taxiunmanned -> info.append("无人化出租车") + } + + eiv_Info.visibility = View.VISIBLE + eiv_Info.showErrinfo(info.toString()) + } + + override fun updateStatus(status: String) { + actv_connect_status?.text = "当前状态:${status}" + } + override fun onResume() { super.onResume() - CallerLogger.d(TAG,"onResume") + CallerLogger.d(TAG, "onResume") } override fun onPause() { super.onPause() - CallerLogger.d(TAG,"onPause") + CallerLogger.d(TAG, "onPause") } } \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt index e19ff9e096..178affa48f 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoView.kt @@ -6,9 +6,23 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.och.biz.R import com.mogo.och.biz.login.ui.debugview.BusinessViewModel +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.Project +import com.mogo.och.common.module.utils.ProjectUtils import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_countdown +import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_error_body +import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_error_head +import kotlinx.android.synthetic.main.biz_login_errorinfo_view.view.actv_see +import java.lang.StringBuilder class ErrorInfoView : ConstraintLayout, ErrorInfoViewModel.IErrorInfoViewCallback { @@ -26,6 +40,62 @@ class ErrorInfoView : ConstraintLayout, ErrorInfoViewModel.IErrorInfoViewCallbac private var viewModel: ErrorInfoViewModel? = null private fun initView() { LayoutInflater.from(context).inflate(R.layout.biz_login_errorinfo_view, this, true) + + actv_see.onClick { + viewModel?.cancleCountDown() + actv_countdown.text = "10s" + visibility = GONE + } + + val info = StringBuilder() + + when (ProjectUtils.getProjectType()) { + Project.SAAS -> info.append("saas环境") + Project.DALI -> info.append("大理环境") + Project.MOGO -> info.append("衡阳环境") + Project.YANTAI -> info.append("烟台环境") + } + + when (DebugConfig.getNetMode()) { + 2 -> { + info.append("、qa测试环境") + } + + 3 -> { + info.append("、正式环境环境") + } + + 4 -> { + info.append("、开发环境环境") + } + + else -> { + info.append("、qa测试环境") + } + } + val vehicleTypeSupply = + if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) { + info.append("、车型是:T1T2") + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + info.append("、车型是:M1") + } else if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + info.append("、车型是:B1") + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) { + info.append("、车型是:B2") + } else { + info.append("、车型是:C1") + } + info.append("、支持的业务类型有:") + FunctionBuildConfig.supportBusiness.forEachIndexed { index, s -> + if (index==FunctionBuildConfig.supportBusiness.size-1) { + info.append(s) + }else{ + info.append("$s、") + } + } + + actv_error_body.text = info + } @@ -65,4 +135,8 @@ class ErrorInfoView : ConstraintLayout, ErrorInfoViewModel.IErrorInfoViewCallbac } } + fun showErrinfo(errorInfo: String) { + actv_error_head.text = errorInfo + } + } \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt index c6b63e532d..421cef228e 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt @@ -35,6 +35,7 @@ class ErrorInfoViewModel : ViewModel() { if(RxUtils.isNotDisposed(countDownDisposable)){ return } + RxUtils.disposeSubscribe(countDownDisposable) countDownDisposable = Observable.intervalRange(0, countDownSeconds, 0, 1, TimeUnit.SECONDS) .map { aLong -> countDownSeconds - aLong } .subscribeOn(Schedulers.io()) @@ -62,6 +63,10 @@ class ErrorInfoViewModel : ViewModel() { } + fun cancleCountDown() { + RxUtils.disposeSubscribe(countDownDisposable) + } + interface IErrorInfoViewCallback { fun setCountDownText(s: String, b: Boolean) diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp index 7d76261863..4265e496e2 100644 Binary files a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg.webp differ diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png new file mode 100755 index 0000000000..a540ce3cc8 Binary files /dev/null and b/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_pop_bg.png differ 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 index e4c613e28f..efa07885b4 100644 --- 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 @@ -2,8 +2,8 @@ - - - - - - - - \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml new file mode 100644 index 0000000000..08463b8910 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1080x1920.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml new file mode 100644 index 0000000000..3c120e0d16 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_1920x1080.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml new file mode 100644 index 0000000000..3c17996e5e --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_passenger_view_2560x1600.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + \ 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 35f5c015b6..61c71b52bb 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 @@ -12,6 +12,16 @@ android:scaleType="fitXY" android:layout_width="match_parent" android:layout_height="match_parent"/> + + ) { println("-------${obj}") - getEnvCheck() - val msg = - ChangeBusinessType(vehicleType!!, businessType!!, projectType!!, envType!!) - LanSocketManager.sendMsgToClient(msg) + if(LoginStatusManager.isLogin()) { + getEnvCheck() + val msg = + ChangeBusinessType(vehicleType!!, businessType!!, projectType!!, envType!!) + LanSocketManager.sendMsgToClient(msg) + }else{ + getEnvCheck() + val msg = + ChangeBusinessType(vehicleType!!, BusinessType.none, projectType!!, envType!!) + LanSocketManager.sendMsgToClient(msg) + } } }; @@ -131,9 +138,6 @@ object LoginLanDriverSocket : ILoginCallback { Project.YANTAI -> ProjectType.yantai } envType = when (DebugConfig.getNetMode()) { - 1 -> { - EnvType.demo - } 2 -> { EnvType.qa @@ -142,6 +146,9 @@ object LoginLanDriverSocket : ILoginCallback { 3 -> { EnvType.online } + 4 -> { + EnvType.demo + } else -> { EnvType.qa diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt index f0c2619a05..2cd4c81f42 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/lansocket/LoginLanPassengerSocket.kt @@ -1,14 +1,24 @@ package com.mogo.och.common.module.biz.lansocket +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener import com.mogo.och.common.module.manager.socket.lan.LanSocketManager import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.ChangeBusinessType import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType +import com.mogo.och.common.module.utils.Project +import com.mogo.och.common.module.utils.ProjectUtils import kotlin.properties.Delegates object LoginLanPassengerSocket : IReceivedMsgListener { @@ -29,10 +39,24 @@ object LoginLanPassengerSocket : IReceivedMsgListener { } override fun onMsgReceived(obj: Array) { - println("EnvCheck-------${obj}") + if (obj.isNotEmpty()) { + val first = obj.first() as EnvCheck + checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType) + } } - }; + } + + private fun checkEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean { + + LoginStatusManager.checkAllEnv(projectType, envType, vehicleType, businessType) + return false + } // 环境监测+业务展示和跳转 private val changeBusinessType = object : ILanMessageListener { @@ -41,10 +65,9 @@ object LoginLanPassengerSocket : IReceivedMsgListener { } override fun onMsgReceived(obj: Array) { - println("ChangeBusinessType -------${obj}") if (obj.isNotEmpty()) { - var first = obj.first() as ChangeBusinessType - println("ChangeBusinessType -------${first}") + val first = obj.first() as ChangeBusinessType + checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType) } } @@ -69,6 +92,7 @@ object LoginLanPassengerSocket : IReceivedMsgListener { changeBusinessType ) } + override fun onReceivedMsg(type: Int, byteArray: ByteArray) { } 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 6aed660422..ec85ab4b28 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 @@ -1,6 +1,10 @@ package com.mogo.och.common.module.biz.login import com.mogo.och.common.module.biz.provider.CommonService +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType interface LoginService :CommonService { fun setLoginInfo(loginInfo: LoginInfo) @@ -23,5 +27,11 @@ interface LoginService :CommonService { */ fun loginOut(mLatitude:Double,mLongitude:Double) fun checkBusiness(businessType: Int): Boolean + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ): Boolean } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/login/LoginStatusManager.kt index 1905d744a9..da9802e666 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 @@ -4,6 +4,10 @@ package com.mogo.och.common.module.biz.login import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter import com.mogo.och.common.module.constant.OchCommonConst +import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType +import com.mogo.och.common.module.manager.socket.lan.bean.EnvType +import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType +import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType import com.mogo.och.common.module.utils.CallerBase object LoginStatusManager : CallerBase() { @@ -110,5 +114,17 @@ object LoginStatusManager : CallerBase() { return false } + fun checkAllEnv( + projectType: ProjectType, + envType: EnvType, + vehicleType: VehicleType, + businessType: BusinessType + ):Boolean { + loginService?.let { + return it.checkAllEnv(projectType,envType,vehicleType,businessType) + } + return false + } + } \ No newline at end of file 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 9b48824eab..10bdec3d3f 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 @@ -60,8 +60,10 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { private fun showFragment() { val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager val fragment = if (LoginStatusManager.isLogin()) { + injectStatusBar() getFragment() } else { + removeStatusBar() CallerHmiManager.hideToolsView() ToggleDebugView.toggleDebugView.dismiss() SopView.sopView.dismiss() @@ -188,5 +190,14 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { decorView.addView(statusBarView, statusBarLP) } } + private fun removeStatusBar(){ + activity?.let { + val decorView = it.window.decorView as? FrameLayout ?: return + val statusBar = decorView.findViewWithTag("status_bar") + statusBar?.let { + decorView.removeView(it) + } + } + } }