[2.15.0-merge-master]

This commit is contained in:
zhongchao
2023-05-06 20:03:51 +08:00
1466 changed files with 45283 additions and 27080 deletions

View File

@@ -4,12 +4,14 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import androidx.appcompat.content.res.AppCompatResources
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager
import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_driver_msg_box_button.view.*
import kotlinx.android.synthetic.main.view_driver_msg_box_button.view.cbMsgBoxDriver
import kotlinx.android.synthetic.main.view_driver_msg_box_button.view.msgBoxTipView
/**
* @author XuXinChao
@@ -20,7 +22,7 @@ class DriverMsgBoxButtonView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
):ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener {
) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener {
companion object {
const val TAG = "DriverMsgBoxButtonView"
@@ -28,21 +30,35 @@ class DriverMsgBoxButtonView @JvmOverloads constructor(
private var clickListener: ClickListener? = null
init{
private val bgResources: Int
init {
LayoutInflater.from(context).inflate(R.layout.view_driver_msg_box_button, this, true)
val a = context.obtainStyledAttributes(
attrs,
R.styleable.DriverMsgBoxButtonView,
defStyleAttr,
0
)
bgResources = a.getResourceId(
R.styleable.DriverMsgBoxButtonView_bgDrawable,
R.drawable.selector_msg_box
)
initView()
}
private fun initView(){
private fun initView() {
cbMsgBoxDriver.setOnCheckedChangeListener { _, isChecked ->
clickListener?.showMsgBoxList(isChecked)
msgBoxTipView.visibility = View.GONE
}
cbMsgBoxDriver.background = AppCompatResources.getDrawable(context, bgResources)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerMsgBoxEventListenerManager.addListener(TAG,this)
CallerMsgBoxEventListenerManager.addListener(TAG, this)
}
override fun onDetachedFromWindow() {
@@ -59,9 +75,9 @@ class DriverMsgBoxButtonView @JvmOverloads constructor(
* @param isShow true:展示false:不展示
*/
override fun onUpdateTipEvent(isShow: Boolean) {
if(isShow){
if (isShow) {
msgBoxTipView.visibility = View.VISIBLE
}else{
} else {
msgBoxTipView.visibility = View.GONE
}
}
@@ -82,7 +98,7 @@ class DriverMsgBoxButtonView @JvmOverloads constructor(
this.clickListener = clickListener
}
interface ClickListener{
interface ClickListener {
fun showMsgBoxList(show: Boolean)
}

View File

@@ -27,7 +27,7 @@ import com.mogo.commons.constants.SharedPrefsConstants
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.*
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.constants.MoGoConfig
@@ -84,8 +84,14 @@ import kotlinx.android.synthetic.main.view_sop_setting.view.*
import kotlinx.coroutines.*
import mogo.telematics.pad.MessagePad
import mogo_msg.MogoReportMsg
import planning.RoboSweeperTaskIndexOuterClass
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.component1
import kotlin.collections.component2
import kotlin.collections.component3
import kotlin.collections.component4
import kotlin.collections.set
import kotlin.math.abs
@@ -289,6 +295,16 @@ internal class DebugSettingView @JvmOverloads constructor(
}
private fun initView() {
post {
val maxHeight = ScreenUtils.getScreenHeight()-BarUtils.getStatusBarHeight()
val height = clDebugContain.height
if(height>maxHeight){
val layoutParamsOther = clDebugContain.layoutParams
layoutParamsOther.height = maxHeight
clDebugContain.layoutParams = layoutParamsOther
}
}
val iconDown = ContextCompat.getDrawable(context, R.drawable.icon_down)
iconDown?.setBounds(0, 0, iconDown.minimumWidth, iconDown.minimumHeight)
val iconRight = ContextCompat.getDrawable(context, R.drawable.icon_right)
@@ -2003,7 +2019,9 @@ internal class DebugSettingView @JvmOverloads constructor(
override fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) {
}
override fun onSweeperFutianTaskIndexData(roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex) {
}
/**
* 吐司提示
*/

View File

@@ -256,14 +256,31 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener(
FuncBizConfig.FOUNDATION, TAG, true, this
)
// 开启定时查询速度
// Timer().schedule(timerTaskRefresh, Date(), 500)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
// 移除 业务配置监听
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(FuncBizConfig.FOUNDATION, TAG)
// try {
// timerTaskRefresh.cancel()
// } catch (e: Exception) {
// e.printStackTrace()
// }
}
// private val timerTaskRefresh = object : TimerTask(){
// override fun run() {
// UiThreadHandler.post{
// tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode
// tbRainMode.isChecked = FunctionBuildConfig.isRainMode
// }
// }
//
// }
override fun updateBizView(type: String, lock: Boolean) {
when (type) {
FuncBizConfig.BIZ_BEAUTY_MODE -> {

View File

@@ -7,11 +7,13 @@ import android.view.View
import android.view.WindowManager
import android.view.animation.OvershootInterpolator
import com.mogo.eagle.core.data.enums.SidePattern
import com.mogo.eagle.core.data.deva.report.ReportEntity
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.hmi.notification.WarningFloat
import com.mogo.eagle.core.function.hmi.notification.anim.DefaultAnimator
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.ScreenUtils
import com.mogo.eagle.core.utilcode.util.TimeUtils
import me.jessyan.autosize.utils.AutoSizeUtils
class ToggleDebugView private constructor() : IMoGoAutopilotStatusListener {
@@ -47,13 +49,16 @@ class ToggleDebugView private constructor() : IMoGoAutopilotStatusListener {
}
})
}
val height = AutoSizeUtils.dp2px(context, 1100f)
val maxHeight = ScreenUtils.getScreenHeight() - BarUtils.getStatusBarHeight()
val currentHeight = if(height>maxHeight) maxHeight else height
mDebugSettingViewFloat = WarningFloat.with(context)
.setTag("DebugSettingView")
.setLayout(mDebugSettingView!!)
.setSidePattern(sidePattern)
.setGravity(gravity, offsetY = 70)
.setImmersionStatusBar(true)
.setWindowHeight(AutoSizeUtils.dp2px(context, 1100f))
.setWindowHeight(currentHeight)
.setWindowWidth(AutoSizeUtils.dp2px(context, 800f))
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(

View File

@@ -10,7 +10,6 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
@@ -32,6 +31,7 @@ import mogo.telematics.pad.MessagePad
import org.greenrobot.eventbus.EventBus
import kotlin.system.exitProcess
/**
* @author ChenFufeng
* 设置自动驾驶速度和检测页入口
@@ -241,19 +241,6 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
}
actvLoginout.visibility = View.VISIBLE
toolBusOperationView.showBusOperation()
// TODO 这里判断方式可以替换为使用 AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)等进行替换
when (DebugConfig.getProductFlavor()) {
"fPadLenovoOchTaxi" -> {
//出租车司机
}
"fPadLenovoOchBus" ->{
//小巴车司机
}
else -> {
}
}
}
private fun killApp() {

View File

@@ -31,14 +31,27 @@ class BusOperationView @JvmOverloads constructor(
actvAccountPhone.text = phoneMask(SharedPrefs.getInstance(it).getString("och_account",""))
}
clickPersonalRightView()
clickQRBtn()
}
private fun clickQRBtn() {
actvAccountQR.onClick {
EventBus.getDefault().post(EventLogout(EventLogout.SHOW_QR_TYPE))
}
}
private fun initPersonalIcon() {
if(AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){
ivGotoPersonalInfo.visibility = VISIBLE
}else{
ivGotoPersonalInfo.visibility = GONE
}
if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
actvAccountQR.visibility = VISIBLE
}else{
actvAccountQR.visibility = GONE
}
}
private fun clickPersonalRightView() {

View File

@@ -68,7 +68,7 @@ class PncActionsView @JvmOverloads constructor(
override fun onAttachedToWindow() {
super.onAttachedToWindow()
(tvHmiPncActions.layoutParams as MarginLayoutParams).topMargin = topMargin.toInt()
tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize)
tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize.toFloat())
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
CallerPlanningActionsListenerManager.addListener(TAG, this)

View File

@@ -12,7 +12,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.map.*
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI

View File

@@ -78,7 +78,7 @@ class TakeOverView @JvmOverloads constructor(
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS,
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE ->{
MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE -> {
CallerHmiManager.warningV2X(
EventTypeEnumNew.TAKE_OVER_EVENT.poiType,
EventTypeEnumNew.TAKE_OVER_EVENT.content,

View File

@@ -16,7 +16,7 @@ import kotlinx.android.synthetic.main.view_blue_tooth.view.*
* 魔戒蓝牙控件
* 放置于StatusBar右侧位置
*/
class BlueToothView @JvmOverloads constructor(
open class BlueToothView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0

View File

@@ -19,6 +19,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isBus
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isTaxi
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
@@ -46,10 +47,12 @@ class SteeringWheelView : ConstraintLayout, IMoGoChassisSteeringStateListener,
constructor(context: Context) : super(context) {}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
if (isBus(FunctionBuildConfig.appIdentityMode)) {
LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this)
} else {
LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_taxi, this)
when (AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)) {
AppIdentityModeUtils.Product.BUS -> LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this)
AppIdentityModeUtils.Product.TAXI -> LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_taxi, this)
AppIdentityModeUtils.Product.SWEEPER -> LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this)
AppIdentityModeUtils.Product.SHUTTLE -> LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this)
AppIdentityModeUtils.Product.CHARTER -> LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this)
}
initView()
CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener)

View File

@@ -39,7 +39,7 @@ public class TapPositionView extends ConstraintLayout {
tabN = findViewById(R.id.tap_n);
tabD = findViewById(R.id.tap_d);
typedArray = context.obtainStyledAttributes(attrs, R.styleable.TapPositionView);
if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){
if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)||AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)){
tabP.setVisibility(View.GONE);
}
}

View File

@@ -34,6 +34,8 @@ import org.jetbrains.annotations.NotNull;
import chassis.Chassis;
import mogo.telematics.pad.MessagePad;
import chassis.ChassisStatesOuterClass;
import planning.RoboSweeperTaskIndexOuterClass;
/**
* @author Jing

View File

@@ -46,10 +46,10 @@ class VersionNameView @JvmOverloads constructor(
showCurrentMapVersion()
// 调试入口应对M1、M2没有安装Launcher的情况
setOnLongClickListener {
ActivityUtils.startActivity(AppListActivity::class.java)
true
}
// setOnLongClickListener {
// ActivityUtils.startActivity(AppListActivity::class.java)
// true
// }
}
/**

View File

@@ -25,6 +25,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiFloatViewManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController
import com.mogo.eagle.core.function.call.startup.CallerStartUpManager.initStageTwo
@@ -97,18 +98,20 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
decorView.clipToPadding = false
var statusBarView = decorView.findViewWithTag<View>("status_bar")
if (statusBarView == null) {
statusBarView = statusBar
statusBarView.tag = "status_bar"
val params = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
params.topMargin = 0
params.gravity = Gravity.TOP
decorView.addView(statusBarView, params)
val statusBar = CallerHmiFloatViewManager.getView(this)
statusBarView = statusBar?:StatusBarView(this)
statusBarView.setTag("status_bar")
}
val statusBarLP = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
)
statusBarLP.topMargin = 0
statusBarLP.gravity = Gravity.TOP
decorView.addView(statusBarView, statusBarLP)
}
// todo 优化 车聊聊
private fun injectFloatView() {
val decorView = this.window.decorView as? FrameLayout ?: return
@@ -129,19 +132,6 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
}
}
/**
* 修改statusBar重新赋值
* @return StatusBarView
*/
protected var statusBar: View?=null
get() {
return if (field == null) {
StatusBarView(this)
}else{
field
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
calculateStartTime()
@@ -208,6 +198,7 @@ open class MainActivity : MvpActivity<MainView?, MainPresenter?>(), MainView,
override fun onMapLoaded() {
// 延时加载其他模块
window.decorView.post {
MogoStatusManager.getInstance().setScreenCoverMode(TAG,true)
HdMapBuildConfig.isMapLoaded = true
mPresenter!!.delayOperations()
loadFunctionFragment()

View File

@@ -123,27 +123,17 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis
.build("/noop/api")
.navigation(getContext());
}
}
// TODO 董宏宇 目前处于测试阶段,处理一个机器多个屏幕方案
else {
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
.build("/driver/api")
.navigation(getContext());
// 启动乘客端Act
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) ||
AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
MultiDisplayUtils.INSTANCE.startActWithSecond(
this,
PassengerLauncherActivity.class);
} else {
// 目前只有金旅星辰乘客屏是连接的双屏
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
.build("/passenger/api")
.navigation(getContext());
} else {
ochProvider = (IMoGoFunctionProvider) ARouter.getInstance()
.build("/noop/api")
.navigation(getContext());
}
// // 启动广告视频Atc
// if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) ||
// AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
// MultiDisplayUtils.INSTANCE.startActWithSecond(
// this,
// VideoAdAtc.class);
// }
}
if (ochProvider != null) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -2,6 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/clDebugContain"
android:layout_width="@dimen/dp_800"
android:layout_height="@dimen/dp_1100"
android:background="#FFFFFF">
@@ -1558,7 +1559,8 @@
android:textSize="@dimen/dp_24"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/btnDrawTrolley"
app:layout_constraintTop_toBottomOf="@id/reset_changesight" />
app:layout_constraintTop_toBottomOf="@id/reset_changesight"
/>
<ToggleButton
android:id="@+id/btnDrawFusion"

View File

@@ -60,6 +60,16 @@
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actvAccountQR"
android:layout_width="@dimen/dp_84"
android:layout_height="@dimen/dp_84"
android:src="@drawable/icon_bind_driver_qrcode"
android:layout_marginLeft="@dimen/dp_32"
app:layout_constraintLeft_toRightOf="@+id/actvAccountPhone"
app:layout_constraintTop_toTopOf="@+id/actvAccountPhone"
app:layout_constraintBottom_toBottomOf="@+id/actvAccountPhone"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/ivGotoPersonalInfo"

View File

@@ -76,8 +76,12 @@
<declare-styleable name="PncActionsView">
<attr name="background_resource" format="reference"/>
<attr name="pnc_top_margin" format="reference"/>
<attr name="pnc_size" format="reference"/>
<attr name="pnc_top_margin" format="dimension"/>
<attr name="pnc_size" format="dimension"/>
</declare-styleable>
<declare-styleable name="DriverMsgBoxButtonView">
<attr name="bgDrawable" format="reference"/>
</declare-styleable>
<declare-styleable name="RomaPassengerView">