diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/logger/LoggerPrinter.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/logger/LoggerPrinter.java index d4b65ba28c..0c5fc3a233 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/logger/LoggerPrinter.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/logger/LoggerPrinter.java @@ -56,7 +56,7 @@ final class LoggerPrinter implements Printer { public void e( String tag, Throwable throwable, String message, Object... args) { if (throwable != null && message != null) { - message = message + " : " + throwable.toString(); + message = message + " : " + Log.getStackTraceString( throwable); } if (throwable != null && message == null) { diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java index 3f2da676e7..f722a9418e 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java @@ -20,9 +20,11 @@ import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; /** @@ -82,13 +84,21 @@ public class AppsPresenter extends Presenter { } private Map> addGuideAppEntrance(Map> appInfoMap) { - Map> result; - if (appInfoMap == null) { - result = new HashMap<>(); - } else { - result = new HashMap<>(); - result.putAll(appInfoMap); + Map> result = new HashMap<>(); + + if ( appInfoMap != null && !appInfoMap.isEmpty() ) { + // val deep copy + Set keys = appInfoMap.keySet(); + for ( Integer key : keys ) { + List val = appInfoMap.get( key ); + try { + result.put( key, new ArrayList<>( val ) ); + } catch ( Exception e ) { + result.put( key, new ArrayList<>() ); + } + } } + if (result.isEmpty()) { result.put(0, new ArrayList<>()); } else if (result.get(result.size() - 1) == null) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt index 91b293b75e..5d463bda01 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt @@ -2,6 +2,7 @@ package com.mogo.module.navi.ui.search import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.Rect import android.os.Bundle import android.text.TextUtils import android.view.View @@ -9,6 +10,7 @@ import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.commons.voice.AIAssist import com.mogo.commons.voice.IMogoVoiceCmdCallBack +import com.mogo.map.MogoLatLng import com.mogo.map.marker.IMogoMarker import com.mogo.map.marker.IMogoMarkerClickListener import com.mogo.map.marker.MogoMarkerOptions @@ -22,6 +24,7 @@ import com.mogo.module.navi.ui.adapter.SearchCategoryAdapter import com.mogo.module.navi.ui.base.BaseFragment import com.mogo.module.navi.uitls.BitmapUtils import com.mogo.module.navi.uitls.StringUtils +import com.mogo.utils.UiThreadHandler import kotlinx.android.synthetic.main.fragment_search_category.cv_search_result import kotlinx.android.synthetic.main.fragment_search_category.et_navi_search import kotlinx.android.synthetic.main.fragment_search_category.iv_navi_back @@ -33,8 +36,7 @@ import kotlinx.android.synthetic.main.fragment_search_category.tv_navi_navi * @author zyz * 2020-01-09. */ -class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBack - { +class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBack { // override fun onMarkerClicked(marker: IMogoMarker?): Boolean { // // return true @@ -62,8 +64,9 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa } private val TAG: String = "CategorySearchFragment" - private var addMarkers: List? = null + private var addMarkers: ArrayList = ArrayList() var arrayList = ArrayList() + var locationList = ArrayList() private lateinit var cmds: ArrayList override fun renderSearchPoiResult(datums: List?) { @@ -74,6 +77,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa .speakTTSVoice(String.format("搜索到%d个位置,请选择", datums?.size)) arrayList.clear() + locationList.clear() for (index in 0 until datums!!.size) { var decodeResource = @@ -94,8 +98,9 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa // .anchor(0.5f, 1f) .longitude(datums[index].point?.lng ?: 0.0) arrayList.add(options) + locationList.add(datums[index].point) - var int2String = StringUtils.int2String(index+1) + var int2String = StringUtils.int2String(index + 1) AIAssist.getInstance(context) .registerUnWakeupCommand( "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this @@ -103,16 +108,27 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa cmds.add("position" + index) } - addMarkers = SearchServiceHolder.getMarkerManger() - .addMarkers(TAG, arrayList, true) - moveMapToRight() + addMarkers() + } + + private fun addMarkers() { + addMarkers.clear() + var marginBounder = resources.getDimensionPixelSize(R.dimen.dp_60)*2 + SearchServiceHolder.getMapUIController() + .showBounds(TAG, null, locationList, Rect(cv_search_result.width+marginBounder,marginBounder, marginBounder, marginBounder), false) + + for (options in arrayList) { + var addMarker = SearchServiceHolder.getMarkerManger() + .addMarker(TAG, options) + addMarkers.add(addMarker) + } addClick() } private fun registerVoice() { for (index in 0 until cmds.size) { - var int2String = StringUtils.int2String(index+1) + var int2String = StringUtils.int2String(index + 1) AIAssist.getInstance(context) .registerUnWakeupCommand( "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this @@ -124,23 +140,20 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa override fun onHiddenChanged(hidden: Boolean) { super.onHiddenChanged(hidden) if (!hidden) { - addMarkers = SearchServiceHolder.getMarkerManger() - .addMarkers(TAG, arrayList, true) registerVoice() - addClick() - + addMarkers() } else { unRegisterVoice() } } - private fun addClick(){ + private fun addClick() { if (addMarkers != null) { - for (item in addMarkers!!){ + for (item in addMarkers!!) { item.setOnMarkerClickListener { var index = it.mogoMarkerOptions.`object` as Int - mAdapter.current=index + mAdapter.current = index rv_search_result.smoothScrollToPosition(index) updateMarker() true diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 99bed15dfd..ec0eb11b62 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -202,6 +202,9 @@ public class MogoServices implements IMogoMapListener, * 自动刷新:锁车、缩放比例:16、半径 2KM */ private void invokeAutoRefresh() { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { + return; + } mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); @@ -987,7 +990,6 @@ public class MogoServices implements IMogoMapListener, AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_BACK ); // 控制SearchUIShow 打点逻辑 setMarkerStatus(false); - } else { mUiController.showMyLocation( false ); AIAssist.getInstance( mContext ) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java index 9aaa8a4801..3210ed50e7 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerInfoView.java @@ -171,10 +171,9 @@ public class MapMarkerInfoView extends MapMarkerBaseView { clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info); ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red); case MarkerPoiTypeEnum.FOURS_NEALY: - // TODO: 2020-03-30 - ivIcon.setImageResource(R.drawable.module_service_ic_rc_accident2); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_red_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_red); + ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); break; default: ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java index 3db36ba9a3..8ea5d8c389 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerView.java @@ -143,8 +143,8 @@ public class MapMarkerView extends MapMarkerBaseView { ivBg.setImageResource(R.drawable.module_service_ic_rc_accident); break; case MarkerPoiTypeEnum.FOURS_NEALY: - // TODO: 2020-03-30 - ivBg.setImageResource(R.drawable.module_service_ic_rc_accident); + ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news); + ivBg.setImageResource(R.drawable.bg_map_marker_blue); break; default: ivIcon.setImageResource(R.drawable.icon_map_marker_shear_news);