[fea]
[启动自驾添加到容器中]
This commit is contained in:
yangyakun
2024-09-20 15:43:04 +08:00
parent 441ac19070
commit 6db0ade534
6 changed files with 54 additions and 39 deletions

View File

@@ -10,7 +10,6 @@ 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.commons.debug.DebugConfig
import com.mogo.commons.env.ProjectUtils
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -45,7 +44,10 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
private var containerId = 0
private var activity: FragmentActivity? = null
private val TAG = "FacadeProvider"
private var commonService: CommonService? = null
private var _commonService: CommonService? = null
val commonService:CommonService?
get() = _commonService
override fun init(context: Context) {
d(TAG, "FacadeProvider:init")
LoginStatusManager.addListener(TAG, this)
@@ -69,7 +71,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
CallerHmiManager.hideToolsView()
ToggleDebugView.toggleDebugView.dismiss()
SopView.sopView.dismiss()
commonService?.resetFragment()
_commonService?.resetFragment()
removeStatusBar()
LoginStatusManager.getFragment()
}
@@ -145,8 +147,8 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
}
private fun getFragmentByServeName(serviceName: String): Fragment {
commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService?
return if (commonService == null) {
_commonService = ARouter.getInstance().build(serviceName).navigation() as CommonService?
return if (_commonService == null) {
try {
LoginStatusManager.getFragment()
} catch (e: ClassNotFoundException) {
@@ -158,7 +160,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
Fragment()
}
} else {
commonService!!.getFragment()
_commonService!!.getFragment()
}
}
@@ -216,7 +218,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
SopView.sopView.dismiss()
CallerHmiManager.dismissFSMExceptionStatusWindow()
CallerHmiManager.hideStatusSummaryDialog()
commonService?.resetFragment()
_commonService?.resetFragment()
val fragment = LoginStatusManager.getFragment()
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
if (supportFragmentManager != null) {
@@ -249,7 +251,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
contentView.fitsSystemWindows = false
decorView.clipToPadding = false
var statusBarView = decorView.findViewWithTag<View>("status_bar")
val statusBar = commonService?.getStatusBarView(it)
val statusBar = _commonService?.getStatusBarView(it)
if(statusBarView==null){
}else{
@@ -272,7 +274,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
return
}
}
CallerLogger.d(TAG, "添加statusBar---${commonService}")
CallerLogger.d(TAG, "添加statusBar---${_commonService}")
decorView.addView(statusBarView, statusBarLP)
}
}

View File

@@ -1,14 +1,14 @@
package com.mogo.och.facade.view
import android.content.Context
import android.graphics.Color
import android.view.Gravity
import android.view.View
import android.widget.TextView
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.function.api.och.IOchCustomViewProvider
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.facade.constant.FacadeConst
import com.mogo.och.facade.route.FacadeProvider
import kotlin.random.Random
@Route(path = FacadeConst.OCH_VIEW_PATH)
@@ -18,45 +18,41 @@ class OchCustomViewProvider : IOchCustomViewProvider {
const val TAG = "OchCustomViewProvider"
}
private var commonService: CommonService?=null
override fun init(context: Context?) {
CallerLogger.d(TAG, "init")
getCommontService(context)
}
private fun getCommontService(context: Context?){
val temp = ARouter.getInstance().build(FacadeConst.DRIVER_PATH).navigation(context)
if(temp is FacadeProvider){
commonService = temp.commonService
}
}
/**
* 创建 Och业务层 自定义View
*/
override fun createOchBusinessView(context: Context?): View? {
if(commonService==null){
getCommontService(context)
}
return context?.let {
TextView(it).apply {
text = "业务自定义View"
gravity = Gravity.CENTER
setBackgroundColor(
Color.rgb(
Random.nextInt(256),
Random.nextInt(256),
Random.nextInt(256)
)
)
}
} ?: null
commonService?.createOchBusinessView(it)
}
}
/**
* 创建 自动自动驾驶 自定义 View
*/
override fun createStartAutopilotView(context: Context?): View? {
if(commonService==null){
getCommontService(context)
}
return context?.let {
TextView(it).apply {
text = "启动自动驾驶"
gravity = Gravity.CENTER
setBackgroundColor(
Color.rgb(
Random.nextInt(256),
Random.nextInt(256),
Random.nextInt(256)
)
)
}
commonService?.createStartAutopilotView(it)
}
}
}