From 8d2c8c22b57dd6f57bec1d1a0993ed2628af21eb Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 30 Nov 2022 18:13:09 +0800 Subject: [PATCH] =?UTF-8?q?[2.13.0][fix]=E5=85=A8=E8=A7=88=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E5=BC=80=E5=90=AF=E3=80=81=E7=BB=93=E6=9D=9FV2X?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=AE=9A=E6=97=B6=E8=BD=AE=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/smp/OverviewMapFragment.java | 23 ++++++++++--------- .../function/call/map/CallerSmpManager.kt | 22 ++++++++++++++++-- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/OverviewMapFragment.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/OverviewMapFragment.java index e9370d84dd..12b07a5c10 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/OverviewMapFragment.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/OverviewMapFragment.java @@ -33,7 +33,7 @@ import java.util.List; @Route(path = MoGoFragmentPaths.PATH_FRAGMENT_OVERVIEW) public class OverviewMapFragment extends BaseFragment implements IMogoSmallMapProvider { - private final String TAG = "SmallMapFragment"; + private final String TAG = "OverviewMapFragment"; protected AMapCustomView mAMapCustomView; private OverViewModel mViewModel; @@ -80,22 +80,24 @@ public class OverviewMapFragment extends BaseFragment @Override public void startQueryV2XEvents() { - long lineId = getLineId(); - if (lineId > 0) { - mViewModel.getAllV2XEventsByLineId("" + lineId, MoGoAiCloudClientConfig.getInstance().getSn()); + if (isAdded()) { + long lineId = getLineId(); + if (lineId > 0 && mViewModel != null) { + mViewModel.getAllV2XEventsByLineId("" + lineId, MoGoAiCloudClientConfig.getInstance().getSn()); + } } } @Override public void clearV2XMarkers() { - if (Thread.currentThread() != Looper.getMainLooper().getThread()) { - UiThreadHandler.post(() -> { + if (isAdded()) { + if (mAMapCustomView != null) { mAMapCustomView.clearV2XMarkers(); - }); - } else { - mAMapCustomView.clearV2XMarkers(); + } + if (mViewModel != null) { + mViewModel.stopQueryV2XEvents(); + } } - mViewModel.stopQueryV2XEvents(); } @Override @@ -136,7 +138,6 @@ public class OverviewMapFragment extends BaseFragment } /** - * * @return Taxi的下发的轨迹id */ private long getLineId() { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt index 52e17b88aa..b910a61e25 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt @@ -1,10 +1,12 @@ package com.mogo.eagle.core.function.call.map +import android.os.Looper import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.constants.MoGoFragmentPaths import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.function.api.map.smp.IMogoSmallMapProvider import com.mogo.eagle.core.function.call.base.CallerBase +import com.mogo.eagle.core.utilcode.util.UiThreadHandler /** * @author xiaoyuzhou @@ -16,6 +18,10 @@ object CallerSmpManager : CallerBase() { get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_SMP) .navigation() as IMogoSmallMapProvider + private val mogoOverViewMapProvider: IMogoSmallMapProvider + get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_OVERVIEW) + .navigation() as IMogoSmallMapProvider + /** * 绘制路径线 */ @@ -50,11 +56,23 @@ object CallerSmpManager : CallerBase() { @JvmStatic fun startQueryV2XEvents() { - mogoSmallMapProvider.startQueryV2XEvents() + if (Thread.currentThread() !== Looper.getMainLooper().thread) { + UiThreadHandler.post { + mogoOverViewMapProvider.startQueryV2XEvents() + } + } else { + mogoOverViewMapProvider.startQueryV2XEvents() + } } @JvmStatic fun clearV2XMarkers() { - mogoSmallMapProvider.clearV2XMarkers() + if (Thread.currentThread() !== Looper.getMainLooper().thread) { + UiThreadHandler.post { + mogoOverViewMapProvider.clearV2XMarkers() + } + } else { + mogoOverViewMapProvider.clearV2XMarkers() + } } } \ No newline at end of file