From 5dbc7d33eed500c6e5a55be97027b5fa071605a6 Mon Sep 17 00:00:00 2001 From: xuxinchao <13522809046@163.com> Date: Fri, 29 Jul 2022 13:56:52 +0800 Subject: [PATCH] BadCase MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复上传语音文件监听造成的内存泄漏 --- .../badcase/biz/InitiativeBadCaseWindow.kt | 18 +++++++++++++++++ .../badcase/biz/PassiveBadCaseWindow.kt | 20 +++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt index 68670208ff..ef5e535cba 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt @@ -27,6 +27,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.zhidao.loglib.call.LogInfoManagerFactory import com.zhidao.loglib.upload.OnUploadListener +import com.zhidao.loglib.upload.UploadManager import com.zhjt.mogo_core_function_devatools.R import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager @@ -247,12 +248,16 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList object : OnUploadListener { override fun onUploadSuccess(filePath: String, downloadUrl: String) { CallerLogger.d("$M_DEVA$TAG", "语音文件上传成功:downloadUrl=$downloadUrl") + //将语音文件上传Cos监听移除 + removeUploadListener(singlePath) //上传到服务器 upload(downloadUrl) } override fun onUploadFail(filePath: String) { TipToast.shortTip("上传语音文件失败") + //将语音文件上传Cos监听移除 + removeUploadListener(singlePath) } }) }else{ @@ -261,6 +266,19 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList } } + /** + * 将语音文件上传Cos监听移除 + * @param filePath 文件路径 + */ + private fun removeUploadListener(filePath: String){ + val pkgInfo: List = filePath.substring( + filePath.lastIndexOf("/") + 1, + filePath.lastIndexOf(".") + ).split("_") + val pkgName = if (pkgInfo.size == 3) pkgInfo[1] else "" + UploadManager.getInstance().removeUploadListener(pkgName) + } + /** * 将记录上传到服务器 * @param downloadUrl 语音文件下载地址 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt index 55693b0086..3a68cd603a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt @@ -17,7 +17,6 @@ import com.google.android.flexbox.FlexboxLayout import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarStateListener -import androidx.lifecycle.lifecycleScope import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA @@ -35,7 +34,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import mogo.telematics.pad.MessagePad -import com.mogo.eagle.core.utilcode.kotlin.* +import com.zhidao.loglib.upload.UploadManager import java.io.File import java.lang.reflect.Field @@ -198,12 +197,16 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene object : OnUploadListener { override fun onUploadSuccess(filePath: String, downloadUrl: String) { CallerLogger.d("$M_DEVA$TAG", "语音文件上传成功:downloadUrl=$downloadUrl") + //将语音文件上传Cos监听移除 + removeUploadListener(singlePath) //上传到服务器 upload(downloadUrl) } override fun onUploadFail(filePath: String) { TipToast.shortTip("上传语音文件失败") + //将语音文件上传Cos监听移除 + removeUploadListener(singlePath) } }) }else{ @@ -212,6 +215,19 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene } } + /** + * 将语音文件上传Cos监听移除 + * @param filePath 文件路径 + */ + private fun removeUploadListener(filePath: String){ + val pkgInfo: List = filePath.substring( + filePath.lastIndexOf("/") + 1, + filePath.lastIndexOf(".") + ).split("_") + val pkgName = if (pkgInfo.size == 3) pkgInfo[1] else "" + UploadManager.getInstance().removeUploadListener(pkgName) + } + /** * 将记录上传到服务器 * @param downloadUrl 语音文件下载地址