[2.13.0-arch-opt] move binding car to deva tools
This commit is contained in:
@@ -1 +0,0 @@
|
||||
/build
|
||||
@@ -76,6 +76,7 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.androidx_datastore
|
||||
implementation rootProject.ext.dependencies.androidxroomruntime
|
||||
kapt rootProject.ext.dependencies.androidxroomcompiler
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
implementation rootProject.ext.dependencies.androidxroomktx
|
||||
implementation rootProject.ext.dependencies.protobuf_java
|
||||
implementation rootProject.ext.dependencies.androidxappcompat
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package com.zhjt.mogo_core_function_devatools
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.view.*
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
|
||||
import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
@@ -12,24 +13,24 @@ import com.mogo.eagle.core.data.deva.scene.SceneTAG
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.function.api.devatools.IDevaToolsProvider
|
||||
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
|
||||
import com.zhjt.mogo_core_function_devatools.binding.BindingCarManager.Companion.bindingCarManager
|
||||
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter
|
||||
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigImpl
|
||||
import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager
|
||||
import com.zhjt.mogo_core_function_devatools.mofang.MoFangManager
|
||||
import com.zhjt.mogo_core_function_devatools.mofang.MoFangManager.Companion.moFangManager
|
||||
import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager
|
||||
import com.zhjt.mogo_core_function_devatools.report.IPCReportManager
|
||||
import com.zhjt.mogo_core_function_devatools.report.IPCReportManager.Companion.iPCReportManager
|
||||
import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager
|
||||
import com.zhjt.mogo_core_function_devatools.status.*
|
||||
import com.zhjt.mogo_core_function_devatools.status.StatusManager
|
||||
import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager
|
||||
import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
|
||||
import record_cache.RecordPanelOuterClass
|
||||
|
||||
@Route(path = MogoServicePaths.PATH_DEVA_TOOLS)
|
||||
class DevaToolsProvider : IDevaToolsProvider {
|
||||
|
||||
companion object {
|
||||
const val MODULE_NAME = "DevaToolsProvider"
|
||||
const val TAG = "DevaToolsProvider"
|
||||
}
|
||||
|
||||
private var mContext: Context? = null
|
||||
@@ -39,14 +40,17 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
}
|
||||
|
||||
override fun initBiz() {
|
||||
ttsManager.initTts(mContext!!)
|
||||
ttsManager.initTts(mContext!!) //todo
|
||||
//链路相关
|
||||
traceManager.init(mContext!!)
|
||||
bizConfigCenter.init(mContext!!)
|
||||
FuncConfigImpl.init()
|
||||
//开启工控机监控节点上报服务
|
||||
IPCReportManager.INSTANCE.initServer()
|
||||
MogoLogCatchManager.init(mContext!!)
|
||||
MoFangManager.INSTANCE.init(mContext!!)
|
||||
|
||||
//升级(鹰眼/工控)与监控服务
|
||||
iPCReportManager.initServer()
|
||||
moFangManager.init(mContext!!)
|
||||
bindingCarManager.init(mContext!!)
|
||||
}
|
||||
|
||||
override fun startLogCatch() {
|
||||
@@ -73,7 +77,6 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
return traceManager.getTraceInfo()
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
override fun refreshTraceInfo(map: HashMap<Int, ChainLogParam>) {
|
||||
traceManager.refreshTraceInfo(map)
|
||||
}
|
||||
@@ -102,20 +105,20 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
BadCaseManager.initAiCollect(view)
|
||||
}
|
||||
|
||||
override fun onReceiveBadCaseRecord(msgBoxBean: MsgBoxBean,activity: Activity,countdown: Boolean) {
|
||||
BadCaseManager.onReceiveBadCaseRecord(msgBoxBean, activity,countdown)
|
||||
override fun onReceiveBadCaseRecord(
|
||||
msgBoxBean: MsgBoxBean,
|
||||
activity: Activity,
|
||||
countdown: Boolean
|
||||
) {
|
||||
BadCaseManager.onReceiveBadCaseRecord(msgBoxBean, activity, countdown)
|
||||
}
|
||||
|
||||
override fun showFeedbackWindow(ctx: Context) {
|
||||
BadCaseManager.showBadCaseConfigWindow(ctx)
|
||||
}
|
||||
|
||||
override fun getUpgradeVersionUrls(versionName: String) {
|
||||
upgradeManager.getPackageUrls(versionName)
|
||||
}
|
||||
|
||||
override fun downLoadPackage(downloadKey: String,downloadUrl: String) {
|
||||
upgradeManager.downLoadPackage(mContext!!, downloadKey,downloadUrl)
|
||||
override fun downLoadPackage(downloadKey: String, downloadUrl: String) {
|
||||
upgradeManager.downLoadPackage(mContext!!, downloadKey, downloadUrl)
|
||||
}
|
||||
|
||||
override fun showStatusBar(ctx: Context, container: ViewGroup) {
|
||||
@@ -138,4 +141,25 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
override fun syncConfig() {
|
||||
traceManager.syncConfig()
|
||||
}
|
||||
|
||||
override fun modifyCarInfo(callBack: (ModifyBindingcarInfo) -> Unit) {
|
||||
bindingCarManager.modifyCarInfo(callBack)
|
||||
}
|
||||
|
||||
override fun getBindingCarInfo(macAddress: String, widevineIDWithMd5: String) {
|
||||
bindingCarManager.getBindingCarInfo(macAddress, widevineIDWithMd5)
|
||||
}
|
||||
|
||||
override fun upgradeConfirm(images: List<String>, padSn: String, releaseId: String) {
|
||||
bindingCarManager.upgradeConfirm(images, padSn, releaseId)
|
||||
}
|
||||
|
||||
override fun queryContainers(padSn: String, dockerVersion: String) {
|
||||
bindingCarManager.queryContainers(padSn, dockerVersion)
|
||||
}
|
||||
|
||||
override fun queryAppUpgrade() {
|
||||
bindingCarManager.queryAppUpgrade()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.zhjt.mogo_core_function_devatools.binding;
|
||||
|
||||
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo;
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import okhttp3.RequestBody;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
* @description 绑定车辆
|
||||
* @since: 10/28/21
|
||||
*/
|
||||
public interface BindingCarApiService {
|
||||
/**
|
||||
* 获取绑定车辆的信息
|
||||
*
|
||||
* @return {@link BindingcarInfo}
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("eagleEye-mis/cmdbapi/pad/selectPadByMac")
|
||||
Observable<BindingcarInfo> getBindingCarInfo(/*@Header("access_token") String access_token,*/ @Body RequestBody requestBody);
|
||||
|
||||
/**
|
||||
* 绑定和修改绑定车机
|
||||
*
|
||||
* @return {@link ModifyBindingcarInfo}
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("eagleEye-mis/cmdbapi/pad/v2/updatePadByMac")
|
||||
Observable<ModifyBindingcarInfo> modifyBindingCarInfo(/*@Header("access_token") String access_token,*/ @Body RequestBody requestBody);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
package com.zhjt.mogo_core_function_devatools.binding
|
||||
|
||||
import android.content.Context
|
||||
import android.text.TextUtils
|
||||
import android.util.Log
|
||||
import com.elegant.utils.UiThreadHandler
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo.role
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isDriver
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.IPCUpgradeManager.Companion.ipcUpgradeManager
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeAppNetWorkManager
|
||||
import mogo.telematics.pad.MessagePad
|
||||
|
||||
|
||||
class BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
|
||||
companion object {
|
||||
private const val TAG = "BindingCarManager"
|
||||
|
||||
val bindingCarManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
BindingCarManager()
|
||||
}
|
||||
}
|
||||
|
||||
private var mContext: Context? = null
|
||||
|
||||
@Volatile
|
||||
private var mAddress: String? = null
|
||||
|
||||
@Volatile
|
||||
private var mWidevineIDWithMd5 //google 数字版权
|
||||
: String? = null
|
||||
|
||||
fun init(context: Context) {
|
||||
mContext = context
|
||||
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
|
||||
ipcUpgradeManager.init(context)
|
||||
UiThreadHandler.postDelayed({ queryAppUpgrade() }, 10_000)
|
||||
}
|
||||
|
||||
fun onDestroy() {
|
||||
CallerAutopilotCarConfigListenerManager.removeListener(TAG)
|
||||
ipcUpgradeManager.destroy()
|
||||
}
|
||||
|
||||
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
|
||||
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.macAddress)) {
|
||||
Log.d("Upgrade", "MoGoHandAdasMsgManager address = " + carConfigResp.macAddress)
|
||||
getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取macaddress,每次连接请求一次
|
||||
*
|
||||
* @param macAddress
|
||||
*/
|
||||
fun getBindingCarInfo(macAddress: String, widevineIDWithMd5: String) {
|
||||
CallerLogger.d(
|
||||
"$M_DEVA$TAG",
|
||||
"getBindingcarInfo macAddress = $macAddress--widevineIDWithMd5 = $widevineIDWithMd5"
|
||||
)
|
||||
mAddress = macAddress
|
||||
mWidevineIDWithMd5 = widevineIDWithMd5
|
||||
if (screenType == 1) { //司机屏
|
||||
driverScreen(macAddress, widevineIDWithMd5)
|
||||
} else if (screenType == 2) { //乘客屏
|
||||
passengerScreen(macAddress, widevineIDWithMd5)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认升级工控机docker版本
|
||||
*
|
||||
* @param images docker列表
|
||||
* @param padSn SN
|
||||
* @param releaseId 任务ID
|
||||
*/
|
||||
fun upgradeConfirm(images: List<String>, padSn: String, releaseId: String) {
|
||||
ipcUpgradeManager.upgradeConfirm(images, padSn, releaseId)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取新工控机docker版本
|
||||
*
|
||||
* @param padSn SN
|
||||
* @param dockerVersion 当前工控机版本
|
||||
*/
|
||||
fun queryContainers(padSn: String, dockerVersion: String) {
|
||||
ipcUpgradeManager.queryContainers(padSn, dockerVersion)
|
||||
}
|
||||
|
||||
fun modifyCarInfo(callBack: (ModifyBindingcarInfo) -> Unit) {
|
||||
BindingCarNetWorkManager.instance.modifyBindingcar(mAddress, mWidevineIDWithMd5, callBack, screenType)
|
||||
}
|
||||
|
||||
private fun driverScreen(macAddress: String, widevineIDWithMd5: String) {
|
||||
val currentHour = System.currentTimeMillis() / (1000 * 60)
|
||||
val oldHour = SharedPrefsMgr.getInstance(
|
||||
mContext!!
|
||||
).getLong("typeDriver", 0)
|
||||
//如果2分钟内频繁调,需要拦截,业务导致的会多次请求工控机信息
|
||||
if (HmiBuildConfig.isShowSnBindingView) {
|
||||
if (currentHour - oldHour > 1) {
|
||||
SharedPrefsMgr.getInstance(mContext!!)
|
||||
.putLong("typeDriver", System.currentTimeMillis() / (1000 * 60))
|
||||
BindingCarNetWorkManager.instance
|
||||
.getBindingcarInfo(mContext, macAddress, widevineIDWithMd5, screenType)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun passengerScreen(macAddress: String, widevineIDWithMd5: String) {
|
||||
val currentHour = System.currentTimeMillis() / (1000 * 60)
|
||||
val oldHour = SharedPrefsMgr.getInstance(
|
||||
mContext!!
|
||||
).getLong("typePassenger", 0)
|
||||
//如果2分钟内频繁调,需要拦截,业务导致的会多次请求工控机信息
|
||||
if (HmiBuildConfig.isShowSnBindingView) {
|
||||
if (currentHour - oldHour > 1) {
|
||||
SharedPrefsMgr.getInstance(mContext!!)
|
||||
.putLong("typePassenger", System.currentTimeMillis() / (1000 * 60))
|
||||
BindingCarNetWorkManager.instance
|
||||
.getBindingcarInfo(mContext, macAddress, widevineIDWithMd5, screenType)
|
||||
}
|
||||
}
|
||||
}//乘客屏//司机屏
|
||||
|
||||
/**
|
||||
* 以后可能废弃
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private val screenType: Int
|
||||
get() {
|
||||
var screenType = -1
|
||||
if (isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
screenType = 1 //司机屏
|
||||
}
|
||||
if (isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
screenType = 2 //乘客屏
|
||||
}
|
||||
return screenType
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询app是否需要升级
|
||||
*/
|
||||
fun queryAppUpgrade() {
|
||||
UpgradeAppNetWorkManager.getInstance()
|
||||
.getAppUpgradeInfo(mContext, mAddress, role.toString() + "")
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.zhjt.mogo_core_function_devatools.binding
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.commons.constants.HostConst
|
||||
import com.mogo.commons.constants.SharedPrefsConstants
|
||||
import com.mogo.eagle.core.data.bindingcar.BindingcarInfo
|
||||
import com.mogo.eagle.core.data.bindingcar.BindingcarRequest
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showBindingcarDialog
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showModifyBindingcarDialog
|
||||
import com.mogo.eagle.core.function.call.map.CallerHDMapManager.changeCurrentIcon
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.zhjt.mogo_core_function_devatools.R
|
||||
import io.reactivex.Observer
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import okhttp3.MediaType
|
||||
import okhttp3.RequestBody
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
* @description 绑定车机网络请求
|
||||
* @since: 3/25/22
|
||||
*/
|
||||
class BindingCarNetWorkManager private constructor() {
|
||||
|
||||
companion object {
|
||||
private const val TAG = "BindingCarNetManager"
|
||||
val instance: BindingCarNetWorkManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
BindingCarNetWorkManager()
|
||||
}
|
||||
}
|
||||
|
||||
private val mBindingCarApiService: BindingCarApiService = MoGoRetrofitFactory.getInstance(HostConst.getHost())
|
||||
.create(BindingCarApiService::class.java)
|
||||
|
||||
/**
|
||||
* 获取绑定的车辆信息
|
||||
*
|
||||
* @param macAddress mac地址
|
||||
*/
|
||||
fun getBindingcarInfo(
|
||||
context: Context?,
|
||||
macAddress: String?,
|
||||
widevineIDWithMd5: String?,
|
||||
screenType: Int
|
||||
) {
|
||||
// String macAddress1 = "48:b0:2d:4d:33:40";
|
||||
// String sn = "X2020220417KA94QIN";
|
||||
val request = BindingcarRequest(macAddress, widevineIDWithMd5, screenType)
|
||||
val requestBody = RequestBody.create(
|
||||
MediaType.get("application/json;charset=UTF-8"),
|
||||
GsonUtil.jsonFromObject(request)
|
||||
)
|
||||
mBindingCarApiService.getBindingCarInfo(requestBody)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : Observer<BindingcarInfo> {
|
||||
override fun onSubscribe(d: Disposable) {}
|
||||
override fun onNext(info: BindingcarInfo) {
|
||||
if (info != null && info.getData() != null) {
|
||||
d(
|
||||
SceneConstant.M_BINDING + TAG,
|
||||
"getBindingcarInfo onNext info.getData() =" + info.getData().toString()
|
||||
)
|
||||
//根据车辆类型切换不同的车辆模型,只针对红旗做处理
|
||||
updateCarVrIconRes(info.getData().brandId)
|
||||
when (info.getData().compare) {
|
||||
"0" -> showBindingcarDialog()
|
||||
"3" -> showModifyBindingcarDialog()
|
||||
"null" -> TipToast.shortTip("当前工控机没有入库")
|
||||
}
|
||||
SharedPrefsMgr.getInstance(context!!).putString(
|
||||
SharedPrefsConstants.CAR_INFO,
|
||||
GsonUtils.toJson(info.getData())
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
e(
|
||||
SceneConstant.M_BINDING + TAG,
|
||||
"getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.message
|
||||
)
|
||||
}
|
||||
|
||||
override fun onComplete() {}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定和修改绑定车辆
|
||||
* mac: 48:b0:2d:3a:9c:19
|
||||
*/
|
||||
fun modifyBindingcar(
|
||||
macAddress: String?,
|
||||
widevineIDWithMd5: String?,
|
||||
callBack: (ModifyBindingcarInfo) -> Unit,
|
||||
screenType: Int
|
||||
) {
|
||||
// String macAddress1 = "48:b0:2d:4d:33:40";
|
||||
// String sn = "X2020220417KA94QIN";
|
||||
val request = BindingcarRequest(macAddress, widevineIDWithMd5, screenType)
|
||||
val requestBody = RequestBody.create(
|
||||
MediaType.get("application/json;charset=UTF-8"),
|
||||
GsonUtil.jsonFromObject(request)
|
||||
)
|
||||
mBindingCarApiService.modifyBindingCarInfo(requestBody)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(object : Observer<ModifyBindingcarInfo> {
|
||||
override fun onSubscribe(d: Disposable) {}
|
||||
override fun onNext(info: ModifyBindingcarInfo) {
|
||||
if (info != null) {
|
||||
callBack.invoke(info)
|
||||
d(
|
||||
SceneConstant.M_BINDING + TAG,
|
||||
"modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()
|
||||
)
|
||||
updateCarVrIconRes(info.data.brandId)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
e(
|
||||
SceneConstant.M_BINDING + TAG,
|
||||
"modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.message
|
||||
)
|
||||
}
|
||||
|
||||
override fun onComplete() {}
|
||||
})
|
||||
}
|
||||
|
||||
private fun updateCarVrIconRes(brandId: String?) {
|
||||
if (brandId == null || brandId.isEmpty()) {
|
||||
return
|
||||
}
|
||||
d(SceneConstant.M_BINDING + TAG, "updateCarVrIconRes : $brandId")
|
||||
when (brandId) {
|
||||
"1" -> {
|
||||
changeCurrentIcon(R.raw.chuzuche)
|
||||
HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche
|
||||
}
|
||||
"2" -> {
|
||||
changeCurrentIcon(R.raw.hq_h9)
|
||||
HdMapBuildConfig.currentCarVrIconRes = R.raw.hq_h9
|
||||
}
|
||||
"3" -> {
|
||||
changeCurrentIcon(R.raw.xiaobache)
|
||||
HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache
|
||||
}
|
||||
else -> {
|
||||
changeCurrentIcon(R.raw.chuzuche)
|
||||
HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
class MoFangManager private constructor() {
|
||||
|
||||
companion object {
|
||||
val INSTANCE: MoFangManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
val moFangManager: MoFangManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
MoFangManager()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType
|
||||
import com.mogo.eagle.core.data.report.ReportEntity
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
@@ -24,7 +23,7 @@ class IPCReportManager : IMoGoAutopilotStatusListener {
|
||||
|
||||
companion object{
|
||||
const val TAG ="IPCReportManager"
|
||||
val INSTANCE: IPCReportManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
val iPCReportManager: IPCReportManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
IPCReportManager()
|
||||
}
|
||||
//Warning
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import com.mogo.eagle.core.data.BaseResponse
|
||||
import com.mogo.eagle.core.data.Response
|
||||
import okhttp3.RequestBody
|
||||
import retrofit2.http.*
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description 工控机升级网络请求接口
|
||||
* @since: 2022/5/17
|
||||
*/
|
||||
interface IPCUpgradeApiService {
|
||||
|
||||
/**
|
||||
* 确认升级工控机docker版本
|
||||
* @param imageName docker域名
|
||||
* @param imageVersion docker版本
|
||||
* @param padSn SN
|
||||
* @param releaseId 任务ID
|
||||
*/
|
||||
@Headers(
|
||||
"Content-Type:application/json",
|
||||
"Accept: application/json"
|
||||
)
|
||||
@POST("/api/pushServer/confirm")
|
||||
suspend fun upgradeConfirm(@Body requestBody: RequestBody): BaseResponse<Any>
|
||||
|
||||
/**
|
||||
* 获取新工控机docker版本
|
||||
* @param padSn SN
|
||||
*/
|
||||
@GET("/api/pushServer/queryContainers")
|
||||
suspend fun queryContainers(@Query("padSn") padSn: String): Response<Any>
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.aicloud.services.socket.IMogoOnMessageListener
|
||||
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
|
||||
import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import org.json.JSONObject
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description 工控机镜像版本升级管理
|
||||
* @since: 2022/5/12
|
||||
*/
|
||||
class IPCUpgradeManager: IMogoOnMessageListener<IPCUpgradeStateInfo> ,
|
||||
IMoGoAutopilotStatusListener {
|
||||
|
||||
companion object{
|
||||
const val TAG ="IPCUpgradeManager"
|
||||
const val IPC_UPGRADE_MSG_TYPE = 50000
|
||||
val ipcUpgradeManager: IPCUpgradeManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED){
|
||||
IPCUpgradeManager()
|
||||
}
|
||||
}
|
||||
|
||||
private var mContext: Context? = null
|
||||
private val ipcUpgradeNetWorkModel = IPCUpgradeNetWorkModel()
|
||||
private var autopilotStatus: Int? = null //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中
|
||||
|
||||
private var hasIPCUpgradeTask = false //是否有工控机升级任务,默认没有该任务
|
||||
private var ipcUpgradeStateInfoTask: IPCUpgradeStateInfo?=null
|
||||
|
||||
fun init(context: Context){
|
||||
mContext = context
|
||||
//添加长链接监听
|
||||
MogoAiCloudSocketManager.getInstance(context)
|
||||
.registerOnMessageListener(IPC_UPGRADE_MSG_TYPE, this)
|
||||
// 添加 ADAS状态 监听
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
}
|
||||
|
||||
override fun target(): Class<IPCUpgradeStateInfo> {
|
||||
return IPCUpgradeStateInfo::class.java
|
||||
}
|
||||
|
||||
override fun onMsgReceived(ipcUpgradeStateInfo: IPCUpgradeStateInfo?) {
|
||||
CallerLogger.i(TAG,"IPCUpgradeManager received msg${ipcUpgradeStateInfo}")
|
||||
ipcUpgradeStateInfo?.let {
|
||||
if(it.status.isEmpty() || it.status == "0"){
|
||||
if(autopilotStatus == 2){
|
||||
//当前处于自动驾驶状态时,不弹窗提示,结束自动驾驶时弹窗
|
||||
hasIPCUpgradeTask = true
|
||||
ipcUpgradeStateInfoTask=it
|
||||
}else{
|
||||
var releaseId=""
|
||||
if(it.releaseId!=null){
|
||||
releaseId = it.releaseId.toString()
|
||||
}
|
||||
//弹窗提示,确认是否进行工控机升级
|
||||
CallerHmiManager.showAdUpgradeDialog(
|
||||
it.images,
|
||||
MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn,
|
||||
releaseId)
|
||||
}
|
||||
}else{
|
||||
//更新下载or升级状态
|
||||
CallerHmiManager.showAdUpgradeStatus(it)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶状态信息
|
||||
* @param autoPilotStatusInfo 状态信息
|
||||
*/
|
||||
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
|
||||
autopilotStatus = autoPilotStatusInfo.state
|
||||
//有升级任务,且不处于自动驾驶状态,进行升级提示
|
||||
if(hasIPCUpgradeTask && autopilotStatus!=2){
|
||||
ipcUpgradeStateInfoTask?.let {
|
||||
var releaseId=""
|
||||
if(it.releaseId!=null){
|
||||
releaseId = it.releaseId.toString()
|
||||
}
|
||||
CallerHmiManager.showAdUpgradeDialog(
|
||||
it.images,
|
||||
MoGoAiCloudClient.getInstance().aiCloudClientConfig.sn,
|
||||
releaseId)
|
||||
//将升级任务置为false
|
||||
hasIPCUpgradeTask = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认升级工控机docker版本
|
||||
* @param images docker列表
|
||||
* @param padSn SN
|
||||
* @param releaseId 任务ID
|
||||
*/
|
||||
fun upgradeConfirm(images: List<String>,padSn: String,releaseId: String){
|
||||
ipcUpgradeNetWorkModel.upgradeConfirm(images,padSn,releaseId,
|
||||
onSuccess = {
|
||||
CallerDevaToolsListenerManager.invokePushServerConfirm()
|
||||
},
|
||||
onError = {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取新工控机docker版本
|
||||
* @param padSn SN
|
||||
* @param dockerVersion 当前工控机版本
|
||||
*/
|
||||
fun queryContainers(padSn: String,dockerVersion: String){
|
||||
ipcUpgradeNetWorkModel.queryContainers(padSn,
|
||||
onSuccess = {
|
||||
val jsonObject = JSONObject(it)
|
||||
val images = jsonObject.getJSONArray("images")
|
||||
val dockerList = ArrayList<String>()
|
||||
for(i in 0 until images.length()){
|
||||
if(!images[i].toString().contains(dockerVersion)){
|
||||
dockerList.add(images[i].toString())
|
||||
}
|
||||
|
||||
}
|
||||
//将数组结果回调
|
||||
CallerDevaToolsListenerManager.invokeQueryContainersResponse(dockerList)
|
||||
},
|
||||
onError = {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
fun destroy(){
|
||||
//注销长链接监听
|
||||
MogoAiCloudSocketManager.getInstance(mContext)
|
||||
.unregisterLifecycleListener(IPC_UPGRADE_MSG_TYPE)
|
||||
// 移除 ADAS状态 监听
|
||||
CallerAutoPilotStatusListenerManager.removeListener(TAG)
|
||||
mContext = null
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import com.mogo.eagle.core.data.BaseResponse
|
||||
import com.mogo.eagle.core.data.Response
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeHostConst.Companion.getBaseUrl
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.network.apiCall
|
||||
import com.mogo.eagle.core.network.apiResponseCall
|
||||
import com.mogo.eagle.core.network.request
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import okhttp3.MediaType
|
||||
import okhttp3.RequestBody
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description 工控机升级网络请求
|
||||
* @since: 2022/5/17
|
||||
*/
|
||||
class IPCUpgradeNetWorkModel {
|
||||
|
||||
private fun getNetWorkApi(baseUrl: String =getBaseUrl()): IPCUpgradeApiService {
|
||||
return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl)
|
||||
.create(IPCUpgradeApiService::class.java)
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认升级工控机docker版本
|
||||
* @param images docker列表
|
||||
* @param padSn SN
|
||||
* @param releaseId 任务ID
|
||||
*/
|
||||
fun upgradeConfirm(images: List<String>,padSn: String,releaseId: String,
|
||||
onSuccess: ((String) -> Unit),onError: ((String) -> Unit)){
|
||||
request<BaseResponse<Any?>> {
|
||||
val requestJson = JSONObject()
|
||||
val imagesJsonArray = JSONArray()
|
||||
images.iterator().forEach {
|
||||
imagesJsonArray.put(it)
|
||||
}
|
||||
requestJson.put("images",imagesJsonArray)
|
||||
requestJson.put("padSn",padSn)
|
||||
requestJson.put("releaseId",releaseId)
|
||||
val requestBody:RequestBody= RequestBody.create(
|
||||
MediaType.parse("application/json; charset=utf-8"),
|
||||
requestJson.toString()
|
||||
)
|
||||
loader{
|
||||
apiCall{
|
||||
getNetWorkApi(getBaseUrl()).upgradeConfirm(requestBody)
|
||||
}
|
||||
}
|
||||
onSuccess{
|
||||
onSuccess.invoke("")
|
||||
}
|
||||
|
||||
onError {
|
||||
onError.invoke("")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取新工控机docker版本
|
||||
* @param padSn SN
|
||||
*/
|
||||
fun queryContainers(padSn: String,onSuccess: ((String) -> Unit),onError: ((String) -> Unit)){
|
||||
request<Response<Any?>>{
|
||||
loader {
|
||||
apiResponseCall{
|
||||
getNetWorkApi(getBaseUrl()).queryContainers(padSn)
|
||||
}
|
||||
}
|
||||
onSuccess{
|
||||
if(it.msg == "success"){
|
||||
onSuccess.invoke(GsonUtils.toJson(it.data))
|
||||
}else{
|
||||
onError.invoke("query Containers fail")
|
||||
}
|
||||
}
|
||||
|
||||
onError {
|
||||
if(it.message!=null){
|
||||
onError.invoke(it.message!!)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade;
|
||||
|
||||
import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import okhttp3.RequestBody;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.Headers;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
* @description 升级
|
||||
* @since: 6/20/22
|
||||
*/
|
||||
public interface UpgradeApiService {
|
||||
/**
|
||||
* 获取升级信息
|
||||
* , @Query("resources") String i
|
||||
* @return {@link UpgradeAppInfo}
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("eagleEye-mis/config/versionInfo")
|
||||
// Observable<UpgradeAppInfo> getUpgradeInfo(@Query("resources") String res, @Body RequestBody requestBody);
|
||||
Observable<UpgradeAppInfo> getUpgradeInfo(@Body RequestBody requestBody);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade;
|
||||
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BINDING;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.constants.HostConst;
|
||||
import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo;
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.RequestBody;
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
* @description 获取升级信息
|
||||
* @since: 3/25/22
|
||||
*/
|
||||
public class UpgradeAppNetWorkManager {
|
||||
private static volatile UpgradeAppNetWorkManager requestNoticeManager;
|
||||
private final UpgradeApiService mUpgradeApiService;
|
||||
private static final String TAG = "Upgrade";
|
||||
|
||||
private UpgradeAppNetWorkManager() {
|
||||
mUpgradeApiService = MoGoRetrofitFactory.getInstance(HostConst.getHost())
|
||||
.create(UpgradeApiService.class);
|
||||
}
|
||||
|
||||
public static UpgradeAppNetWorkManager getInstance() {
|
||||
if (requestNoticeManager == null) {
|
||||
synchronized (UpgradeAppNetWorkManager.class) {
|
||||
if (requestNoticeManager == null) {
|
||||
requestNoticeManager = new UpgradeAppNetWorkManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return requestNoticeManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取app升级信息
|
||||
*/
|
||||
public void getAppUpgradeInfo(Context context, String mac, String screenType) {
|
||||
// String sn = "X20202203105S688HZ";
|
||||
// String mac = "48:b0:2d:3a:bc:78";
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
int versionCode = AppUtils.getAppVersionCode();
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getAppUpgradeInfo mac = " + mac + "---type = " + screenType + "---sn = " + sn + "---versionCode =" + versionCode);
|
||||
UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, screenType);
|
||||
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
|
||||
mUpgradeApiService.getUpgradeInfo(requestBody)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<UpgradeAppInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull UpgradeAppInfo info) {
|
||||
if (info != null && info.result != null) {
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "UpgradeAppInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode() + "--versionCode =" + versionCode + "--info.result = " + info.result);
|
||||
if (info.result.getVersionCode() > versionCode) {
|
||||
CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl(), info.result.getInstallTitle(), info.result.getInstallContent(), info.result.getInstallType());
|
||||
}
|
||||
} else {
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "UpgradeAppInfo onNext info == null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade;
|
||||
|
||||
/**
|
||||
* @author lixiaopeng
|
||||
* @description 获取app升级信息
|
||||
* @since: 11/15/21
|
||||
*/
|
||||
public class UpgradeAppRequest {
|
||||
private String mac;
|
||||
private String sn;
|
||||
private String screenType;
|
||||
|
||||
|
||||
public UpgradeAppRequest( String sn, String mac, String screenType) {
|
||||
this.sn = sn;
|
||||
this.mac = mac;
|
||||
this.screenType = screenType;
|
||||
}
|
||||
|
||||
public String getSn() {
|
||||
return sn;
|
||||
}
|
||||
|
||||
public void setSn(String sn) {
|
||||
this.sn = sn;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public String getScreenType() {
|
||||
return screenType;
|
||||
}
|
||||
|
||||
public void setScreenType(String screenType) {
|
||||
this.screenType = screenType;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,18 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade.network
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
|
||||
class HostConst {
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description 工控机升级域名管理
|
||||
* @since: 2022/5/17
|
||||
*/
|
||||
class UpgradeHostConst {
|
||||
|
||||
companion object {
|
||||
private const val HOST_DEV = "http://myflow.ee-private-dev.myghost.zhidaoauto.com"
|
||||
private const val HOST_RELEASE = "https://myflow.zhidaoauto.com"
|
||||
companion object{
|
||||
|
||||
private const val HOST_DEV = "http://mysunflower-qa.zhidaoauto.com"
|
||||
private const val HOST_RELEASE = "http://mysunflower.zhidaoauto.com"
|
||||
|
||||
fun getBaseUrl(): String {
|
||||
return when (DebugConfig.getNetMode()) {
|
||||
@@ -1,18 +1,14 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsUpgradeListenerManager
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.Config
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.Config.DOWN_LOAD_TAG
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.bean.ThreadBean
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.callback.IDownload
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.network.UpgradeVersionNetWorkModel
|
||||
|
||||
class UpgradeManager : IDownload {
|
||||
|
||||
@@ -25,23 +21,9 @@ class UpgradeManager : IDownload {
|
||||
}
|
||||
}
|
||||
|
||||
private val upgradeVersionNetWorkModel = UpgradeVersionNetWorkModel()
|
||||
private var map: Map<String, String>? = null
|
||||
private var version: String? = null
|
||||
|
||||
fun getPackageUrls(version: String) {
|
||||
this.version = version
|
||||
upgradeVersionNetWorkModel.requestUpgradeVersionUrls(version, onSuccess = {
|
||||
map = it
|
||||
CallerDevaToolsListenerManager.invokeDevaToolsUpgradeVersionUrls(map)
|
||||
}, onError = {
|
||||
CallerLogger.e("$M_DEVA$TAG", " getPackageUrls error: $it")
|
||||
})
|
||||
}
|
||||
|
||||
fun downLoadPackage(context: Context, downloadKey: String,downloadUrl: String) {
|
||||
// val downLoadUrl = map?.get(downLoadKey)
|
||||
// downLoadUrl?.let {
|
||||
DownloadUtils.downLoad(
|
||||
context,
|
||||
downloadUrl,
|
||||
@@ -50,7 +32,6 @@ class UpgradeManager : IDownload {
|
||||
5,
|
||||
this
|
||||
)
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onStart(downloadUrl: String?) {
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade.network
|
||||
|
||||
import com.mogo.eagle.core.data.Response
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.Query
|
||||
|
||||
interface UpgradeVersionApiService {
|
||||
|
||||
@GET("/backend/app/getApkInfo")
|
||||
suspend fun getUpgradeVersion(@Query("fileName") versionName: String): Response<Any>
|
||||
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.zhjt.mogo_core_function_devatools.upgrade.network
|
||||
|
||||
import com.mogo.eagle.core.data.Response
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.eagle.core.network.apiResponseCall
|
||||
import com.mogo.eagle.core.network.request
|
||||
|
||||
class UpgradeVersionNetWorkModel {
|
||||
|
||||
private fun getNetWorkApi(baseUrl: String = HostConst.getBaseUrl()): UpgradeVersionApiService {
|
||||
return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl)
|
||||
.create(UpgradeVersionApiService::class.java)
|
||||
}
|
||||
|
||||
fun requestUpgradeVersionUrls(
|
||||
versionName: String,
|
||||
onSuccess: ((Map<String, String>) -> Unit),
|
||||
onError: ((String) -> Unit)
|
||||
) {
|
||||
request<Response<Any?>> {
|
||||
loader {
|
||||
apiResponseCall {
|
||||
getNetWorkApi().getUpgradeVersion(
|
||||
versionName
|
||||
)
|
||||
}
|
||||
}
|
||||
onSuccess {
|
||||
if (it.data != null) {
|
||||
val jsonData = it.data.toString()
|
||||
val map = mutableMapOf<String, String>()
|
||||
jsonData.split(",").forEach { data ->
|
||||
val array = data.split("=")
|
||||
map[array[0]] = array[1]
|
||||
}
|
||||
onSuccess.invoke(map)
|
||||
} else {
|
||||
onError.invoke("没有获取到最新版本信息")
|
||||
}
|
||||
}
|
||||
onError {
|
||||
onError.invoke(it.message ?: "获取最新版本信息失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user