[模式拦截、车型名称修改、清扫车路由]
This commit is contained in:
yangyakun
2024-04-11 18:48:03 +08:00
parent 5c624c1943
commit 2080efee38
63 changed files with 885 additions and 404 deletions

View File

@@ -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)
}
}

View File

@@ -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 {

View File

@@ -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)
}
}