[dev_opt_2.15.0] patch升级代码提交
This commit is contained in:
@@ -12,6 +12,8 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
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.apm.*
|
||||
import com.mogo.eagle.core.function.api.devatools.download.*
|
||||
import com.mogo.eagle.core.function.api.upgrade.*
|
||||
|
||||
/**
|
||||
* 开发套件工具接口
|
||||
@@ -118,7 +120,7 @@ interface IDevaToolsProvider : IProvider {
|
||||
/**
|
||||
* 下载指定包
|
||||
*/
|
||||
fun downLoadPackage(downloadKey: String, downloadUrl: String)
|
||||
fun downLoadPackage(type: DownloadType, downloadKey: String, downloadUrl: String)
|
||||
|
||||
/**
|
||||
* 更新下载进度
|
||||
@@ -195,4 +197,9 @@ interface IDevaToolsProvider : IProvider {
|
||||
fun dockerVersion(dockerVersion: String?)
|
||||
|
||||
fun apmEnvProvider(): IApmEnvProvider
|
||||
|
||||
/**
|
||||
* 升级相关状态查询
|
||||
*/
|
||||
fun upgradeProvider(): IMoGoUpgradeProvider?
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.mogo.eagle.core.function.api.devatools.download
|
||||
|
||||
enum class DownloadType {
|
||||
APK,
|
||||
OBU,
|
||||
PATCH
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.mogo.eagle.core.function.api.patch
|
||||
|
||||
import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
import java.io.*
|
||||
|
||||
interface IMoGoPatchProvider : IProvider {
|
||||
|
||||
|
||||
/**
|
||||
* @param context 上下文环境
|
||||
* @param expectOldApkMd5 服务端返回的旧apk文件的md5
|
||||
* @param patchSize patch文件大小
|
||||
* @return true: 本地apk与服务端旧apk版本的md5文件一致; false: 本地apk与服务端旧apk版本md5不一致
|
||||
*/
|
||||
fun isPatchAccept(context: Context, expectOldApkMd5: String, patchSize: Long): Boolean
|
||||
|
||||
|
||||
/**
|
||||
* @param context 上下文环境
|
||||
* @param patch 已下载文件的patch路径
|
||||
* @param newApk 合成后文件的文件路径
|
||||
* @return true: patch与旧apk文件合成成功; false: patch与旧apk文件合成失败
|
||||
*/
|
||||
fun applyPatch(context: Context, patch: File, newApk: File): Boolean
|
||||
|
||||
|
||||
/**
|
||||
* @param context 上下文环境
|
||||
* @param mergedApk patch合成后的文件路径
|
||||
* @param expectNewApkMd5 期望合成后文件的md5值
|
||||
* @return true: md5校验成功; false: md5校验失败
|
||||
*/
|
||||
fun checkMd5ForMergedApk(context: Context, mergedApk: File, expectNewApkMd5: String): Boolean
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.mogo.eagle.core.function.api.upgrade
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider
|
||||
|
||||
interface IMoGoUpgradeProvider: IProvider {
|
||||
|
||||
suspend fun recordUpgradeRecord(newVersion: String,newMd5: String?, type: Int)
|
||||
|
||||
suspend fun recordDownloadStart()
|
||||
|
||||
suspend fun recordDownloadFailed(error: String)
|
||||
|
||||
suspend fun recordDownloadSuccess()
|
||||
|
||||
suspend fun recordInstallStart()
|
||||
|
||||
suspend fun recordSourceMd5CheckStart()
|
||||
|
||||
suspend fun recordSourceMd5CheckFailed(error: String)
|
||||
|
||||
suspend fun recordSourceMd5CheckSuccess()
|
||||
|
||||
suspend fun recordInstallApplyPatchStart()
|
||||
|
||||
suspend fun recordInstallApplyPatchFailed(error: String)
|
||||
|
||||
suspend fun recordInstallApplyPatchSuccess()
|
||||
|
||||
suspend fun recordTargetMd5CheckStart()
|
||||
|
||||
suspend fun recordTargetMd5CheckFailed(error: String)
|
||||
|
||||
suspend fun recordTargetMd5CheckSuccess()
|
||||
|
||||
suspend fun recordInstallFailed(code: Int, error: String)
|
||||
|
||||
suspend fun isUpgradeSuccessByPatch(): Boolean
|
||||
|
||||
suspend fun isUpgradeSuccessByFull(): Boolean
|
||||
|
||||
suspend fun getFullUpgradeFailedReason(): Map<String,List<Pair<Int, String>>>?
|
||||
|
||||
suspend fun getPatchUpgradeFailedReason(): Map<String,List<Pair<Int, String>>>?
|
||||
|
||||
suspend fun removeRecordByTargetVersion(version: String)
|
||||
|
||||
suspend fun removeRecordBySourceVersion(version: String)
|
||||
|
||||
suspend fun hasUpgradeRecord(): Boolean
|
||||
|
||||
suspend fun isNeedGoPatchUpgrade(): Boolean
|
||||
}
|
||||
Reference in New Issue
Block a user