[3.3.0]merge
This commit is contained in:
@@ -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>
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user