Merge branch 'refs/heads/dev_robotaxi-d_240912_6.7.0' into dev_robotaxi-d_240912_6.7.2_local
This commit is contained in:
@@ -139,7 +139,9 @@ class LoginProvider : LoginService {
|
||||
changeStatus(checkAllEnv)
|
||||
UiThreadHandler.post({
|
||||
changeStatus(checkAllEnv)
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
if (loginFragment!!.isAdded) {
|
||||
(loginFragment as ILoginViewCallback).checkAllEnv(checkAllEnv)
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE)
|
||||
}
|
||||
}
|
||||
@@ -148,7 +150,9 @@ class LoginProvider : LoginService {
|
||||
}
|
||||
|
||||
override fun changeStatus(currentStatus: String) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
if (loginFragment!!.isAdded) {
|
||||
(loginFragment as ILoginViewCallback).updateStatus(currentStatus)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -303,8 +303,8 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
|
||||
override fun showErrorInfo(errorInfo: String) {
|
||||
ToastUtils.showLong(errorInfo)
|
||||
eiv_Info.visibility = View.VISIBLE
|
||||
eiv_Info.showErrinfo(errorInfo)
|
||||
eiv_Info?.visibility = View.VISIBLE
|
||||
eiv_Info?.showErrinfo(errorInfo)
|
||||
}
|
||||
|
||||
override fun checkAllEnv(
|
||||
|
||||
@@ -98,12 +98,12 @@ class LoginPassengerFragment : MvpFragment<LoginPassengerFragment?, LoginPasseng
|
||||
override fun checkAllEnv(
|
||||
reason:String
|
||||
) {
|
||||
eiv_Info.visibility = View.VISIBLE
|
||||
eiv_Info.showErrinfo(reason)
|
||||
eiv_Info?.visibility = View.VISIBLE
|
||||
eiv_Info?.showErrinfo(reason)
|
||||
}
|
||||
|
||||
override fun updateStatus(status: String) {
|
||||
statusList.add(status)
|
||||
statusList?.add(status)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
||||
@@ -9,7 +9,10 @@ import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
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.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
@@ -81,7 +84,11 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
|
||||
})
|
||||
|
||||
aciv_refresh_task.onClick {
|
||||
viewModel?.refreshTask()
|
||||
if(ProjectUtils.isSaas()&& AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
|
||||
viewModel?.refreshTask()
|
||||
}else{
|
||||
loadingDatas()
|
||||
}
|
||||
animatorStart = System.currentTimeMillis()
|
||||
if(animator==null) {
|
||||
animator = ObjectAnimator.ofFloat(aciv_refresh_task, "rotation", 0f, 360f)
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.mogo.och.weaknet.ui.switchline
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
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.d
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
@@ -61,6 +64,12 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
|
||||
override fun onNext(data: List<LineDataBean>) {
|
||||
d(LineModel.TAG, "queryBusLines onNext ${data}")
|
||||
viewCallback?.onBusLinesChange(data.toMutableList())
|
||||
if(ProjectUtils.isSaas()&& AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
|
||||
|
||||
}else{
|
||||
SharedPrefsMgr.getInstance().putLong(EXECUTABLECHANGETIME, DateTimeUtil.getCurrentTimeStamp())
|
||||
onRefreshSuccess(DateTimeUtil.getCurrentTimeStamp())
|
||||
}
|
||||
RxUtils.disposeSubscribe(endTaskDisposable)
|
||||
}
|
||||
|
||||
|
||||
@@ -256,7 +256,7 @@ object ToolKitDataManager : IToolKitItemClickListener, IDataCenterBizListener {
|
||||
return
|
||||
}
|
||||
val position =
|
||||
if (param.position < 1) 0 else if (param.position > toolTags.size) toolTags.size - 1 else param.position - 1
|
||||
(param.position - 1).coerceIn(0, if (toolTags.isEmpty()) 0 else toolTags.size - 1)
|
||||
val bean = ToolKitBean(
|
||||
param.toolTag,
|
||||
getDefaultItemView(ctx, param.toolTitle, param.toolDrawableIcon)
|
||||
@@ -297,7 +297,8 @@ object ToolKitDataManager : IToolKitItemClickListener, IDataCenterBizListener {
|
||||
return
|
||||
}
|
||||
val position =
|
||||
if (param.position < 1) 0 else if (param.position > toolTags.size) toolTags.size - 1 else param.position - 1
|
||||
(param.position - 1).coerceIn(0, if (toolTags.isEmpty()) 0 else toolTags.size - 1)
|
||||
|
||||
val bean = ToolKitBean(
|
||||
param.toolTag,
|
||||
param.customView
|
||||
|
||||
@@ -31,10 +31,12 @@ import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.Event
|
||||
import com.mogo.eagle.core.function.api.hmi.xiaozhi.listener.OnXiaoZhiStateChangeListener
|
||||
import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State
|
||||
import com.mogo.eagle.core.function.api.map.angle.Scene
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitCustomItemAddParam
|
||||
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitDefaultItemAddParam
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
@@ -53,6 +55,7 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ModifyBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.HDMapVisualAngleAdjustLayout
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
|
||||
import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager
|
||||
import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow
|
||||
@@ -67,6 +70,7 @@ import com.zhjt.service_biz.BizConfig
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
@@ -97,6 +101,11 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
|
||||
private val operatePanel by lazy { AtomicReference<WeakReference<View>>() }
|
||||
|
||||
/**
|
||||
* 视角调整弹窗引用
|
||||
*/
|
||||
private val popOfVisualAngleAdjust by lazy { AtomicReference<WeakReference<MoGoPopWindow>>() }
|
||||
|
||||
override fun init(context: Context?) {
|
||||
this.context = context
|
||||
}
|
||||
@@ -541,4 +550,39 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
override fun removeToolkitByTag(toolTagList: List<String>) {
|
||||
ToolKitDataManager.invokeRemoveToolkitByTag(toolTagList)
|
||||
}
|
||||
|
||||
override fun toggleHdMapVisualAngleAdjust(show: Boolean) {
|
||||
val activity = AppStateManager.currentActivity() ?: return
|
||||
val old = popOfVisualAngleAdjust.get()?.get()
|
||||
if (show) {
|
||||
if (old != null && old.isShowing()) {
|
||||
return
|
||||
}
|
||||
val content = HDMapVisualAngleAdjustLayout(activity)
|
||||
MoGoPopWindow.Builder()
|
||||
.attachToActivity(activity)
|
||||
.width(AutoSizeUtils.dp2px(activity, 600.0f))
|
||||
.height(AutoSizeUtils.dp2px(activity, 400.0f))
|
||||
.draggable(true)
|
||||
.contentView(content)
|
||||
.gravityInActivity(Gravity.CENTER)
|
||||
.onTouchInterceptorInDrag { child, _ ->
|
||||
return@onTouchInterceptorInDrag content.getClickedViews().find { it == child } != null
|
||||
}
|
||||
.onDismissed {
|
||||
popOfVisualAngleAdjust.set(null)
|
||||
}
|
||||
.build()
|
||||
.also {
|
||||
popOfVisualAngleAdjust.set(WeakReference(it))
|
||||
it.show()
|
||||
}
|
||||
} else {
|
||||
old?.takeIf { it.isShowing() }?.also { it.hide() }
|
||||
}
|
||||
}
|
||||
|
||||
override fun isHdMapVisualAngleAdjustShow(): Boolean {
|
||||
return popOfVisualAngleAdjust.get()?.get()?.isShowing() ?: false
|
||||
}
|
||||
}
|
||||
@@ -233,7 +233,6 @@ class OperatePanelLayout : LinearLayout {
|
||||
pref.setDefaultValue(defVal)
|
||||
}
|
||||
}
|
||||
} else { //TODO renwj 处理持久化存储时,将持久化的值重新赋给业务层的静态变量
|
||||
}
|
||||
}
|
||||
|
||||
@@ -305,11 +304,11 @@ class OperatePanelLayout : LinearLayout {
|
||||
}
|
||||
|
||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
||||
return !preference.isPersistent
|
||||
return true
|
||||
}
|
||||
|
||||
override fun onPreferenceClick(preference: Preference): Boolean {
|
||||
return !preference.isPersistent
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -420,6 +419,11 @@ class OperatePanelLayout : LinearLayout {
|
||||
val isChecked = newValue as? Boolean ?: false
|
||||
HmiBuildConfig.v2iTotalSwitch = isChecked
|
||||
hmiAction("V2I总开关, ", isChecked)
|
||||
if (!isChecked) {
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_V2I_TO_PNC)?.also { changeValue(it, false) }
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_V2I_RED_LIGHT_WARNING)?.also { changeValue(it, false) }
|
||||
preferenceScreen.findPreferenceReal<SwitchPreferenceCompat>(KEY_V2I_WEAKNESS_TRAFFIC)?.also { changeValue(it, false) }
|
||||
}
|
||||
clickEventAnalytics("V2I总开关", isChecked)
|
||||
return true
|
||||
}
|
||||
@@ -430,7 +434,6 @@ class OperatePanelLayout : LinearLayout {
|
||||
FunctionBuildConfig.fusionMode = 2
|
||||
CallerAutoPilotControlManager.sendFusionMode(2)
|
||||
CallerHmiViewControlListenerManager.invokeFuncMode(IViewControlListener.FUNC_FUSION_COLOR,isChecked)
|
||||
|
||||
CallerAutoPilotControlManager.sendV2iToPncCmd(isChecked)
|
||||
hmiAction("V2I场景进PNC, ", isChecked)
|
||||
clickEventAnalytics("V2I场景进PNC", isChecked)
|
||||
|
||||
@@ -56,6 +56,7 @@ import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.data.multidisplay.TelematicConstant
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.data.obu.ObuStatusInfo
|
||||
import com.mogo.eagle.core.function.angle.scenes.Default
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener
|
||||
@@ -86,8 +87,10 @@ import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuInfoListenerManager
|
||||
@@ -139,6 +142,7 @@ import kotlinx.android.synthetic.main.view_debug_setting.view.btnBrakeThreshold
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnConnectServerIp
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnDisconnectIpc
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnDrawFusion
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnHdVisualAdjust
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnIpcReboot
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnPointCloudColor
|
||||
import kotlinx.android.synthetic.main.view_debug_setting.view.btnPointCloudSize
|
||||
@@ -1309,6 +1313,16 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
}
|
||||
//设置工控机连接状态
|
||||
setAutopilotConnectStatus()
|
||||
|
||||
|
||||
// 设置视角调整
|
||||
btnHdVisualAdjust?.isChecked = CallerHmiManager.isHdMapVisualAngleAdjustShow()
|
||||
btnHdVisualAdjust?.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked) {
|
||||
CallerVisualAngleManager.changeScene(Default())
|
||||
}
|
||||
CallerHmiManager.toggleHdMapVisualAngleAdjust(isChecked)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.SeekBar
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.hmi.R
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
|
||||
import com.mogo.eagle.core.utilcode.kotlin.scope
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.close
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.seekbar_testView_angle
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.seekbar_testView_cameraZ
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.seekbar_testView_zoom
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.textView_testView_angle
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.textView_testView_cameraZ
|
||||
import kotlinx.android.synthetic.main.layout_hdmap_visual_angle_adjust.view.textView_testView_zoom
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class HDMapVisualAngleAdjustLayout: RelativeLayout {
|
||||
|
||||
constructor(context: Context?) : super(context)
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
||||
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
|
||||
|
||||
private var job: Job? = null
|
||||
|
||||
init {
|
||||
LayoutInflater.from(context).inflate(R.layout.layout_hdmap_visual_angle_adjust, this, true)
|
||||
setBackgroundColor(ContextCompat.getColor(context, R.color.white))
|
||||
seekbar_testView_cameraZ.progress = 150
|
||||
seekbar_testView_cameraZ.setOnSeekBarChangeListener(object :
|
||||
SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
|
||||
val v = i.toFloat() / 10.0f
|
||||
textView_testView_cameraZ.text = "cameraZ: $v/100.0"
|
||||
toggleVisualAngleChange()
|
||||
}
|
||||
|
||||
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar) {}
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar) {}
|
||||
})
|
||||
|
||||
seekbar_testView_angle.progress = 125
|
||||
seekbar_testView_angle.setOnSeekBarChangeListener(object :
|
||||
SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
|
||||
val v = i.toFloat() / 10.0f
|
||||
textView_testView_angle.text = "angle: $v/90"
|
||||
toggleVisualAngleChange()
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar) {}
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar) {}
|
||||
})
|
||||
|
||||
seekbar_testView_zoom.progress = 8
|
||||
seekbar_testView_zoom.setOnSeekBarChangeListener(object :
|
||||
SeekBar.OnSeekBarChangeListener {
|
||||
override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
|
||||
val v = i.toFloat() / 10.0f
|
||||
textView_testView_zoom.text = "zoom: $v/5"
|
||||
toggleVisualAngleChange()
|
||||
}
|
||||
|
||||
override fun onStartTrackingTouch(seekBar: SeekBar?) {
|
||||
}
|
||||
override fun onStopTrackingTouch(seekBar: SeekBar?) {
|
||||
}
|
||||
})
|
||||
|
||||
close?.onClick {
|
||||
CallerHmiManager.toggleHdMapVisualAngleAdjust(false)
|
||||
}
|
||||
}
|
||||
|
||||
private fun toggleVisualAngleChange() {
|
||||
job?.safeCancel()
|
||||
scope.launch {
|
||||
val eyeHeight: Float = seekbar_testView_cameraZ.progress / 10.0f
|
||||
val zoom: Float = seekbar_testView_zoom.progress / 10.0f
|
||||
val angle: Float = seekbar_testView_angle.progress / 10.0f
|
||||
CallerMapUIServiceManager.getMapUIController()?.changeVisualAngle(eyeHeight, angle, zoom, -1)
|
||||
}.also {
|
||||
job = it
|
||||
}
|
||||
}
|
||||
|
||||
fun getClickedViews(): List<View?> {
|
||||
return listOf(seekbar_testView_cameraZ, seekbar_testView_angle, seekbar_testView_zoom, close)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:parentTag="android.widget.RelativeLayout"
|
||||
tools:layout_width="@dimen/dp_400"
|
||||
tools:layout_height="@dimen/dp_400">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_60"
|
||||
android:orientation="vertical">
|
||||
<!-- eyeheight-->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dip"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/bg_mf_sop_operator"
|
||||
android:layout_margin="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1">
|
||||
<SeekBar
|
||||
android:id="@+id/seekbar_testView_cameraZ"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="2dp"
|
||||
android:minHeight="2dp"
|
||||
android:max="1000"
|
||||
android:min="100"
|
||||
android:paddingBottom="@dimen/dp_10"
|
||||
android:paddingTop="@dimen/dp_10" />
|
||||
<TextView
|
||||
android:id="@+id/textView_testView_cameraZ"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:gravity="left"
|
||||
android:padding="6dp"
|
||||
android:text="cameraZ: 15/100"
|
||||
android:textColor="#00BFFF"
|
||||
android:textSize="20dp" />
|
||||
</LinearLayout>
|
||||
<!-- overlook-->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dip"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/bg_mf_sop_operator"
|
||||
android:layout_margin="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1">
|
||||
<SeekBar
|
||||
android:id="@+id/seekbar_testView_angle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="2dp"
|
||||
android:minHeight="2dp"
|
||||
android:max="900"
|
||||
android:min="100"
|
||||
android:paddingBottom="@dimen/dp_10"
|
||||
android:paddingTop="@dimen/dp_10" />
|
||||
<TextView
|
||||
android:id="@+id/textView_testView_angle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:gravity="left"
|
||||
android:padding="6dp"
|
||||
android:text="angle: 12.5/90"
|
||||
android:textColor="#00BFFF"
|
||||
android:textSize="20dp" />
|
||||
</LinearLayout>
|
||||
<!--zoom-->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dip"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/bg_mf_sop_operator"
|
||||
android:layout_margin="@dimen/dp_10"
|
||||
android:gravity="center"
|
||||
android:layout_weight="1">
|
||||
<SeekBar
|
||||
android:id="@+id/seekbar_testView_zoom"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="2dp"
|
||||
android:minHeight="2dp"
|
||||
android:max="50"
|
||||
android:min="1"
|
||||
android:paddingBottom="@dimen/dp_10"
|
||||
android:paddingTop="@dimen/dp_10" />
|
||||
<TextView
|
||||
android:id="@+id/textView_testView_zoom"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:gravity="left"
|
||||
android:padding="6dp"
|
||||
android:text="zoom: 0.8/5"
|
||||
android:textColor="#00BFFF"
|
||||
android:textSize="20dp" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:background="@drawable/icon_close_nor"/>
|
||||
</merge>
|
||||
@@ -1874,7 +1874,6 @@
|
||||
app:layout_constraintRight_toRightOf="@id/tbChangeAutoPilotStatus"
|
||||
app:layout_constraintTop_toBottomOf="@id/tbChangeAutoPilotStatus"
|
||||
/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btnPointCloudSize"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -1936,12 +1935,27 @@
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/btnPointCloudColor" />
|
||||
|
||||
|
||||
<ToggleButton
|
||||
android:id="@+id/btnHdVisualAdjust"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="@dimen/dp_20"
|
||||
android:textColor="#000"
|
||||
android:textOff="开启地图视角调整"
|
||||
android:textOn="关闭地图视角调整"
|
||||
android:textSize="@dimen/dp_24"
|
||||
android:checked="false"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnPointCloudSize" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rgGpsProvider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintTop_toBottomOf="@id/btnPointCloudColor">
|
||||
app:layout_constraintTop_toBottomOf="@id/btnHdVisualAdjust">
|
||||
|
||||
<RadioButton
|
||||
android:id="@+id/rbGpsProviderAndroid"
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DOWN
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.UP
|
||||
import com.mogo.eagle.core.function.api.map.road.IMoGoMapRoadListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.*
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.map.*
|
||||
import com.mogo.eagle.core.utilcode.kotlin.*
|
||||
import com.zhidaoauto.map.data.road.RoadCross
|
||||
@@ -150,6 +151,9 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
|
||||
private var prevJob: Job? = null
|
||||
|
||||
override fun changeScene(scene: Scene) {
|
||||
if (CallerHmiManager.isHdMapVisualAngleAdjustShow()) {
|
||||
return
|
||||
}
|
||||
prevJob?.safeCancel()
|
||||
scope.launch {
|
||||
val delay = scene.getDelay()
|
||||
|
||||
@@ -291,4 +291,15 @@ interface IMoGoHmiProvider :IProvider{
|
||||
* 显示/隐藏 运营面板
|
||||
*/
|
||||
fun toggleOperatePanel(show: Boolean)
|
||||
|
||||
|
||||
/**
|
||||
* 是否弹出高精地图视角调整弹窗
|
||||
*/
|
||||
fun toggleHdMapVisualAngleAdjust(show: Boolean)
|
||||
|
||||
/**
|
||||
* 视角弹窗是否已展示
|
||||
*/
|
||||
fun isHdMapVisualAngleAdjustShow(): Boolean
|
||||
}
|
||||
@@ -432,4 +432,12 @@ object CallerHmiManager {
|
||||
fun removeToolkitByTag(toolTagList: List<String>) {
|
||||
hmiProviderApi?.removeToolkitByTag(toolTagList)
|
||||
}
|
||||
|
||||
fun toggleHdMapVisualAngleAdjust(show: Boolean) {
|
||||
hmiProviderApi?.toggleHdMapVisualAngleAdjust(show)
|
||||
}
|
||||
|
||||
fun isHdMapVisualAngleAdjustShow(): Boolean {
|
||||
return hmiProviderApi?.isHdMapVisualAngleAdjustShow() ?: false
|
||||
}
|
||||
}
|
||||
@@ -339,4 +339,9 @@ interface IMogoMapUIController {
|
||||
* 设置自车相对屏幕位置
|
||||
*/
|
||||
fun setScreenToOriginDis(p: Float)
|
||||
|
||||
/**
|
||||
* 调整自车视角
|
||||
*/
|
||||
fun changeVisualAngle(eyeHeight: Float, angle: Float, zoom: Float, duration: Int)
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.w
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
@@ -965,4 +966,12 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
|
||||
override fun setScreenToOriginDis(p: Float) {
|
||||
mMapView.getMapController()?.setScreenToOriginDis(p)
|
||||
}
|
||||
|
||||
override fun changeVisualAngle(eyeHeight: Float, angle: Float, zoom: Float, duration: Int) {
|
||||
Logger.d(TAG, "changeVisualAngle: eyeHeight: $eyeHeight, zoom: $zoom, angle: $angle, duration: $duration")
|
||||
if (checkAMapView()) {
|
||||
Logger.d(TAG, "changeVisualAngle -- 2 --")
|
||||
mMapView.getMapController()?.interpolation(eyeHeight, angle, zoom, -1, duration)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user