From bfd591f5d56114163db680a65fe2a67410e9465a Mon Sep 17 00:00:00 2001 From: jiaguofeng Date: Thu, 17 Aug 2023 18:11:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E6=A8=A1=E5=9D=97=E9=80=82?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdk/inner/road/RoadResultController.kt | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadResultController.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadResultController.kt index 00ac24526b..1d669577fa 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadResultController.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/road/RoadResultController.kt @@ -12,7 +12,7 @@ class RoadResultController { private val TAG = javaClass.simpleName - private var mRoadResultList: ConcurrentHashMap = ConcurrentHashMap() + private var mRoadResultCallHashMap: ConcurrentHashMap> = ConcurrentHashMap() @@ -20,7 +20,12 @@ class RoadResultController { if(CompileConfig.DEBUG){ Log.i(TAG, "roadop--addRoadResultListener:$key ") } - mRoadResultList.put(key,listener) + var list = mRoadResultCallHashMap.get(key) + if(list == null){ + list = ArrayList() + } + list.add(listener) + mRoadResultCallHashMap.put(key,list) } fun removeRoadResultListenerByTag(tag:String){ @@ -28,7 +33,7 @@ class RoadResultController { Log.i(TAG, "roadop--removeRoadResultListenerByTag:$tag ") } val keysToRemove = mutableListOf() - mRoadResultList.forEach { (key, value) -> + mRoadResultCallHashMap.forEach { (key, value) -> if (key.contains(tag)) { keysToRemove.add(key) } @@ -37,7 +42,7 @@ class RoadResultController { if(CompileConfig.DEBUG){ Log.i(TAG, "roadop--removeRoadResultListenerByTag::$tag--remove:$key ") } - mRoadResultList.remove(key) + mRoadResultCallHashMap.remove(key) } } @@ -46,17 +51,19 @@ class RoadResultController { if(CompileConfig.DEBUG){ Log.i(TAG, "roadop--dispatchRoadResult:$key,result:$result ") } - val call = mRoadResultList.get(key) - call?.let { + val list = mRoadResultCallHashMap.get(key) + if(list != null && list.isNotEmpty()){ CommonController.instance.scope?.launch(Dispatchers.Main) { - it.result(code,result) + list.forEach { call -> + call.result(code,result) + } } - mRoadResultList.remove(key) + mRoadResultCallHashMap.remove(key) } } fun exit(){ - mRoadResultList.clear() + mRoadResultCallHashMap.clear() } companion object {