Merge remote-tracking branch 'origin/dev_robotaxi-d_240912_6.7.2_local' into dev_robotaxi-d_240912_6.7.2_local
This commit is contained in:
@@ -0,0 +1,99 @@
|
|||||||
|
package com.mogo.och.biz.skin
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import com.alibaba.android.arouter.facade.annotation.Route
|
||||||
|
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||||
|
import com.mogo.och.biz.R
|
||||||
|
import com.mogo.och.biz.skin.bean.SkinRespBean
|
||||||
|
import com.mogo.och.biz.skin.net.OchSkinServiceManager
|
||||||
|
import com.mogo.och.common.module.biz.skin.SkinService
|
||||||
|
import com.mogo.och.common.module.constant.OchCommonConst
|
||||||
|
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||||
|
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||||
|
import com.mogo.och.common.module.utils.RxUtils
|
||||||
|
import com.mogo.skin.Skin
|
||||||
|
import com.mogo.skin.SkinManager
|
||||||
|
import com.mogo.skin.utils.FileUtils
|
||||||
|
|
||||||
|
@Route(path = OchCommonConst.BIZ_SKIN)
|
||||||
|
class SkinProvider : SkinService {
|
||||||
|
|
||||||
|
private var context: Context?= null
|
||||||
|
|
||||||
|
private val TAG = "SkinProvider"
|
||||||
|
|
||||||
|
override fun loadNewSkin() {
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息")
|
||||||
|
context?.let{
|
||||||
|
OchSkinServiceManager.querySkinBysn(it,object : OchCommonServiceCallback<SkinRespBean>{
|
||||||
|
override fun onSuccess(data: SkinRespBean?) {
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息成功:${data}")
|
||||||
|
if (null != data && 0 == data.code) {
|
||||||
|
if(data.data==null){
|
||||||
|
SkinManager.getInstance().loadSkin("")
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息", "皮肤还原成功")
|
||||||
|
}else {
|
||||||
|
data.data?.let { skinInfo ->
|
||||||
|
if(skinInfo.empty()){
|
||||||
|
SkinManager.getInstance().loadSkin("")
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息", "皮肤还原成功")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
val skin = Skin(
|
||||||
|
skinInfo.md5,
|
||||||
|
skinInfo.name,
|
||||||
|
skinInfo.url
|
||||||
|
)
|
||||||
|
//换肤
|
||||||
|
SkinManager.getInstance().downloadSkin(it, skin, object :
|
||||||
|
SkinManager.SkinLoadListener {
|
||||||
|
override fun onLoadSuccess() {
|
||||||
|
//MogoAnalyticUtils.track()
|
||||||
|
d(TAG, "皮肤下载成功……开始解压Raw下的视频")
|
||||||
|
OchChainLogManager.writeChainLogSkin(
|
||||||
|
"皮肤信息",
|
||||||
|
"加载皮肤成功:${data}"
|
||||||
|
)
|
||||||
|
FileUtils.copyVideoRawToFile(it, R.raw::class.java.fields)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onLoadFailed(e: java.lang.Exception?) {
|
||||||
|
OchChainLogManager.writeChainLogSkin(
|
||||||
|
"皮肤信息",
|
||||||
|
"加载皮肤失败:${e}"
|
||||||
|
)
|
||||||
|
RxUtils.createSubscribe(5_000) {
|
||||||
|
loadNewSkin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onError() {
|
||||||
|
super.onError()
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息网络失败5s后重试")
|
||||||
|
RxUtils.createSubscribe(5_000) {
|
||||||
|
loadNewSkin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFail(code: Int, msg: String?) {
|
||||||
|
OchChainLogManager.writeChainLogSkin("皮肤信息","请求皮肤信息失败code:${code} msg:${msg} 5s后重试")
|
||||||
|
RxUtils.createSubscribe(5_000) {
|
||||||
|
loadNewSkin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun init(context: Context?) {
|
||||||
|
this.context = context
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
package com.mogo.och.biz.skin.bean
|
||||||
|
|
||||||
|
import com.mogo.eagle.core.data.BaseData
|
||||||
|
import com.mogo.och.common.module.biz.login.LoginInfo
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by pangfan on 2021/8/19
|
||||||
|
*
|
||||||
|
* 状态查询返回数据结构
|
||||||
|
*/
|
||||||
|
data class SkinRespBean(var data: Result?) : BaseData() {
|
||||||
|
data class Result(
|
||||||
|
var id: Long,
|
||||||
|
var name: String?,
|
||||||
|
var url: String?,
|
||||||
|
var md5: String?,
|
||||||
|
) {
|
||||||
|
fun empty(): Boolean {
|
||||||
|
if(id<=0||name.isNullOrEmpty()||url.isNullOrEmpty()||md5.isNullOrEmpty()){
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.mogo.och.biz.skin.net;
|
||||||
|
|
||||||
|
import com.mogo.eagle.core.data.BaseData;
|
||||||
|
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean;
|
||||||
|
import com.mogo.och.biz.login.bean.TaxiLoginReqBean;
|
||||||
|
import com.mogo.och.biz.login.bean.TaxiLoginRespBean;
|
||||||
|
import com.mogo.och.biz.login.bean.TaxiLoginSmsReqBean;
|
||||||
|
import com.mogo.och.biz.login.bean.TaxiLogoutReqBean;
|
||||||
|
import com.mogo.och.biz.skin.bean.SkinRespBean;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Header;
|
||||||
|
import retrofit2.http.Headers;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by pangfan on 2021/8/19
|
||||||
|
* <p>
|
||||||
|
* 网约车-出租车接口定义
|
||||||
|
*/
|
||||||
|
interface OchSkinServiceApi {
|
||||||
|
|
||||||
|
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||||
|
@GET("/och-vehicle/api/resource/queryBySn")
|
||||||
|
Observable<SkinRespBean> querySkinBysn(@Header("appId") String appId
|
||||||
|
, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
package com.mogo.och.biz.skin.net
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||||
|
import com.mogo.commons.storage.SharedPrefsMgr
|
||||||
|
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||||
|
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||||
|
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||||
|
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||||
|
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
|
||||||
|
import com.mogo.och.biz.skin.bean.SkinRespBean
|
||||||
|
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||||
|
import com.mogo.och.common.module.constant.OchCommonConst
|
||||||
|
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||||
|
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||||
|
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||||
|
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||||
|
|
||||||
|
object OchSkinServiceManager {
|
||||||
|
|
||||||
|
private const val TAG = "OchCommonServiceManager"
|
||||||
|
|
||||||
|
private val ochSkinService: OchSkinServiceApi by lazy {
|
||||||
|
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||||
|
OchSkinServiceApi::class.java
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接单状态和登录状态查询
|
||||||
|
*
|
||||||
|
* @param context
|
||||||
|
* @param callback
|
||||||
|
*/
|
||||||
|
@JvmStatic
|
||||||
|
fun querySkinBysn(
|
||||||
|
context: Context,
|
||||||
|
callback: OchCommonServiceCallback<SkinRespBean>?
|
||||||
|
) {
|
||||||
|
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态");
|
||||||
|
val sn =
|
||||||
|
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||||
|
OchSPManager.getSn()
|
||||||
|
} else{
|
||||||
|
LoginLanPassengerSocket.driverSn
|
||||||
|
}
|
||||||
|
|
||||||
|
ochSkinService.querySkinBysn(
|
||||||
|
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||||
|
SharedPrefsMgr.getInstance().token,
|
||||||
|
sn
|
||||||
|
).transformTry()
|
||||||
|
.subscribe(OchCommonSubscribeImpl(context, callback, "querySkinBysn",false))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package com.mogo.och.common.module.biz.skin
|
||||||
|
|
||||||
|
import com.alibaba.android.arouter.launcher.ARouter
|
||||||
|
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||||
|
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||||
|
import com.mogo.och.common.module.biz.lansocket.IOchLanPassengerStatusListener
|
||||||
|
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
|
||||||
|
import com.mogo.och.common.module.constant.OchCommonConst
|
||||||
|
import com.mogo.och.common.module.manager.cache.OchSPManager
|
||||||
|
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||||
|
import com.mogo.och.common.module.utils.RxUtils
|
||||||
|
|
||||||
|
object SkinManager : IOchLanPassengerStatusListener {
|
||||||
|
|
||||||
|
private val TAG = "SkinManager"
|
||||||
|
|
||||||
|
private var skinService: SkinService? =
|
||||||
|
ARouter.getInstance().build(OchCommonConst.BIZ_SKIN).navigation() as SkinService
|
||||||
|
|
||||||
|
|
||||||
|
init {
|
||||||
|
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||||
|
LoginLanPassengerSocket.addListener(TAG,this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fun load(){
|
||||||
|
OchChainLogManager.writeChainLogInit("初始化信息","初始化皮肤信息")
|
||||||
|
loadNewSkin()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun loadNewSkin(){
|
||||||
|
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||||
|
val driverSn = OchSPManager.getSn()
|
||||||
|
if(driverSn.isNullOrEmpty()){
|
||||||
|
OchChainLogManager.writeChainLogSkin("司机皮肤信息","没有sn 需要等待5s再去请求")
|
||||||
|
RxUtils.createSubscribe(5_000) {
|
||||||
|
skinService?.loadNewSkin()
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
skinService?.loadNewSkin()
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
skinService?.loadNewSkin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDriverSnChagneListner(sn: String?) {
|
||||||
|
OchChainLogManager.writeChainLogSkin("乘客皮肤信息","司机屏sn变化 重新加载皮肤")
|
||||||
|
skinService?.loadNewSkin()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.mogo.och.common.module.biz.skin
|
||||||
|
|
||||||
|
import com.alibaba.android.arouter.facade.template.IProvider
|
||||||
|
|
||||||
|
interface SkinService : IProvider {
|
||||||
|
|
||||||
|
fun loadNewSkin()
|
||||||
|
|
||||||
|
}
|
||||||
@@ -29,6 +29,7 @@ class OchCommonConst {
|
|||||||
const val WAIT_TAKEN = 100046
|
const val WAIT_TAKEN = 100046
|
||||||
|
|
||||||
const val BIZ_LOGIN = "/ochbiz/common/login"
|
const val BIZ_LOGIN = "/ochbiz/common/login"
|
||||||
|
const val BIZ_SKIN = "/ochbiz/common/skin"
|
||||||
|
|
||||||
const val BUS_DRIVER = "/busdriver/busdriver"
|
const val BUS_DRIVER = "/busdriver/busdriver"
|
||||||
const val BUS_PASSENGER = "/buspassenger/buspassenger"
|
const val BUS_PASSENGER = "/buspassenger/buspassenger"
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ object OchChainLogManager {
|
|||||||
|
|
||||||
// 初始化信息
|
// 初始化信息
|
||||||
const val EVENT_KEY_INFO_INIT = "event_key_och_init"
|
const val EVENT_KEY_INFO_INIT = "event_key_och_init"
|
||||||
|
// 初始化信息
|
||||||
|
const val EVENT_KEY_INFO_SKIN = "event_key_och_skin"
|
||||||
|
|
||||||
// 局域网内socket 通讯
|
// 局域网内socket 通讯
|
||||||
const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg"
|
const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg"
|
||||||
@@ -84,6 +86,11 @@ object OchChainLogManager {
|
|||||||
fun writeChainLogInit(title: String, info: String) {
|
fun writeChainLogInit(title: String, info: String) {
|
||||||
writeChainLog(title,info,true,EVENT_KEY_INFO_INIT)
|
writeChainLog(title,info,true,EVENT_KEY_INFO_INIT)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun writeChainLogSkin(title: String, info: String) {
|
||||||
|
writeChainLog(title,info,true,EVENT_KEY_INFO_SKIN)
|
||||||
|
}
|
||||||
|
|
||||||
fun writeChainLogNetLanSocketConnect(title: String, info: String){
|
fun writeChainLogNetLanSocketConnect(title: String, info: String){
|
||||||
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET_CONNECT)
|
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET_CONNECT)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,12 +36,10 @@ import com.mogo.och.common.module.biz.login.ILoginCallback
|
|||||||
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
import com.mogo.och.common.module.biz.login.LoginStatusEnum
|
||||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||||
import com.mogo.och.common.module.biz.provider.CommonService
|
import com.mogo.och.common.module.biz.provider.CommonService
|
||||||
|
import com.mogo.och.common.module.biz.skin.SkinManager
|
||||||
import com.mogo.och.common.module.constant.OchCommonConst
|
import com.mogo.och.common.module.constant.OchCommonConst
|
||||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||||
import com.mogo.skin.Skin
|
|
||||||
import com.mogo.skin.SkinManager
|
|
||||||
import com.mogo.skin.SkinManager.SkinLoadListener
|
|
||||||
import com.mogo.skin.utils.FileUtils
|
|
||||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,29 +56,9 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
|||||||
override fun init(context: Context) {
|
override fun init(context: Context) {
|
||||||
d(TAG, "FacadeProvider:init__${ProcessUtils.getCurrentProcessName()}_$this")
|
d(TAG, "FacadeProvider:init__${ProcessUtils.getCurrentProcessName()}_$this")
|
||||||
LoginStatusManager.addListener(TAG, this)
|
LoginStatusManager.addListener(TAG, this)
|
||||||
// TODO yangyakun 根据后台配置的用户租户对应的皮肤包进行下载换肤
|
if(ProjectUtils.isSaas()) {
|
||||||
val skin = Skin(
|
SkinManager.load()
|
||||||
"ee3e1b0ed6e33a51366949294b07787d",
|
}
|
||||||
"YiXin-skin_v1_2024_10_25.zip",
|
|
||||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/YiXin-skin_v1_2024_10_25.zip"
|
|
||||||
)
|
|
||||||
val skinDeQing = Skin(
|
|
||||||
"a841e8819f06cfefa646f7adc697e070",
|
|
||||||
"DeQing-skin_v1_2024_10_25.zip",
|
|
||||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/DeQing-skin_v1_2024_10_25.zip"
|
|
||||||
)
|
|
||||||
//换肤
|
|
||||||
SkinManager.getInstance().downloadSkin(Utils.getApp(), skin, object : SkinLoadListener {
|
|
||||||
override fun onLoadSuccess() {
|
|
||||||
//MogoAnalyticUtils.track()
|
|
||||||
d(TAG,"皮肤下载成功……开始解压Raw下的视频")
|
|
||||||
FileUtils.copyVideoRawToFile(Utils.getApp(), R.raw::class.java.fields)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onLoadFailed(e: java.lang.Exception?) {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? {
|
override fun createCoverage(fragmentActivity: FragmentActivity?, integer: Int?): Fragment? {
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package com.mogo.functions.test
|
||||||
|
|
||||||
|
import androidx.test.core.app.ActivityScenario
|
||||||
|
import androidx.test.platform.app.InstrumentationRegistry
|
||||||
|
import com.mogo.eagle.core.data.enums.Carmodel
|
||||||
|
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||||
|
import com.mogo.eagle.core.function.main.MainLauncherActivity
|
||||||
|
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
|
||||||
|
import com.zhidaoauto.map.sdk.open.renders.marker.BitmapDescriptorFactory
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import okio.use
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
|
class Nt3dByteArrayTest {
|
||||||
|
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "NT3D_TEST"
|
||||||
|
}
|
||||||
|
|
||||||
|
lateinit var launch: ActivityScenario<MainLauncherActivity>
|
||||||
|
|
||||||
|
@Before fun before() {
|
||||||
|
launch = ActivityScenario.launch(MainLauncherActivity::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test fun testAllNt3d(): Unit = runBlocking {
|
||||||
|
val arguments = InstrumentationRegistry.getArguments()
|
||||||
|
val millis = arguments.getString("delay", "0").toLong()
|
||||||
|
Logger.d(TAG, "-- testAllNt3d --- 0 ---")
|
||||||
|
if (millis > 0) {
|
||||||
|
delay(millis)
|
||||||
|
}
|
||||||
|
Logger.d(TAG, "-- testAllNt3d --- 1 ---")
|
||||||
|
val interval = arguments.getString("interval", "0").toLong()
|
||||||
|
Carmodel.values().iterator().forEach {
|
||||||
|
Logger.d(TAG, "-- testAllNt3d --- 2 ---")
|
||||||
|
delay(interval)
|
||||||
|
Logger.d(TAG, "-- testAllNt3d --- 3 ---")
|
||||||
|
BitmapDescriptorFactory.from3DResource(InstrumentationRegistry.getInstrumentation().targetContext, it.rawValue)?.also { data ->
|
||||||
|
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(data, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(TimeUnit.MINUTES.toMillis(10))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test fun testAllNt3d2(): Unit = runBlocking {
|
||||||
|
val arguments = InstrumentationRegistry.getArguments()
|
||||||
|
val millis = arguments.getString("delay", "0").toLong()
|
||||||
|
Logger.d(TAG, "-- testAllNt3d2 --- 0 ---")
|
||||||
|
if (millis > 0) {
|
||||||
|
delay(millis)
|
||||||
|
}
|
||||||
|
Logger.d(TAG, "-- testAllNt3d2 --- 1 ---")
|
||||||
|
val interval = arguments.getString("interval", "0").toLong()
|
||||||
|
val step = arguments.getString("step", "0").toInt()
|
||||||
|
var index = 0
|
||||||
|
Carmodel.values().iterator().forEach {
|
||||||
|
Logger.d(TAG, "-- testAllNt3d2 --- 2 ---")
|
||||||
|
var useByteArray = false
|
||||||
|
if ((index % step) == 0) {
|
||||||
|
useByteArray = true
|
||||||
|
}
|
||||||
|
delay(interval)
|
||||||
|
Logger.d(TAG, "-- testAllNt3d2 --- 3 ---:useByteArray -> $useByteArray")
|
||||||
|
if (useByteArray) {
|
||||||
|
BitmapDescriptorFactory.from3DResource(InstrumentationRegistry.getInstrumentation().targetContext, it.rawValue)?.also { data ->
|
||||||
|
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(data, true)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(it.rawValue)
|
||||||
|
}
|
||||||
|
index ++
|
||||||
|
}
|
||||||
|
delay(TimeUnit.MINUTES.toMillis(10))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -83,7 +83,7 @@ MOGO_TELEMATIC_VERSION=1.4.7.42
|
|||||||
MOGO_SKIN_VERSION=1.4.7.49.18-debug
|
MOGO_SKIN_VERSION=1.4.7.49.18-debug
|
||||||
######## MogoAiCloudSDK Version ########
|
######## MogoAiCloudSDK Version ########
|
||||||
# 自研地图
|
# 自研地图
|
||||||
MAP_SDK_VERSION=3.4.1.18
|
MAP_SDK_VERSION=3.4.1.19
|
||||||
MAP_SDK_DATA_VERSION=1.0.0.9
|
MAP_SDK_DATA_VERSION=1.0.0.9
|
||||||
MAP_SDK_OPERATION_VERSION=1.1.4.1
|
MAP_SDK_OPERATION_VERSION=1.1.4.1
|
||||||
# websocket
|
# websocket
|
||||||
|
|||||||
@@ -205,6 +205,17 @@ interface IMogoMapUIController {
|
|||||||
*/
|
*/
|
||||||
fun changeCurrentIcon(@RawRes iconId: Int)
|
fun changeCurrentIcon(@RawRes iconId: Int)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改高精地图自车图标
|
||||||
|
* @param data: 对应的资源的字节数组
|
||||||
|
* @param is3D:
|
||||||
|
* 1. true
|
||||||
|
* 3d资源对应的格式为nt3d, 对应的data也需要为其二进制原始数组;
|
||||||
|
* 2. false
|
||||||
|
* 对应的是一个图片原始数组
|
||||||
|
*/
|
||||||
|
fun changeCurrentIcon(data: ByteArray, is3D: Boolean)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自研地图是否匹配道路
|
* 自研地图是否匹配道路
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -627,6 +627,27 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun changeCurrentIcon(data: ByteArray, is3D: Boolean) {
|
||||||
|
if (checkAMapView()) {
|
||||||
|
handler.post {
|
||||||
|
val changeResult = mMapView.getMapAutoViewHelper()!!.getMyLocationStyle()!!
|
||||||
|
.myLocationIcon(data, is3D)
|
||||||
|
if (!changeResult) {
|
||||||
|
val count = reChangeIconCount.incrementAndGet()
|
||||||
|
MapTraceUtil.log(
|
||||||
|
"", ChainConstant.CHAIN_CODE_HD_MAP_ICON_SET, TAG,
|
||||||
|
mapOf("changeCurrentIcon-count" to "$count")
|
||||||
|
)
|
||||||
|
if (count >= 3) {
|
||||||
|
return@post
|
||||||
|
}
|
||||||
|
handler.postDelayed({ changeCurrentIcon(data, is3D) }, 300L)
|
||||||
|
reChangeIconCount.set(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun result(path: String) {
|
override fun result(path: String) {
|
||||||
invokeUploadLogFile(path)
|
invokeUploadLogFile(path)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user