[6.5.0] fix bug of roam

This commit is contained in:
EmArrow
2024-07-03 20:18:55 +08:00
parent de4d758930
commit 3d0c70cb59
18 changed files with 81 additions and 91 deletions

View File

@@ -195,7 +195,6 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public void onResume() {
super.onResume();
mapBizView.onResume();
mapRoamView.onResume();
smallMapView.onResume();
}
@@ -203,7 +202,6 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public void onPause() {
super.onPause();
mapBizView.onPause();
mapRoamView.onPause();
smallMapView.onPause();
}

View File

@@ -79,12 +79,11 @@ class RomaTaxiView @JvmOverloads constructor(
}
override fun romaViewStatus(status: Boolean) {
Log.i("emArrow","romaViewStatus:$status")
ThreadUtils.runOnUiThread {
if(status){
this.visibility = View.VISIBLE
} else {
// this.visibility = View.GONE
this.visibility = View.GONE
}
}
}

View File

@@ -90,7 +90,7 @@ class WifiStateView @JvmOverloads constructor(
wifiHandler = WifiHandler(this)
val wifiInfo = wifiManager!!.connectionInfo
wifiName = wifiInfo.ssid.replace("\"","")
Log.i("emArrow", "init wifiName: $wifiName")
// Log.i("emArrow", "init wifiName: $wifiName")
}
private val wifiStateReceiver: BroadcastReceiver = object : BroadcastReceiver() {
@@ -105,7 +105,7 @@ class WifiStateView @JvmOverloads constructor(
}
val wifiInfo = wifiManager!!.connectionInfo
wifiName = wifiInfo.ssid.replace("\"","")
Log.i("emArrow", "wifiName: $wifiName")
// Log.i("emArrow", "wifiName: $wifiName")
level = WifiManager.calculateSignalLevel(wifiInfo.rssi, 5)
wifiHandler?.sendEmptyMessage(level)
}

View File

@@ -37,8 +37,8 @@ class MapBizProvider :IMoGoFunctionServerProvider, IMogoRoma {
CallerVisualAngleManager.init()
}
override fun trigger(romaStatus: Boolean) {
romaManager.trigger(romaStatus)
override fun trigger(roamStatus: Boolean) {
romaManager.trigger(roamStatus)
}
override fun onDestroy() {

View File

@@ -32,21 +32,15 @@ class AiCloudIdentifyDataManager {
})
}
fun trigger(romaStatus: Boolean, startDis: Int, endDis: Int) {
requestRangeOfIdentify(romaStatus, startDis, endDis)
fun trigger(romaStatus: Boolean, startDis: Int, endDis: Int, lat: Double, lon: Double) {
requestRangeOfIdentify(romaStatus, startDis, endDis, lat, lon)
}
fun requestRangeOfIdentify(
romaStatus: Boolean,
startDis: Int,
endDis: Int
romaStatus: Boolean, startDis: Int, endDis: Int, lat: Double, lon: Double
) {
val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().gnssInfo
aiCloudIdentifyNetWorkModel.requestIdentifyRange(
romaStatus,
startDis, endDis,
loc.longitude,
loc.latitude,
romaStatus, startDis, endDis, lon, lat,
{
CallerMapAiCloudDataManager.invokeResponse(romaStatus)
},

View File

@@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.business.ai
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.util.Log
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -51,7 +52,7 @@ class RomaManager() : IMoGoPlanningRottingListener,
IMoGoAutopilotStatusListener, IMoGoRomaListener, IMoGoAiCloudIdentifyDataListener {
companion object {
private const val TAG = "AiCloudIdentifyData"
private const val TAG = "RomaManager"
private const val H_ERROR_CLOUD = 1
private const val H_ERROR_MAP = 2
@@ -116,13 +117,17 @@ class RomaManager() : IMoGoPlanningRottingListener,
true
}
fun trigger(romaStatus: Boolean) {
if (CallerMapIdentifyManager.roma.first != TAG && CallerMapIdentifyManager.roma.second) {
fun trigger(roamStatus: Boolean) {
if (CallerMapIdentifyManager.roam.first.isNotEmpty()
&& CallerMapIdentifyManager.roam.first!= TAG
&& CallerMapIdentifyManager.roam.second) {
ToastUtils.showLong("正在展示路口漫游,请稍后重试")
Log.e("emArrow", "正在展示路口漫游,请稍后重试")
CallerMapRomaListener.invokeMapRoma(false)
return
}
// 乘客司机屏屏各自单独控制漫游
if (romaStatus) {
if (roamStatus) {
// 开启roma当前非漫游开启
MapRomaTrace.log(
"",
@@ -140,7 +145,7 @@ class RomaManager() : IMoGoPlanningRottingListener,
}
private fun openRoma() {
CallerMapIdentifyManager.roma = Pair(TAG, true)
CallerMapIdentifyManager.roam = Pair(TAG, true)
CallerMapUIServiceManager.getMapUIController()?.visualAngleLock(true)
CallerMapUIServiceManager.getMapUIController()?.setScrollGesturesEnable(false)
updateLongSightLevel(true)
@@ -149,7 +154,7 @@ class RomaManager() : IMoGoPlanningRottingListener,
@Synchronized
private fun closeRoma(manual: Boolean = true) {
CallerMapIdentifyManager.roma = Pair("", false)
CallerMapIdentifyManager.roam = Pair("", false)
CallerMapUIServiceManager.getMapUIController()?.visualAngleLock(false)
CallerMapUIServiceManager.getMapUIController()?.setScrollGesturesEnable(true)
updateLongSightLevel(false)
@@ -192,7 +197,7 @@ class RomaManager() : IMoGoPlanningRottingListener,
"cityCode" to CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().cityCode
), !dataReceive
)
aiCloudIdentifyDataManager.trigger(dataReceive, START_METRE, END_METRE)
aiCloudIdentifyDataManager.trigger(dataReceive, START_METRE, END_METRE,loc.latitude,loc.longitude)
}
override fun response(requestStatus: Boolean, errorMsg: String?) {

View File

@@ -8,13 +8,12 @@ import android.util.Log
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.api.map.road.IMoGoMapRoadListener
import com.mogo.eagle.core.function.api.map.roma.IMoGoAiCloudIdentifyDataListener
import com.mogo.eagle.core.function.business.ai.AiCloudIdentifyDataManager
import com.mogo.eagle.core.function.business.ai.AiCloudIdentifyDataManager.Companion.aiCloudIdentifyDataManager
import com.mogo.eagle.core.function.business.ai.RomaManager
import com.mogo.eagle.core.function.business.identify.MapIdentifySubscriber
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapAiCloudDataManager
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
import com.mogo.map.MogoMap.Companion.MAP_ROAM
import com.mogo.map.MogoMapView
@@ -24,23 +23,19 @@ import mogo.yycp.api.proto.SocketDownData
class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs),
LifecycleObserver, IMoGoMapRoadListener , IMoGoAiCloudIdentifyDataListener {
LifecycleObserver, IMoGoMapRoadListener, IMoGoAiCloudIdentifyDataListener {
companion object {
private const val TAG = "MapRoamView"
}
override fun onCreate(bundle: Bundle?) {
super.onCreate(bundle)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
initMapView()
}
private fun initMapView() {
map?.uiController?.showMyLocation(false)
getUI()?.showMyLocation(false)
map?.uiSettings?.let {
it.setAllGesturesEnabled(false)
//设置指南针是否可见。
@@ -58,18 +53,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
return MAP_ROAM
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
}
override fun onResume() {
super.onResume()
}
override fun onPause() {
super.onPause()
}
private fun getUI(): IMogoMapUIController? {
return map?.uiController
}
@@ -83,25 +66,28 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
fun openRoam() {
this.onResume()
CallerMapAiCloudDataManager.addListener(TAG, this)
getUI()?.setVisible(true)
CallerMapAiCloudDataManager.addListener(RoadCrossRoamView.TAG, this)
// 更新地图视角 - 高视角
getUI()?.changeMapVisualAngle(VisualAngleMode.MAP_STYLE_VR_ANGLE_TOP, null)
// 更新路口位置
val latLng = CallerMapRoadListenerManager.getStopLineLatLng()
Log.i("emArrow","$TAG 开始漫游 latLng:${latLng.toString()}")
latLng?.let {
val loc = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84()
val curLat = loc.latitude
val curLng = loc.longitude
loc.latitude = latLng.first
loc.longitude = latLng.second
setExtraGPSData(loc)
val dis = CoordinateUtils.calculateLineDistance(curLat, curLng, latLng.first, latLng.second)
Log.i("emArrow", "$TAG 开始漫游 latLng:$latLng , curLat:$curLat , curLng:$curLng , dis:$dis")
// 开始漫游
aiCloudIdentifyDataManager.trigger(true, 1, 300, latLng.first, latLng.second)
}
// 开始漫游
aiCloudIdentifyDataManager.trigger(true, 1, 300)
}
override fun response(requestStatus: Boolean, errorMsg: String?) {
Log.e("emArrow","road map response:$requestStatus , errorMsg:${errorMsg?:""}")
}
override fun onAiIdentifyData(obj: SocketDownData.SocketDownDataProto?) {
@@ -116,17 +102,16 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
}
}
fun closeRoam(){
this.onPause()
fun closeRoam() {
// 结束漫游
aiCloudIdentifyDataManager.trigger(false, 1, 300)
CallerMapAiCloudDataManager.removeListener(TAG)
val latLng = CallerMapRoadListenerManager.getStopLineLatLng()
latLng?.let {
aiCloudIdentifyDataManager.trigger(false, 1, 300, it.first, it.second)
}
CallerMapAiCloudDataManager.removeListener(RoadCrossRoamView.TAG)
MapIdentifySubscriber.instance.clearAiCloudRoma(MAP_ROAM)
}
override fun onDestroy() {
// 先取消注册数据再onDestroy
super.onDestroy()
this.onPause()
getUI()?.setVisible(false)
}
}

View File

@@ -1,7 +1,6 @@
package com.mogo.eagle.core.function.view
import android.content.Context
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -48,7 +47,6 @@ class RoadCrossRoamListAdapter(private val mContext: Context, private val lightM
val r0 = Random.nextInt(0,3)
val r1 = Random.nextInt(1,9)
Log.i("emArrow","random:${r0 * 1000L + r1 * 100L}")
// 模拟加载完成
holder.itemView.postDelayed({
holder.progressBar.visibility = View.GONE

View File

@@ -36,7 +36,7 @@ class RoadCrossRoamView @JvmOverloads constructor(
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoMapRoadListener{
companion object {
private const val TAG = "RoadCrossRoamView"
const val TAG = "RoadCrossRoamView"
}
private var showState by Delegates.observable(false) { _, oldV, newV ->
@@ -91,19 +91,23 @@ class RoadCrossRoamView @JvmOverloads constructor(
override fun onStopLineInfo(info: StopLine) {
super.onStopLineInfo(info)
if(info.distance == 0.0){
Log.i("emArrow", "showState return , distance is zero")
return
}
showState = info.distance < 200 && info.distance > 100
Log.i("emArrow", "showState $showState , distance:${info.distance}")
// Log.i("emArrow", "showState $showState , distance:${info.distance}")
}
private fun attachView() {
// 处于漫游模式下不做处理
if (CallerMapIdentifyManager.roma.second) {
if (CallerMapIdentifyManager.roma.first != TAG) {
if (CallerMapIdentifyManager.roam.second) {
if (CallerMapIdentifyManager.roam.first != TAG) {
ToastUtils.showLong("正在漫游中,不展示路口漫游")
}
return
}
CallerMapIdentifyManager.roma = Pair(TAG, true)
CallerMapIdentifyManager.roam = Pair(TAG, true)
this.visibility = View.VISIBLE
ivZhiRoadRoamView.visibility = View.VISIBLE
mapRoamView.visibility = View.VISIBLE
@@ -145,7 +149,7 @@ class RoadCrossRoamView @JvmOverloads constructor(
}
mapRoamView.closeRoam()
mapRoamView.visibility = View.GONE
CallerMapIdentifyManager.roma = Pair("", false)
CallerMapIdentifyManager.roam = Pair("", false)
lvRoadCrossRoamTip.adapter = null
animator?.cancel()
if (lightMode) {

View File

@@ -6,8 +6,8 @@ interface IMogoRoma : IProvider {
/**
* 触发开启/关闭漫游
* @param romaStatus 漫游状态
* @param roamStatus 漫游状态
*/
fun trigger(romaStatus:Boolean)
fun trigger(roamStatus:Boolean)
}

View File

@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.call.map
import android.util.Log
import com.mogo.eagle.core.function.api.map.roma.IMoGoAiCloudIdentifyDataListener
import com.mogo.eagle.core.function.call.base.CallerBase
import mogo.yycp.api.proto.SocketDownData
@@ -7,14 +8,15 @@ import mogo.yycp.api.proto.SocketDownData
object CallerMapAiCloudDataManager : CallerBase<IMoGoAiCloudIdentifyDataListener>() {
fun invokeResponse(requestStatus: Boolean, errorMsg: String? = null) {
val tag = CallerMapIdentifyManager.roma.first
val tag = CallerMapIdentifyManager.roam.first
Log.i("emArrow","invokeResponse tag:$tag , status:$requestStatus , errorMsg:${errorMsg?:""}")
if(tag.isNotEmpty() && M_LISTENERS.containsKey(tag)){
M_LISTENERS[tag]?.response(requestStatus, errorMsg)
}
}
fun invokeAiIdentifyData(obj: SocketDownData.SocketDownDataProto?){
val tag = CallerMapIdentifyManager.roma.first
val tag = CallerMapIdentifyManager.roam.first
if(tag.isNotEmpty() && M_LISTENERS.containsKey(tag)){
M_LISTENERS[tag]?.onAiIdentifyData(obj)
}

View File

@@ -3,19 +3,21 @@ package com.mogo.eagle.core.function.call.map
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.map.roma.IMogoRoma
import com.mogo.eagle.core.utilcode.util.ToastUtils
object CallerMapIdentifyManager {
@Volatile
var roma = Pair("", false)
var roam = Pair("", false)
set(value) {
field = value
}
private val romaApi: IMogoRoma
private val roamApi: IMogoRoma
get() = ARouter.getInstance().build(MogoServicePaths.PATH_MAP_BIZ)
.navigation() as IMogoRoma
fun romaTrigger(romaStatus: Boolean) {
romaApi.trigger(romaStatus)
fun romaTrigger(roamStatus: Boolean) {
roamApi.trigger(roamStatus)
}
}

View File

@@ -26,14 +26,14 @@ object CallerMsgBoxManager {
*/
fun saveMsgBox(bean: MsgBoxBean) {
CallerTrace.write(TAG,bean)
providerApi?.saveMsg(bean) //todo emArrow test
providerApi?.saveMsg(bean)
}
/**
* 存储含有pb的数据到消息盒子(区别与上述方法中的trace write)
*/
fun saveMsgBoxHasPB(bean: MsgBoxBean){
providerApi?.saveMsg(bean) //todo emArrow test
providerApi?.saveMsg(bean)
}
/**

View File

@@ -181,9 +181,6 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
}
}
override fun getMapEngine(): MapEngine {
return mMapEngine
}
@@ -229,7 +226,7 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
mITraffic = null
}
//surfaceview截屏
// surfaceView截屏
private fun createBitmapFromGLSurface(x: Int, y: Int, w: Int, h: Int, gl: GL10): Bitmap? {
val bitmapBuffer = IntArray(w * h)
val bitmapSource = IntArray(w * h)
@@ -256,10 +253,6 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
return Bitmap.createBitmap(bitmapSource, w, h, Bitmap.Config.ARGB_8888)
}
fun setMapController(mMapController: IMapController?) {
this.mMapController = mMapController
}
@@ -1231,7 +1224,6 @@ class MapView(context: Context, private val mMapStyleParams: IMapStyleParams, pr
//设置刷新帧率
override fun setRenderFps(fps: Int) {
m_FPS = fps
}
//设置刷新帧率

View File

@@ -1,6 +1,7 @@
package com.zhidaoauto.map.sdk.open.view
import android.util.Log
import android.view.View
import com.autonavi.nge.map.LonLat
import com.zhidaoauto.map.data.point.LonLatPoint
import com.zhidaoauto.map.sdk.inner.CompileConfig
@@ -775,6 +776,10 @@ class MapAutoViewHelper(mapAutoView: MapAutoView) {
?.setPanel(PanelManager.PANEL_WHAT_HID, PanelManager.PANEL_BTN_LOGO)
}
fun setVisible(visible:Boolean){
mMapAutoView.getClerk()?.add()
mMapAutoView.getMapView()?.visibility = if (visible) View.VISIBLE else View.GONE
}
/**
* 地图截屏

View File

@@ -327,4 +327,6 @@ interface IMogoMapUIController {
*/
fun getMapScreenShot()
fun setWeatherEnable(enable: Boolean)
fun setVisible(visible:Boolean)
}

View File

@@ -951,4 +951,8 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
override fun setWeatherEnable(enable: Boolean) {
mMapView.getMapAutoViewHelper()?.setWeatherEnable(enable)
}
override fun setVisible(visible: Boolean) {
mMapView.getMapAutoViewHelper()?.setVisible(visible)
}
}

View File

@@ -33,7 +33,7 @@ public class MogoIdentifyManager implements IMogoIdentifyManager {
@Override
public void removeMarker(String uuidString, String mapInstance) {
try {
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(MogoMap.DEFAULT);
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(mapInstance);
if(iMogoMap != null){
iMogoMap.removeMarker(uuidString);
}
@@ -48,7 +48,7 @@ public class MogoIdentifyManager implements IMogoIdentifyManager {
@Override
public void updateBatchMarkerPosition(HashMap<String, MessagePad.TrackedObject> optionsArrayList, String mapInstance) {
try {
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(MogoMap.DEFAULT);
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(mapInstance);
if(iMogoMap != null){
iMogoMap.updateBatchMarkerPosition(optionsArrayList);
}
@@ -60,7 +60,7 @@ public class MogoIdentifyManager implements IMogoIdentifyManager {
@Override
public void updateBatchAiMarkerPosition(HashMap<String, SocketDownData.CloudRoadDataProto> optionsArrayList, String mapInstance) {
try {
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(MogoMap.DEFAULT);
IMogoMap iMogoMap = MogoMap.Companion.getMapInstance().getMogoMap(mapInstance);
if(iMogoMap != null){
iMogoMap.updateBatchAiMarkerPosition(optionsArrayList);
}