From 365bd4ca2e4488e02d23c764406050f1d70524bd Mon Sep 17 00:00:00 2001 From: aibingbing Date: Mon, 18 Dec 2023 19:29:20 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A3=E4=BC=A0=E8=A7=86=E9=A2=91]=20refact?= =?UTF-8?q?or:=20=E9=9D=9ESass=E7=8E=AF=E5=A2=83=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=8F=AA=E4=BB=8E=E6=9C=AC=E5=9C=B0=E8=AF=BB=E5=8F=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=95=B0=E6=8D=AE=EF=BC=9B=20feat:=20=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E6=95=B0=E6=8D=AE=E6=88=90=E5=8A=9F=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=9C=AC=E5=9C=B0=E9=85=8D=E7=BD=AE=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=EF=BC=8C=E4=BF=9D=E8=AF=81=E6=9C=89=E5=86=85=E5=AE=B9=E8=83=BD?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wigets/media/MediaDataSourceManager.kt | 58 +++++++++++++++---- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt index a5e7af8504..535954b1f4 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/media/MediaDataSourceManager.kt @@ -5,6 +5,7 @@ import android.content.Context import android.text.TextUtils import com.google.gson.reflect.TypeToken import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -75,7 +76,22 @@ object MediaDataSourceManager { if (!mMediaDataSourceListenerMap.containsKey(tag)) { mMediaDataSourceListenerMap[tag] = dataSourceListener } - startGetMediaDataSourceLoop() + val isSassProject = isSassProject() + CallerLogger.i( + TAG, + "init, 初始化环境 isSassProject=$isSassProject" + ) + if (isSassProject) { + startGetMediaDataSourceLoop() + } else { + CallerLogger.i( + TAG, + "init, 使用本地配置数据" + ) + //非Sass环境下后端没有实现可配置,默认只走本地配置 + val localAdDataList = getMediaDataFromLocalConfig() + updateMediaDataSource(localAdDataList) + } } fun unInit(tag: String) { @@ -85,6 +101,13 @@ object MediaDataSourceManager { } } + /** + * 是否是Sass环境 + */ + private fun isSassProject(): Boolean { + return DebugConfig.getProjectFlavor().lowercase().contains("saas") + } + @SuppressLint("MissingPermission") private fun startGetMediaDataSourceLoop() { removeGetMediaDataSourceLoop() @@ -92,19 +115,22 @@ object MediaDataSourceManager { if (mRetryCount == RETRY_MAX_COUNT && !mHasEverGetMediaDataFromMis) { val localAdDataList = getMediaDataFromLocalConfig() updateMediaDataSource(localAdDataList) - CallerLogger.e(TAG, + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:失败${mRetryCount}次,先使用本地数据播放" ) } if (driverSn.isBlank()) { - CallerLogger.e(TAG, "startGetMediaDataSourceLoop:司机屏sn为空,跳过本次查询" + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:司机屏sn为空,跳过本次查询" ) mRetryCount++ UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 1000L) return } if (!NetworkUtils.isConnected()) { - CallerLogger.e(TAG, "startGetMediaDataSourceLoop:当前无网络,跳过本次查询" + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:当前无网络,跳过本次查询" ) mRetryCount++ UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 1000L) @@ -113,7 +139,8 @@ object MediaDataSourceManager { getMediaDataFromMis(object : OchCommonServiceCallback { override fun onSuccess(data: MediaDataResp?) { mHasEverGetMediaDataFromMis = true - CallerLogger.e(TAG, + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,MediaData=${ GsonUtils.toJson( data @@ -125,21 +152,30 @@ object MediaDataSourceManager { if (newDataList.isNotEmpty()) { if (compareMediaDataSource(newDataList)) { updateMediaDataSource(newDataList) - CallerLogger.e(TAG, + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,更新数据" ) } else { - CallerLogger.e(TAG, + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:success, 从管理后台获取到数据,数据无变化" ) } + } else { + //请求成功获取到后台配置数据了,但是数据为空,此时为了有内容展示,还是使用本地数据更新播放 + if (mLastMediaDataSourceList.isEmpty()) { + val localAdDataList = getMediaDataFromLocalConfig() + updateMediaDataSource(localAdDataList) + } } // 获取成功后,延迟5分钟再查询 UiThreadHandler.postDelayed(getAdDataSourceLoopRunnable, 5 * 60 * 1000L) } override fun onFail(code: Int, msg: String?) { - CallerLogger.e(TAG, + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:failed, code=$code, msg=$msg" ) mRetryCount++ @@ -149,7 +185,8 @@ object MediaDataSourceManager { override fun onError() { super.onError() - CallerLogger.e(TAG, "startGetMediaDataSourceLoop:error, 网络异常" + CallerLogger.e( + TAG, "startGetMediaDataSourceLoop:error, 网络异常" ) mRetryCount++ val delay = if (mHasEverGetMediaDataFromMis) 5000L else 1000L @@ -163,7 +200,8 @@ object MediaDataSourceManager { } private fun getMediaDataFromMis(callback: OchCommonServiceCallback) { - CallerLogger.d(TAG, "getMediaDataFromMis:准备发送请求,driverSn=$driverSn" + CallerLogger.d( + TAG, "getMediaDataFromMis:准备发送请求,driverSn=$driverSn" ) mNetworkService.queryMediaDataFromMis( sn = driverSn,