[3.2.0] fix bug of aiCloud sn problem and delay httpdns loc change until 10s
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
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
|
||||
import com.mogo.aicloud.services.locationinfo.MogoLocationInfoServices
|
||||
import com.mogo.aicloud.services.socket.IMogoLifecycleListener
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
@@ -50,6 +54,14 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
|
||||
MoGoAiCloudClientConfig.getInstance()
|
||||
}
|
||||
|
||||
private val handler = Handler(Looper.getMainLooper()){
|
||||
if(it.what == 1){
|
||||
val value = it.obj as Pair<String, String>
|
||||
reConnectSocket(value.first, value.second)
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
private var context: Context? = null
|
||||
|
||||
@Volatile
|
||||
@@ -57,7 +69,13 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
|
||||
|
||||
private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue ->
|
||||
if (gotToken && oldValue.cityCode != newValue.cityCode) {
|
||||
reConnectSocket(oldValue.cityCode, newValue.cityCode)
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,13 +201,14 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
|
||||
)
|
||||
override fun onTokenGot(token: String, sn: String) {
|
||||
clientConfig.token = token
|
||||
clientConfig.sn = sn
|
||||
// 由于存在token过期问题,在更新后会回调至此处,增加二次判定
|
||||
if (!gotToken) {
|
||||
CallerLogger.d("$M_MAIN$TAG", "onTokenGot token : $token , sn :$sn")
|
||||
CallerCloudListenerManager.invokeCloudTokenGot(token, sn)
|
||||
// 异步初始化NetConfig
|
||||
asyncInit()
|
||||
startSocketService()
|
||||
startSocketService(sn)
|
||||
// 开启每5s/次定位上报
|
||||
uploadLocPerFiveSecond()
|
||||
gotToken = true
|
||||
@@ -253,7 +272,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun startSocketService() {
|
||||
private fun startSocketService(sn:String) {
|
||||
CallerLogger.d("$M_MAIN$TAG", "startSocketService")
|
||||
val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
|
||||
MogoAiCloudSocketManager.getInstance(context)
|
||||
@@ -315,7 +334,7 @@ class HttpDnsStartUp : AndroidStartup<Boolean>() {
|
||||
val lon = location?.longitude
|
||||
?: CallerMapUIServiceManager.getGDLocationServer(context!!)!!.lastLon
|
||||
MogoAiCloudSocketManager.getInstance(context)
|
||||
.init(context, DebugConfig.getSocketAppId(), lat, lon)
|
||||
.init(context, sn, DebugConfig.getSocketAppId(), lat, lon)
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
|
||||
Reference in New Issue
Block a user