diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 77981565a4..ec51a04065 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -291,19 +291,21 @@ class PM2DrivingModel private constructor() { PM2ServiceManager.queryDriverSiteByCoordinate(it, object : OchCommonServiceCallback{ override fun onSuccess(data: PM2RoutesResponse?) { - if (data?.result === routesResult) { + + if (data == null || data.result == null){ + if (routesResult != null) { + routesResult == null + updateLocalOrder() + d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= result is null") + return + } + return + } + if (data.result != null && data.result.equals(routesResult)){ + d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= not update") return } - if (data?.result?.sites === null) { - d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate ===== 没有路线") - routesResult = null - mNextStationIndex = 0 - isGoingToNextStation = false - startOrStopCalculateRouteInfo(false) - mDrivingInfoCallback?.showNoTaskView(true) - return - } routesResult = data.result updatePassengerRouteInfo(data.result) } @@ -323,6 +325,14 @@ class PM2DrivingModel private constructor() { } } + private fun updateLocalOrder(){ + routesResult = null + mNextStationIndex = 0 + isGoingToNextStation = false + startOrStopCalculateRouteInfo(false) + mDrivingInfoCallback?.showNoTaskView(true) + } + private fun updatePassengerRouteInfo(result: PM2RoutesResult) { mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt index 0a55e1b913..2cb70cebd6 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceGSYVideoPlayer.kt @@ -17,7 +17,8 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer { init { hideWidget() - GSYVideoType.setShowType(com.shuyu.gsyvideoplayer.utils.GSYVideoType.SCREEN_MATCH_FULL) + GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL) + GSYVideoType.setRenderType(GSYVideoType.GLSURFACE) } override fun hideAllWidget() { @@ -50,19 +51,19 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer { } private fun hideWidget(){ - setViewShowState(mBottomContainer, GONE) - setViewShowState(mProgressBar, GONE) - setViewShowState(mCurrentTimeTextView, GONE) - setViewShowState(mTotalTimeTextView, GONE) - setViewShowState(mBottomProgressBar, GONE) - setViewShowState(mBackButton, GONE) - setViewShowState(mStartButton, GONE) + setViewShowState(mBottomContainer, INVISIBLE) + setViewShowState(mProgressBar, INVISIBLE) + setViewShowState(mCurrentTimeTextView, INVISIBLE) + setViewShowState(mTotalTimeTextView, INVISIBLE) + setViewShowState(mBottomProgressBar, INVISIBLE) + setViewShowState(mBackButton, INVISIBLE) + setViewShowState(mStartButton, INVISIBLE) - setViewShowState(mTopContainer, GONE) + setViewShowState(mTopContainer, INVISIBLE) - setViewShowState(mLoadingProgressBar, GONE) + setViewShowState(mLoadingProgressBar, INVISIBLE) setViewShowState( - mLockScreen, GONE + mLockScreen, INVISIBLE ) setIsTouchWiget(false) @@ -75,7 +76,7 @@ class AdvanceGSYVideoPlayer: StandardGSYVideoPlayer { } fun setCacheImageViewGone() { - setViewShowState(mThumbImageViewLayout, GONE) - setViewShowState(mThumbImageView, GONE) + setViewShowState(mThumbImageViewLayout, INVISIBLE) + setViewShowState(mThumbImageView, INVISIBLE) } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt index d3e4753941..78b5726da8 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvancePagerAdapter.kt @@ -5,7 +5,10 @@ import android.view.View import android.view.ViewGroup import androidx.viewpager.widget.PagerAdapter import androidx.viewpager.widget.ViewPager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.CountDownTimer import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack /** @@ -26,7 +29,7 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter private var current = 0 private val time = 5000 private var pause = false - private var thread: Thread? = null + private var countDownTimer: CountDownTimer? = null fun setData(list: MutableList) { if (list.isEmpty()) return @@ -174,34 +177,21 @@ class AdvancePagerAdapter(context: Context, viewPager: ViewPager) : PagerAdapter } private fun startTimer() { - if (null != thread && !thread?.isInterrupted!!) { - Logger.d(ImageAndVideoRotation.TAG, "thread.interrupt()") - thread?.interrupt() - thread = null + if (countDownTimer != null){ + countDownTimer?.cancel() + countDownTimer = null } - thread = Thread { - while (null != thread && !thread?.isInterrupted!!) { - try { - Logger.d(ImageAndVideoRotation.TAG, "sleep") - Thread.sleep(1000) - if (viewList[mViewPager.currentItem] is AdvanceImageView) { - Logger.d(ImageAndVideoRotation.TAG, "增加1s") - current += 1000 - }else{ - break - } - if (current >= time) { - Logger.d(ImageAndVideoRotation.TAG, "5s到,跳转") - goNextItemView() - current = 0 - break - } - } catch (e: InterruptedException) { - e.printStackTrace() - } + countDownTimer = object : CountDownTimer(5000,1000){ + override fun onTick(millisUntilFinished: Long) { + d(SceneConstant.M_BUS_P + "startTimer", "倒计时秒 = ${millisUntilFinished/1000}" ) } - } - thread?.start() + + override fun onFinish() { + d(ImageAndVideoRotation.TAG+ "startTimer", "5s到,跳转") + goNextItemView() + } + + }.start() } /** diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt index d28037cc68..33c84d9efe 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/video/AdvanceVideoView.kt @@ -14,6 +14,7 @@ import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.BitmapHelper import com.mogo.eagle.core.utilcode.util.FileUtils +import com.mogo.eagle.core.utilcode.util.ThreadPoolService import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.bus.passenger.R import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder @@ -87,7 +88,7 @@ class AdvanceVideoView @JvmOverloads constructor( // BitmapHelper.getVideoThumbnail(path) /*获取第一帧图*/ cacheImage?.setImageResource(R.drawable.m2_p_video_holder) setCacheImageViewVisible() - Thread { + ThreadPoolService.execute { var bitmap = BitmapHelper.getVideoThumbnail(fileNetPath) Logger.d(ImageAndVideoRotation.TAG, "setVideoPath") ThreadUtils.runOnUiThread { @@ -103,19 +104,7 @@ class AdvanceVideoView @JvmOverloads constructor( .into(it) } } - }.start() -// Logger.d(ImageAndVideoRotation.TAG, "bitmap加载") -// cacheImage?.let { -// Glide.with(context).load(cacheImageUrl) -// .apply( -// RequestOptions().placeholder(R.drawable.m2_p_video_holder) -// .error(R.drawable.m2_p_video_holder) -// .fallback(R.drawable.m2_p_video_holder) -// .centerCrop() -// ) -// .into(it) -// } -// videoViewPlayer?.thumbImageView = cacheImage + } } fun clearLocalErrorVideo(){ diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MarqueeTextView.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MarqueeTextView.java index 884d504338..8b141d5ded 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MarqueeTextView.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/MarqueeTextView.java @@ -2,6 +2,7 @@ package com.mogo.och.common.module.wigets; import android.content.Context; import android.content.res.TypedArray; +import android.graphics.Rect; import android.util.AttributeSet; import android.view.ViewDebug; import android.widget.TextView; @@ -21,7 +22,7 @@ public class MarqueeTextView extends androidx.appcompat.widget.AppCompatTextView /** * 自定义 gap */ - private float mCustomGap = 0.3f; + private float mCustomGap = 0.5f; /** * 是否使用自定义 gap */ @@ -50,6 +51,19 @@ public class MarqueeTextView extends androidx.appcompat.widget.AppCompatTextView return true; } + @Override + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (focused) + super.onFocusChanged(true, direction, previouslyFocusedRect); + + } + + @Override + public void onWindowFocusChanged(boolean hasWindowFocus) { + if (hasWindowFocus){} + super.onWindowFocusChanged(true); + } + @Override @ViewDebug.ExportedProperty public boolean isSelected() { diff --git a/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt b/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt index 09ae7d1c42..73d69c4931 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt +++ b/app/src/main/java/com/mogo/launcher/lancet/CrashFix.kt @@ -1,6 +1,7 @@ package com.mogo.launcher.lancet import android.content.ComponentName +import android.content.Context import android.content.Intent import androidx.annotation.* import com.knightboost.lancet.api.Origin @@ -29,4 +30,25 @@ class CrashFix { null } } + + /** + * https://console.volcengine.com/apmplus/app/crash/detail/java/bb387ccd9c1a3c6ad2ede4e6f501a5e7?aid=302368&date=%7B%22granularity%22%3A%221h%22%2C%22duration%22%3A%22recently%22%2C%22range%22%3A%221w%22%7D&filters=%7B%22type%22%3A%22and%22%2C%22sub_conditions%22%3A%5B%7B%22dimension%22%3A%22os%22%2C%22op%22%3A%22in%22%2C%22type%22%3A%22expression%22%2C%22values%22%3A%5B%22Android%22%5D%7D%5D%7D&org_id=2100068151&os=Android&page_number=6&status=%5B%22pending%22%2C%22processing%22%2C%22solved%22%2C%22reopen%22%5D + * java.lang.IllegalArgumentException: Invalid audio buffer size. + * at android.media.AudioTrack.audioBuffSizeCheck(AudioTrack.java:1857) + at android.media.AudioTrack.(AudioTrack.java:812) + at android.media.AudioTrack.(AudioTrack.java:754) + at android.media.AudioTrack.(AudioTrack.java:708) + at android.media.AudioTrack.(AudioTrack.java:649) + at com.aispeech.lite.tts.a.a(SourceFile:70) + */ + @Insert + @TargetClass("com.aispeech.lite.tts.a") + @TargetMethod(methodName = "a") + fun fixAiSpeechCrash(context: Context, arg1: Int, arg2: Int) { + try { + Origin.callVoid() + } catch (t: Throwable) { + t.printStackTrace() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 0c2258f40b..ca97a66c24 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -91,13 +91,20 @@ object ConfigStartUp { HdMapBuildConfig.currentCarVrIconRes = R.raw.huanwei } else if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache + } else if (AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)){ + HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache + } else if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)){ + HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache } else if (AppIdentityModeUtils.isCharter(FunctionBuildConfig.appIdentityMode)){ HdMapBuildConfig.currentCarVrIconRes = R.raw.xiaobache } if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { + if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) || + AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode) + || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode) || + AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { //是否显示 限速UI HmiBuildConfig.isShowLimitingVelocityView = false //白天模式 diff --git a/app/urlConfig.json b/app/urlConfig.json index 63f6d175ad..868bfdc94f 100644 --- a/app/urlConfig.json +++ b/app/urlConfig.json @@ -5,21 +5,27 @@ "shuttle_url": "https://och-driver-qa.zhidaozhixing.com", "passport_url": "", "socket_base_url": "", - "socket_tech_url": "" + "socket_tech_url": "", + "eagle_mis_url": "", + "eagle_dns_url": "" }, "online": { "och_url": "https://tech.zhidaohulian.com", "shuttle_url": "https://och-driver.zhidaozhixing.com", "passport_url": "", "socket_base_url": "", - "socket_tech_url": "" + "socket_tech_url": "", + "eagle_mis_url": "", + "eagle_dns_url": "" }, "demo": { "och_url": "http://tech-dev.zhidaohulian.com", "shuttle_url": "https://och-driver-dev.zhidaozhixing.com", "passport_url": "", "socket_base_url": "", - "socket_tech_url": "" + "socket_tech_url": "", + "eagle_mis_url": "", + "eagle_dns_url": "" } }, "dali": { @@ -28,21 +34,27 @@ "shuttle_url": "https://och-a.zhidaozhixing.com", "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", - "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", + "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" }, "online": { "och_url": "https://och-a.zhidaozhixing.com", "shuttle_url": "https://och-a.zhidaozhixing.com", "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", - "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", + "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", "shuttle_url": "https://och-a.zhidaozhixing.com", "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", - "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", + "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToggleDebugView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToggleDebugView.kt index 45879b57a5..f5dba8b8d7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToggleDebugView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToggleDebugView.kt @@ -7,7 +7,6 @@ import android.view.View import android.view.WindowManager import android.view.animation.OvershootInterpolator import com.mogo.eagle.core.data.enums.SidePattern -import com.mogo.eagle.core.data.deva.report.ReportEntity import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.hmi.notification.WarningFloat diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt index 1a2ad74df2..3e34c7a397 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt @@ -12,5 +12,9 @@ data class UrlConfig( @SerializedName("socket_base_url") val socketBaseUrl: String, @SerializedName("socket_tech_url") - val socketTechUrl: String + val socketTechUrl: String, + @SerializedName("eagle_mis_url") + val eagleMisUrl: String, + @SerializedName("eagle_dns_url") + val eagleDnsUrl: String ) \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt new file mode 100644 index 0000000000..77d0714557 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.data.telematic + +/** + * @author: wangmingjun + * @date: 2023/3/3 + * 供网约车司乘屏通信使用 + */ +class TelematicConstant { + companion object { + const val BUSINESS_STRING = 100 + } +} \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt index 878e1127c9..060abda7b6 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt @@ -39,7 +39,7 @@ object MultiDisplayUtils { // 获取除了内置屏幕(主屏幕)的其它屏幕 val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION) // 初始化新的集合进行接收排序后的屏幕信息,防止数组越界初始化列表相同的集合,集合中会有null,需要在使用判断,null即没有连接屏幕 - var displaysList = arrayOfNulls(lcd_sub_port_six_lcd_mode.size) + var displaysList = arrayOf() Log.d(TAG, "displays:$displays") // 判断副屏个数 @@ -67,10 +67,10 @@ object MultiDisplayUtils { // 处理EB5副屏幕 else { if (mDisplayManager.displays.isNotEmpty()) { - displaysList = arrayOfNulls(1) // EB5目前副屏幕ID为固定4096 for (i in mDisplayManager.displays.indices) { if (mDisplayManager.displays[i].displayId == 4096) { + displaysList = arrayOfNulls(1) displaysList[0] = mDisplayManager.displays[i] } } diff --git a/gradle.properties b/gradle.properties index 0a7bb9b71b..15aaa99c0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -93,8 +93,8 @@ WEBSOCKET_VERSION=1.1.7 applicationId=com.mogo.launcer applicationName=IntelligentPilot # RoboBus司机端:2.5.1;RoboTaxi司机端:2.5.1;RoboTaxi乘客端:1.0.0 -versionCode=1002000 -versionName=1.0.2 +versionCode=1001000 +versionName=1.0.1 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index 5692ae6ac3..c9cd8b2ffb 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -120,6 +120,9 @@ public class AMapWrapper implements IMogoMap { if (!checkAMap()) { return; } + if(optionsArrayList == null || optionsArrayList.size() == 0){ + return; + } ArrayList markerOptionsArrayList = new ArrayList<>(); optionsArrayList.forEach((s, trackedObject) -> { MarkerSimpleData markerOptions = ObjectUtils.fromTrafficData(trackedObject); @@ -127,6 +130,9 @@ public class AMapWrapper implements IMogoMap { markerOptionsArrayList.add(markerOptions); } }); + if(markerOptionsArrayList.size() == 0){ + return; + } long time = markerOptionsArrayList.get(0).getTime(); MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, FunctionBuildConfig.isBeautyMode ? 8.0f : 0f, 1, time, 1); }