[3.3.0]merge

This commit is contained in:
zhongchao
2023-06-15 16:30:47 +08:00
parent 489fb32adb
commit adf993b473
46 changed files with 440 additions and 461 deletions

View File

@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.eagle.core.function.startup">
<uses-permission android:name="android.permission.INTERNET" />
<application>
</application>
</manifest>

View File

@@ -1,7 +1,6 @@
package com.mogo.eagle.core.function.startup.stageone
import android.content.Context
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.os.Message
@@ -13,6 +12,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.cloud.passport.location.ICurrentLocation
import com.mogo.cloud.passport.location.SimpleLocation
import com.mogo.cloud.socket.SocketBuildConfig
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.constants.SharedPrefsConstants
import com.mogo.commons.debug.DebugConfig
@@ -20,12 +20,10 @@ import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.commons.network.NetConfigUtils
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_PASSPORT_ERROR
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_INIT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_PASSPORT_TOKEN
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_RECONNECT
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_HTTP_DNS_ERROR_REASON
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.map.MogoLocation
@@ -40,7 +38,6 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.*
import com.rousetime.android_startup.AndroidStartup
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
import kotlin.properties.Delegates
class HttpDnsStartUp : AndroidStartup<Boolean>() {
@@ -54,8 +51,8 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
MoGoAiCloudClientConfig.getInstance()
}
private val handler = Handler(Looper.getMainLooper()){
if(it.what == 1){
private val handler = Handler(Looper.getMainLooper()) {
if (it.what == 1) {
val value = it.obj as Pair<String, String>
reConnectSocket(value.first, value.second)
}
@@ -69,13 +66,13 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue ->
if (gotToken && oldValue.cityCode != newValue.cityCode) {
if(handler.hasMessages(1)){
if (handler.hasMessages(1)) {
handler.removeMessages(1)
}
val msg = Message.obtain()
msg.what = 1
msg.obj = Pair(oldValue.cityCode,newValue.cityCode)
handler.sendMessageDelayed(msg,1000L * 10)
msg.obj = Pair(oldValue.cityCode, newValue.cityCode)
handler.sendMessageDelayed(msg, 1000L * 10)
}
}
@@ -90,7 +87,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
}
override fun create(context: Context): Boolean {
if(!ProcessUtils.isMainProcess()){
if (!ProcessUtils.isMainProcess()) {
return true
}
this.context = context
@@ -106,9 +103,12 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
private fun preparePassportEnvironment() {
// 设置网络环境HTTP_DNS_ENV_QA、HTTP_DNS_ENV_RELEASE、HTTP_DNS_ENV_DEV
when (DebugConfig.getNetMode()) {
DebugConfig.NET_MODE_DEV -> clientConfig.netMode = MoGoAiCloudClientConfig.HTTP_DNS_ENV_DEV
DebugConfig.NET_MODE_QA -> clientConfig.netMode = MoGoAiCloudClientConfig.HTTP_DNS_ENV_QA
DebugConfig.NET_MODE_DEMO -> clientConfig.netMode = MoGoAiCloudClientConfig.HTTP_DNS_ENV_DEMO
DebugConfig.NET_MODE_DEV -> clientConfig.netMode =
MoGoAiCloudClientConfig.HTTP_DNS_ENV_DEV
DebugConfig.NET_MODE_QA -> clientConfig.netMode =
MoGoAiCloudClientConfig.HTTP_DNS_ENV_QA
DebugConfig.NET_MODE_DEMO -> clientConfig.netMode =
MoGoAiCloudClientConfig.HTTP_DNS_ENV_DEMO
else -> clientConfig.netMode = MoGoAiCloudClientConfig.HTTP_DNS_ENV_RELEASE
}
// 设置是否是第三APP登录
@@ -116,6 +116,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE
// 设置是否输出日志
clientConfig.isShowDebugLog = true
SocketBuildConfig.isPrintLog = false
// 使用中台长链接
clientConfig.isUseOriginSocket = true
// 设置是否输出网络日志
@@ -159,8 +160,9 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
SimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon)
return httpDnsSimpleLocation
}
val mogoLocation: MogoLocation? = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) {
val mogoLocation: MogoLocation =
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
if (mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) {
// 更新
httpDnsSimpleLocation = if (
mogoLocation.cityCode.isNullOrEmpty() &&
@@ -186,6 +188,12 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
initAiCloudSDK()
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_INIT,
paramIndexes = [-1]
)
private fun initAiCloudSDK() {
// 初始化SDK可以设置状态回调来监听
MoGoAiCloudClient.getInstance().init(context, clientConfig).addTokenCallbacks(
@@ -194,10 +202,9 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
parentNodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_INIT,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_PASSPORT_TOKEN,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onTokenGot(token: String, sn: String) {
clientConfig.token = token
@@ -215,19 +222,8 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
}
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_PASSPORT_ERROR,
paramIndexes = [1],
clientPkFileName = "sn"
)
override fun onError(code: Int, msg: String) {
CallerLogger.d(
"$M_MAIN$TAG",
"初始化MogoAiCloudSdk failed ,reason : $msg , 未能开启长链服务和初始化Modules服务"
)
logError(getPrReason("初始化MogoAiCloudSdk failed ,reason:$msg , code:$code"))
}
}
)
@@ -272,67 +268,40 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
}
}
private fun startSocketService(sn:String) {
private fun startSocketService(sn: String) {
CallerLogger.d("$M_MAIN$TAG", "startSocketService")
val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
MogoAiCloudSocketManager.getInstance(context)
.registerLifecycleListener(10020, object : IMogoLifecycleListener {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectFailure() {
CallerLogger.d("$M_MAIN$TAG", "socket-onConnectFailure")
logError(getPrReason("socket-onConnectFailure , status false"))
MogoStatusManager.getInstance().setCloudSocketMode(TAG, false)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectSuccess() {
CallerLogger.d("$M_MAIN$TAG", "socket-onConnectSuccess")
MogoStatusManager.getInstance().setCloudSocketMode(TAG, true)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST,
paramIndexes = [-1],
clientPkFileName = "sn"
)
override fun onConnectLost() {
CallerLogger.d("$M_MAIN$TAG", "socket-onConnectLost")
logError(getPrReason("socket-onConnectLost , status false"))
MogoStatusManager.getInstance().setCloudSocketMode(TAG, false)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST,
paramIndexes = [0, 1],
clientPkFileName = "sn"
)
override fun onError(code: String, msg: String?) {
CallerLogger.d("$M_MAIN$TAG", "socket-onError code : $code , msg : $msg")
}
})
// 开启Socket长链服务
val lat =
location?.latitude ?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLat
val lon = location?.longitude
?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLon
if (location.latitude != 0.0) location.latitude else CallerMapUIServiceManager.getGDLocationServer(
context!!
)!!.lastLat
val lon =
if (location.longitude != 0.0) location.longitude else CallerMapUIServiceManager.getGDLocationServer(
context!!
)!!.lastLon
MogoAiCloudSocketManager.getInstance(context)
.init(context, sn, DebugConfig.getSocketAppId(), lat, lon)
}
@@ -340,10 +309,34 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
endpoint = PAD,
nodeAliasCode = CHAIN_ALIAS_CODE_HTTP_DNS_ERROR_REASON,
paramIndexes = [0]
)
private fun logError(pr: String) {
CallerLogger.e("$M_MAIN$TAG", "pr:$pr")
}
private fun getPrReason(msg: String): String {
val map = hashMapOf<String, Any>()
map["wifiState"] =
if (NetworkUtils.isAvailable()) "wifi enable" else "wifi disable"
map["lat"] =
if (CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().latitude != 0.0)
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().latitude else
CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLat
map["lon"] =
if (CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().longitude != 0.0)
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().longitude else
CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLon
map["reason"] = msg
return GsonUtils.toJson(map)
}
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
linkCode = CHAIN_LINK_CLOUD,
nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_RECONNECT,
paramIndexes = [0, 1],
clientPkFileName = "sn"
paramIndexes = [0, 1]
)
private fun reConnectSocket(oldCityCode: String, newCityCode: String) {
CallerLogger.d(