[2.15.0][增量升级] 增加本地配置是否支持增量升级并记录此状态
This commit is contained in:
@@ -54,7 +54,7 @@ class UpgradeAppNetWorkManager private constructor() {
|
||||
d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
|
||||
val request = UpgradeAppRequest(sn, macAddress, type, versionName, "1")
|
||||
val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request))
|
||||
provider?.recordUpgradeRecord(sn ?: "", macAddress, type)
|
||||
provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade)
|
||||
provider?.recordUpgradeRequestStart()
|
||||
val info = mUpgradeApiService.getUpgradeInfo(requestBody)
|
||||
if (info.result != null) {
|
||||
@@ -79,37 +79,34 @@ class UpgradeAppNetWorkManager private constructor() {
|
||||
val patchInfo = info.result.patchInfo
|
||||
var downloadUrl: String = info.result.appUrl
|
||||
val provider = upgradeProvider()
|
||||
var isGoFullUpgrade = true
|
||||
if (patchInfo != null) {
|
||||
val f1 = FunctionBuildConfig.isSupportPatchUpgrade
|
||||
if (!f1) {
|
||||
val isSupport = FunctionBuildConfig.isSupportPatchUpgrade
|
||||
if (!isSupport) {
|
||||
Log.d("ApkInstaller", "当前版本配置不支持增量升级...")
|
||||
}
|
||||
val f2 = provider != null
|
||||
if (f1 && !f2) {
|
||||
Log.d("ApkInstaller", "provider为空...")
|
||||
}
|
||||
var f3 = true
|
||||
if (f2 && provider != null && !provider.isNeedGoPatchUpgrade()) {
|
||||
Log.d("ApkInstaller", "上次patch升级失败了...")
|
||||
f3 = false
|
||||
}
|
||||
var f4 = true
|
||||
if (f3) {
|
||||
provider?.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1)
|
||||
provider?.recordSourceMd5CheckStart()
|
||||
f4 = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong())
|
||||
if (!f4) {
|
||||
Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...")
|
||||
provider?.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
|
||||
} else {
|
||||
provider?.recordSourceMd5CheckSuccess()
|
||||
} else {
|
||||
if (provider != null && provider.isNeedGoPatchUpgrade()) {
|
||||
Log.d("ApkInstaller", "需要走patch升级 -- 1 --")
|
||||
provider.recordUpgradeRecord(patchInfo.targetVersion, patchInfo.targetMd5, 1)
|
||||
Log.d("ApkInstaller", "需要走patch升级 -- 2 --")
|
||||
provider.recordSourceMd5CheckStart()
|
||||
Log.d("ApkInstaller", "需要走patch升级 -- 3 --")
|
||||
val accept = isPatchAccept(Utils.getApp(), patchInfo.sourceMd5, patchInfo.patchSize.toLong())
|
||||
Log.d("ApkInstaller", "需要走patch升级 -- 4 --:$accept")
|
||||
if (!accept) {
|
||||
Log.d("ApkInstaller", "旧版本apk包的md5与服务端上的md5不匹配...")
|
||||
provider.recordSourceMd5CheckFailed("旧apk的md5与服务端的md5不一致:[server_md5: ${patchInfo.sourceMd5}, apk_md5: ${AppUtils.getAppApkMd5()}]")
|
||||
} else {
|
||||
Log.d("ApkInstaller", "需要走patch升级 -- 5 --")
|
||||
provider.recordSourceMd5CheckSuccess()
|
||||
downloadUrl = patchInfo.patchDownloadUrl
|
||||
addPatchInfo(patchInfo)
|
||||
isGoFullUpgrade = false
|
||||
}
|
||||
}
|
||||
}
|
||||
if (f4) {
|
||||
downloadUrl = patchInfo.patchDownloadUrl
|
||||
addPatchInfo(patchInfo)
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (isGoFullUpgrade) {
|
||||
provider?.recordUpgradeRecord(info.result.versionName, null, 0)
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
|
||||
@@ -5,7 +5,6 @@ import android.content.pm.PackageInstaller
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.deva.chain.*
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion
|
||||
import com.mogo.eagle.core.function.api.upgrade.*
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.provider.db.UpgradeDbHelper
|
||||
@@ -25,8 +24,8 @@ class MoGoUpgradeProviderImpl: IMoGoUpgradeProvider {
|
||||
|
||||
override fun init(context: Context?) {}
|
||||
|
||||
override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?) {
|
||||
val record = Record(AppUtils.getAppVersionName(), sn, mac, type, time = System.currentTimeMillis())
|
||||
override suspend fun recordUpgradeRecord(sn: String, mac: String, type: String?, isSupportPatch: Boolean) {
|
||||
val record = Record(AppUtils.getAppVersionName(), sn, mac, type, isSupportPatch, time = System.currentTimeMillis())
|
||||
UpgradeDbHelper.insertRecord(record)
|
||||
try {
|
||||
onUpgradeRecordLinkLog(mapOf("upgrade_start" to GsonUtils.toJson(record)))
|
||||
|
||||
@@ -12,6 +12,7 @@ data class Record(
|
||||
var sn: String,
|
||||
var mac: String,
|
||||
var type: String?,
|
||||
var isSupportPatch: Boolean,
|
||||
var time: Long = 0L
|
||||
)
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ rootProject.gradle.taskGraph.whenReady { TaskExecutionGraph graph ->
|
||||
}
|
||||
if (app != null) {
|
||||
def android = (AppExtension) app.extensions.findByName("android")
|
||||
android.defaultConfig.buildConfigField("boolean", "IS_SUPPORT_PATCH_UPGRADE", rootProject.hasProperty("PATCH_UPGRADE_SUPPORT") ? rootProject.properties["PATCH_UPGRADE_SUPPORT"] : false)
|
||||
def signConfig = android.signingConfigs.getByName("release")
|
||||
if (signConfig != null && isOnlineReleaseBuild(gradle)) {
|
||||
if (tasks != null) {
|
||||
|
||||
Reference in New Issue
Block a user