From 37046ecf05fef740eb351e8a178e36b4ba6544e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 9 Jan 2020 19:42:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=BA=86=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- app/src/main/java/com/mogo/launcher/MogoApplication.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 8a8f75bfe2..703e5d4b89 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index f251be04c3..8ac0fd9188 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -6,7 +6,6 @@ import androidx.multidex.MultiDex; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; -import com.mogo.module.carchatting.CallChatConstant; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.onlinecar.OnLineCarConstants; From dda3ae9dd44635d61a163c516b5400c8cf966617 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 9 Jan 2020 20:25:54 +0800 Subject: [PATCH 2/2] add interface --- modules/mogo-module-tanlu/build.gradle | 10 +- .../tanlu/callback/AlongTheWayCallback.java | 13 + .../tanlu/callback/RoadLineCallback.java | 13 + .../tanlu/callback/VoiceSearchCallback.java | 13 + .../mogo/module/tanlu/constant/HttpConst.java | 13 + .../module/tanlu/constant/TanluConstants.java | 2 +- .../tanlu/fragment/TanluCardViewFragment.java | 229 ++++++++++- .../tanlu/fragment/TanluCardViewProvider.java | 1 + .../com/mogo/module/tanlu/map/AMapUtil.java | 268 ------------ .../com/mogo/module/tanlu/map/ChString.java | 26 -- .../module/tanlu/map/DrivingRouteOverlay.java | 384 ------------------ .../mogo/module/tanlu/map/RouteOverlay.java | 236 ----------- .../java/com/mogo/module/tanlu/model/End.java | 16 + .../model/InformationAndLiveCarResult.java | 38 ++ .../model/InformationAndLiveCarResult.kt | 18 - .../tanlu/model/LocationCarsWithRadius.kt | 21 + .../mogo/module/tanlu/model/NaviLatLng.java | 17 + .../module/tanlu/model/NaviLatLngInfo.java | 55 +++ .../mogo/module/tanlu/model/NaviLatLngInfo.kt | 19 + .../module/tanlu/model/SearchOnlineInfo.kt | 10 + .../com/mogo/module/tanlu/model/Start.java | 16 + .../module/tanlu/model/TanluModelData.java | 175 ++++++++ .../module/tanlu/net/TanluApiService.java | 8 +- .../module/tanlu/util/ActivityStatusUtil.java | 46 +++ .../com/mogo/module/tanlu/util/StringUitl.kt | 5 + .../com/mogo/module/tanlu/util/Utils.java | 8 + .../module/tanlu/voice/VoiceController.kt | 57 +++ 27 files changed, 773 insertions(+), 944 deletions(-) create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/AlongTheWayCallback.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/RoadLineCallback.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/VoiceSearchCallback.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/HttpConst.java delete mode 100755 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/AMapUtil.java delete mode 100755 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/ChString.java delete mode 100755 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/DrivingRouteOverlay.java delete mode 100755 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/RouteOverlay.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/End.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.java delete mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.kt create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/LocationCarsWithRadius.kt create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLng.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.kt create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/SearchOnlineInfo.kt create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Start.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/ActivityStatusUtil.java create mode 100644 modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/voice/VoiceController.kt diff --git a/modules/mogo-module-tanlu/build.gradle b/modules/mogo-module-tanlu/build.gradle index 620e6b9d36..a182478571 100644 --- a/modules/mogo-module-tanlu/build.gradle +++ b/modules/mogo-module-tanlu/build.gradle @@ -39,6 +39,12 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.androidxconstraintlayout + implementation rootProject.ext.dependencies.arouter + annotationProcessor rootProject.ext.dependencies.aroutercompiler + implementation rootProject.ext.dependencies.rxjava + implementation rootProject.ext.dependencies.rxandroid if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogomap @@ -55,10 +61,6 @@ dependencies { implementation project(':modules:mogo-module-common') implementation project(':modules:mogo-module-service') } - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation rootProject.ext.dependencies.arouter - annotationProcessor rootProject.ext.dependencies.aroutercompiler implementation 'com.shuyu:gsyVideoPlayer-armv7a:7.1.1' implementation 'com.shuyu:gsyVideoPlayer-arm64:7.1.1' diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/AlongTheWayCallback.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/AlongTheWayCallback.java new file mode 100644 index 0000000000..de8c420fc6 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/AlongTheWayCallback.java @@ -0,0 +1,13 @@ +package com.mogo.module.tanlu.callback; + +import com.mogo.module.tanlu.model.InformationAndLiveCarResult; + +/** + * @author lixiaopeng + * @description 导航沿途搜索 + * @since 2020-01-09 + */ +public interface AlongTheWayCallback { + void onSuccess(InformationAndLiveCarResult data); + void onFail(String message, int code); +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/RoadLineCallback.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/RoadLineCallback.java new file mode 100644 index 0000000000..53e81c13dc --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/RoadLineCallback.java @@ -0,0 +1,13 @@ +package com.mogo.module.tanlu.callback; + +import com.mogo.module.tanlu.model.PathLineResult; + +/** + * @author lixiaopeng + * @description 通勤族回调 + * @since 2020-01-09 + */ +public interface RoadLineCallback { + void onSuccess(PathLineResult data); + void onFail(String message, int code); +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/VoiceSearchCallback.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/VoiceSearchCallback.java new file mode 100644 index 0000000000..6b0913e7fb --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/VoiceSearchCallback.java @@ -0,0 +1,13 @@ +package com.mogo.module.tanlu.callback; + +import com.mogo.module.tanlu.model.VoiceSearchResult; + +/** + * @author lixiaopeng + * @description 声音控制搜索回调 + * @since 2020-01-09 + */ +public interface VoiceSearchCallback { + void onSuccess(VoiceSearchResult data); + void onFail(String message, int code); +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/HttpConst.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/HttpConst.java new file mode 100644 index 0000000000..130956b35d --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/HttpConst.java @@ -0,0 +1,13 @@ +package com.mogo.module.tanlu.constant; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class HttpConst { + public static final String HOST_DEV = "http://dzt-test.zhidaohulian.com"; + public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com"; + public static final String HOST_PRODUCT = "https://dzt.zhidaohulian.com"; + +} 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 80edcce397..fdfdef1e17 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 @@ -9,5 +9,5 @@ package com.mogo.module.tanlu.constant; public class TanluConstants { public static final String TAG = "/tanlu/ui"; - + public static final String NAVI_INFO = "navi_info"; } 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 0883f4181d..23bd26197b 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 @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.text.Html; +import android.text.TextUtils; import android.view.MotionEvent; import android.view.View; import android.widget.RelativeLayout; @@ -13,11 +14,24 @@ 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.route.BusRouteResult; +import com.amap.api.services.route.DrivePath; +import com.amap.api.services.route.DriveRouteResult; +import com.amap.api.services.route.RideRouteResult; +import com.amap.api.services.route.RouteSearch; +import com.amap.api.services.route.WalkRouteResult; +import com.mogo.commons.data.BaseData; +import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; +import com.mogo.commons.network.ParamsProvider; +import com.mogo.commons.network.SubscribeImpl; import com.mogo.map.MogoLatLng; +import com.mogo.map.impl.amap.overlay.DrivingRouteOverlay; import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarker; @@ -30,19 +44,40 @@ import com.mogo.map.search.poisearch.IMogoPoiSearchListener; import com.mogo.map.search.poisearch.MogoPoiResult; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.service.entity.MarkerExploreWay; +import com.mogo.module.service.entity.MarkerResponse; +import com.mogo.module.service.network.RefreshApiService; +import com.mogo.module.service.network.RefreshBody; +import com.mogo.module.service.network.RefreshModel; +import com.mogo.module.tanlu.callback.AlongTheWayCallback; +import com.mogo.module.tanlu.callback.RoadLineCallback; +import com.mogo.module.tanlu.callback.VoiceSearchCallback; +import com.mogo.module.tanlu.constant.HttpConst; +import com.mogo.module.tanlu.model.Information; +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.net.TanluApiService; +import com.mogo.module.tanlu.util.ActivityStatusUtil; +import com.mogo.module.tanlu.util.Utils; +import com.mogo.module.tanlu.voice.VoiceController; import com.mogo.service.MogoServicePaths; +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.network.IMogoNetwork; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.RequestOptions; +import com.mogo.utils.network.utils.GsonUtil; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; import org.greenrobot.eventbus.EventBus; @@ -50,8 +85,14 @@ import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +import static com.mogo.commons.network.Utils.getSn; import static com.mogo.module.tanlu.util.StringUitlKt.formatDate; import static com.mogo.module.tanlu.util.Utils.handleDistance; import static com.mogo.module.tanlu.video.VideoInitKt.initVideo; @@ -77,6 +118,14 @@ public class TanluCardViewFragment extends MvpFragment> private IMogoMarker mPoiMarker; private IMogoMarkerManager mMarkerManager; private IMogoMapService mMogoMapService; + private IMogoSocketManager mMogoSocketManager; + private IMogoLocationClient mLocationClient; + + //声音控制文字 + private String voiceGetInfoMationTts; + private String[] searchingVoiceStrings; + private String[] searchfaileVoiceStrings; + //media private GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder(); private String mVideoUrl = "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"; @@ -94,6 +143,8 @@ public class TanluCardViewFragment extends MvpFragment> private List markerExploreWayList = new ArrayList<>(); private int currentPosition = 0; //卡片媒体当前位置 private Bitmap mMarkerIcon; + private TanluModelData mTanluModelData; + private List passedByPoints; @Override @@ -145,6 +196,27 @@ public class TanluCardViewFragment extends MvpFragment> super.onActivityCreated(savedInstanceState); getViewLifecycleOwner().getLifecycle().addObserver(mPresenter); EventBus.getDefault().register(this); + mTanluModelData = new TanluModelData(getContext()); + handleRoadLineMessage(); + } + + /** + * 处理路线数据信息 TODO + */ + private void handleRoadLineMessage() { + mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation(); + mMogoSocketManager.registerOnMessageListener(401001, new IMogoOnMessageListener() { + @Override + public Class target() { + return MarkerResponse.class; + } + + @Override + public void onMsgReceived(MarkerResponse obj) { + Logger.e(TAG, "onMsgReceived obj= " + obj); + getRoadLineData(); + } + }); } /** @@ -422,7 +494,7 @@ public class TanluCardViewFragment extends MvpFragment> } /** - * 接收到对应数据打点 + * 接收到分享对应数据打点 * * @param event */ @@ -456,6 +528,159 @@ public class TanluCardViewFragment extends MvpFragment> }); } + /** + * 导航路线数据事件 + */ + public void getNavigationLineData() { + Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); + Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); + mTanluModelData.getNavigationLineData(lon, lat, new AlongTheWayCallback() { + @Override + public void onSuccess(InformationAndLiveCarResult data) { + + } + + @Override + public void onFail(String message, int code) { + + } + }); + } + + /** + * 通勤族 事件,监听消息自己请求路线数据 + */ + public void getRoadLineData() { + mTanluModelData.getRoadLineData(new RoadLineCallback() { + @Override + public void onSuccess(PathLineResult o) { + //绘制线路线 + if (o != null && o.getPointList() != null && o.getPointList().size() > 0) { + int intervalNum = Utils.getIntervalValue(o.getPointList().size()); + Logger.d(TAG, "intervalNum = $intervalNum -- pointList.size = ${pointList.size}"); + int listSize = o.getPointList().size(); + + //沿途最多15个点 + for (int i = 0; i < listSize; i += intervalNum) { + passedByPoints.add(new MogoLatLng(o.getPointList().get(i).getLat(), (o.getPointList().get(i).getLon()))); + } + + Logger.d(TAG, "passedByPoints.size() ----> " + passedByPoints.size()); + MogoLatLng startLatLng = new MogoLatLng(o.getPointList().get(0).getLat(), o.getPointList().get(0).getLon()); + MogoLatLng endLatLng = new MogoLatLng(o.getPointList().get(listSize - 1).getLat(), o.getPointList().get(listSize - 1).getLon()); + + mMarkerManager.addRouteWay(getContext(), startLatLng, endLatLng, passedByPoints); + } + } + + @Override + public void onFail(String message, int code) { + + } + }); + } + + + /** + * 声音控制道理数据 + */ + public void getVoiceControlRoadData(String keywords) { + Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); + Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); + String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); + String adCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAdCode(); + mTanluModelData.getVoiceControlRoadData(keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() { + @Override + public void onSuccess(VoiceSearchResult o) { + String discription = o.getDescription(); + Logger.d(TAG, "discription = " + discription); + if (o.getInformations() != null && o.getInformations().size() > 0) { + speakSuccessVoice(o.getInformations(), discription == null ? "" : discription); + } else { + if (!TextUtils.isEmpty(discription)) { +// VoiceController.speakVoice(discription); + } else { +// VoiceController.speakVoice("未找到其他车主分享的路况信息"); + } + } + } + + @Override + public void onFail(String message, int code) { + + } + }); + + } + + private void speakSuccessVoice(List informations, String trafficStatus) { +// switch (informations.size()) { +// case 0: +// speakFailVoice(); +// break; +// +// case 1: +// trackVoiceSearch(1); +// VoiceController.speakVoice( +// String.format( +// voiceGetInfoMationTts, +// "1" +// ) + trafficStatus +// ); +// +// case 2: +// trackVoiceSearch(1); +// VoiceController.speakVoice( +// String.format( +// voiceGetInfoMationTts, +// "2" +// ) + trafficStatus +// ); +// +// +// case 3: +// trackVoiceSearch(1); +// VoiceController.speakVoice( +// String.format( +// voiceGetInfoMationTts, +// "3" +// ) + trafficStatus +// ); +// +// default: +// trackVoiceSearch(1); +// VoiceController.speakVoice( +// String.format( +// voiceGetInfoMationTts, +// "多" +// ) + trafficStatus); +// } + } + + + private void initStrings() { + voiceGetInfoMationTts = + getContext().getResources().getString(R.string.voice_get_informations_tts); + searchingVoiceStrings = + getContext().getResources().getStringArray(R.array.searching_voice_string_array); + searchfaileVoiceStrings = + getContext().getResources().getStringArray(R.array.search_fail_voice_array); + } + + private void speakFailVoice(String string) { +// VoiceController.speakVoice(string); + trackVoiceSearch(2); + } + + //上报语音搜索 + private void trackVoiceSearch(int type) { +// trackNormalEvent( +// CarNet_Voice_Search, mutableMapOf("type" to type, "searchtext" to keywords, "inputlon" to inputLon, +// "inputlat" to inputLat, "datalon" to dataLon, "datalat" to dataLat), +// BaseApplication.getAppContext() +// ) + } + } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java index 21f29c8c4d..882fdf0f15 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java @@ -40,6 +40,7 @@ public class TanluCardViewProvider implements IMogoModuleProvider { @Override public void init( Context context ) { TanluServiceHandler.init( context ); + Logger.d(TAG, "init ----------> "); } @Override diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/AMapUtil.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/AMapUtil.java deleted file mode 100755 index 427a20d0a8..0000000000 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/AMapUtil.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.mogo.module.tanlu.map; - -import android.text.Html; -import android.text.Spanned; -import android.widget.EditText; - -import com.amap.api.maps.model.LatLng; -import com.amap.api.services.core.LatLonPoint; -import com.amap.api.services.route.BusPath; -import com.amap.api.services.route.BusStep; -import com.amap.api.services.route.RouteBusLineItem; -import com.amap.api.services.route.RouteRailwayItem; -import com.mogo.module.tanlu.R; - -import java.text.DecimalFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -public class AMapUtil { - /** - * 判断edittext是否null - */ - public static String checkEditText(EditText editText) { - if (editText != null && editText.getText() != null - && !(editText.getText().toString().trim().equals(""))) { - return editText.getText().toString().trim(); - } else { - return ""; - } - } - - public static Spanned stringToSpan(String src) { - return src == null ? null : Html.fromHtml(src.replace("\n", "
")); - } - - public static String colorFont(String src, String color) { - StringBuffer strBuf = new StringBuffer(); - - strBuf.append("").append(src) - .append(""); - return strBuf.toString(); - } - - public static String makeHtmlNewLine() { - return "
"; - } - - public static String makeHtmlSpace(int number) { - final String space = " "; - StringBuilder result = new StringBuilder(); - for (int i = 0; i < number; i++) { - result.append(space); - } - return result.toString(); - } - - public static String getFriendlyLength(int lenMeter) { - if (lenMeter > 10000) // 10 km - { - int dis = lenMeter / 1000; - return dis + ChString.Kilometer; - } - - if (lenMeter > 1000) { - float dis = (float) lenMeter / 1000; - DecimalFormat fnum = new DecimalFormat("##0.0"); - String dstr = fnum.format(dis); - return dstr + ChString.Kilometer; - } - - if (lenMeter > 100) { - int dis = lenMeter / 50 * 50; - return dis + ChString.Meter; - } - - int dis = lenMeter / 10 * 10; - if (dis == 0) { - dis = 10; - } - - return dis + ChString.Meter; - } - - public static boolean IsEmptyOrNullString(String s) { - return (s == null) || (s.trim().length() == 0); - } - - /** - * 把LatLng对象转化为LatLonPoint对象 - */ - public static LatLonPoint convertToLatLonPoint(LatLng latlon) { - return new LatLonPoint(latlon.latitude, latlon.longitude); - } - - /** - * 把LatLonPoint对象转化为LatLon对象 - */ - public static LatLng convertToLatLng(LatLonPoint latLonPoint) { - return new LatLng(latLonPoint.getLatitude(), latLonPoint.getLongitude()); - } - - /** - * 把集合体的LatLonPoint转化为集合体的LatLng - */ - public static ArrayList convertArrList(List shapes) { - ArrayList lineShapes = new ArrayList(); - for (LatLonPoint point : shapes) { - LatLng latLngTemp = AMapUtil.convertToLatLng(point); - lineShapes.add(latLngTemp); - } - return lineShapes; - } - - /** - * long类型时间格式化 - */ - public static String convertToTime(long time) { - SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date(time); - return df.format(date); - } - - public static final String HtmlBlack = "#000000"; - public static final String HtmlGray = "#808080"; - - public static String getFriendlyTime(int second) { - if (second > 3600) { - int hour = second / 3600; - int miniate = (second % 3600) / 60; - return hour + "小时" + miniate + "分钟"; - } - if (second >= 60) { - int miniate = second / 60; - return miniate + "分钟"; - } - return second + "秒"; - } - - //路径规划方向指示和图片对应 - public static int getDriveActionID(String actionName) { - if (actionName == null || actionName.equals("")) { - return R.drawable.dir3; - } - if ("左转".equals(actionName)) { - return R.drawable.dir2; - } - if ("右转".equals(actionName)) { - return R.drawable.dir1; - } - if ("向左前方行驶".equals(actionName) || "靠左".equals(actionName)) { - return R.drawable.dir6; - } - if ("向右前方行驶".equals(actionName) || "靠右".equals(actionName)) { - return R.drawable.dir5; - } - if ("向左后方行驶".equals(actionName) || "左转调头".equals(actionName)) { - return R.drawable.dir7; - } - if ("向右后方行驶".equals(actionName)) { - return R.drawable.dir8; - } - if ("直行".equals(actionName)) { - return R.drawable.dir3; - } - if ("减速行驶".equals(actionName)) { - return R.drawable.dir4; - } - return R.drawable.dir3; - } - - public static int getWalkActionID(String actionName) { - if (actionName == null || actionName.equals("")) { - return R.drawable.dir13; - } - if ("左转".equals(actionName)) { - return R.drawable.dir2; - } - if ("右转".equals(actionName)) { - return R.drawable.dir1; - } - if ("向左前方".equals(actionName) || "靠左".equals(actionName) || actionName.contains("向左前方")) { - return R.drawable.dir6; - } - if ("向右前方".equals(actionName) || "靠右".equals(actionName) || actionName.contains("向右前方")) { - return R.drawable.dir5; - } - if ("向左后方".equals(actionName) || actionName.contains("向左后方")) { - return R.drawable.dir7; - } - if ("向右后方".equals(actionName) || actionName.contains("向右后方")) { - return R.drawable.dir8; - } - if ("直行".equals(actionName)) { - return R.drawable.dir3; - } - if ("通过人行横道".equals(actionName)) { - return R.drawable.dir9; - } - if ("通过过街天桥".equals(actionName)) { - return R.drawable.dir11; - } - if ("通过地下通道".equals(actionName)) { - return R.drawable.dir10; - } - - return R.drawable.dir13; - } - - public static String getBusPathTitle(BusPath busPath) { - if (busPath == null) { - return String.valueOf(""); - } - List busSetps = busPath.getSteps(); - if (busSetps == null) { - return String.valueOf(""); - } - StringBuffer sb = new StringBuffer(); - for (BusStep busStep : busSetps) { - StringBuffer title = new StringBuffer(); - if (busStep.getBusLines().size() > 0) { - for (RouteBusLineItem busline : busStep.getBusLines()) { - if (busline == null) { - continue; - } - - String buslineName = getSimpleBusLineName(busline.getBusLineName()); - title.append(buslineName); - title.append(" / "); - } -// RouteBusLineItem busline = busStep.getBusLines().get(0); - - sb.append(title.substring(0, title.length() - 3)); - sb.append(" > "); - } - if (busStep.getRailway() != null) { - RouteRailwayItem railway = busStep.getRailway(); - sb.append(railway.getTrip() + "(" + railway.getDeparturestop().getName() - + " - " + railway.getArrivalstop().getName() + ")"); - sb.append(" > "); - } - } - return sb.substring(0, sb.length() - 3); - } - - public static String getBusPathDes(BusPath busPath) { - if (busPath == null) { - return String.valueOf(""); - } - long second = busPath.getDuration(); - String time = getFriendlyTime((int) second); - float subDistance = busPath.getDistance(); - String subDis = getFriendlyLength((int) subDistance); - float walkDistance = busPath.getWalkDistance(); - String walkDis = getFriendlyLength((int) walkDistance); - return String.valueOf(time + " | " + subDis + " | 步行" + walkDis); - } - - public static String getSimpleBusLineName(String busLineName) { - if (busLineName == null) { - return String.valueOf(""); - } - return busLineName.replaceAll("\\(.*?\\)", ""); - } - - -} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/ChString.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/ChString.java deleted file mode 100755 index 1f32432da7..0000000000 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/ChString.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.module.tanlu.map; - -public class ChString { - public static final String Kilometer = "\u516c\u91cc";// "公里"; - public static final String Meter = "\u7c73";// "米"; - public static final String ByFoot = "\u6b65\u884c";// "步行"; - public static final String To = "\u53bb\u5f80";// "去往"; - public static final String Station = "\u8f66\u7ad9";// "车站"; - public static final String TargetPlace = "\u76ee\u7684\u5730";// "目的地"; - public static final String StartPlace = "\u51fa\u53d1\u5730";// "出发地"; - public static final String About = "\u5927\u7ea6";// "大约"; - public static final String Direction = "\u65b9\u5411";// "方向"; - - public static final String GetOn = "\u4e0a\u8f66";// "上车"; - public static final String GetOff = "\u4e0b\u8f66";// "下车"; - public static final String Zhan = "\u7ad9";// "站"; - - public static final String cross = "\u4ea4\u53c9\u8def\u53e3"; // 交叉路口 - public static final String type = "\u7c7b\u522b"; // 类别 - public static final String address = "\u5730\u5740"; // 地址 - public static final String PrevStep = "\u4e0a\u4e00\u6b65"; - public static final String NextStep = "\u4e0b\u4e00\u6b65"; - public static final String Gong = "\u516c\u4ea4"; - public static final String ByBus = "\u4e58\u8f66"; - public static final String Arrive = "\u5230\u8FBE";// 到达 -} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/DrivingRouteOverlay.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/DrivingRouteOverlay.java deleted file mode 100755 index 8e95c5fde3..0000000000 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/DrivingRouteOverlay.java +++ /dev/null @@ -1,384 +0,0 @@ -package com.mogo.module.tanlu.map; - -import android.content.Context; -import android.graphics.Color; - -import com.amap.api.maps.AMap; -import com.amap.api.maps.model.BitmapDescriptor; -import com.amap.api.maps.model.BitmapDescriptorFactory; -import com.amap.api.maps.model.LatLng; -import com.amap.api.maps.model.LatLngBounds; -import com.amap.api.maps.model.Marker; -import com.amap.api.maps.model.MarkerOptions; -import com.amap.api.maps.model.PolylineOptions; -import com.amap.api.services.core.LatLonPoint; -import com.amap.api.services.route.DrivePath; -import com.amap.api.services.route.DriveStep; -import com.amap.api.services.route.TMC; -import com.mogo.module.tanlu.R; - -import java.util.ArrayList; -import java.util.List; - - -/** - * 导航路线图层类 - */ -public class DrivingRouteOverlay extends RouteOverlay { - private DrivePath drivePath; - private List throughPointList; - private List throughPointMarkerList = new ArrayList(); - private boolean throughPointMarkerVisible = true; - private List tmcs; - private PolylineOptions mPolylineOptions; - private PolylineOptions mPolylineOptionscolor; - private Context mContext; - private boolean isColorfulline = true; - private float mWidth = 4; - private List mLatLngsOfPath; - - public void setIsColorfulline(boolean iscolorfulline) { - this.isColorfulline = iscolorfulline; - } - - /** - * 根据给定的参数,构造一个导航路线图层类对象。 - * - * @param amap 地图对象。 - * @param path 导航路线规划方案。 - * @param context 当前的activity对象。 - */ - public DrivingRouteOverlay(Context context, AMap amap, DrivePath path, - LatLonPoint start, LatLonPoint end, List throughPointList) { - super(context); - mContext = context; - mAMap = amap; - this.drivePath = path; - startPoint = AMapUtil.convertToLatLng(start); - endPoint = AMapUtil.convertToLatLng(end); - this.throughPointList = throughPointList; - - initBitmapDescriptor(); - } - - public float getRouteWidth() { - return mWidth; - } - - /** - * 设置路线宽度 - * - * @param mWidth 路线宽度,取值范围:大于0 - */ - public void setRouteWidth(float mWidth) { - this.mWidth = mWidth; - } - - /** - * 添加驾车路线添加到地图上显示。 - */ - public void addToMap() { - initPolylineOptions(); - try { - if (mAMap == null) { - return; - } - - if (mWidth == 0 || drivePath == null) { - return; - } - mLatLngsOfPath = new ArrayList(); - tmcs = new ArrayList(); - List drivePaths = drivePath.getSteps(); - mPolylineOptions.add(startPoint); - for (int i = 0; i < drivePaths.size(); i++) { - DriveStep step = drivePaths.get(i); - List latlonPoints = step.getPolyline(); - List tmclist = step.getTMCs(); - tmcs.addAll(tmclist); - addDrivingStationMarkers(step, convertToLatLng(latlonPoints.get(0))); - for (LatLonPoint latlonpoint : latlonPoints) { - mPolylineOptions.add(convertToLatLng(latlonpoint)); - mLatLngsOfPath.add(convertToLatLng(latlonpoint)); - } - } - mPolylineOptions.add(endPoint); - if (startMarker != null) { - startMarker.remove(); - startMarker = null; - } - - if (endMarker != null) { - endMarker.remove(); - endMarker = null; - } -// addStartAndEndMarker(); -// addThroughPointMarker(); - if (isColorfulline && tmcs.size() > 0) { - colorWayUpdate(tmcs); - showcolorPolyline(); - } else { - showPolyline(); - } - - } catch (Throwable e) { - e.printStackTrace(); - } - } - - /** - * 初始化线段属性 - */ - private void initPolylineOptions() { - mPolylineOptions = null; - mPolylineOptions = new PolylineOptions(); - mPolylineOptions.color(getDriveColor()).width(getRouteWidth()); - } - - private void showPolyline() { - addPolyLine(mPolylineOptions); - } - - private void showcolorPolyline() { - addPolyLine(mPolylineOptionscolor); - } - - /** - * 根据不同的路段拥堵情况展示不同的颜色 - * - * @param tmcSection - */ - private void colorWayUpdate(List tmcSection) { - if (mAMap == null) { - return; - } - if (tmcSection == null || tmcSection.size() <= 0) { - return; - } - TMC segmentTrafficStatus; - mPolylineOptionscolor = null; - mPolylineOptionscolor = new PolylineOptions(); - mPolylineOptionscolor.width(getRouteWidth()); - List colorList = new ArrayList(); - List bitmapDescriptors = new ArrayList(); - List points = new ArrayList<>(); - List texIndexList = new ArrayList(); -// mPolylineOptionscolor.add(startPoint); -// mPolylineOptionscolor.add(AMapUtil.convertToLatLng(tmcSection.get(0).getPolyline().get(0))); - - points.add(startPoint); - points.add(AMapUtil.convertToLatLng(tmcSection.get(0).getPolyline().get(0))); - colorList.add(getDriveColor()); - bitmapDescriptors.add(defaultRoute); - - BitmapDescriptor bitmapDescriptor = null; - int textIndex = 0; - texIndexList.add(textIndex); - texIndexList.add(++textIndex); - for (int i = 0; i < tmcSection.size(); i++) { - segmentTrafficStatus = tmcSection.get(i); - int color = getcolor(segmentTrafficStatus.getStatus()); - bitmapDescriptor = getTrafficBitmapDescriptor(segmentTrafficStatus.getStatus()); - List mployline = segmentTrafficStatus.getPolyline(); - for (int j = 0; j < mployline.size(); j++) { -// mPolylineOptionscolor.add(AMapUtil.convertToLatLng(mployline.get(j))); - points.add(AMapUtil.convertToLatLng(mployline.get(j))); - colorList.add(color); - - texIndexList.add(++textIndex); - bitmapDescriptors.add(bitmapDescriptor); - } - } - - points.add(endPoint); - colorList.add(getDriveColor()); - bitmapDescriptors.add(defaultRoute); - texIndexList.add(++textIndex); - mPolylineOptionscolor.addAll(points); - mPolylineOptionscolor.colorValues(colorList); - -// mPolylineOptionscolor.setCustomTextureIndex(texIndexList); -// mPolylineOptionscolor.setCustomTextureList(bitmapDescriptors); - } - - private BitmapDescriptor defaultRoute = null; - private BitmapDescriptor unknownTraffic = null; - private BitmapDescriptor smoothTraffic = null; - private BitmapDescriptor slowTraffic = null; - private BitmapDescriptor jamTraffic = null; - private BitmapDescriptor veryJamTraffic = null; - - private void initBitmapDescriptor() { - defaultRoute = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_6_arrow); - smoothTraffic = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_4_arrow); - unknownTraffic = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_0_arrow); - slowTraffic = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_3_arrow); - jamTraffic = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_2_arrow); - veryJamTraffic = BitmapDescriptorFactory.fromResource(R.drawable.amap_route_color_texture_9_arrow); - } - - private BitmapDescriptor getTrafficBitmapDescriptor(String status) { - if (status.equals("畅通")) { - return smoothTraffic; - } else if (status.equals("缓行")) { - return slowTraffic; - } else if (status.equals("拥堵")) { - return jamTraffic; - } else if (status.equals("严重拥堵")) { - return veryJamTraffic; - } else { - return defaultRoute; - } - } - - - private int getcolor(String status) { - if (status.equals("畅通")) { - return Color.GREEN; - } else if (status.equals("缓行")) { - return Color.YELLOW; - } else if (status.equals("拥堵")) { - return Color.RED; - } else if (status.equals("严重拥堵")) { - return Color.parseColor("#990033"); - } else { - return Color.GREEN; - } - } - - public LatLng convertToLatLng(LatLonPoint point) { - return new LatLng(point.getLatitude(), point.getLongitude()); - } - - /** - * @param driveStep - * @param latLng - */ - private void addDrivingStationMarkers(DriveStep driveStep, LatLng latLng) { - addStationMarker(new MarkerOptions() - .position(latLng) - .title("\u65B9\u5411:" + driveStep.getAction() - + "\n\u9053\u8DEF:" + driveStep.getRoad()) - .snippet(driveStep.getInstruction()).visible(nodeIconVisible) - .anchor(0.5f, 0.5f).icon(getDriveBitmapDescriptor())); - } - - @Override - protected LatLngBounds getLatLngBounds() { - LatLngBounds.Builder b = LatLngBounds.builder(); - b.include(new LatLng(startPoint.latitude, startPoint.longitude)); - b.include(new LatLng(endPoint.latitude, endPoint.longitude)); - if (this.throughPointList != null && this.throughPointList.size() > 0) { - for (int i = 0; i < this.throughPointList.size(); i++) { - b.include(new LatLng( - this.throughPointList.get(i).getLatitude(), - this.throughPointList.get(i).getLongitude())); - } - } - return b.build(); - } - - public void setThroughPointIconVisibility(boolean visible) { - try { - throughPointMarkerVisible = visible; - if (this.throughPointMarkerList != null - && this.throughPointMarkerList.size() > 0) { - for (int i = 0; i < this.throughPointMarkerList.size(); i++) { - this.throughPointMarkerList.get(i).setVisible(visible); - } - } - } catch (Throwable e) { - e.printStackTrace(); - } - } - - private void addThroughPointMarker() { - if (this.throughPointList != null && this.throughPointList.size() > 0) { - LatLonPoint latLonPoint = null; - for (int i = 0; i < this.throughPointList.size(); i++) { - latLonPoint = this.throughPointList.get(i); - if (latLonPoint != null) { - throughPointMarkerList.add(mAMap - .addMarker((new MarkerOptions()) - .position( - new LatLng(latLonPoint - .getLatitude(), latLonPoint - .getLongitude())) - .visible(throughPointMarkerVisible) - .icon(getThroughPointBitDes()) - .title("\u9014\u7ECF\u70B9"))); - } - } - } - } - - private BitmapDescriptor getThroughPointBitDes() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_through); - - } - - /** - * 获取两点间距离 - * - * @param start - * @param end - * @return - */ - public static int calculateDistance(LatLng start, LatLng end) { - double x1 = start.longitude; - double y1 = start.latitude; - double x2 = end.longitude; - double y2 = end.latitude; - return calculateDistance(x1, y1, x2, y2); - } - - public static int calculateDistance(double x1, double y1, double x2, double y2) { - final double NF_pi = 0.01745329251994329; // 弧度 PI/180 - x1 *= NF_pi; - y1 *= NF_pi; - x2 *= NF_pi; - y2 *= NF_pi; - double sinx1 = Math.sin(x1); - double siny1 = Math.sin(y1); - double cosx1 = Math.cos(x1); - double cosy1 = Math.cos(y1); - double sinx2 = Math.sin(x2); - double siny2 = Math.sin(y2); - double cosx2 = Math.cos(x2); - double cosy2 = Math.cos(y2); - double[] v1 = new double[3]; - v1[0] = cosy1 * cosx1 - cosy2 * cosx2; - v1[1] = cosy1 * sinx1 - cosy2 * sinx2; - v1[2] = siny1 - siny2; - double dist = Math.sqrt(v1[0] * v1[0] + v1[1] * v1[1] + v1[2] * v1[2]); - - return (int) (Math.asin(dist / 2) * 12742001.5798544); - } - - - //获取指定两点之间固定距离点 - public static LatLng getPointForDis(LatLng sPt, LatLng ePt, double dis) { - double lSegLength = calculateDistance(sPt, ePt); - double preResult = dis / lSegLength; - return new LatLng((ePt.latitude - sPt.latitude) * preResult + sPt.latitude, (ePt.longitude - sPt.longitude) * preResult + sPt.longitude); - } - - /** - * 去掉DriveLineOverlay上的线段和标记。 - */ - @Override - public void removeFromMap() { - try { - super.removeFromMap(); - if (this.throughPointMarkerList != null - && this.throughPointMarkerList.size() > 0) { - for (int i = 0; i < this.throughPointMarkerList.size(); i++) { - this.throughPointMarkerList.get(i).remove(); - } - this.throughPointMarkerList.clear(); - } - } catch (Throwable e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/RouteOverlay.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/RouteOverlay.java deleted file mode 100755 index 47a63582b5..0000000000 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/map/RouteOverlay.java +++ /dev/null @@ -1,236 +0,0 @@ -package com.mogo.module.tanlu.map; - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.Color; - -import com.amap.api.maps.AMap; -import com.amap.api.maps.CameraUpdateFactory; -import com.amap.api.maps.model.BitmapDescriptor; -import com.amap.api.maps.model.BitmapDescriptorFactory; -import com.amap.api.maps.model.LatLng; -import com.amap.api.maps.model.LatLngBounds; -import com.amap.api.maps.model.Marker; -import com.amap.api.maps.model.MarkerOptions; -import com.amap.api.maps.model.Polyline; -import com.amap.api.maps.model.PolylineOptions; -import com.mogo.module.tanlu.R; - -import java.util.ArrayList; -import java.util.List; - - -public class RouteOverlay { - protected List stationMarkers = new ArrayList(); - protected List allPolyLines = new ArrayList(); - protected Marker startMarker; - protected Marker endMarker; - protected LatLng startPoint; - protected LatLng endPoint; - protected AMap mAMap; - private Context mContext; - private Bitmap startBit, endBit, busBit, walkBit, driveBit; - protected boolean nodeIconVisible = true; - - public RouteOverlay(Context context) { - mContext = context; - } - - /** - * 去掉BusRouteOverlay上所有的Marker。 - * - * @since V2.1.0 - */ - public void removeFromMap() { - if (startMarker != null) { - startMarker.remove(); - - } - if (endMarker != null) { - endMarker.remove(); - } - for (Marker marker : stationMarkers) { - marker.remove(); - } - for (Polyline line : allPolyLines) { - line.remove(); - } - destroyBit(); - } - - private void destroyBit() { - if (startBit != null) { - startBit.recycle(); - startBit = null; - } - if (endBit != null) { - endBit.recycle(); - endBit = null; - } - if (busBit != null) { - busBit.recycle(); - busBit = null; - } - if (walkBit != null) { - walkBit.recycle(); - walkBit = null; - } - if (driveBit != null) { - driveBit.recycle(); - driveBit = null; - } - } - - /** - * 给起点Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。 - * - * @return 更换的Marker图片。 - * @since V2.1.0 - */ - protected BitmapDescriptor getStartBitmapDescriptor() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_start); - } - - /** - * 给终点Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。 - * - * @return 更换的Marker图片。 - * @since V2.1.0 - */ - protected BitmapDescriptor getEndBitmapDescriptor() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_end); - } - - /** - * 给公交Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。 - * - * @return 更换的Marker图片。 - * @since V2.1.0 - */ - protected BitmapDescriptor getBusBitmapDescriptor() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_bus); - } - - /** - * 给步行Marker设置图标,并返回更换图标的图片。如不用默认图片,需要重写此方法。 - * - * @return 更换的Marker图片。 - * @since V2.1.0 - */ - protected BitmapDescriptor getWalkBitmapDescriptor() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_man); - } - - protected BitmapDescriptor getDriveBitmapDescriptor() { - return BitmapDescriptorFactory.fromResource(R.drawable.amap_car); - } - - protected void addStartAndEndMarker() { - startMarker = mAMap.addMarker((new MarkerOptions()) - .position(startPoint).icon(getStartBitmapDescriptor()) - .title("\u8D77\u70B9")); - // startMarker.showInfoWindow(); - - endMarker = mAMap.addMarker((new MarkerOptions()).position(endPoint) - .icon(getEndBitmapDescriptor()).title("\u7EC8\u70B9")); - // mAMap.moveCamera(CameraUpdateFactory.newLatLngZoom(startPoint, - // getShowRouteZoom())); - } - - /** - * 移动镜头到当前的视角。 - * - * @since V2.1.0 - */ - public void zoomToSpan() { - if (startPoint != null) { - if (mAMap == null) - return; - try { - LatLngBounds bounds = getLatLngBounds(); - mAMap.animateCamera(CameraUpdateFactory - .newLatLngBounds(bounds, 50)); - } catch (Throwable e) { - e.printStackTrace(); - } - } - } - - protected LatLngBounds getLatLngBounds() { - LatLngBounds.Builder b = LatLngBounds.builder(); - b.include(new LatLng(startPoint.latitude, startPoint.longitude)); - b.include(new LatLng(endPoint.latitude, endPoint.longitude)); - for (Polyline polyline : allPolyLines) { - for (LatLng point : polyline.getPoints()) { - b.include(point); - } - } - return b.build(); - } - - /** - * 路段节点图标控制显示接口。 - * - * @param visible true为显示节点图标,false为不显示。 - * @since V2.3.1 - */ - public void setNodeIconVisibility(boolean visible) { - try { - nodeIconVisible = visible; - if (this.stationMarkers != null && this.stationMarkers.size() > 0) { - for (int i = 0; i < this.stationMarkers.size(); i++) { - this.stationMarkers.get(i).setVisible(visible); - } - } - } catch (Throwable e) { - e.printStackTrace(); - } - } - - protected void addStationMarker(MarkerOptions options) { - if (options == null) { - return; - } - Marker marker = mAMap.addMarker(options); - if (marker != null) { - stationMarkers.add(marker); - } - - } - - protected void addPolyLine(PolylineOptions options) { - if (options == null) { - return; - } - Polyline polyline = mAMap.addPolyline(options); - if (polyline != null) { - allPolyLines.add(polyline); - } - } - - protected float getRouteWidth() { - return 18f; - } - - protected int getWalkColor() { - return Color.parseColor("#6db74d"); - } - - /** - * 自定义路线颜色。 - * return 自定义路线颜色。 - * - * @since V2.2.1 - */ - protected int getBusColor() { - return Color.parseColor("#537edc"); - } - - protected int getDriveColor() { - return Color.parseColor("#537edc"); - } - - // protected int getShowRouteZoom() { - // return 15; - // } -} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/End.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/End.java new file mode 100644 index 0000000000..4e937f983a --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/End.java @@ -0,0 +1,16 @@ +package com.mogo.module.tanlu.model; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class End { + public Double lat; + public Double lon; + + public End(Double lat, Double lon) { + this.lat = lat; + this.lon = lon; + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.java new file mode 100644 index 0000000000..d40d7ec8e9 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.java @@ -0,0 +1,38 @@ +package com.mogo.module.tanlu.model; + +import com.mogo.commons.data.BaseData; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class InformationAndLiveCarResult extends BaseData { + private Result onTheWayData; + private Result infoMationResult; + private Sns snResult; + + public Result getOnTheWayData() { + return onTheWayData; + } + + public void setOnTheWayData(Result onTheWayData) { + this.onTheWayData = onTheWayData; + } + + public Result getInfoMationResult() { + return infoMationResult; + } + + public void setInfoMationResult(Result infoMationResult) { + this.infoMationResult = infoMationResult; + } + + public Sns getSnResult() { + return snResult; + } + + public void setSnResult(Sns snResult) { + this.snResult = snResult; + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.kt deleted file mode 100644 index 24bc41b302..0000000000 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/InformationAndLiveCarResult.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.module.tanlu.model - -/** - * @author congtaowang - * @since 2019-11-20 - * - * 根据范围请求情报+在线车机结果 - */ -data class InformationAndLiveCarResult( - var onTheWayData: Result, - var infoMationResult: Result, - var snResult: Sns -) { - fun getInformation(): Result = if (onTheWayData == null - || onTheWayData.informations == null - || onTheWayData.informations.isEmpty() - ) infoMationResult else onTheWayData -} \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/LocationCarsWithRadius.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/LocationCarsWithRadius.kt new file mode 100644 index 0000000000..f853fe51bb --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/LocationCarsWithRadius.kt @@ -0,0 +1,21 @@ +package com.mogo.module.tanlu.model + +class LocationCarsWithRadius { + var coordinates: List + var radius: Int + var type: String + var keyWord: String? = null + + constructor(coordinates: List, radius: Int, type: String, keyWord: String) { + this.coordinates = coordinates + this.radius = radius + this.type = type + this.keyWord = keyWord + } + + constructor(coordinates: List, radius: Int, type: String) { + this.coordinates = coordinates + this.radius = radius + this.type = type + } +} \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLng.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLng.java new file mode 100644 index 0000000000..a24ea22360 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLng.java @@ -0,0 +1,17 @@ +package com.mogo.module.tanlu.model; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class NaviLatLng { + public Start start; + public End end; + + NaviLatLng(Start start, End end) { + this.start = start; + this.end = end; + } + +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.java new file mode 100644 index 0000000000..fc090e7876 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.java @@ -0,0 +1,55 @@ +package com.mogo.module.tanlu.model; + +import java.io.Serializable; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class NaviLatLngInfo implements Serializable { + public String FromPoiLatitude = ""; + public String FromPoiLongitude = ""; + public String ToPoiLatitude = ""; + public String ToPoiLongitude= ""; + +// public Start fromStart() { +// return Start(Double.parseDouble(FromPoiLatitude), Double.parseDouble(FromPoiLongitude)); +// } +// +// public End toEnd() { +// return End(ToPoiLatitude.toDouble(), ToPoiLongitude.toDouble()); +// } + + public String getFromPoiLatitude() { + return FromPoiLatitude; + } + + public void setFromPoiLatitude(String fromPoiLatitude) { + FromPoiLatitude = fromPoiLatitude; + } + + public String getFromPoiLongitude() { + return FromPoiLongitude; + } + + public void setFromPoiLongitude(String fromPoiLongitude) { + FromPoiLongitude = fromPoiLongitude; + } + + public String getToPoiLatitude() { + return ToPoiLatitude; + } + + public void setToPoiLatitude(String toPoiLatitude) { + ToPoiLatitude = toPoiLatitude; + } + + public String getToPoiLongitude() { + return ToPoiLongitude; + } + + public void setToPoiLongitude(String toPoiLongitude) { + ToPoiLongitude = toPoiLongitude; + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.kt new file mode 100644 index 0000000000..b4d7c77b88 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/NaviLatLngInfo.kt @@ -0,0 +1,19 @@ +package com.mogo.module.tanlu.model + +import java.io.Serializable + +fun NaviLatLngInfo.fromStart(): Start { + return Start(FromPoiLatitude.toDouble(), FromPoiLongitude.toDouble()) +} + +fun NaviLatLngInfo.toEnd(): End { + return End(ToPoiLatitude.toDouble(), ToPoiLongitude.toDouble()) +} + +class NaviLatLngInfo1 : Serializable { + var FromPoiLatitude: String = "" + var FromPoiLongitude: String = "" + var ToPoiLatitude: String = "" + var ToPoiLongitude: String = "" + +} \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/SearchOnlineInfo.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/SearchOnlineInfo.kt new file mode 100644 index 0000000000..bd80487735 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/SearchOnlineInfo.kt @@ -0,0 +1,10 @@ +package com.mogo.module.tanlu.model + +data class SearchOnlineInfo( + val address: String, + val cityId: String, + val size: Int, +// val radius: Int, + val center: Center, + val adcode: String +) diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Start.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Start.java new file mode 100644 index 0000000000..1e43cb6883 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Start.java @@ -0,0 +1,16 @@ +package com.mogo.module.tanlu.model; + +/** + * @author lixiaopeng + * @description + * @since 2020-01-09 + */ +public class Start { + public Double lat; + public Double lon; + + public Start(Double lat, Double lon) { + this.lat = lat; + this.lon = lon; + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java new file mode 100644 index 0000000000..132f12e0da --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java @@ -0,0 +1,175 @@ +package com.mogo.module.tanlu.model; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.google.gson.Gson; +import com.mogo.commons.debug.DebugConfig; +import com.mogo.commons.network.ParamsProvider; +import com.mogo.commons.network.SubscribeImpl; +import com.mogo.module.tanlu.callback.AlongTheWayCallback; +import com.mogo.module.tanlu.callback.RoadLineCallback; +import com.mogo.module.tanlu.callback.VoiceSearchCallback; +import com.mogo.module.tanlu.constant.HttpConst; +import com.mogo.module.tanlu.constant.TanluConstants; +import com.mogo.module.tanlu.net.TanluApiService; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.network.IMogoNetwork; +import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.RequestOptions; +import com.mogo.utils.storage.SharedPrefsMgr; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +import static com.mogo.commons.network.Utils.getSn; + +/** + * @author lixiaopeng + * @description 探路接口数据处理 + * @since 2020-01-09 + */ +public class TanluModelData { + + private final Context mContext; + private TanluApiService mTanluApiService; + private static final String TAG = "TanluModelData"; + + public TanluModelData(Context context) { + this.mContext = context; + IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(context); + mTanluApiService = network.create(TanluApiService.class, DebugConfig.getNetMode() == 3 ? HttpConst.HOST_PRODUCT : HttpConst.HOST_TEST); + } + + /** + * 声音控制道理数据 + */ + public void getVoiceControlRoadData(String keywords, String cityId, Double lon, Double lat, + String adCode, final VoiceSearchCallback callback) { + Gson gson = new Gson(); + SearchOnlineInfo searchOnlineInfo = new SearchOnlineInfo(keywords, cityId, 50, new Center(lat, lon), adCode); + String searchInformationStr = gson.toJson(searchOnlineInfo); + + List list = new ArrayList<>(); + list.add(lon); + list.add(lat); + LocationCarsWithRadius locCarsWithRadius = new LocationCarsWithRadius(list, 20000, "circle"); + String locCarsWithRadiusStr = gson.toJson(locCarsWithRadius); + + final Map params = new ParamsProvider.Builder(mContext) + .append("sn", getSn()) + .append("data", searchInformationStr) + .append("getSnData", locCarsWithRadiusStr) + .build(); + mTanluApiService.searchOnLineInformation(params) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { + @Override + public void onSuccess(VoiceSearchResult o) { + super.onSuccess(o); + callback.onSuccess(o); + Logger.d(TAG, "getVoiceControlRoadData onSuccess ------>"); + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + callback.onFail(message, code); + Logger.e(TAG, "getVoiceControlRoadData onError message= " + message + ">>code =" + code); + } + }); + } + + + /** + * 通勤族 事件,监听消息自己请求路线数据 + */ + public void getRoadLineData(final RoadLineCallback callback) { + if (mTanluApiService != null) { + final Map params = new ParamsProvider.Builder(mContext) + .append("sn", getSn()) + .build(); + mTanluApiService.getRoadLineInfo(params) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { + @Override + public void onSuccess(PathLineResult o) { + super.onSuccess(o); + callback.onSuccess(o); + Logger.d(TAG, "getRoadLineData onSuccess ------>"); + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + callback.onFail(message, code); + Logger.e(TAG, "getRoadLineData onError message= " + message + ">>code =" + code); + } + }); + } + } + + + /** + * 导航路线数据事件 + */ + public void getNavigationLineData(Double lon, Double lat, final AlongTheWayCallback callback) { + Gson gson = new Gson(); +// NaviLatLng coordinates = new NaviLatLng(getNaviInfo(lon, lat).fromStart(), getNaviInfo(lon, lat).toEnd()); + + List list = new ArrayList<>(); + list.add(lon); + list.add(lat); + LocationCarsWithRadius locCarsWithRadius = new LocationCarsWithRadius(list, 20000, "circle"); + String locCarsWithRadiusStr = gson.toJson(locCarsWithRadius); + + final Map params = new ParamsProvider.Builder(mContext) +// .append("onTheWayData", gson.toJson(coordinates)) + .append("getSnData", locCarsWithRadiusStr) + .build(); + + mTanluApiService.requestInformationAlongTheWay(getSn(), params) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { + @Override + public void onSuccess(InformationAndLiveCarResult data) { + super.onSuccess(data); + callback.onSuccess(data); + Logger.d(TAG, "getNavigationLineData onSuccess ------>"); + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + callback.onFail(message, code); + Logger.e(TAG, "getNavigationLineData onError message= " + message + ">>code =" + code); + } + }); + } + + + //获取Location,如果没有location数据为空,则使用首次或者上次定位点,并且更新SP,需要抽取公共方法 + public NaviLatLngInfo getNaviInfo(Double lon, Double lat) { + String naviInfo = SharedPrefsMgr.getInstance(mContext).getString(TanluConstants.NAVI_INFO); + Log.d(TAG, " getNaviInfo naviInfo =" + naviInfo); + NaviLatLngInfo naviLatLngInfo = new Gson().fromJson(naviInfo, NaviLatLngInfo.class); + Log.d(TAG, "getLocNaviInfo lat = $lat -----> lon = $lon"); + if (lon == 0.0 || lat == 0.0) { + return naviLatLngInfo; + } else { + naviLatLngInfo.setFromPoiLatitude(lat + ""); + naviLatLngInfo.setFromPoiLongitude(lon + ""); + SharedPrefsMgr.getInstance(mContext).putString(TanluConstants.NAVI_INFO, new Gson().toJson(naviLatLngInfo)); + return naviLatLngInfo; + } + } + +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java index f2157fa456..d2400b7112 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java @@ -22,26 +22,24 @@ public interface TanluApiService { /** * 探路沿途数据 * - * @return */ @FormUrlEncoded @POST("deva/car/path/no/getOnTheWayDataAndSn/v1") - Observable requestInformationAlongTheWay(@Query("sn") String sn, @FieldMap Map parameters); + Observable requestInformationAlongTheWay(@Query("sn") String sn, @FieldMap Map parameters); /** * 获取上班族路线的坐标集 */ @FormUrlEncoded @POST("yycp-travel-condition/travelDetail/info/no/commuter/v1") - Observable getRoadLineInfo(@FieldMap Map infoBody); - + Observable getRoadLineInfo(@FieldMap Map infoBody); /** * 基于地理信息词缀的空间情报检索 */ @FormUrlEncoded @POST("deva/car/search/no/searchInforationByAddress/v1") - Observable searchOnLineInformation(@FieldMap Map infoBody); + Observable searchOnLineInformation(@FieldMap Map infoBody); } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/ActivityStatusUtil.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/ActivityStatusUtil.java new file mode 100644 index 0000000000..fa9bb7614b --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/ActivityStatusUtil.java @@ -0,0 +1,46 @@ +package com.mogo.module.tanlu.util; + +import android.app.ActivityManager; +import android.content.ComponentName; +import android.content.Context; +import android.text.TextUtils; + +import java.util.List; + +import static android.content.Context.ACTIVITY_SERVICE; + +/** + * @author lixiaopeng + * @description + * @since 2019-09-26 + */ +public class ActivityStatusUtil { + /** + * 判断某个activity是否在前台显示 + */ + public static boolean isForeground(Context activity) { + return isForeground(activity, "com.zhidao.roadcondition.main_module.MainActivity"); + } + + /** + * 判断某个界面是否在前台,返回true,为显示,否则不是 + */ + public static boolean isForeground(Context context, String className) { + if (context == null || TextUtils.isEmpty(className)) { + return false; + } + ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); + List list = am.getRunningTasks(1); + if (list != null && list.size() > 0) { + ComponentName cpn = list.get(0).topActivity; + if (className.equals(cpn.getClassName())) { + return true; + } else { + + } + } + + return false; + } + +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/StringUitl.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/StringUitl.kt index bc4ceace53..bf287acdb0 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/StringUitl.kt +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/StringUitl.kt @@ -1,6 +1,7 @@ package com.mogo.module.tanlu.util import android.text.format.DateFormat +import com.google.gson.Gson import java.text.DecimalFormat const val format = "yy/MM/dd kk:mm:ss" @@ -29,3 +30,7 @@ fun handleDistances(distance: Int): String { } } + + + + diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/Utils.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/Utils.java index afb74a6fac..c88085e0f5 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/Utils.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/util/Utils.java @@ -20,4 +20,12 @@ public class Utils { } } + //保留整数,四舍五入 + public static int getIntervalValue(int listSize){ +// var floatSize = listSize.toFloat(); + int transformSize = listSize / 15; + DecimalFormat df = new DecimalFormat("0"); + return Integer.parseInt((df.format(transformSize))); + } + } \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/voice/VoiceController.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/voice/VoiceController.kt new file mode 100644 index 0000000000..5b623fb41f --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/voice/VoiceController.kt @@ -0,0 +1,57 @@ +package com.mogo.module.tanlu.voice + +import com.zhidao.auto.platform.voice.VoiceClient + +/** + * @description 声音控制类 + * + * @author lixiaopeng + * @since 2019-11-01 + */ +object VoiceController { + private lateinit var voiceClient: VoiceClient + +// fun initVoice() { +// voiceClient = VoiceClient.getInstance(BaseApplication.getAppContext()) +// } + + /** + * 设置语音命令回调接口 + * @param callBack + */ + fun setCallBack(callBack: VoiceClient.VoiceCmdCallBack) { + voiceClient.setCallBack(callBack) + } + + /** + * @param speakText 语音播报内容 + */ + fun speakVoice(speakText: String) { + voiceClient.speakDefault(speakText) + } + + /** + * 注册免唤醒命令 + * @param customType 命令 + * @param customWakeupCmd 命令对应的唤醒词集合 + */ + fun registerCustomWakeupCmd(customType: String, customWakeupCmd: Array) { + voiceClient.registerCustomWakeupCmd(customType, customWakeupCmd) + } + + /** + * 取消免唤醒命令 + * @param customType 命令 + */ + fun unRegisterCustomWakeupCmd(customType: String) { + voiceClient.unRegisterCustomWakeupCmd(customType) + } + + /** + * 释放资源(界面销毁的时候调用) + */ + fun release() { + voiceClient.release() + } + +} \ No newline at end of file