diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt
index b3ca14611a..7db3fc7eff 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt
@@ -1,5 +1,6 @@
package com.mogo.och.bus.passenger.ui.widget
+import android.annotation.*
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
@@ -14,9 +15,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerBatteryManagementSystem
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
-import com.mogo.eagle.core.utilcode.util.ThreadUtils
+import com.mogo.eagle.core.utilcode.kotlin.*
import com.mogo.och.bus.passenger.R
import kotlinx.android.synthetic.m2.p_m2_view_status_bar.view.*
+import kotlinx.coroutines.*
import me.jessyan.autosize.utils.AutoSizeUtils
/**
@@ -32,11 +34,18 @@ class M2StatusBarView @JvmOverloads constructor(
const val TAG = "M2StatusBarView"
}
+ @Volatile
+ private var oldBmsSoc: Float = -1.0f
+
init {
LayoutInflater.from(context).inflate(R.layout.p_m2_view_status_bar, this, true)
setBackgroundColor(Color.parseColor("#80FFFFFF"))
+ isClickable = true
+ isFocusable = true
}
+
+ @SuppressLint("ClickableViewAccessibility")
override fun onAttachedToWindow() {
super.onAttachedToWindow()
post {
@@ -51,8 +60,12 @@ class M2StatusBarView @JvmOverloads constructor(
//电量
CallerBatteryManagementSystemListenerManager.addListener(TAG,this)
- progress.progress = 50
- tv_power_cos.text = "50%"
+ progress?.also {
+ it.progress = 50
+ }
+ tv_power_cos?.also {
+ it.text = "50%"
+ }
}
override fun onSkinModeChange(skinMode: Int) {
@@ -69,19 +82,24 @@ class M2StatusBarView @JvmOverloads constructor(
CallerDevaToolsManager.hideStatusBar()
}
+ @SuppressLint("SetTextI18n")
override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) {
- ThreadUtils.runOnUiThread {
- val bmsSoc = states.bmsSoc
- if(bmsSoc >1){
- progress.progress = bmsSoc.toInt()
- tv_power_cos.text = "${bmsSoc.toInt()}%"
- }else{
- val currenPower = (bmsSoc * 100).toInt()
- progress.progress = currenPower
- tv_power_cos.text = "$currenPower%"
+ val bmsSoc = states.bmsSoc
+ try {
+ if (oldBmsSoc != bmsSoc ) {
+ scope.launch {
+ if(bmsSoc >1){
+ progress?.also { it.progress = bmsSoc.toInt() }
+ tv_power_cos?.also { it.text = "${bmsSoc.toInt()}%" }
+ }else{
+ val power = (bmsSoc * 100).toInt()
+ progress?.also { it.progress = power }
+ tv_power_cos?.also {it.text = "$power%" }
+ }
+ }
}
+ } finally {
+ oldBmsSoc = bmsSoc
}
}
-
-
}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt
index c8ab7939aa..d3244e8f7b 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt
@@ -45,7 +45,8 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer {
override fun changeUiToPauseShow() {
Logger.d(ImageAndVideoRotation.TAG, "changeUiToPauseShow-hide")
- hideWidget()
+ startPlayLogic()
+// hideWidget()
}
override fun changeUiToCompleteShow() {
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
index 241e37b44b..ebe522c6e0 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt
@@ -148,12 +148,12 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
override fun onPrepared(url: String?, vararg objects: Any?) {
Logger.d(ImageAndVideoRotation.TAG, "onPrepared--$url")
- if (viewList[mViewPager.currentItem] is AdvanceVideoView){
- val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView)
- UiThreadHandler.postDelayed(Runnable {
- videoView.setCacheImageViewGone()
- },1000)
- }
+// if (viewList[mViewPager.currentItem] is AdvanceVideoView){
+// val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView)
+// UiThreadHandler.postDelayed(Runnable {
+// videoView.setCacheImageViewGone()
+// },1000)
+// }
}
override fun onAutoComplete(url: String?, vararg objects: Any?) {
diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
index 1ea3cad537..92701d437f 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
+++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt
@@ -103,7 +103,7 @@ class AdvanceVideoView @JvmOverloads constructor(
// .into(it)
// }
videoViewPlayer?.thumbImageView = cacheImage
- setCacheImageViewVisible()
+// setCacheImageViewVisible()
// }
// }
}
diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml
index 15a1c12b4f..20461e6c5a 100644
--- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml
+++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml
@@ -30,8 +30,9 @@
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_32" />
-
+ android:background="@null"
+ android:progressDrawable="@drawable/m2_power_seekbar_style" />
{
// 重新起步
diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt
index 2a2c92ca72..55e296f75e 100644
--- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt
+++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt
@@ -16,10 +16,10 @@ import com.magic.mogo.och.charter.callback.DriverM1OrderCallback
import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback
import com.magic.mogo.och.charter.constant.CharterConst
import com.magic.mogo.och.charter.manager.CharterAnalyticsManager
-import com.magic.mogo.och.charter.manager.CharterSendTripInfoManager
-import com.magic.mogo.och.charter.manager.CharterSendTripInfoManager.ARRIVE_STATION
-import com.magic.mogo.och.charter.manager.CharterSendTripInfoManager.END_TRIP
-import com.magic.mogo.och.charter.manager.CharterSendTripInfoManager.START_TRIP
+import com.mogo.och.common.module.manager.CharterSendTripInfoManager
+import com.mogo.och.common.module.manager.CharterSendTripInfoManager.ARRIVE_STATION
+import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP
+import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP
import com.magic.mogo.och.charter.manager.CharterTrajectoryManager
import com.magic.mogo.och.charter.net.DriverM1ServiceManager
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterSendTripInfoManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/CharterSendTripInfoManager.kt
similarity index 97%
rename from OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterSendTripInfoManager.kt
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/CharterSendTripInfoManager.kt
index a3efae98a1..baf9fa9afb 100644
--- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterSendTripInfoManager.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/CharterSendTripInfoManager.kt
@@ -1,4 +1,4 @@
-package com.magic.mogo.och.charter.manager
+package com.mogo.och.common.module.manager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/video/VideoPlayerView.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/video/VideoPlayerView.kt
index 76346ec988..a09649ff3d 100644
--- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/video/VideoPlayerView.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/video/VideoPlayerView.kt
@@ -93,7 +93,7 @@ class AdvanceVideoView @JvmOverloads constructor(
private fun loadCacheImg() {
videoViewPlayer?.thumbImageView = cacheImage
cacheImage?.setImageResource(R.drawable.video_holder)
- setCacheImageViewVisible()
+// setCacheImageViewVisible()
Logger.d(ImageVideoRotationView.TAG, "setVideoPath")
cacheImage?.let {
Glide.with(context).asBitmap().load(cacheImageUrl)
@@ -385,12 +385,12 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter
override fun onPrepared(url: String?, vararg objects: Any?) {
Logger.d(ImageVideoRotationView.TAG, "onPrepared")
- if (viewList[mViewPager.currentItem] is AdvanceVideoView) {
- val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView)
- UiThreadHandler.postDelayed(Runnable {
- videoView.setCacheImageViewGone()
- }, 1000)
- }
+// if (viewList[mViewPager.currentItem] is AdvanceVideoView) {
+// val videoView = (viewList[mViewPager.currentItem] as AdvanceVideoView)
+// UiThreadHandler.postDelayed(Runnable {
+// videoView.setCacheImageViewGone()
+// }, 1000)
+// }
}
override fun onAutoComplete(url: String?, vararg objects: Any?) {
@@ -523,7 +523,7 @@ class AdvanceGSYVideoPlayer : StandardGSYVideoPlayer {
override fun changeUiToPauseShow() {
Logger.d("ImageAndVideoRotation", "changeUiToPauseShow-hide")
- hideWidget()
+ startPlayLogic()
}
override fun changeUiToCompleteShow() {
diff --git a/app/build.gradle b/app/build.gradle
index 7db071f93e..fac1a5d598 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -64,10 +64,7 @@ if (!isAndroidTestBuild()) {
memory_leak {
enable true
}
- object_hashcode {
- enable true
- }
- TextView_setTextProxy {
+ textview_opt {
enable true
}
}
diff --git a/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt b/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt
index 73d69c4931..a3a8a614f4 100644
--- a/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt
+++ b/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt
@@ -14,23 +14,29 @@ import com.knightboost.lancet.api.annotations.*
@Group("crash_fix")
class CrashFix {
- /**
- * 修正Android8.0及之后,后台启动Service引起的崩溃
- * java.lang.IllegalStateException: Not allowed to start service Intent {
- * act=com.zhidao.cosupload.service.UPLOAD_ACTION cmp=com.mogo.launcher.f/com.zhidao.cosupload.service.UploadService }: app is in background uid UidRecord{6443b7b u0a404 LAST bg:+1m15s362ms idle change:idle procs:1 seq(0,0,0)}
- */
- @Insert(mayCreateSuper = true)
- @TargetClass("android.content.Context", scope = LEAF)
- @TargetMethod(methodName = "startService")
- fun fixStartServiceCrash(intent: Intent): ComponentName? {
- return try {
- Origin.call() as ComponentName?
- } catch (t: Throwable) {
- t.printStackTrace()
- null
+
+ companion object {
+
+ /**
+ * 修正Android8.0及之后,后台启动Service引起的崩溃
+ * java.lang.IllegalStateException: Not allowed to start service Intent {
+ * act=com.zhidao.cosupload.service.UPLOAD_ACTION cmp=com.mogo.launcher.f/com.zhidao.cosupload.service.UploadService }: app is in background uid UidRecord{6443b7b u0a404 LAST bg:+1m15s362ms idle change:idle procs:1 seq(0,0,0)}
+ */
+ @JvmStatic
+ @TargetClass("android.content.Context", scope = ALL)
+ @TargetMethod(methodName = "startService")
+ @ReplaceInvoke
+ fun fixStartServiceCrash(context: Context, intent: Intent): ComponentName? {
+ return try {
+ context.startService(intent)
+ } catch (t: Throwable) {
+ t.printStackTrace()
+ null
+ }
}
}
+
/**
* https://console.volcengine.com/apmplus/app/crash/detail/java/bb387ccd9c1a3c6ad2ede4e6f501a5e7?aid=302368&date=%7B%22granularity%22%3A%221h%22%2C%22duration%22%3A%22recently%22%2C%22range%22%3A%221w%22%7D&filters=%7B%22type%22%3A%22and%22%2C%22sub_conditions%22%3A%5B%7B%22dimension%22%3A%22os%22%2C%22op%22%3A%22in%22%2C%22type%22%3A%22expression%22%2C%22values%22%3A%5B%22Android%22%5D%7D%5D%7D&org_id=2100068151&os=Android&page_number=6&status=%5B%22pending%22%2C%22processing%22%2C%22solved%22%2C%22reopen%22%5D
* java.lang.IllegalArgumentException: Invalid audio buffer size.
diff --git a/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java b/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java
deleted file mode 100644
index 428a52158a..0000000000
--- a/app/src/main/java/com/mogo/launcher/lancet/ObjectHashCodeProxy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.mogo.launcher.lancet;
-
-import androidx.annotation.Keep;
-import com.knightboost.lancet.api.Scope;
-import com.knightboost.lancet.api.annotations.Group;
-import com.knightboost.lancet.api.annotations.ImplementedInterface;
-import com.knightboost.lancet.api.annotations.NameRegex;
-import com.knightboost.lancet.api.annotations.ReplaceInvoke;
-import com.knightboost.lancet.api.annotations.TargetClass;
-import com.knightboost.lancet.api.annotations.TargetMethod;
-import com.knightboost.lancet.api.annotations.Weaver;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Weaver
-@Group("object_hashcode")
-@Keep
-public class ObjectHashCodeProxy {
-
- public static final ConcurrentHashMap hashCodes = new ConcurrentHashMap<>();
-
- @NameRegex("(com\\.mogo\\.eagle\\.core\\.utilcode\\.util\\.ThreadUtils|com\\.mogo\\.eagle\\.core\\.utilcode\\.util\\.UiThreadHandler)")
- @TargetClass(value = "java.lang.Object",scope = Scope.SELF)
- @TargetMethod(methodName = "hashCode")
- @ReplaceInvoke
- public static int hashCodeProxy(Object r) {
- Class> clazz = r.getClass();
- String className = clazz.getName();
- if (hashCodes.containsKey(className)) {
- Integer value = hashCodes.get(className);
- if (value != null) {
- return value;
- }
- }
- int hashCode = System.identityHashCode(r);
- hashCodes.put(className, hashCode);
- return hashCode;
- }
-}
diff --git a/app/src/main/java/com/mogo/launcher/lancet/TextViewSetTextOpt.java b/app/src/main/java/com/mogo/launcher/lancet/TextViewSetTextOpt.java
index 0a0ed2611f..ad11c130cd 100644
--- a/app/src/main/java/com/mogo/launcher/lancet/TextViewSetTextOpt.java
+++ b/app/src/main/java/com/mogo/launcher/lancet/TextViewSetTextOpt.java
@@ -3,7 +3,6 @@ package com.mogo.launcher.lancet;
import android.os.Looper;
import android.util.Log;
import android.widget.TextView;
-
import com.knightboost.lancet.api.Scope;
import com.knightboost.lancet.api.annotations.Group;
import com.knightboost.lancet.api.annotations.NameRegex;
@@ -13,7 +12,7 @@ import com.knightboost.lancet.api.annotations.TargetMethod;
import com.knightboost.lancet.api.annotations.Weaver;
@Weaver
-@Group("TextView_setTextProxy")
+@Group("textview_opt")
public class TextViewSetTextOpt {
@NameRegex("(com\\.mogo|com\\.zhidao|com\\.elegant|com\\.zhidaoauto|com\\.zhjt).*")
@@ -31,6 +30,7 @@ public class TextViewSetTextOpt {
sb.setLength(sb.length() - 1);
}
Log.e("ALERT", sb.toString());
+ return;
}
CharSequence old = view.getText();
if (old != null && !old.equals(text)) {
diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
index ab78361cd1..6e70b33d3e 100644
--- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
+++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt
@@ -12,10 +12,12 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.launcher.BuildConfig
import com.mogo.launcher.R
import com.mogo.test.crashreport.CrashReportConstants
+import com.shuyu.gsyvideoplayer.player.IjkPlayerManager
import com.zhidaoauto.map.sdk.open.HDTypes
import com.zhidaoauto.map.sdk.open.MapAutoApi
import com.zhidaoauto.map.sdk.open.MapParams
import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
+import tv.danmaku.ijk.media.player.IjkMediaPlayer
object ConfigStartUp {
@@ -27,6 +29,9 @@ object ConfigStartUp {
}
private fun initBuildConfig() {
+ //ijk关闭log
+ IjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);
+
// 初始化构建APP的时候的分支及提交HASH,用于辅助定位问题
AppConfigInfo.workingBranchName = BuildConfig.WORKING_BRANCH_NAME
AppConfigInfo.workingBranchHash = BuildConfig.WORKING_BRANCH_HASH
diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java
index 8a43063ab6..6f470a39a4 100644
--- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java
+++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java
@@ -13,6 +13,7 @@ import com.mogo.support.obu.model.MogoObuRsiWarningData;
import com.mogo.support.obu.model.MogoObuRsmWarningData;
import com.mogo.support.obu.model.MogoObuRvWarningData;
import com.mogo.support.obu.model.MogoObuSpatWarningData;
+import com.mogo.support.obu.model.MogoObuSystemStatusData;
import com.mogo.support.obu.model.advance.AccFourAxes;
import com.mogo.support.obu.model.advance.DateTime;
import com.mogo.support.obu.model.advance.NodeId;
@@ -293,6 +294,11 @@ public class ObuTest {
}
+ @Override
+ public void onObuSystemStatus(MogoObuSystemStatusData data) {
+
+ }
+
@Override
public void onGnssInfo(MessagePad.GnssInfo gnssInfo) {
Log.i("ddddd", "onGnssInfo=\n" + TextFormat.printer().escapingNonAscii(false).printToString(gnssInfo));
diff --git a/config.gradle b/config.gradle
index c0e098760b..dc2bd1e3d3 100644
--- a/config.gradle
+++ b/config.gradle
@@ -93,7 +93,7 @@ ext {
// obu sdk
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
- mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta3',
+ mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta4',
// google
googlezxing : "com.google.zxing:core:3.3.3",
@@ -132,8 +132,8 @@ ext {
crashreport : "com.mogo.test:crashreport:${CRASHREPORT_VERSION}",
crashreportapmbyte : "com.mogo.test:crashreport-apmbyte:${CRASHREPORT_APMBYTE_VERSION}",
crashreportnoop : "com.mogo.test:crashreport-noop:${CRASHREPORT_NOOP_VERSION}",
- apm_insight : 'com.volcengine:apm_insight:1.4.9.cn-rc.5',
- apm_insight_crash : 'com.volcengine:apm_insight_crash:1.4.6-rc.14',
+ apm_insight : 'com.volcengine:apm_insight:1.4.10.cn-rc.0',
+ apm_insight_crash : 'com.volcengine:apm_insight_crash:1.4.6-rc.17',
cicle_indicator : 'me.relex:circleindicator:2.1.6',
//========================= TTS语音 Maven 版本管理 =========================
diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt
index 5f182177b6..ec4ff4a718 100644
--- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt
+++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt
@@ -109,7 +109,6 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
override fun onCurrentVersion(version: MogoObuSystemBConfigData) {
CallerLogger.d("$M_OBU${MogoObuConst.TAG_UPGRADE_OBU}", "onCurrentVersion version = ${version.version}")
if (!version.version.isNullOrEmpty()) {
- CallerObuInfoListenerManager.invokeObuVersionName(version.version)
CallerDevaToolsManager.queryObuUpgrade(version.version)
}
}
@@ -194,6 +193,15 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
}
}
+ /**
+ * OBU 系统状态
+ *
+ * @param data 系统状态
+ */
+ override fun onObuSystemStatus(data: MogoObuSystemStatusData?) {
+ CallerObuInfoListenerManager.invokeGetObuInfo(data.toString())
+ }
+
/**
* HV车辆基础信息 gnssInfo
*/
diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt
index 17e01071e0..1f3e178188 100644
--- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt
+++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt
@@ -31,6 +31,15 @@ object MoGoObuListenerImpl : OnObuListener {
CallerObuConnectListenerManager.invokeObuConnectListener()
}
+ /**
+ * OBU 系统状态
+ *
+ * @param data 系统状态
+ */
+ override fun onObuSystemStatus(data: MogoObuSystemStatusData?) {
+
+ }
+
/**
* HV车辆基础信息
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
index a294450208..0a181f91dc 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
@@ -152,8 +152,7 @@ internal class DebugSettingView @JvmOverloads constructor(
//OBU连接状态
private var obuConnectStatus: Boolean = false
- private var mObuVersionName: String = ""
- private var mObuDeviceId: String = ""
+ private var mObuInfoStr: String = ""
//渠道包标签
private var onlineSelected: Boolean = true
@@ -574,7 +573,7 @@ internal class DebugSettingView @JvmOverloads constructor(
setLogCheckedChangeListener()
//OBU配置信息
- tvObuInfo.text = CallerObuConnectListenerManager.getObuStatusInfoJsonString()
+// tvObuInfo.text = CallerObuConnectListenerManager.getObuStatusInfoJsonString()
//工控机配置信息
tvAutopilotInfo.text =
@@ -1537,7 +1536,6 @@ internal class DebugSettingView @JvmOverloads constructor(
}"
)
-
tvServerSocketStatus.text = Html.fromHtml(
"服务器Socket状态:${
if (MogoStatusManager.getInstance().isSocketOnLine) {
@@ -1607,7 +1605,7 @@ internal class DebugSettingView @JvmOverloads constructor(
tvAutopilotInfo.text = autopilotJson
tvIpcInfo.text = autopilotJson
tvIpcInfoKey.text = autopilotJson
- tvCmdbCarInfoContent.text = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.CAR_INFO)
+ tvCmdbCarInfoContent.text = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.CAR_INFO)?:""
tvCarInfo.text =
"GPS时间:${(mGnssInfo?.satelliteTime?.times(1000))?.toLong()}\n" +
@@ -1645,10 +1643,8 @@ internal class DebugSettingView @JvmOverloads constructor(
tbIsDemoMode.text = "开启美化模式"
}
- //obu TODO 后面会添加很多os那边需要显示的内容
- obuVersionNameTv.text = Html.fromHtml(
- "OBU版本号:$mObuVersionName"
- )
+ //obu信息,排查obu相关问题使用
+ tvObuInfoContent.text = mObuInfoStr
obuConnectStatusTv.text = Html.fromHtml(
"OBU连接状态:${
@@ -1667,7 +1663,7 @@ internal class DebugSettingView @JvmOverloads constructor(
*/
override fun onConnectStatus(obuStatusInfo: ObuStatusInfo) {
lifecycleOwner.lifecycleScope.launch {
- tvObuInfo.text = GsonUtils.toJson(obuStatusInfo)
+// tvObuInfo.text = GsonUtils.toJson(obuStatusInfo)
AppConfigInfo.obuSdkVersion = obuStatusInfo.obuSdkVersion
AppConfigInfo.isConnectObu = obuStatusInfo.obuStatus
@@ -2058,12 +2054,7 @@ internal class DebugSettingView @JvmOverloads constructor(
setLogCheckedChangeListener()
}
- override fun onGetObuVersionName(obuVersionName: String) {
- mObuVersionName = obuVersionName
+ override fun onGetObuInfo(obuInfoStr: String) {
+ mObuInfoStr = obuInfoStr
}
-
- override fun onObuDeviceId(obuDeviceId: String) {
- mObuDeviceId = obuDeviceId
- }
-
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
index 27f6125ab9..7209e1a718 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml
@@ -1086,16 +1086,16 @@
android:background="#F0F0F0"
app:layout_constraintTop_toBottomOf="@id/btnSetObuIP" />
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java
index cd011c9c6d..363bae8ae8 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java
@@ -125,7 +125,7 @@ public class TrackManager {
cellIdCaches.forcePut(uuid, trackObj.getCellIdPos());
mMarkersCaches.put(uuid, trackObj);
trafficDataUuid.add(uuid);
- Log.i("costTime","" + (System.currentTimeMillis() - cost));
+ //Log.i("costTime","" + (System.currentTimeMillis() - cost));
}
return mFilterTrafficData;
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt
index 44d265137d..2ee7841930 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt
@@ -39,7 +39,7 @@ object MarkerDrawerManager {
fun startLoopCalCarLocation() {
routeWipeDisposable = CompositeDisposable()
- getLoopCalCarObservable().delay(1000L, TimeUnit.MILLISECONDS, true)
+ getLoopCalCarObservable().delay(500L, TimeUnit.MILLISECONDS, true)
.subscribeOn(Schedulers.io())
.repeat()
.retry()
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
index 3cef39a6a1..e3fb3283e0 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt
@@ -261,7 +261,7 @@ class OverMapView @JvmOverloads constructor(
CallerPlanningRottingListenerManager.addListener(TAG, this)
initAMapView(context)
// 注册定位监听
- CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this)
+ CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 20, this)
//设置全览模式
overLayerView?.setOnClickListener { displayCustomOverView() }
overLayerView?.let {
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/IMoGoObuInfoListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/IMoGoObuInfoListener.kt
index 82703fba36..f4c9d0dcfd 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/IMoGoObuInfoListener.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/IMoGoObuInfoListener.kt
@@ -9,14 +9,8 @@ package com.mogo.eagle.core.function.api.datacenter.obu
interface IMoGoObuInfoListener {
/**
- * @param obuVersionName OBU硬件版本
+ * @param obuInfoStr OBU信息
*/
- fun onGetObuVersionName(obuVersionName: String)
-
- /**
- * obuDeviceId
- */
- fun onObuDeviceId(obuDeviceId: String)
-
+ fun onGetObuInfo(obuInfoStr: String)
}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuInfoListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuInfoListenerManager.kt
index de793b087d..b93cf4932e 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuInfoListenerManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuInfoListenerManager.kt
@@ -9,25 +9,12 @@ import com.mogo.eagle.core.function.call.base.CallerBase
*/
object CallerObuInfoListenerManager : CallerBase() {
- fun invokeObuVersionName(obuVersionName: String) {
+ fun invokeGetObuInfo(obuInfoStr: String) {
M_LISTENERS.forEach {
val listener = it.value
- listener.onGetObuVersionName(obuVersionName)
+ listener.onGetObuInfo(obuInfoStr)
}
}
- fun invokeObuDeviceId(obuDeviceId: String) {
- M_LISTENERS.forEach {
- val listener = it.value
- listener.onObuDeviceId(obuDeviceId)
- }
- }
-
-// fun invokeQueryContainersResponse(dockerList: List) {
-// M_LISTENERS.forEach {
-// val listener = it.value
-// //TODO
-// }
-// }
}
\ No newline at end of file
diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ObjectHashCodeUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ObjectHashCodeUtils.java
new file mode 100644
index 0000000000..026c8fcef2
--- /dev/null
+++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ObjectHashCodeUtils.java
@@ -0,0 +1,28 @@
+package com.mogo.eagle.core.utilcode.util;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 根据对象的类名,返回一致的hashCode
+ * 如果缓存中不存在,则创建hashCode并存入缓存
+ * 如果缓存中存在,直接用缓存数据
+ */
+public class ObjectHashCodeUtils {
+
+ private static final ConcurrentHashMap hashCodes = new ConcurrentHashMap<>();
+
+
+ public static int getHashCodeIfNeed(Object obj) {
+ if (obj == null) {
+ return -1;
+ }
+ String name = obj.getClass().getName();
+ Integer value = hashCodes.get(name);
+ if (value != null) {
+ return value;
+ }
+ int hashCode = System.identityHashCode(obj);
+ hashCodes.put(name, hashCode);
+ return hashCode;
+ }
+}
diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java
index 40bc4cc367..42044644ee 100644
--- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java
+++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java
@@ -66,7 +66,7 @@ public final class ThreadUtils {
if (Looper.myLooper() == Looper.getMainLooper()) {
r.run();
} else {
- int what = r.hashCode();
+ int what = ObjectHashCodeUtils.getHashCodeIfNeed(r);
HANDLER.removeMessages(what);
Message msg = Message.obtain(HANDLER, r);
msg.what = what;
@@ -75,7 +75,7 @@ public final class ThreadUtils {
}
public static void runOnUiThreadDelayed(final Runnable r, long delayMillis) {
- int what = r.hashCode();
+ int what = ObjectHashCodeUtils.getHashCodeIfNeed(r);
HANDLER.removeMessages(what);
Message msg = Message.obtain(HANDLER, r);
msg.what = what;
diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java
index b3a65e4f68..a8fc918cda 100644
--- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java
+++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java
@@ -11,7 +11,7 @@ public class UiThreadHandler {
private UiThreadHandler() { }
public static boolean post( Runnable r ) {
- int what = r.hashCode();
+ int what = ObjectHashCodeUtils.getHashCodeIfNeed(r);
sUiHandler.removeMessages(what);
Message msg = Message.obtain(sUiHandler, r);
msg.what = what;
@@ -19,7 +19,7 @@ public class UiThreadHandler {
}
public static boolean postDelayed( Runnable r, long delayMillis ) {
- int what = r.hashCode();
+ int what = ObjectHashCodeUtils.getHashCodeIfNeed(r);
sUiHandler.removeMessages(what);
Message msg = Message.obtain(sUiHandler, r);
msg.what = what;
@@ -27,7 +27,7 @@ public class UiThreadHandler {
}
public static void removeCallbacks( Runnable r ) {
- int what = r.hashCode();
+ int what = ObjectHashCodeUtils.getHashCodeIfNeed(r);
sUiHandler.removeMessages(what);
}
}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 3ad9e317b6..b417f92818 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4
LOGLIB_VERSION=1.5.11
######## MogoAiCloudSDK Version ########
# 网络请求LOGLIB_VERSION
-MOGO_NETWORK_VERSION=1.4.5.7
+MOGO_NETWORK_VERSION=1.4.5.10
# 鉴权
-MOGO_PASSPORT_VERSION=1.4.5.7
+MOGO_PASSPORT_VERSION=1.4.5.10
# 常链接
-MOGO_SOCKET_VERSION=1.4.5.7
+MOGO_SOCKET_VERSION=1.4.5.10
# 数据采集
-MOGO_REALTIME_VERSION=1.4.5.7
+MOGO_REALTIME_VERSION=1.4.5.10
# 探路,道路事件发布,获取
-MOGO_TANLU_VERSION=1.4.5.7
+MOGO_TANLU_VERSION=1.4.5.10
# 直播推流
-MOGO_LIVE_VERSION=1.4.5.7
+MOGO_LIVE_VERSION=1.4.5.10
# 直播拉流
-MOGO_TRAFFICLIVE_VERSION=1.4.5.7
+MOGO_TRAFFICLIVE_VERSION=1.4.5.10
# 定位服务
-MOGO_LOCATION_VERSION=1.4.5.7
+MOGO_LOCATION_VERSION=1.4.5.10
# 远程通讯模块
-MOGO_TELEMATIC_VERSION=1.4.5.7
+MOGO_TELEMATIC_VERSION=1.4.5.10
######## MogoAiCloudSDK Version ########
# 自研地图
MAP_SDK_VERSION=2.10.0.9
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
index 81685eb25c..806d4d75f7 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
@@ -4,7 +4,6 @@ import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_INIT_ON_MAP_LOADED;
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_INIT;
import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS;
-import static com.mogo.eagle.core.utilcode.mogo.logger.Logger.d;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAP;
import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_300;
import static com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS;
@@ -41,8 +40,8 @@ import com.mogo.eagle.core.function.call.map.CallerMapDevaListenerManager;
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager;
import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant;
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast;
+import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.hdcache.IHdCacheListener;
import com.mogo.map.listener.MogoMapListenerHandler;
@@ -168,17 +167,19 @@ public class AMapViewWrapper implements IMogoMapView,
return;
}
MapAutoViewHelper options = mMapView.getMapAutoViewHelper();
- if (options != null) {
- //设置手势是否可以缩放 isCanZoom true 可缩放 false 不可缩放
- options.setZoomGesturesEnabled(true);
- options.setScaleVRMode(true);
+ ThreadUtils.getIoPool().submit(() -> {
+ if (options != null) {
+ //设置手势是否可以缩放 isCanZoom true 可缩放 false 不可缩放
+ options.setZoomGesturesEnabled(true);
+ options.setScaleVRMode(true);
// options.setAllGesturesEnabled(false); //禁止全部手势
- if (options.getMyLocationStyle() != null) {
- options.getMyLocationStyle().setDisplayAnimEnable(true);
+ if (options.getMyLocationStyle() != null) {
+ options.getMyLocationStyle().setDisplayAnimEnable(true);
+ }
+ //修改自车模型,未来需区分车的类型
+ options.setMyLocationStyle(options.getMyLocationStyle().myLocationIcon(HdMapBuildConfig.currentCarVrIconRes, true));
}
- //修改自车模型,未来需区分车的类型
- options.setMyLocationStyle(options.getMyLocationStyle().myLocationIcon(HdMapBuildConfig.currentCarVrIconRes, true));
- }
+ });
}
private void initListeners() {
@@ -982,21 +983,30 @@ public class AMapViewWrapper implements IMogoMapView,
@Override
public void setLockMode(boolean isLock) {
if (checkAMapView()) {
- mMapView.getMapAutoViewHelper().setLockMode(true);
+ MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper();
+ if (mapAutoViewHelper != null) {
+ mapAutoViewHelper.setLockMode(isLock);
+ }
}
}
@Override
public void setScrollGesturesEnable(boolean isEnable) {
if (checkAMapView()) {
- mMapView.getMapAutoViewHelper().setScrollGesturesEnabled(isEnable);
+ MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper();
+ if (mapAutoViewHelper != null) {
+ mapAutoViewHelper.setScrollGesturesEnabled(isEnable);
+ }
}
}
@Override
public void setAllGesturesEnabled(boolean isEnable) {
if (checkAMapView()) {
- mMapView.getMapAutoViewHelper().setAllGesturesEnabled(isEnable);
+ MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper();
+ if (mapAutoViewHelper != null) {
+ mapAutoViewHelper.setAllGesturesEnabled(isEnable);
+ }
}
}
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt
index 6edc26bd3c..a9f26b224c 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt
@@ -77,7 +77,7 @@ class GDLocationClient private constructor(context: Context) : AMapLocationListe
lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills()
// 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等
- mapLocation?.let {
+ aMapLocation.let {
// 转换 GCJ02-->WGS84 坐标
val wgs84Location =
CoordinateTransform.GCJ02ToWGS84(it.longitude, it.latitude)
@@ -112,17 +112,17 @@ class GDLocationClient private constructor(context: Context) : AMapLocationListe
lastGaoDeLocation.errorInfo = it.errorInfo
}
- // 回掉给监听者
- CallerGaoDeMapLocationListenerManager.invokeMoGoLocationChanged(lastGaoDeLocation)
-
- mapLocation = aMapLocation
- // 本地SP缓存城市Code
- val cityCode = aMapLocation.cityCode
- if (cityCode != null && cityCode.isNotEmpty()) {
- mCityCode = aMapLocation.cityCode
- SharedPrefsMgr.getInstance(AbsMogoApplication.getApp())
- .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode)
+ try {
+ mapLocation = aMapLocation
+ // 本地SP缓存城市Code
+ val cityCode = aMapLocation.cityCode
+ if (cityCode != null && cityCode.isNotEmpty()) {
+ mCityCode = aMapLocation.cityCode
+ SharedPrefsMgr.getInstance(AbsMogoApplication.getApp())
+ .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode)
+ }
+ // 缓存经纬度
SharedPrefsMgr.getInstance(AbsMogoApplication.getApp())
.putString(
SharedPrefsConstants.LOCATION_LATITUDE,
@@ -133,7 +133,11 @@ class GDLocationClient private constructor(context: Context) : AMapLocationListe
SharedPrefsConstants.LOCATION_LONGITUDE,
aMapLocation.longitude.toString()
)
+ } catch (e: Exception) {
+ e.printStackTrace()
}
+ // 回掉给监听者
+ CallerGaoDeMapLocationListenerManager.invokeMoGoLocationChanged(lastGaoDeLocation)
}
}
diff --git a/libraries/mogo-obu/src/main/java/com/zhidao/support/obu/OnObuListener.java b/libraries/mogo-obu/src/main/java/com/zhidao/support/obu/OnObuListener.java
index cfb3cc76e1..d7401f7a7d 100644
--- a/libraries/mogo-obu/src/main/java/com/zhidao/support/obu/OnObuListener.java
+++ b/libraries/mogo-obu/src/main/java/com/zhidao/support/obu/OnObuListener.java
@@ -2,6 +2,7 @@ package com.zhidao.support.obu;
import com.mogo.support.obu.ObuScene;
import com.mogo.support.obu.constants.Define;
+import com.mogo.support.obu.model.MogoObuSystemStatusData;
import mogo.telematics.pad.MessagePad;
@@ -15,6 +16,12 @@ public interface OnObuListener {
*/
void onConnectStatus(@Define.ConnectStatus int connectStatus);
+ /**
+ * OBU 系统状态
+ *
+ * @param data 系统状态
+ */
+ void onObuSystemStatus(MogoObuSystemStatusData data);
/**
* HV车辆基础信息
diff --git a/settings.gradle b/settings.gradle
index d910a5cf11..9e4ae32d03 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,7 +1,7 @@
rootProject.name = 'MoGoEagleEye'
include ':app'
-include ':app_ipc_monitoring'
-include ':app_mogo_magic_ring'
+//include ':app_ipc_monitoring'
+//include ':app_mogo_magic_ring'
// 核心模块
diff --git a/test/crashreport-apmbyte/build.gradle b/test/crashreport-apmbyte/build.gradle
index eeab9e0aa8..65f85c0980 100644
--- a/test/crashreport-apmbyte/build.gradle
+++ b/test/crashreport-apmbyte/build.gradle
@@ -39,6 +39,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
}
dependencies {
diff --git a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java
index 30588f1161..0f953a63cf 100644
--- a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java
+++ b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java
@@ -3,8 +3,6 @@ package com.mogo.test.crashreport.apm;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.apm.insight.AttachUserData;
-import com.apm.insight.CrashType;
import com.apm.insight.MonitorCrash;
import com.apm.insight.log.VLog;
import com.bytedance.apm.insight.ApmInsight;
@@ -12,8 +10,9 @@ import com.bytedance.apm.insight.ApmInsightAgent;
import com.bytedance.apm.insight.ApmInsightInitConfig;
import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
-import com.mogo.eagle.core.data.deva.bindingcar.CarInfo;
+import com.mogo.eagle.core.data.app.AppConfigInfo;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
+import com.mogo.eagle.core.data.deva.bindingcar.CarInfo;
import com.mogo.eagle.core.function.api.devatools.apm.IApmEnvProvider;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
@@ -22,11 +21,11 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.CommonUtils;
import com.mogo.eagle.core.utilcode.util.DeviceUtils;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
+import com.mogo.eagle.core.utilcode.util.MetaDataUtils;
import com.mogo.test.crashreport.CrashReportConstants;
import com.mogo.test.crashreport.ITestCrashReportProvider;
import java.util.HashMap;
-import java.util.Map;
/**
@@ -38,7 +37,9 @@ import java.util.Map;
@Route(path = CrashReportConstants.PATH)
public class ApmCrashReportProvider implements ITestCrashReportProvider {
private static final String BYTEAMP_APPID = "302368";
+ private static final String BYTEAMP_AppToken = "de428a1a8b204c82ac60088aaf9205a3";
private static final String BYTEAMP_APPID_DEV = "379950";
+ private static final String BYTEAMP_AppToken_DEV = "3a78191bc18842118c5b4515ec9bfefc";
private static final String TAG = "ApmCrashReportProvider";
private static final String MAP_SDK_VERSION = "MAP_SDK_VERSION";
@@ -49,11 +50,6 @@ public class ApmCrashReportProvider implements ITestCrashReportProvider {
@Override
public void init(Context context) {
- initCrash(context);
- initApmInsight(context);
- }
-
- private void initCrash(final Context context) {
IApmEnvProvider provider = CallerDevaToolsManager.INSTANCE.apmEnvProvider();
boolean isDebug = DebugConfig.isDebug();
if (provider != null) {
@@ -62,85 +58,167 @@ public class ApmCrashReportProvider implements ITestCrashReportProvider {
isDebug = enabled;
}
}
- MonitorCrash crash = MonitorCrash.init(context, isDebug ? BYTEAMP_APPID_DEV : BYTEAMP_APPID, CommonUtils.getVersionCode(context), CommonUtils.getVersionName(context))
- .setCustomDataCallback(new AttachUserData() {
- @Override
- public Map extends String, ? extends String> getUserData(CrashType type) {
- HashMap map = new HashMap<>();
- //车辆信息
- String carInfoString = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.CAR_INFO);
+ initCrash(context, isDebug);
+ initApmInsight(context, isDebug);
+ }
- if (carInfoString != null && !carInfoString.isEmpty()) {
- mInfo = GsonUtils.fromJson(carInfoString, CarInfo.class);
- }
+ private void initCrash(final Context context, boolean isDebug) {
+ MonitorCrash.Config config =
+ MonitorCrash.Config
+ .app(isDebug ? BYTEAMP_APPID_DEV : BYTEAMP_APPID)
+ .token(isDebug ? BYTEAMP_AppToken_DEV : BYTEAMP_AppToken)// 设置鉴权token,可从平台应用信息处获取,token错误无法上报数据
+ .versionCode(CommonUtils.getVersionCode(context))// 可选,默认取PackageInfo中的versionCode
+ .versionName(CommonUtils.getVersionName(context))// 可选,默认取PackageInfo中的versionName
+ .channel(MetaDataUtils.getMetaDataInApp("BUGLY_APP_CHANNEL"))// 可选,设置App发布渠道,在平台可以筛选
+ // .url("www.xxx.com")// 默认不需要,私有化部署才配置上报地址
+ //可选,可以设置自定义 did,不设置会使用内部默认的
+ .dynamicParams(new MonitorCrash.Config.IDynamicParams() {
+ @Override
+ public String getDid() {//返回空会使用内部默认的did
+ String sn = SharedPrefsMgr.getInstance(context).getString("sn");
+ if (sn != null && !sn.isEmpty()) {
+ return sn;
+ } else {
+ return DeviceUtils.getDeviceSN().isEmpty() ? null : DeviceUtils.getDeviceSN();
+ }
+ }
- //车辆所在位置
- mCityCode = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_CITY_CODE);
- mLat = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_LATITUDE);
- mLogt = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_LONGITUDE);
- //地图版本
- String mapSDKVersion = DebugConfig.getMapVersion();
- map.put("MAP_SDK_VERSION", mapSDKVersion);
- map.put("CITYCODE", mCityCode);
- map.put("LATITUDE", mLat);
- map.put("LONGITUTE", mLogt);
+ @Override
+ public String getUserId() {
+ return DeviceUtils.getDeviceSN();
+ }
+ })
+ //应用崩溃后会执行这里,可选,添加业务自定义数据,在崩溃详情页->现场数据展示->自定义数据
+ .customData(crashType -> {
+ //车辆所在位置
+ mCityCode = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_CITY_CODE);
+ mLat = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_LATITUDE);
+ mLogt = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.LOCATION_LONGITUDE);
+ //车辆信息
+ String carInfoString = SharedPrefsMgr.getInstance(context).getString(SharedPrefsConstants.CAR_INFO);
+ if (carInfoString != null && !carInfoString.isEmpty()) {
+ mInfo = GsonUtils.fromJson(carInfoString, CarInfo.class);
+ }
- if (mInfo != null) {
- CallerLogger.INSTANCE.d(TAG, "nuber = " + mInfo.getNumber_plate() + "--brand = " + mInfo.getBrand() + "--modle = " + mInfo.getModel());
- map.put("PLATE_NUMBER", mInfo.getNumber_plate());
- map.put("BRAND", mInfo.getBrand());
- map.put("MODEL", mInfo.getModel());
- }
- return map;
- }
- });
- String mapSDKVersion = DebugConfig.getMapVersion();
- crash.config().setChannel("MAP_SDK_VERSION:" + mapSDKVersion);
- //可选,可以设置自定义did,不设置会使用内部默认的
- String sn = SharedPrefsMgr.getInstance(context).getString("sn");
- if (sn != null && !sn.isEmpty()) {
- crash.config().setDeviceId(sn);
- } else {
- crash.config().setDeviceId(DeviceUtils.getDeviceSN());
- }
- crash.addTags(MAP_SDK_VERSION, mapSDKVersion);
- crash.addTags("CITYCODE", mCityCode);
- crash.addTags("LATITUDE", mLat);
- crash.addTags("LONGITUTE", mLogt);
- crash.addTags("CAR_TYPE", AppIdentityModeUtils.INSTANCE.getBuildCarType(FunctionBuildConfig.appIdentityMode));
+ //======================================== 自定义维度值 begin========================================
+ HashMap dimension = new HashMap<>();
+ // dimension.put("Devices_SN_DeviceId", sn + "__" + DeviceUtils.getDeviceSN());
+ // dimension.put("Devices_SN_WidevineID_MD5", sn + "__" + DeviceIdUtils.getWidevineIDWithMd5(context));
+ // dimension.put("Devices_SN_WidevineID", sn + "__" + DeviceIdUtils.getWidevineID(context));
+ //************************************* APP构建的信息 ***********************************************
+ // Git版本信息
+ dimension.put("GIT_BRANCH", AppConfigInfo.INSTANCE.getWorkingBranchName());
+ dimension.put("GIT_HASH", AppConfigInfo.INSTANCE.getWorkingBranchHash());
+ // 地图版本
+ dimension.put("APP_MAP_SDK_VERSION", DebugConfig.getMapVersion());
+ // 渠道信息
+ dimension.put("APP_CHANNEL", MetaDataUtils.getMetaDataInApp("BUGLY_APP_CHANNEL"));
+ // 车辆类型
+ dimension.put("APP_CAR_TYPE", AppIdentityModeUtils.INSTANCE.getBuildCarType(FunctionBuildConfig.appIdentityMode));
+ //************************************* APP构建的信息 ***********************************************
-// crash.setReportUrl("www.xxx.com"); // 私有化部署:私有化部署才配置上报地址
-// crash.addTags("key", "value"); // 自定义筛选tag, 按需添加、可多次覆盖
+ //************************************* 与车辆连接的 IPC(工控机)、OBU 等信息 ***********************************************
+ // 连接的OBU 状态
+ dimension.put("OBU_CONNECT_STATUS", "" + AppConfigInfo.INSTANCE.isConnectObu());
+ // 车牌号,从工控机获取的数据
+ dimension.put("IPC_PLATE_NUMBER", AppConfigInfo.INSTANCE.getPlateNumber());
+ // 连接的工控机 状态
+ dimension.put("IPC_CONNECT_STATUS", "" + AppConfigInfo.INSTANCE.isConnectAutopilot());
+ // 连接的工控机 MAC地址
+ dimension.put("IPC_MAC", AppConfigInfo.INSTANCE.getIPCMacAddress());
+ // 连接的工控机 Docker版本
+ dimension.put("IPC_MAP_VERSION", AppConfigInfo.INSTANCE.getDockerVersion());
+ // 连接的工控机 Protocol版本
+ dimension.put("IPC_MAP_PROTOCOL_VERSION", "" + AppConfigInfo.INSTANCE.getProtocolVersionNumber());
+ //************************************* 与车辆连接的 IPC(工控机)、OBU 等信息 ***********************************************
- HashMap dimension = new HashMap<>();
- //维度值
- dimension.put("Devices_SN_DeviceId", sn + "__" + DeviceUtils.getDeviceSN());
-// dimension.put("Devices_SN_WidevineID_MD5", sn + "__" + DeviceIdUtils.getWidevineIDWithMd5(context));
-// dimension.put("Devices_SN_WidevineID", sn + "__" + DeviceIdUtils.getWidevineID(context));
- dimension.put(MAP_SDK_VERSION, mapSDKVersion);
- dimension.put("CITYCODE", mCityCode);
- dimension.put("LATITUDE", mLat);
- dimension.put("LONGITUTE", mLogt);
- if (mInfo != null) {
- dimension.put("PLATE_NUMBER", mInfo.getNumber_plate());
- dimension.put("BRAND", mInfo.getBrand());
- dimension.put("MODEL", mInfo.getModel());
- }
+ //************************************* 位置信息 ***********************************************
+ // 城市信息
+ dimension.put("LOCATION_CITY_CODE", mCityCode);
+ dimension.put("LOCATION_LATITUDE", mLat);
+ dimension.put("LOCATION_LONGITUTE", mLogt);
+ //************************************* 位置信息 ***********************************************
- HashMap metric = new HashMap<>();
- //指标值
- //metric.put("Devices_ID_metric", (double) 100);
- ApmInsightAgent.monitorEvent("Devices_ID_EVENT", dimension, metric);
+ //************************************* CMDB绑定的信息 ***********************************************
+ if (mInfo != null) {
+ dimension.put("CMDB_PLATE_NUMBER", mInfo.getNumber_plate());
+ dimension.put("CMDB_BRAND", mInfo.getBrand());
+ dimension.put("CMDB_MODEL", mInfo.getModel());
+ }
+ //************************************* CMDB绑定的信息 ***********************************************
+
+ HashMap metric = new HashMap<>();
+ //指标值
+ //metric.put("Devices_ID_metric", (double) 100);
+ ApmInsightAgent.monitorEvent("Devices_ID_EVENT", dimension, metric);
+ //======================================== 自定义维度值 end========================================
+
+
+ //===================================== 自定义收集一些信息,在崩溃详情页->现场数据展示->自定义数据 begin========================================
+ HashMap map = new HashMap<>();
+
+ //************************************* APP构建的信息 ***********************************************
+ // Git版本信息
+ map.put("GIT_BRANCH", AppConfigInfo.INSTANCE.getWorkingBranchName());
+ map.put("GIT_HASH", AppConfigInfo.INSTANCE.getWorkingBranchHash());
+ // 地图版本
+ map.put("APP_MAP_SDK_VERSION", DebugConfig.getMapVersion());
+ // 渠道信息
+ map.put("APP_CHANNEL", MetaDataUtils.getMetaDataInApp("BUGLY_APP_CHANNEL"));
+ // 车辆类型
+ map.put("APP_CAR_TYPE", AppIdentityModeUtils.INSTANCE.getBuildCarType(FunctionBuildConfig.appIdentityMode));
+ //************************************* APP构建的信息 ***********************************************
+
+ //************************************* 与车辆连接的 IPC(工控机)、OBU 等信息 ***********************************************
+ // 连接的OBU 状态
+ map.put("OBU_CONNECT_STATUS", "" + AppConfigInfo.INSTANCE.isConnectObu());
+ // 车牌号,从工控机获取的数据
+ map.put("IPC_PLATE_NUMBER", AppConfigInfo.INSTANCE.getPlateNumber());
+ // 连接的工控机 状态
+ map.put("IPC_CONNECT_STATUS", "" + AppConfigInfo.INSTANCE.isConnectAutopilot());
+ // 连接的工控机 MAC地址
+ map.put("IPC_MAC", AppConfigInfo.INSTANCE.getIPCMacAddress());
+ // 连接的工控机 Docker版本
+ map.put("IPC_MAP_VERSION", AppConfigInfo.INSTANCE.getDockerVersion());
+ // 连接的工控机 Protocol版本
+ map.put("IPC_MAP_PROTOCOL_VERSION", "" + AppConfigInfo.INSTANCE.getProtocolVersionNumber());
+ //************************************* 与车辆连接的 IPC(工控机)、OBU 等信息 ***********************************************
+
+ //************************************* 位置信息 ***********************************************
+ // 城市信息
+ map.put("LOCATION_CITY_CODE", mCityCode);
+ map.put("LOCATION_LATITUDE", mLat);
+ map.put("LOCATION_LONGITUTE", mLogt);
+ //************************************* 位置信息 ***********************************************
+
+
+ //************************************* CMDB绑定的信息 ***********************************************
+ if (mInfo != null) {
+ CallerLogger.INSTANCE.d(TAG, "nuber = " + mInfo.getNumber_plate() + "--brand = " + mInfo.getBrand() + "--modle = " + mInfo.getModel());
+ map.put("CMDB_PLATE_NUMBER", mInfo.getNumber_plate());
+ map.put("CMDB_BRAND", mInfo.getBrand());
+ map.put("CMDB_MODEL", mInfo.getModel());
+ }
+ //************************************* CMDB绑定的信息 ***********************************************
+
+ return map;
+ //===================================== 自定义收集一些信息,在崩溃详情页->现场数据展示->自定义数据 end========================================
+ })
+ // 可选,添加pv事件的自定义tag,可以用来筛选崩溃率计算的分母数据
+ //.pageViewTags(<