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 3c7c909910..34d8595d0d 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 @@ -4,6 +4,7 @@ import android.content.Context import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.template.IProvider +import com.mogo.och.common.module.wigets.autopilot.AutopilotState interface CommonService : IProvider { @@ -15,4 +16,12 @@ interface CommonService : IProvider { fun invokeByName(type:String,value:Any){} + fun createOchBusinessView(context: Context?):View?{return null} + + fun createStartAutopilotView(context: Context?):View?{ + return context?.let { + AutopilotState(it) + } + } + } \ 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 7285bb32b3..ee15b426e1 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 @@ -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("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) } } diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/view/OchCustomViewProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/view/OchCustomViewProvider.kt index e2e5950774..fd3cdfb78a 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/view/OchCustomViewProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/view/OchCustomViewProvider.kt @@ -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) } } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 3a5aae4454..421cb34e4c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -1,6 +1,7 @@ package com.mogo.och.weaknet import android.content.Context +import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d @@ -15,6 +16,7 @@ import com.mogo.och.weaknet.repository.db.repository.TaskRepository import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository import com.mogo.och.weaknet.ui.fragment.ShuttleFragment import com.mogo.och.weaknet.model.LineModel +import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView import com.mogo.och.weaknet.util.BusAnalyticsManager /** @@ -53,4 +55,9 @@ class ShuttleDriverProvider : CommonServiceImpl() { LineModel.release() } + override fun createOchBusinessView(context: Context?): View? { + return context?.let { + SwitchBizView(it) + } + } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml index 8e8d4a0a44..7e6f8e9353 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_top_status.xml @@ -25,10 +25,10 @@ diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml index 0ced2ceb45..0a568e5e8a 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -43,6 +43,7 @@ 16.5dp 17dp 18dp + 18.5dp 19dp 20dp 21dp