From bbf538d84509a9ecde5929b49074e32e3689ad22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 15 Jan 2020 14:00:33 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86Marker=E7=9A=84?= =?UTF-8?q?=E9=AB=98=E4=BA=AE=E5=B1=95=E7=A4=BA=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=95=88=E7=8E=87=E6=9B=B4=E9=AB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/map/marker/IMogoMarkerManager.java | 7 ++ .../mogo/map/marker/MogoMarkersHandler.java | 5 ++ .../java/com/mogo/map/MogoMarkerManager.java | 6 ++ .../common/entity/MarkerShowEntity.java | 6 +- .../module/service/MarkerServiceHandler.java | 88 +++++-------------- 5 files changed, 43 insertions(+), 69 deletions(-) diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java index 50c75c5dc1..433b4dada0 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java @@ -6,6 +6,7 @@ import com.mogo.map.MogoLatLng; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author congtaowang @@ -52,6 +53,12 @@ public interface IMogoMarkerManager { * @return */ List< IMogoMarker > getMarkers( String tag ); + /** + * 获取所有类型的marker。 + * + * @return + */ + Map< String, List< IMogoMarker > > getAllMarkers( ); /** * 仅保留指定类型的tag diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java index be1a9944a5..07919c3124 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java @@ -77,6 +77,11 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker } + public synchronized Map< String, List< IMogoMarker > > getAllMarkers() { + return mServicesMarkers; + } + + public synchronized void add( String tag, IMogoMarker marker ) { if ( marker == null ) { return; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java index 3072f7e06d..c65a4e90a6 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java @@ -11,6 +11,7 @@ import com.mogo.map.marker.MogoMarkersHandler; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author congtaowang @@ -78,6 +79,11 @@ public class MogoMarkerManager implements IMogoMarkerManager { return MogoMarkersHandler.getInstance().getMarkers( tag ); } + @Override + public Map< String, List< IMogoMarker > > getAllMarkers() { + return MogoMarkersHandler.getInstance().getAllMarkers(); + } + @Override public void removeMarkersExcept( String tag ) { MogoMarkersHandler.getInstance().deleteAllExcept( tag ); diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java index 60b7a9437c..9bfab11dec 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerShowEntity.java @@ -92,9 +92,7 @@ public class MarkerShowEntity { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MarkerShowEntity that = (MarkerShowEntity) o; - return isChecked == that.isChecked && - isHighlighted == that.isHighlighted && - Objects.equals(iconUrl, that.iconUrl) && + return Objects.equals(iconUrl, that.iconUrl) && Objects.equals(textContent, that.textContent) && Objects.equals(markerType, that.markerType) && Objects.equals(bindObj, that.bindObj) && @@ -103,7 +101,7 @@ public class MarkerShowEntity { @Override public int hashCode() { - return Objects.hash(isChecked, isHighlighted, iconUrl, textContent, markerType, bindObj, markerLocation); + return Objects.hash(iconUrl, textContent, markerType, bindObj, markerLocation); } @Override diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index f30aaf5686..cbd935c58b 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -30,8 +30,8 @@ import com.mogo.service.map.IMogoMapService; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.logger.Logger; -import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * author : donghongyu @@ -155,7 +155,7 @@ public class MarkerServiceHandler { lastMarkerShowEntity.setChecked(false); lastMarkerShowEntity.setHighlighted(false); - drawMapMarkerItem(lastMarkerShowEntity); + drawMapMarker(lastMarkerShowEntity); lastMarker.remove(); } @@ -167,38 +167,38 @@ public class MarkerServiceHandler { markerShowEntity.setChecked(true); markerShowEntity.setHighlighted(true); - lastMarker = drawMapMarkerItem(markerShowEntity); + lastMarker = drawMapMarker(markerShowEntity); + if (lastMarker != null) { + lastMarker.setAlpha(1f); + } marker.remove(); return false; } } - // 记录所有的Marker - private static List markerShowEntities; - // 对指定类型高亮处理 public static void highlightedMarker(String typeTag) { - if (markerShowEntities != null) { - if (lastMarker != null) { - // 将上次选中 Marker 设置为未选中状态 - MarkerShowEntity lastMarkerShowEntity = (MarkerShowEntity) lastMarker.getObject(); - lastMarkerShowEntity.setChecked(false); - lastMarkerShowEntity.setHighlighted(false); - drawMapMarkerItem(lastMarkerShowEntity); - } - lastMarker = null; - getMarkerManager().removeMarkers(); + try { + Map> allMarker = getMarkerManager().getAllMarkers(); + for (Map.Entry> entry : allMarker.entrySet()) { + String keyStr = entry.getKey(); + List markerList = entry.getValue(); - for (MarkerShowEntity markerShowEntity : markerShowEntities) { - if (markerShowEntity.getMarkerType().equals(typeTag)) { - markerShowEntity.setHighlighted(true); + if (keyStr.equals(typeTag)) { + for (IMogoMarker marker : markerList) { + marker.setAlpha(1f); + } } else { - markerShowEntity.setHighlighted(false); + for (IMogoMarker marker : markerList) { + marker.setAlpha(0.7f); + } } - drawMapMarkerItem(markerShowEntity); } + } catch (Exception e) { + e.printStackTrace(); } + } /** @@ -207,11 +207,6 @@ public class MarkerServiceHandler { public static void drawMapMarker(MarkerResponse response) { lastMarker = null; getMarkerManager().removeMarkers(); - if (markerShowEntities == null) { - markerShowEntities = new ArrayList<>(); - } else { - markerShowEntities.clear(); - } // 解析不同的Marker类型,然后对应的进行绘制 if (response != null && response.getResult() != null) { @@ -299,7 +294,7 @@ public class MarkerServiceHandler { } } -// getMapUIController().changeZoom(8); +// getMapUIController().changeZoom(12); } /** @@ -316,15 +311,11 @@ public class MarkerServiceHandler { .latitude(markerShowEntity.getMarkerLocation().getLat()) .longitude(markerShowEntity.getMarkerLocation().getLon()); options.icon(markerView); - options.alpha(0.8f); IMogoMarker marker = getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options); marker.setOnMarkerClickListener(mogoMarkerClickListener); marker.setObject(markerShowEntity); - - if (markerShowEntities != null) { - markerShowEntities.add(markerShowEntity); - } + marker.setAlpha(0.7f); return marker; } else { Logger.e(TAG, "Location 必须进行初始化!!!!!"); @@ -335,37 +326,4 @@ public class MarkerServiceHandler { return null; } - /** - * 绘制Marker,这里绘制的不会添加到队列中 - */ - public static IMogoMarker drawMapMarkerItem(MarkerShowEntity markerShowEntity) { - Logger.e(TAG, "绘制Marker====drawMapMarkerItem:" + markerShowEntity); - try { - if (markerShowEntity.getMarkerLocation() != null) { - View markerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity); - - MogoMarkerOptions options = new MogoMarkerOptions() - .owner(markerShowEntity.getMarkerType()) - .latitude(markerShowEntity.getMarkerLocation().getLat()) - .longitude(markerShowEntity.getMarkerLocation().getLon()); - options.icon(markerView); - if (markerShowEntity.isHighlighted()) { - options.alpha(1f); - } else { - options.alpha(0.8f); - } - - IMogoMarker marker = getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options); - marker.setOnMarkerClickListener(mogoMarkerClickListener); - marker.setObject(markerShowEntity); - - return marker; - } else { - Logger.e(TAG, "Location 必须进行初始化!!!!!"); - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } } From 48033f48ce89b6680de0f01671d2fa322848338d Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Wed, 15 Jan 2020 14:26:25 +0800 Subject: [PATCH 2/4] add voice control --- .../module/tanlu/constant/TanluConstants.java | 4 + .../tanlu/fragment/TanluCardViewFragment.java | 283 +++++++++++++++--- .../mogo/module/tanlu/model/Information.java | 20 +- .../res/drawable-xhdpi/tanlu_block_up.png | Bin 0 -> 16100 bytes .../res/drawable-xhdpi/tanlu_oil_price.png | Bin 0 -> 15555 bytes .../res/drawable-xhdpi/tanlu_road_closure.png | Bin 0 -> 12678 bytes .../drawable-xhdpi/tanlu_traffic_check.png | Bin 0 -> 17661 bytes 7 files changed, 253 insertions(+), 54 deletions(-) create mode 100644 modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png create mode 100644 modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_oil_price.png create mode 100644 modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png create mode 100644 modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java index 97cc3f9be1..c40193a41a 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java @@ -11,4 +11,8 @@ public class TanluConstants { public static final String TAG = "/tanlu/ui"; public static final String NAVI_INFO = "navi_info"; public static final String MODEL_NAME = "CARD_TYPE_ROAD_CONDITION"; + + + public static final String UPLOAD_ROAD_CONDITION = "upload_road_condition"; + } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java index c4d29fa385..5fbb7aa16b 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java @@ -6,6 +6,7 @@ import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.Html; import android.text.TextUtils; +import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.RelativeLayout; @@ -15,10 +16,21 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; +import com.amap.api.services.core.LatLonPoint; +import com.amap.api.services.core.PoiItem; +import com.amap.api.services.geocoder.GeocodeAddress; +import com.amap.api.services.geocoder.GeocodeQuery; +import com.amap.api.services.geocoder.GeocodeResult; +import com.amap.api.services.geocoder.GeocodeSearch; +import com.amap.api.services.geocoder.RegeocodeResult; +import com.amap.api.services.poisearch.PoiResult; +import com.amap.api.services.poisearch.PoiSearch; +import com.google.gson.JsonObject; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; +import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationClient; @@ -35,9 +47,11 @@ import com.mogo.map.search.geo.MogoPoiItem; import com.mogo.map.search.poisearch.IMogoPoiSearchListener; import com.mogo.map.search.poisearch.MogoPoiResult; import com.mogo.map.uicontroller.EnumMapUI; +import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.entity.MarkerExploreWay; -import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.MarkerShowEntity; +import com.mogo.module.service.receiver.MogoReceiver; +import com.mogo.module.tanlu.R; import com.mogo.module.tanlu.callback.AlongTheWayCallback; import com.mogo.module.tanlu.callback.RoadLineCallback; import com.mogo.module.tanlu.callback.VoiceSearchCallback; @@ -48,23 +62,22 @@ import com.mogo.module.tanlu.model.InformationAndLiveCarResult; import com.mogo.module.tanlu.model.PathLineResult; import com.mogo.module.tanlu.model.TanluModelData; import com.mogo.module.tanlu.model.VoiceSearchResult; -import com.mogo.module.tanlu.util.Utils; -import com.mogo.service.MogoServicePaths; -import com.mogo.service.cardmanager.IMogoCardManager; -import com.mogo.service.connection.IMogoOnMessageListener; -import com.mogo.service.connection.IMogoSocketManager; -import com.mogo.service.imageloader.IMogoImageLoaderListener; -import com.mogo.service.imageloader.IMogoImageloader; -import com.mogo.service.map.IMogoMapService; -import com.mogo.service.module.IMogoModuleLifecycle; -import com.mogo.module.tanlu.R; import com.mogo.module.tanlu.model.event.MarkerInfo; +import com.mogo.module.tanlu.util.Utils; import com.mogo.module.tanlu.video.FullMediaActivity; import com.mogo.module.tanlu.video.SimpleCoverVideoPlayer; import com.mogo.module.tanlu.view.AutoZoomInImageView; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.cardmanager.IMogoCardManager; +import com.mogo.service.connection.IMogoSocketManager; +import com.mogo.service.imageloader.IMogoImageLoaderListener; +import com.mogo.service.imageloader.IMogoImageloader; +import com.mogo.service.intent.IMogoIntentListener; +import com.mogo.service.intent.IMogoIntentManager; +import com.mogo.service.map.IMogoMapService; +import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.module.IMogoRegisterCenter; -import com.mogo.service.voice.IMogoVoiceListener; -import com.mogo.service.voice.IMogoVoiceManager; +import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; @@ -105,7 +118,10 @@ public class TanluCardViewFragment extends MvpFragment> private IMogoSocketManager mMogoSocketManager; private IMogoLocationClient mLocationClient; private IMogoCardManager iMogoCardManager; - private IMogoVoiceManager mMogoVoiceManager; + private IMogoStatusManager mMogoStatusManager; + private IMogoIntentManager mogoIntentManager; //免唤醒 + private IMogoMapUIController mMApUIController; + private GeocodeSearch mGeocodeSearch; //声音控制文字 private String voiceGetInfoMationTts; @@ -131,9 +147,11 @@ public class TanluCardViewFragment extends MvpFragment> private List markerExploreWayList = new ArrayList<>(); private int currentPosition = 0; //卡片媒体当前位置 private Bitmap mMarkerIcon; + private Bitmap multiMarkerIcon; private TanluModelData mTanluModelData; private List passedByPoints; private IMogoRegisterCenter mMogoRegisterCenter; + private String mKeywords; @Override @@ -180,18 +198,96 @@ public class TanluCardViewFragment extends MvpFragment> mogoImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation(); //地图marker mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getActivity()); + mMarkerManager = mMogoMapService.getMarkerManager(getContext()); + //切换卡片操作 iMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getActivity()); mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext()); - - mMogoRegisterCenter.registerMogoModuleLifecycle(TanluConstants.MODEL_NAME, this); - mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext()); //语音操作 - mMogoVoiceManager = (IMogoVoiceManager) ARouter.getInstance().build(MogoServicePaths.PATH_VOICE_MANAGER).navigation(getContext()); - } + //唤醒 + mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext()); + //地图操作 + mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getContext()); + mMApUIController = mMogoMapService.getMapUIController(); + mGeocodeSearch = new GeocodeSearch(getContext()); + + mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(getContext()); + + //poi查询 + mGeocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() { + @Override + public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) { + Logger.d(TAG, "onRegeocodeSearched -----> "); + } + + @Override + public void onGeocodeSearched(GeocodeResult p0, int p1) { + Logger.d(TAG, "onGeocodeSearched ------mKeywords =" + mKeywords + ">>p1 =" + p1); + if (p1 == 1000) { + if (p0.getGeocodeAddressList() != null && p0.getGeocodeAddressList().size() != 0) { + GeocodeAddress geocodeAddress = p0.getGeocodeAddressList().get(0); + LatLonPoint latLon = geocodeAddress.getLatLonPoint(); + Double longit; //经度 + Double lat; //维度 + if (mKeywords.equals("附近")) { + longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); + lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); + } else { + longit = latLon.getLongitude(); + lat = latLon.getLatitude(); + } + Log.d(TAG, "geoSearch keywords = $keywords --cityCode = $cityCode " + + "--longitude= longit --latitude = $lat"); + getVoiceControlRoadData(mKeywords, lat, longit); + } else { + String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); + PoiSearch.Query query = new PoiSearch.Query(mKeywords, "", cityCode); + PoiSearch poiSearch = new PoiSearch(getContext(), query); + poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() { + @Override + public void onPoiSearched(PoiResult p0, int p1) { + Logger.d(TAG, "setOnPoiSearchListener ------mKeywords =" + mKeywords + ">>p1 =" + p1); + if (p1 == 1000) { + if (p0.getPois() != null && p0.getPois().size() != 0) { + PoiItem poi = p0.getPois().get(0); + LatLonPoint latLon = poi.getLatLonPoint(); + + Double longit; //经度 + Double lat; //维度 + if (mKeywords.equals("附近")) { + longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); + lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); + } else { + longit = latLon.getLongitude(); + lat = latLon.getLatitude(); + } + getVoiceControlRoadData(mKeywords, lat, longit); + Logger.d(TAG, "poi search keywords = $keywords --cityCode = $cityCode " + + "--longitude= $long --latitude = $lat"); + } else { + Logger.e(TAG, "poi == null"); + } + } else { + Logger.e(TAG, "poi search result code = $p1"); + } + } + + @Override + public void onPoiItemSearched(PoiItem poiItem, int i) { + + } + }); + poiSearch.searchPOIAsyn(); + } + } else { + speakFailVoice(searchfaileVoiceStrings[2]); + } + } + }); + } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { @@ -236,9 +332,9 @@ public class TanluCardViewFragment extends MvpFragment> } @Override - public void onStartNavi() { -// initModelData(); -// getNavigationLineData(); + public void onStartNavi() { //开始导航 + initModelData(); + getNavigationLineData(); } @Override @@ -287,20 +383,85 @@ public class TanluCardViewFragment extends MvpFragment> }); } + + /** + * 处理关键词搜索 + * + * @return + */ + private void handleActionFoo(String keywords) { + Logger.d(TAG, "handleActionFoo keywords = " + keywords); + speakSearchingVoice(); + GeocodeQuery geocodeQuery; + String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); + + geocodeQuery = new GeocodeQuery(keywords, cityCode); + geocodeQuery.setLocationName(keywords); + mGeocodeSearch.getFromLocationNameAsyn(geocodeQuery); + } + /** * 注册listener监听 */ private void initListener() { - //某某路堵不堵,某某地点堵不堵,附近堵不堵,播放路况 - //上报路况,上报拥堵 - mMogoVoiceManager.registerIntentListener("", new IMogoVoiceListener() { - @Override - public void onIntentReceived(String command, Intent intent) { - - } - }); + //某某路堵不堵,某某地点堵不堵,附近堵不堵,播放路况 TODO + //唤醒 + mogoIntentManager.registerIntentListener(MogoReceiver.ADAS_ACTION, mogoIntentListener); + //免唤醒 + AIAssist.getInstance(getActivity()).registerUnWakeupCommandCallback(TanluConstants.UPLOAD_ROAD_CONDITION, mogoVoiceListener); } + /** + * 唤醒语音 + */ + private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() { + @Override + public void onIntentReceived(String intentStr, Intent intent) { + String data = intent.getStringExtra("data"); + Logger.e(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data); + + JsonObject jsonObject = new JsonObject(); + mKeywords = jsonObject.get("location").toString(); + handleActionFoo(mKeywords); + } + }; + + + /** + * 免唤醒语音监听 + */ + private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() { + @Override + public void onCmdSelected(String cmd) { + Logger.e(TAG, "免唤醒 onCmdSelected mogoVoiceListener cmd =" + cmd); + if (cmd.equals(TanluConstants.UPLOAD_ROAD_CONDITION)) { + // + Logger.d(TAG, ""); + } + } + + @Override + public void onCmdAction(String speakText) { + + } + + @Override + public void onCmdCancel(String speakText) { + + } + + @Override + public void onSpeakEnd(String speakText) { + + } + + @Override + public void onSpeakSelectTimeOut(String speakText) { + + } + }; + + private MarkerExploreWay extractFromMarker(IMogoMarker marker) { if (marker == null) { return null; @@ -333,7 +494,7 @@ public class TanluCardViewFragment extends MvpFragment> // }); - //TODO 更加广播类型判断 + //TODO 广播类型判断 // getNavigationLineData(); // getRoadLineData(); @@ -514,7 +675,7 @@ public class TanluCardViewFragment extends MvpFragment> */ @Override public void onPerform() { - Logger.d(TAG, "tanlu卡片 有效 ---->"); + Logger.d(TAG, "tanlu卡片 onPerform 有效 ---->"); mMarkerManager = mMogoMapService.getMarkerManager(getActivity()); List markers = mMarkerManager.getMarkers(TanluConstants.MODEL_NAME); if (markers != null && markers.size() > 0) { @@ -658,9 +819,10 @@ public class TanluCardViewFragment extends MvpFragment> .owner(TanluConstants.MODEL_NAME) .longitude(event.lon); - mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getContext()); - mMarkerManager = mMogoMapService.getMarkerManager(getContext()); IMogoMarker marker = mMarkerManager.addMarker(TanluConstants.MODEL_NAME, options); + + //TODO 请求分享接口 + } @Override @@ -759,11 +921,9 @@ public class TanluCardViewFragment extends MvpFragment> /** * 声音控制道路数据 */ - public void getVoiceControlRoadData(String keywords) { - Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); - Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); - String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); + public void getVoiceControlRoadData(String keywords, final double lat, final double lon) { String adCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAdCode(); + String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); Logger.d(TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode); mTanluModelData.getVoiceControlRoadData(keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() { @Override @@ -772,6 +932,41 @@ public class TanluCardViewFragment extends MvpFragment> Logger.d(TAG, "getVoiceControlRoadData discription = " + discription); if (o.getInformations() != null && o.getInformations().size() > 0) { speakSuccessVoice(o.getInformations(), discription == null ? "" : discription); + + List informationList = o.getInformations(); + + //移动 + MogoLatLng latLng = new MogoLatLng(lat, lon); + mMApUIController.moveToCenter(latLng); + + //清除探路之前的数据 + mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME); + mMogoStatusManager.setUserInteractionStatus(TanluConstants.MODEL_NAME, true, false); + + //打点 TODO + ArrayList optionList = new ArrayList<>(); + for (int i = 0; i < informationList.size(); i++) { + //根据type确定添加的图片 + if (informationList.get(i).type == 0) { //图片 + multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_search_poi_location); + } else if (informationList.get(i).type == 1) { //视频 + + } + + MogoMarkerOptions options = new MogoMarkerOptions() + .icon(multiMarkerIcon) + .latitude(informationList.get(i).lat) + .owner(TanluConstants.MODEL_NAME) + .longitude(informationList.get(i).lon); + + optionList.add(options); + } + + + mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true); + //直接使用当前数据list,作为切换的数据源 + + } else { if (!TextUtils.isEmpty(discription)) { AIAssist.getInstance(getContext()).speakTTSVoice(discription, null); @@ -780,11 +975,6 @@ public class TanluCardViewFragment extends MvpFragment> } } - //TODO 展示数据 - //清除探路之前的数据 - - //直接使用当前数据list,作为切换的数据源 - } @Override @@ -797,7 +987,8 @@ public class TanluCardViewFragment extends MvpFragment> Random random = new Random(); - private void speakSuccessVoice(List informations, String trafficStatus) { + private void speakSuccessVoice(List informations, String + trafficStatus) { switch (informations.size()) { case 0: Logger.d(TAG, "speakSuccessVoice ----> " + random.nextInt(3)); @@ -850,6 +1041,10 @@ public class TanluCardViewFragment extends MvpFragment> AIAssist.getInstance(getContext()).speakTTSVoice(string, null); } + private void speakSearchingVoice() { + AIAssist.getInstance(getContext()).speakTTSVoice(searchingVoiceStrings[random.nextInt(3)], null); + } + //上报语音搜索 private void trackVoiceSearch(int type) { diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java index 5e196a1cd8..3ddfc14bc3 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java @@ -13,16 +13,16 @@ import java.util.ArrayList; * @since 2020-01-05 */ public class Information extends BaseData implements Parcelable { - private int type; - private Double lon; - private Double lat; - private String addr; - private Long generateTime; - private String cityName; - private ArrayList items; - private int distance; - private String nickName; - private String headImgUrl; + public int type; + public Double lon; + public Double lat; + public String addr; + public Long generateTime; + public String cityName; + public ArrayList items; + public int distance; + public String nickName; + public String headImgUrl; @Override diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_block_up.png new file mode 100644 index 0000000000000000000000000000000000000000..aa80dfe42f220658ce216195524047f0ac30c764 GIT binary patch literal 16100 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 R6bb+U002ovPDHLkV1gq;`ZfRn literal 0 HcmV?d00001 diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_road_closure.png new file mode 100644 index 0000000000000000000000000000000000000000..7726fc04d4240828efa26766d93edde2aae15fbd GIT binary patch literal 12678 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 ANB{r; literal 0 HcmV?d00001 diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_traffic_check.png new file mode 100644 index 0000000000000000000000000000000000000000..18e28e06f7ce28a5581c2fcde37954baa840e6c2 GIT binary patch literal 17661 zcmV)zK#{+RP)005u}1^@s6i_d2*00001b5ch_0Itp) z=>Pyg07*naRCodHeF?Z7Rh8~O=Z+aJgoGpn33CVnDhh%O0tQ5}K~!c0U)$Q)ue;T5 z6t(+(el(xY0TEQR`>CzZeuAJ3PACFGWJX#+MW!$Yf()4m+$1--!#QvLYwf>k*RDFJ z&bdP-+{vl6_S$P+t9I2HZ^iv(WHNBpv)639W~esb)jQ--pI@)kXI5OjuU>b3m5S?g z0_y@RPGG&#=Y&wHRQl`A^;hckepjjX*Xy-@;T2j{Xl|J>EE4*nDP1FrzP0^v%QFUF z;SV8LrPoB8Kn&u57Tk@WAq)yds=T(aHU)+o~}>@dnyZ+=<&aQ)hz<%@^kRCR8FG{ORDhXbWU zy0j^LhY$yBWysEFP1Qg?UXOLso+ufTcD-Bp7uK9xxb4oJzxi6_9qVKMEpfg@H{f3{ zxn|zbaP34_sUImVb#T4rCZSgv^%vKCKPew+6H$C5AFa+J5SL5*fLyxol!m;i-dVls zvbo1SIuZ6a1)Yq2Q}AV6eE7hU>!uG3u0O?9YG+D856V)Jf2h8b9*pxArthp6JYew206HiSOf0>p^i17T2h#-G=#?vlQp=l>mKJnApYbx&SO1<_0xu2Sm>}LKN%6lx{)0N$m#fgaJJqef<+sjt@%BdztLG zAy_QHi5Tc}_8jyRZ`E9xeAJJ6At#OTh>mq~q5t-zp2`=$`>J;>A$@a!n^gmzvE-+_ z4-XB0s#34KPg<%gpJX&zSR&#Kv-x@%H}1+Z`lD&Q1LyQfXYwRb-=hx9@rym~k``;s zVN@JtWk_DL{9b2Q=NB%Wd;DYR%BGDWqD_9B{`fWX>Tc*fN$|<8<~n%Aiu)nyy+%>x z8b(4V4Ot)#STu6=j|lM=7%k`Ym#xP>l<{NTxe;mFD=OVx=WY(qp3UVr&`o6i&r9x{ z^uo|{|5~e8&XMluiQS4XvD{q%F>>pm$s-9m+JTbAMh%!_fTloWG|gR;OYKpYcOd2$ zYvIVnC;X&IlW5st zMUFJ+Al@j*sNBMDFPZR3LHsgGtS^>_&1R$B6QoRknLoN-aZh%->PNo6+k1ZA%(soT z)~Gfc%O7|86Ibt4tJS|M4jdml5jRA>#j+*KH&iMS>$Z7TKIOJFwN!9X#H7aB@;jn1 zlS$>WCxH2s9>*B}Ppj3+M=#s;gr`!C8y{n?Ho7NQ)axBrKXLUr(lnozH}fZ}Lo5y; zMrj8K1MkDYPaLpl#QKVOLR#!kxYi0D*~_0G(UXqYUL>D1FT;y3*>U`p%38_cXHMAl zgbPltR7P5Hd7^m`(ncR=EWUcq@Nn%i$>R}8)4;2C3s4eCyo0oRNz9)Ck-@k@qUBsX zF(KDLqJTP~i#V$m=O?xo%^APwxw)&edite1pYUA7vcabeWrG{0!PB0&;;r>s^-{Tc zp2Y+KVwB~(bO)gk56ktXJr9w%zU|tJ%;%ehB}=3^iQ|1uUmJy6y&hb zCYuisBi9fiGjOo6s+bc8EE;9}(RzM|N=>Tz_#P{^8R;wYZ)3$TuQc3R>Fqu32Rk1B zY#hQw&yk`HI!=A^ssn4owQHnXW+wN0D5Q?4V$n2Lz<521ByQjwd$hym^hboazvBjt z%%|N7!$l+4z>$a1G;*g@e|zy)mQ_2e$NgZJ6Ynl^b)smEQZpg;PI>IgW8@j`RgxHe zmKztaoqHHKm~V)bW&xB{Fb=al{@8xI+BUiPE7i5K3!nJI-B0>u9Lq$_H&_Fn{OAwQ zkQ4s9(juJS~&O7y@QlG}iFrf`7ja8AI?|f+# zc`vtx5pM}`2bHatnJAMlTQAc;*7Y*`W$R`3%jDyASGhoT!cWSH)8Y@m!q2?^ls1|;s2dOuZ7&ajYaE2WOX)+AJ+7&o@^AX_OPn9HS{6k#b{gtD?&G9I zmz^z1zA(3CAn963ln-e5@gXZHX+=(P4G;r`ByBwSi*$rE+M@k%4S3EU#_IhQhRrs9 ziTPt!&Od$J?+M4f0Z)GTvNLK`_dQ8A-Y1fTqcSK@`=g|OIfWC=pEDQ}7%Q{7CB-lI zfz`Tu-xYhFKCaJ>nW{LIqne+x=+a|`>y@8L=Or(-WEEvA6z>@M9VT1BXah-hzjQ~+ z@~7S3D9q;kW&Y`Hft+E07}@Buk=rcGQKsL{T*_dF&1|3>A^z&HeBJe(SIs|T++HVa zRGFgeHKm>U$mItP*G3i!lYNw`fICiL%o6Wl@p>#D^XJ#Im-x7#?dp&D+nvY$#qx1H z@p>#D^XJzmB>uIX)s6)}*yFTudB=%+G>Pl25e^)kiKb zYCd*1pyBqc)^?)w86XOa2L_=|+B{IUb$w=&{>0GqnQx))R^8fC<43JgbJV`oTr}bv za|6~E4W8#*O+M9vVrC!t0Vu;DBCt0%5tt zUQVA`Pt7I1dwZ{_`0Iz&7Oj)ok8SWI9hH`o9=Sw5Oj^HA>e!%>p&rGd8RCHXfqvj+ z8LPwri$=Tr<_CR%M&jmA`}&H!3Taz*{8E>iyl?#WEB82a)E{bXP}(qw#rPSEFPXD; zp#BF@FpE1$%$a*9Lkdn>%!_&1Jz3l^ZS#wD*@M*w*dq>zLEiv9AvI}~%n@WueS_~=7R{1Xv>wYqdt&Fy>XUT2Q#L3j;93xz0ud#6RdH3~{cjAK>u*#1MKxYjuP% zggE7?i+0o}(GOU}PdUOc<`CyP;=*8js$XW*4?1begShdpS^TxyEcq?D%SL-YII0G$ zJ-qH5aq0+!VgoS$fb(g%K9C?F$TI1`V|{j?2f5;VzVJR!d7uHjktS#^8sNidmEX9- zW2}Li48Bt0mz*Dgo(MD3D$WzDRetxLC%(T^ePHN85txiC1vUVG#SoI6Kk503LXakC zG)Q*7bJn^`l+i`;_IPwPX7`;K1<3 z(r~`{WXskf*zSf7vmFhIPjPPHXaHRoXm|=yNZq{>h+Pjl2z9~ajXA-opS}R%fk6md zZF>kj<`-*5gYWXs{u>0Yx;zYJX&(Y+Lzn_QS>LkbpX}BTUyMArGklp^6FKpr|99+2 z4d3Um0b!(?N{9nul&u?AdMvwXFI!JF6=P-cW$UrlviQo@^ZIb-hWjwfC~-X*gt=Y+ zCR%?{d>z&5aaX0kRmy;j>Lv#n%!%UUqQoS$H4v#rI} zi0jrPq>}Zbgpj5ROXPD7wacHJj*U*ioP{i*%wEYlV`Wj}YLw+K>x|4w?B)1z@>Hr% zcJxi&`^vc|xAcQZEnkAA`TjL&J~&qNfJdM=77Lp)jc`ZwYD(Ie=U1}VsqgYxCp z62b`&es^B2UcX-m-AEW;r%D(+!Zjwk?2=Ko9_!D)PG-I|vKPyjU(&3v(-s1T6d5J9 zpVRMi)5xE4`*!&SU(tx|m*qRwQEoqs7Sf}P-__T5RI0DJdaw6C8v78>TiOBTX~21M zs#^2GElG6ILmLW3@c+VqL%h*CoC6;R_%O&XMimFt2Nr=h7}NzA;tkk^OkIGmg<(+J zQ0>E{Xe)TYPtfTvY${D)h&Ng{YxKe5295lP6*!- zwiSQ9(xW|-RbDu=92YJb@uUYX*?qV+_^<>azf9_b2gE=kNK=BkDVSexJ{55ZQsek(z029BFMt@O{>A>p7GA;e%ZW15S?${M%DvBQ`g6ghJK&HT z{FFAImLxi`l7K}Iu#-nnHX2}vgKb;}8xt_Zy>j2?x-Wz{ZHGREIM;KKu@%K0uF<~t z>6H+_{G4*fkQ@F~E@u&eX^O};J@rrjckX&udt8d8KM0PZL4d_GET!P`fbCu{6Ut{e zXc+N&qKsZd2B@o%d~V(Errg2QZ0cU(TO)nyWRpYWo^WO@k@S&dR@nE zKX}dGH2n4craR!eO6?PJE$>1iEtyEU-5a2;@dLGEFBxt#6bAo78t`zJ32|j?;Xqq} zic3EbikmXzKxl~3uv9P*8-_)jKSK9k;%~kFQjM-b=^;&OgM-$qXzjEo{&V))HI>D( zr}gq`#@juAi=h5^(vZo50V?(su7WpgFgusHrsCJK ze%HT5{+a}%OWoewtyEUb+UNCiivG48dm~fAcis2RcZsqe z#|o2X#DWa&X30%|%%GlAi^+t?(uNF~1#g=_+Hqrd*bK=D5cxlE(kyqv%-6XCx7sE&z`^{=?< zyMOZ95B?xHT;EFp_YY}nl6%B#=wzU9puavkbt0|7(w6XgrqZtl^-A(p+Ea zL@9r?gDO9YMt{BUsfWY}VXN-;>znJ|Gjm_J_mnxQ@ljw~b@saVZudsf^*VR0T$+Ep z^gg$`wr-P;zfq``&r#ODGIFNq%{5?d2R!M4Z%-c_8F@~cs#`0^u7Ov?*+J1MWepNK zXn4Y|&B-o-LgMB|nS6d7&E@YypssXe?b*pJj`w^sGPm__F!Sua95+h4JJKW*ut7f2q@8cSm*3m3x0M^Y@N(JD}W5 zpQ6nNkJvecAx%Bz&S8*j2~>V7Gf+#nBu!=gqTJajzGlK>UYpd>K=jm5t$vE2|Hlg{$TgsR=-_>1$ls%wvb2Hd zEh#WX8Zg6okAh2exML9qEFM{Xsc!N&U(frWKIz%2qt_j~?LO`uGxm0Ua;e;qV{%8g zJ7xBMYX2wFgt$)}s0|gk&^*4h8sNiV?kzvf;#YQx5rP=tdHK|$%18FnRZ|kzf23B& zWjND-tfcBY;lXdr8yu`ZV#@Q!ct?&oa0ZYEYsA@KZ9WZ$wz4XrI#-njKVa)!+%a;Q-M4Rtyn;=Pf@jTV z%sIfFIP3Lp;fssh4J#jVPYf(?=q2MOjN@mn3FCFt+D7C2dxivrwnkHbxeQB>r45)| zfySK`nSp1d*W4}eC%pvM+yZli*KsTpPg)4Xh9eFD zJG=&r6Gw*Lqp422M>CpVR1Vm|-0U$~gqAS#2^@P)n&bB0dPnz0d8cBRN!zN14RKg4 zPa3c*{c-i5-J@$?aO-NrZc??&ZP&Avd(&3CxVOv8EK@pif8c#guHh}f!?u~HkF|1t z_}iBkyE|7s;qH0)DK{u@_hIO>R{ddG%PF3P@|mn>u+)Yr5AY3DfBAs(0`cb-_+*t9 zv;imN&M_K4!kf11sFQPh8X3$Kq?Mbb+>k>@RZSv*z%I zIM>JQp(&7)VrW{mZ<|YA_r5jydc>-F{~^|V!k|vTI8Zob(6(n!^Nxfx#f6^`dWZuS zJ)lN;TGV&Eyo@qUnr}qTY(8)?#|6k>J%J$&yjbUhvZRN+)DzOc_qiv2sfBIF-%Fpn z+daGfW%ZS|Q~ef$&Bw?8xs#^5vtIS)!d%mDLQOg9ivfrS`jBt}>tBi3>6Q&AWDp0$uyuo&o4=4rM+R30;qyd|O>nP1MN)#$pv&xg3o4^$+O(=<>p_lB>53-f>W0m%iz7@@AU4edV*MsskCxY zrd9i`%5T@R4cyRCw1LsCGB7;51OXuJx< zQuFxt#HVQ_Hte93$U;vRP-Z_XM}2wu`&Q%Y7q-sxnlR-Kut?R0s=s_-cRsw(OR)R} zL7fC{DT*@!1JE8KrZ}MOJcPh zu>3r`R!qnBd5i1`N? z$&(1B$VAp(KB}iZr#qm0g-&+B)NqP{$PNK2I2>+xO-&^gi}(>x_JvV7?>$ZVsT)v6 zWL;&yvG^vpP1j_%$JFfu4rTXq;weNEV~0U3A)Z?ZWc9!@^MTCj^0dx+g6?5WQnNU|M|Mc4B?$ZxnA$OA&L43;)`hV*72f261N3W=# zwnLjC-im$d2z3HqCod0OEKic|?|(*INb8d(zqNX{%THUpWeVe0U+E~IjA-gQruNS4 ztgIcJPX$Z@AO%7g8;toY{zXtgm6J|a8Gpuc_X9M&e%;$ko+pIQD}Woj=@MSN2KSw( zf9)2ne%Af)rF~S0(vjJ!#8efxn5K;(AyYFalVm-D3WB z>yO^+9FhA!B$6Y3&B>HBtFBmf+SuEkKyK4n$%Y0Pk7ZqZrS>Ncdxt)0YBsTcaygP z|8e(YT%}s|&)BVSJ`*!O3M_-eHa5&&MWCQ;d_xfbfulgOW?R$(ed8}*G z3RF}YOlSyzzCE{Ym0LYL;P#oelU^FRc@lyTmrS%~NHe;vK{@%zLr6O1VSoSWyX)(b zFAcACYsB^>dFNwid70+8Is3a)<<>y{lvT#oc-lvO;M1i`Zgtl_e~-N<3?fFDFC_>k zXewdHbfziQ70`+X>@?-4ZiT|kS^>5)s+C2ZvOCNQJ3918|4z1e5dOXF&{;HsI_M1& zPk59do_K=ti?cifY(o{zk z*b3?7<2qd4R9@vSHf6}el%qVH5D?Mpao#_gBX{VX}_43~Hf3H}iMj*#g zRuA$LLN3IUAUtuR>tC(aXLZUC3ijDqf(Ax$B?U?0eP}*o+BwU*_@cghh$Ys>P1 zf33<%gi5^>1M&}IRR_C>8cJqJOD$%Y7$Fh~pW zBAPNcKOj&oWFVgeucGvXP>nWGYJ7h?_i%Uo>^Hc@YhHBc|LNCqUsiJ~+xh{Eh z%2!9NYkK7Orh42dJM1qp^tk=xh4Hf=x?EogfEUOHPb$pg9|rIY(fJkRnsp(Bk|Ml_ z2Huhp*IzcDshzc2y$_pQD+9Ykc%PCBhJ?ed&ds1c0XV80J!DJP1SYFKR1GhbA$5h7%TeMx#e!1tgf=R?ke_X z*>DAKcFFgIJ3Hm?t#rC>xs>;GbxBipN%MBdYmM^b67prHPI&;w%PjbE6Y?=44PUF( z6avR*@^n5@ldoG2y7fat@+UNgwei*u$;T-qFI9Oly`xr<)@^Q#epS-sFahr(Xj|(*9oprb_{;^gBWLU-vsB43JIr_Y zzx=#=x_?#bXD%?~NBdxZ$s~4IdQ~0+Vsb$CPbUv8qFRBR`A-_=!~rof`ji4XEaBn# z#V4MKmX~zz(ma6A)CnSQ*$e-HGk0>Yo6aX%SggAR@`WolAoEHn4C)JD@yO;gm!?=q zOzIUY@yj##xq2iAE+>d5Se$`RviWsNkbSCDbw&3K;=ZY)qiVv_1VkQ_i%?ZYhs>I0 zS|~o#794$mAaRSp{3H#_6*q6{oFvK6jVAceyo20@58dKkluH_h{Otq_Jc^m8|Ye;B@IHj(45Tg`B%?(%w_ z<26e0Q1NYh`s5>DQ|v>iQ9YC)a}cfI@!HLwAfM10tRqv#YqnC{dl%Uw7h%SDK^2PEU+aPZ zeR2nG6>I>exp(@ZSDGROXUgOAozSof7pykT>JjQQsq`4@R|kVQ%jz#d_e)gueqq!G zj2%i%6=OLA!WP)i2{GS zbVtWJPjqiaV+T9(U_-SC>NV?B4$0JzM2{$94Iob(u$5ss3N{!KVy=qh!H+?R-oxvF zvIC|IOg<>Yxo%wPk#s^t%AebyywNDbzz8MrD(pQY?iG@Y5aEUVynnF0&(eycB>_dP zyPf5k@rUJ}@V}nA*DYUfpOu4pxe{x9^h|~PMArld)L{xOyF!4xCEu?DkXKN-3M&sF zMr;pc#6??=&d^M%oRnrTs+6XUG|Ks?bxNF&yp}*K6KN12pFzAG zH7qZG;JyljQoKn=1A@AZyx#YrT@Q4ZFS*Y>DX$gA4Wh!q0WmjgP!^OhZXlS|=R4+R za>kRtu+S0$bG^Sj(|y5rVJ(m+jsVpLw;I_haq@&Z zz!B%0ItlaqR_m-jqZR2BFZ<=wFmeg@!IXh?9nCP9LlXrzGArL97ZrzwO3Yzd$2Y{k{^asLe`J6hC`UV&oq6Jyfp9J z-mTmr+su{5o91oW&So(uUL@9w{0Hyt%O6VQ?Sx2A3}k?`geikCSA@(pGnZkO3Hc1N z)}yVzJPTWf9ne162wU199;!K9Mqt(qVrxb~+@g~T(_gSL20^umO7jkjo{T=3Sz^6{ zHtpk#enGwqarra1x%cjPxYwOt_+T}5$vlB`>Dt~?w{?3>o#~z&c+ow$dbxXC;Cg-S z(D+J^$Vu?5g}6dBBvvJNQ{^6Sk0~?UK4NQ*d;kKmn~&zD<)(H2pIEb0ZY6#zHL;hZ ztv+@iZ9X$vgH}6~+2*-=wwZrTI1Ksn<&w>h*6GP?eH7MT_!o87J31CskZc{62rCWs zTGL=z1Mm=YQ${`zgrY&1M{L$+0c$h+gs62nSbCr?YIs>u{)7Ww)ZNdX{crt9{2}@+ zIi4<9gKz15p+%R@v7Vj)b-fJkB0CbkC;a5VD)-phmGWgD`7>PdL-Wo7){A z)+8Rh6N1@Hc?Q0{yj?bL@-}V<`SmQk{|uYFywbjTZELgxU5)%-E!@MtO2xiME+T!e3KbhbNMt}mMF`A$_|IRcgvTCuo=M@^DmVm%~q93Q1d?3 zlwy=0lpSWdJkwk{G~oJ&*Sq!d9b9}f4-mi8*Cox?BQFNyH>Z2#NyIeyXxA)xVl-Vo z_9buB1w}HS+O?k++2kLVuU~%Uk)Jwz5j~6!dYg?jGUKA&;%r)Ga00Nt!~roZKk0hA z_3!EIo~fFSzU#9q#EI$VR^#JX9gvO_AH}5K@iY!*LCwY~ihUt7AV$nzcRR>?!>7!B zv)fO;6pj~YL#{F$>(mUKgH|wahGTsq<^L>S!Tj+vzj3#(z{kxn=#9l`)=9&vHAmxy zF)ghg%k|MV{fRUO^_SADyy2k#HN#$JuT&OEQydhr=cc;#if(SfJTnN*d~nH@a?oig zvrB4tj{;(7hUN1Rz?2%3;zFd11|&;CLq8*59>4IBAG;ayYxr-HUrT+Bd|Pfe`Hhx7 zdFD&)PzIk(J&I&=(9Pe#gz{MlH?%zd0OHeYm%0aEUgCbY@-g`y^fPcYa84%7i8*h% z@cAjNm%sYhZ4DGOAEo+499d1uqjq{gP0$b_ z$l;U6l+SY@U%CUDPIESP(0m|=&#-p_df*!^68HWFPpenRcXxmB+<(jCx58a_|GwYf z%L~?h{@x3orFNm5QSsgkHbVc*67L^3jQsfzUn!q$eA=1{PU?=%n9b`}C%H+`NDTEPuy77RBH)@WRZcfiw! z$#8ul~~$=(0bQxczPSKFhEpMFaS8Ur8(@<|BXa&Hhg2BFQ2pPBH|X4dVZ_b?vf1{nMvDlSt(RTVZB z6G5m9p-t$;Tn3;#Ous?kS1-B44a%E`}kI}(P8hE(_k{`5*l>gbE@6unq z(l}tq$D>v?MiBA9AQV*BJS>Pm(}ZXi@OWspjK)Tq!1~{Hr$9jZ=Yi0h&p z7#y7iw>jt?QoZ2Dig(V#keBk{q)y;vBlJm&0^OPfjZDRV^2{9$&ycyRVI|zzU@@hc zr{skK;)E%$$VCw{_;0H{|EPb`EUhd zpQ!i|2lHjMMh)d@s1-MX2vj5V5V)}zWZem&)A$XBIPIxz`L?U|n$40O@R##GvR;(k zse!YAqBJRLloaLDSXdHFya~V%_hfYhIP~H{+_1D+XdgZG{s`X41x&53RDJoIyeD@ zWC}wZYqkzauB3RfuF7RyZJKTds@(oJZ17t)`hYIr{$HpOcs!^J@JCPG>i+oR<05HI zXx89~RX?PsYl)|-8uXA4#L>w2%X`dUd-!Vk1P;CkFVSp(_|*n&0m?tEwTFspfbd6` z5T4?S*vzBKXgc)h^?4jI;i1P${iaktdk={3R$PVjbLjRe6F@wmfKZhoQ9@(FAPXE2 z4-7(`AQB88k*PJ#n=uCG7*BlpP5&sYp1 z2^#(pnz!*iAvjWA`WDjKk;m^lU-;k;9p2|v-^EA35T^|g$18rM0yZ#ckGK*+_YC7% zfAkpj$M%$dgm#I_EW~yPc+P7fa{nR2ME3(Zcl*k9mjWC84i8aD{tF{@|bv=7RYNg@IE6AjWv} zo7Tq1$UfiB1jHz-zwq64)1m)%aA+WN3C4olj9wBlWN;=1P#)T79x5(=5N49)`BfKi z4&sg0nP@;fz(=UEav%hv{2nTw$Ni40W_fa8B0Tt&s`KyvzPo3|!?rAXpb|%eDQ-KP zndCa3m>74;%k@xKD8EA9YCHeF@4JWO?Y6`aJb(a)#v>CzJg`Qnd~zTJqWm5zpU0cT zFB((*#FbcZP+LL=lt;VuFY2va19nvEKNLp!9Vu_XLp3H=3E_by-Js$UD4{UYOM|jv zgRoqGMhA5JL;{*0sSeexHepV)qrM)%I(MnwMqpV1&HXVYCNUJ?YN-{eQW~)M<6BI zf_0N$D~FS#pu_8l-Kx!IWUXA;7&0cAu}Ber_1RDQJZ(DP1++3oXy5mkPx z?h?5be^2Q(K9Xx?8a7|tAaMib^hpM^`Fui%rwwV%%>tI`%QdhVd{pko&inm$+#9#u z%N@VdVQ%(hd`>rQD&{2iP0#$8=;wp-MB^rTcjG$wFzH(VC2}lnit)3_)IVuC#D$nK z%JQj94Gz_MweZ%iumN|QJm(jWtzEK03M;=EBQB)*S0@_SXq(JtB!q$xj} zNDE~{9U*Rwlu97A8lO*air3w5<%0|N$T!Xon!S%ZcE`iq4EYut_JC%M7W<1Q8Mi(6 zdw1=UJLT6<^M7ZUz7d8o#JVu2=YSX}3u!v{g=(xXE72@|)2GKV*I#^Gfu72|{sPr9 z7>mt<<6Ca~^!XCVC&B=E_9thAq<}OkV~Cg|AKYbhU6hfAd73_R1Bv6VpsP846$%dY z&gA2g&=w#Dec>hBsEv<|1-}ir_cpt^*U#8fpDk}EyCVJ;Na{ayn6od+cXXdw{epYo z#V6eFmdPK|8D5`Qon+`^+bcGF`X>g0b4wdr@t0-ACkg zv|e7)P+%*yxkTKcsn6hk5*9qftzjU?5M$hQHahC-exi`C^;z?#ANi*(Lg)$cSZ}@o z?2;}&xaBu)PXEZT(InF`!j1G+XW$AroUbOc0G#q$MR+V#r$RS*j}0b zcKOTf$Lq2Fc)iR&<*&G}-+b6-KOD<)o_iUF3xM)hY`!R4-VhAgLte>J9I*L24UlJd z1BN)(iUxFJ&>m!fHb-)u;8_( zF*$2{;A~;yT!&HMjRw~m@yF}rGia-?-1y~w=X>a(M%e|uX#;|xyQA|9Qa=6qeY_)J zoiyP25f=y?q=mQ@%;eK`-Y)?fj>|LU$VZs^k~E|=tNMqgW#baUlVBHDT=`{ZZ^&=9 z68)+pwQv51N3H>eIC(-^h}-(+96x#ny~9Ww!O{l2{@{OmObT)Zih_Fr!tnl}Q9-o$ zVmVn?aY;0qD8RX122n%RiCP6X@RZ0`6`xY8f{vl>ORF{XL zEbUV_Acp$tq2fWzTYUVL$`#r>nu*4T(guWRXQks@0qZrcc(N}1CIdOImr(dILjQ>ahPW~Y zyp7gj3xoEFD^U+&%pq2o@AI#OZ!WGn|E{jjX;@x2=aVA#QwDCg90G77x(JO_d`uqt$_=HOXGpGbTMP-3o0GLP%ajwG< za1K=}6TlGXdYh0}Z$QRPh`j$Lek8&2pt(TmoqKYo_DXBX4$D_6al~!^a%^q5c8%T( z6>!4|-Wy?=?~*irHkVkNxdKfMx zav?FqJwvH~i6TS(5`U5h`BBi%pf{onl}_7kKxmwK#C{jZdlNU?nZviIPZ6~pwD?{9X7ohU@XP6jci>M2?)r5%3rC*CUWW?d&c!>AfLepZP>kfz4*ng@!cuYCxGIG_yj@>yw4Ub%up ztWOh;6qr7172rNCW3?BUE<#KFkNq91Ke4_s$M0&@j>_9_IpT}IDvGZa+Nc_biq&x4 zeLmR|P`AuOCOQWMf^`oCjn6nNlLlNHj!={DX{ytIFhTG}A68%=B|bq{Y96!f@Qtl@ zL)>%OE)BQDOYaY1V#E7pbD8KI5Qq#yK^ZGxh$|lsp%31k(p2Zhk6-=_#plP;dCfCb=3VGUf)vwZEskdYYWs`llY6 z`4RS%Hjk8qFf2~eEKtTGH&dLf`G(VOM)6faqE1@?z3BhZHeiTz9nE7has(bdRJ$2T zJZOf%21X-$a1{R%hr!&2ene&i5dLCj5V&e5lvx;ah%2AUc?^C94^g@dH6QJLAH3pV zPBCZ+tE6Eb53T`X zl<_CA`FKn!IBt>g%WJ?Dx8U{#U%ESpbkrzwJ!%D^;Ndra>=^kO=AQ{oziWcChBw+F zUn88n4I8qgppEp7n%<_pQvXXFDV1;2pAvKB%aJ{4mSOoW);n)G;=*5+3%ABG=1XvB zMjfly->)0CG@t$>)cwRR1EEZa%lA)o3TQY!37!7!IR-4YLg~>hS!k3Ec9}^Cy?9kR~{W>QyX%*remvL|5KFp3R30XbJME z7#ro#g=e2FopWJ&!80@Qju@R_-W?Rm^Gmt-hCMtY&JPcuoT&|PWCwbMHn0-!FnM{{ zrA})W+RSRUS(dw;V{?vQp7DO{_5~L;{B~PW^sUgW(yef|$#ck!ACoVm)XoX&nbsCH zmcix##K;$@>>e@O0y%x6lN{baYE%ha^$sX4Jg^yy9gd~rhEI%BeRFl2Zv683zB`Wk z@+ZQ~j2F(-jF-Mdk2F)|u!SG{R;^b1V8eU5gxipKhl(3AVo#eX?ckIq%;oyBE!2Jk z=RC>~%I#;^Tkto_UvLJGd;IeE_P%}Vf(y@*So~QS`7p-mgf$@iLK7Z()7j?>a*p{K zZ2`G0A{!0vm%>XR@y3_nY(r(WVb-4gQvTRntUl*J%n&Qc3T*WFE0qgwKk}kaPE_+D z+6iqyrt{Dn|LJT==9lD8ql-Nj0jtCTi^kXr6z`z%4rk%h2iPax$e$t~Lt5-_tgmc6 z)CD}|&#sp>=&0kb$j;#^AHV&muZ;UWUp9gb)POL0@Qr7mQFXQN)@t?6^op5%nI?b9 z5(lLQ=@ZYWpj=E8iXqkvsF&q3{0K*U&ldCN3)tR0X=n?0`}$KE(>3w&i^XC2Eu8n? zcGN|e#{N&l9Oc?z6rRRU4A3Dp1xQeSdSYpSW+}@2uYUESro7k2SoAWhAAni zN;N*@^^NfaicH1&qvhO_lnID`ZKb1n;vGkRW!zrpi(`oA8?*so{LqCTJ+MApzeZX_ z|5`R%25ZEveLxxS5nG5GxLtc=(-&KhwYBR_Ie%;+^+2#?mCnj>w=ekWxV*zr?u&7Z z>kHAX7_|U<_m#8vR@}p20ET#~$JVViL!2BTEyTGV!H^}yJsWmd3_!zEXg=tw@{GqJ zj5)+p-Jz2qPL7Zk;#`kl$P(gG3+HUIa-qN_$7jHqtj%e`9a*`YJW~ zmBY`^Ir`9Z$K!(qvAtI2K9#MoP7Kc>H-1z;)LOe#x?vV}0lw5?*0L$f&d@+5{35`n zF7!U?z%qSt%hFfAEP2>WdH?_ft4TybR1~R8nlo*%=$=ucrA_!p9MDEK;_R#i{^s#7 ztyHUL+;P-bNBv<^@8p;OVgZi?aQoWm8 zZF&?36m?WIow)cb?&i+k&eLx@>?_Z;8Ns--ZxRiNsBlSs=Ehskk-wAhY1ujopCu>T z8LzSNH7rU`{H!@HaBho=OCB{$G!^mev+VpSle3uhklS;M@r*bFXLdOHunRWU zB{!RZ^!6&IZ?yTrH+^iU+R*xorI_!GorwD_S3eP8lc;Q5e=Y)I#Op>)k0t!E{Z!Df zQh&uhbwGkRV9_Ym2OaW2SUQ6E*)E&okw2y6qh#znE1LWI1~DC(2f6aY<;A1 zvFtIsupmJ`m6gd(>y@X3I`bXZoWJ}Mob{-zLDKdxk7NDu2@yAB)>^C$kru>Lk>B%i z?jv`-?cZDexr}ViCU%CHHra8|o&P+k-aq)Sl2`d8M!mbt(eeUiHN*{&e-h9hf6l)2 z1Dg_>;!AeUUfe&i!mK;FS;#K2t;a8#&F$;{+?5A^c_7EUi4frPCO;0l;Un|pZ*H6? zj-D*{bsbvOR=mz_ArdZWqmhqg*j<3F4B7_7D3foOA1d|NY^zsvRjcRTdi2FD{Y0Aj zvXKrgW^N;S7nwciy1(CDGW;p|8s__CSL}lG+%%LmE@)Ih^7`_}SG>qts=Fb7iM^b{ zm=MY5o-|2-3<09V0WmW1%MXIf4*NYx$QSN<`+q!U9Gm`evuZ%5^RVmxe(sQ6mOm)P z=p{YAq~$NMY0)5)DIk?JfpG)JEgIX44a5x=dl35*+l$vVhKgG!dcG}Z;}>sz+kZ6u zLGUJ_ZM3D$vH_W`18@B3?2h4~vq$Rn56Jc~BQAJcuy_ZF`KdR7Q3pgDmat_l#3w+a zhe(OOXgTih>^)?qvO>Ov_?;=;Jr~_{)K_1iiOmge)(yyHpY^+McKvC^AO1=j>`ZxA zvQf8N+@ODah#;Huh{ryi)m% zyi4@GN_El??|S=}S7z2W^T`(1fMGojyx~Lhe2Z?tFbT(8`{ABdZum{L zYHfjhWpsh;GzUt-ySNL1H*OF%1Yps6vRz@@!T?*ig%NMCp6IVshD7vk*|ir|Yt@C* zT<33o`HruxSDjn<;T6+>aUGAo{^L_tkGy=yNX5ND8ezWl$b46?&6h5kj;6E`byPG> znyn3X`6bbn^7lL!iK<1?t&2p*y<2x|b;k{F`%?Z73dc@wf%8{v12(GV5x+ib+jRp~ zZODqN&6ls|%#zDtpYZp|cdGj2`#MwQUb0Vmu1}tY_UV14bN!OYe&OjC`fB2Glh`j$ w8kWk=Dh=1MsCQCr(amr9*78QSUy1bp561t8l{amRv;Y7A07*qoM6N<$f}Bb}v;Y7A literal 0 HcmV?d00001 From 2a297ae83f7be78e31e5426051b2d1476ca06e5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 15 Jan 2020 14:44:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86Marker=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E5=86=85=E5=AE=B9=E8=BF=87=E5=A4=9A=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/module/service/marker/MapMarkerInfoView.java | 8 +++++++- .../src/main/res/layout/view_map_marker_info.xml | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) 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 7c9fceb9f9..36dc7d3939 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 @@ -125,7 +125,13 @@ public class MapMarkerInfoView extends MapMarkerBaseView { break; } if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) { - tvMarkerContent.setText(markerShowEntity.getTextContent()); + String content; + if (markerShowEntity.getTextContent().length() > 8) { + content = markerShowEntity.getTextContent().substring(0, 7) + "..."; + } else { + content = markerShowEntity.getTextContent(); + } + tvMarkerContent.setText(content); } } catch (Exception e) { diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml index 5a0ed1a03f..8a33092f5c 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml @@ -58,7 +58,6 @@ android:layout_marginLeft="@dimen/dp_10" android:ellipsize="end" android:gravity="center" - android:maxLength="8" android:singleLine="true" android:textColor="#ffffff" android:textSize="@dimen/sp_32" @@ -66,7 +65,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/ivUserHead" app:layout_constraintTop_toTopOf="@+id/ivUserHead" - tools:text="诗一样的女子诗诗一样的女子诗诗一样的女子诗" /> + tools:text="诗一样的女子" /> Date: Wed, 15 Jan 2020 15:19:19 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=96=B0?= =?UTF-8?q?=E9=B2=9C=E4=BA=8B=E5=84=BF=E7=9A=84Marker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/MarkerNoveltyInfo.java | 15 +++-- .../common/entity/MarkerPoiTypeEnum.java | 21 +++++++ .../module/service/MarkerServiceHandler.java | 2 +- .../service/marker/MapMarkerInfoView.java | 53 ++++++++++++++---- .../module/service/marker/MapMarkerView.java | 41 +++++++++++--- .../icon_map_marker_gasoline.png | Bin 1156 -> 0 bytes ...l => bg_shape_reverse_triangle_orange.xml} | 0 .../src/main/res/layout/view_map_marker.xml | 2 +- .../main/res/layout/view_map_marker_info.xml | 2 +- 9 files changed, 110 insertions(+), 26 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java delete mode 100644 modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_gasoline.png rename modules/mogo-module-service/src/main/res/drawable/{bg_shape_reverse_orange_green.xml => bg_shape_reverse_triangle_orange.xml} (100%) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java index ccf609d422..1b013807f9 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerNoveltyInfo.java @@ -1,13 +1,19 @@ package com.mogo.module.common.entity; +/** + * 新鲜事儿Marker数据 + */ public class MarkerNoveltyInfo { - - private ContentData contentData; - private MarkerLocation location; - private String poiType; private String type; + private MarkerLocation location; private MarkerUserInfo userInfo; + /** + * @see MarkerPoiTypeEnum + */ + private String poiType; + private ContentData contentData; + public ContentData getContentData() { return contentData; @@ -50,7 +56,6 @@ public class MarkerNoveltyInfo { } public class ContentData { - private String content; private String iconUrl; private String imgUrl; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java new file mode 100644 index 0000000000..5045d0d203 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerPoiTypeEnum.java @@ -0,0 +1,21 @@ +package com.mogo.module.common.entity; + +/** + * author : donghongyu + * e-mail : 1358506549@qq.com + * date : 2020-01-1514:47 + * desc : 车机启动状态 + * version: 1.0 + */ +public interface MarkerPoiTypeEnum { + //加油站 + public String GAS_STATION = "10001"; + //交通检查 + public String TRAFFIC_CHECK = "10002"; + //封路 + public String ROAD_CLOSED = "10003"; + //商场打折 + public String SHOP_DISCOUNT = "10004"; + //4S店 + public String FOURS_SHOP = "10005"; +} \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index cbd935c58b..bb87bc0523 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -294,7 +294,7 @@ public class MarkerServiceHandler { } } -// getMapUIController().changeZoom(12); + getMapUIController().changeZoom(12); } /** 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 36dc7d3939..9d7bc1fd75 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 @@ -11,7 +11,9 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; +import com.mogo.module.common.entity.MarkerNoveltyInfo; import com.mogo.module.common.entity.MarkerOnlineCar; +import com.mogo.module.common.entity.MarkerPoiTypeEnum; import com.mogo.module.common.entity.MarkerShareMusic; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.R; @@ -68,6 +70,9 @@ public class MapMarkerInfoView extends MapMarkerBaseView { case ServiceConst.CARD_TYPE_USER_DATA: ivUserHead.setVisibility(View.VISIBLE); ivIcon.setVisibility(View.INVISIBLE); + loadImageWithMarker(markerShowEntity); + ivCar.setImageResource(R.drawable.icon_map_marker_car_blue); + ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); if (bindObj instanceof MarkerOnlineCar) { if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) { @@ -78,15 +83,13 @@ public class MapMarkerInfoView extends MapMarkerBaseView { ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple); } } - loadImageWithMarker(markerShowEntity); - ivCar.setImageResource(R.drawable.icon_map_marker_car_blue); - ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); + break; case ServiceConst.CARD_TYPE_ROAD_CONDITION: ivUserHead.setVisibility(View.INVISIBLE); ivIcon.setVisibility(View.VISIBLE); - ivUserHead.setImageResource(R.drawable.icon_map_marker_road_block_up); + ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_up); clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_blue_info); ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_blue); ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); @@ -94,16 +97,47 @@ public class MapMarkerInfoView extends MapMarkerBaseView { case ServiceConst.CARD_TYPE_NOVELTY: ivUserHead.setVisibility(View.INVISIBLE); ivIcon.setVisibility(View.VISIBLE); - - ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green); ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + + if (bindObj instanceof MarkerNoveltyInfo) { + switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { + case MarkerPoiTypeEnum.GAS_STATION: + ivIcon.setImageResource(R.drawable.icon_map_marker_refuel); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_orange_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_orange); + break; + case MarkerPoiTypeEnum.TRAFFIC_CHECK: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green); + break; + case MarkerPoiTypeEnum.ROAD_CLOSED: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_dark_blue_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_dark_blue); + break; + case MarkerPoiTypeEnum.SHOP_DISCOUNT: + + break; + case MarkerPoiTypeEnum.FOURS_SHOP: + + break; + default: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_green_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_green); + break; + } + } break; case ServiceConst.CARD_TYPE_SHARE_MUSIC: ivUserHead.setVisibility(View.INVISIBLE); ivIcon.setVisibility(View.VISIBLE); + clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info); + ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple); + ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + if (bindObj instanceof MarkerShareMusic) { // 2 为书籍听书,3 为新闻,1 为qq音乐,int switch (((MarkerShareMusic) bindObj).getShareType()) { @@ -119,9 +153,6 @@ public class MapMarkerInfoView extends MapMarkerBaseView { } } - clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_purple_info); - ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_triangle_purple); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); break; } if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) { 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 a800faabe7..65e52f9ed9 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 @@ -8,7 +8,9 @@ import android.widget.ImageView; import androidx.annotation.Nullable; +import com.mogo.module.common.entity.MarkerNoveltyInfo; import com.mogo.module.common.entity.MarkerOnlineCar; +import com.mogo.module.common.entity.MarkerPoiTypeEnum; import com.mogo.module.common.entity.MarkerShareMusic; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.R; @@ -59,6 +61,9 @@ public class MapMarkerView extends MapMarkerBaseView { case ServiceConst.CARD_TYPE_USER_DATA: ivUserHead.setVisibility(View.VISIBLE); ivIcon.setVisibility(View.INVISIBLE); + loadImageWithMarker(markerShowEntity); + ivCar.setImageResource(R.drawable.icon_map_marker_car_blue); + ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); if (bindObj instanceof MarkerOnlineCar) { if (((MarkerOnlineCar) bindObj).getUserInfo().getGenderValue() == 0) { @@ -67,9 +72,6 @@ public class MapMarkerView extends MapMarkerBaseView { ivBg.setImageResource(R.drawable.bg_map_marker_purple); } } - loadImageWithMarker(markerShowEntity); - ivCar.setImageResource(R.drawable.icon_map_marker_car_blue); - ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle()); break; case ServiceConst.CARD_TYPE_ROAD_CONDITION: ivUserHead.setVisibility(View.INVISIBLE); @@ -83,13 +85,41 @@ public class MapMarkerView extends MapMarkerBaseView { ivUserHead.setVisibility(View.INVISIBLE); ivIcon.setVisibility(View.VISIBLE); - ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); ivBg.setImageResource(R.drawable.bg_map_marker_green); ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); + + if (bindObj instanceof MarkerNoveltyInfo) { + switch (((MarkerNoveltyInfo) bindObj).getPoiType()) { + case MarkerPoiTypeEnum.GAS_STATION: + ivIcon.setImageResource(R.drawable.icon_map_marker_refuel); + ivBg.setImageResource(R.drawable.bg_map_marker_oragne); + break; + case MarkerPoiTypeEnum.TRAFFIC_CHECK: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); + ivBg.setImageResource(R.drawable.bg_map_marker_green); + break; + case MarkerPoiTypeEnum.ROAD_CLOSED: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_block_off); + ivBg.setImageResource(R.drawable.bg_map_marker_dark_blue); + break; + case MarkerPoiTypeEnum.SHOP_DISCOUNT: + + break; + case MarkerPoiTypeEnum.FOURS_SHOP: + + break; + default: + ivIcon.setImageResource(R.drawable.icon_map_marker_road_check); + ivBg.setImageResource(R.drawable.bg_map_marker_green); + break; + } + } break; case ServiceConst.CARD_TYPE_SHARE_MUSIC: ivUserHead.setVisibility(View.INVISIBLE); ivIcon.setVisibility(View.VISIBLE); + ivBg.setImageResource(R.drawable.bg_map_marker_purple); + ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); if (bindObj instanceof MarkerShareMusic) { // 2 为书籍听书,3 为新闻,1 为qq音乐,int @@ -105,9 +135,6 @@ public class MapMarkerView extends MapMarkerBaseView { break; } } - - ivBg.setImageResource(R.drawable.bg_map_marker_purple); - ivCar.setImageResource(R.drawable.icon_map_marker_location_blue); break; } diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_gasoline.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/icon_map_marker_gasoline.png deleted file mode 100644 index bac7ee2e40f8e79158245f5d12ef81c677bc4184..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmV-~1bh35P)Px(K1oDDRA>e5T0L(RF%b1`f*=t{L<$lO0tpF;hK7cYJt;VQw z*3}7+uEBPut9=K%-&vN;cCc%hYz1)H@YKTqfIG*l;pNKg6*?US=<*d~-aj`chr20s zq5HhC%1Jpl1zk|;t4(cZ=jKirbLL`{5Y$vku3RDP6w%(B#C{MX| zjmlX2Z*OZ!EG7tdfj>#eRy> zY_ueP;Nsp(h*pquT4~XPvDo8c^C04l%Uxvw`T_VGILE%KEQCg?FqV?aI!h8r4MtE@ zW6M@^K&8Nh@ctYNg5Rl&Jng-*snsfc^n?*$xkZp0fN%5(zM(*5GRZ z489(Cflwb^wzZuSRV!!q+&RzM4nH~KqYnRHHWFZ484_Wg!2RW|YW*2*%wtl3s(oWJ z${@~d>FgzAKG-KMK0(zT?lX+#NlN9AabD#aa$Y}af#=hf*n=KE9tEW91YRSw#aj`a z^y4DZmhLCm7^@_}F|xRueWVKS=IX?VZE`DI3~Ae7WfC|eC2ml-Qur|3BE(W;(md|hz zjCi5|mmgoQ$cqMFJBNQx%Yj9}(=)Hb>I>CS#a*FS49?4ERt_o@HRmZk{VT#1rsGxg=hrIE(H2wO9R2l-7d!@|?j~Gq`A2pSi7}xHAxvfIm*cA?SJicB( zfEkx9u7o(M!mPd~No{qrh=cBz?tq7^u%hrH^oDZK=r)&FJq2$lTb;6P*z(;0%SmZ7 zZ4Z^|8%N4K1R6Xk+bI3Iyf&eYWK}M@UbhCgbyeMuEjysqu5Cj7watgi#|Dg_HTJ{( zlKJ(;S;ecUUm?HZj%CFvptb~6^H}>D^q=6DhgX|iY?lCw-b3HX_8p7Qb;Z}^8;|*} zi$${IKY2R;n`i7Tjm55`b4&3@tiBu1?Z?>C!OzZp2bk7N8AusO8AusO8Ausu&%j?C WKJJxMg4oOe0000mMg diff --git a/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_orange_green.xml b/modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_orange.xml similarity index 100% rename from modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_orange_green.xml rename to modules/mogo-module-service/src/main/res/drawable/bg_shape_reverse_triangle_orange.xml diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml index d883a5d2af..0613e51004 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml @@ -47,11 +47,11 @@ android:layout_height="@dimen/dp_45" android:layout_gravity="center" android:layout_marginTop="@dimen/dp_14" - android:src="@drawable/icon_map_marker_road_block_up" android:visibility="gone" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" + tools:src="@drawable/icon_map_marker_road_block_up" tools:visibility="visible" /> \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml index 8a33092f5c..19b71da718 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml @@ -44,11 +44,11 @@ android:layout_height="@dimen/dp_45" android:layout_gravity="center" android:layout_marginLeft="@dimen/dp_14" - android:src="@drawable/icon_map_marker_road_block_up" android:visibility="invisible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" + tools:src="@drawable/icon_map_marker_road_block_up" tools:visibility="visible" />