properties = new HashMap<>();
+ properties.put("searcharea", mKeywords);
+ properties.put("city", mCity);
+ mAnalytics.track(ShareConstants.CARNET_VOICE_SEARCH, properties);
+ }
+
+ private String getMathRandom() {
+ Random random = new Random();
+ int temp = random.nextInt(50) + 10;
+
+ return String.valueOf(temp);
+ }
+
+}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluServiceManager.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluServiceManager.java
new file mode 100644
index 0000000000..b75837320d
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluServiceManager.java
@@ -0,0 +1,84 @@
+package com.mogo.module.share;
+
+import android.content.Context;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.map.location.IMogoLocationClient;
+import com.mogo.map.search.poisearch.IMogoPoiSearch;
+import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
+import com.mogo.service.IMogoServiceApis;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.analytics.IMogoAnalytics;
+import com.mogo.service.intent.IMogoIntentManager;
+import com.mogo.service.map.IMogoMapService;
+import com.mogo.service.module.IMogoRegisterCenter;
+import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.mogo.service.windowview.IMogoTopViewManager;
+
+/**
+ * @author lixiaopeng
+ * @since 2020-5-19
+ *
+ * 持有服务接口实例
+ */
+public class TanluServiceManager {
+ private static IMogoMapService mMapService;
+ private static IMogoPoiSearch mPoiSearch;
+ private static IMogoLocationClient mLocationClient;
+ private static IMogoServiceApis mServiceApis;
+ private static IMogoStatusManager mIMogoStatusManager;
+ private static IMogoAnalytics mAnalytics;
+ private static IMogoIntentManager mogoIntentManager;
+ private static IMogoRegisterCenter mogoRegisterCenter;
+ private static IMogoTopViewManager mIMogoTopViewManager;
+
+ public static void init(Context context) {
+ mServiceApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context);
+ mMapService = mServiceApis.getMapServiceApi();
+ mIMogoStatusManager = mServiceApis.getStatusManagerApi();
+ mAnalytics = mServiceApis.getAnalyticsApi();
+ mogoIntentManager = mServiceApis.getIntentManagerApi();
+ mogoRegisterCenter = mServiceApis.getRegisterCenterApi();
+
+ mIMogoTopViewManager = mServiceApis.getTopViewManager();
+ mPoiSearch = mMapService.getPoiSearch(context, new MogoPoiSearchQuery());
+ mLocationClient = mMapService.getSingletonLocationClient(context);
+ }
+
+ public static IMogoTopViewManager getIMogoTopViewManager() {
+ return mIMogoTopViewManager;
+ }
+
+ public static IMogoRegisterCenter getIMogoRegisterCenter() {
+ return mogoRegisterCenter;
+ }
+
+ public static IMogoMapService getMapService() {
+ return mMapService;
+ }
+
+ public static IMogoPoiSearch getPoiSearch() {
+ return mPoiSearch;
+ }
+
+ public static IMogoLocationClient getLocationClient() {
+ return mLocationClient;
+ }
+
+ public static IMogoAnalytics getAnalytics() {
+ return mAnalytics;
+ }
+
+ public static IMogoIntentManager getMogoIntentManager() {
+ return mogoIntentManager;
+ }
+
+ public static IMogoStatusManager getMogoStatusManager() {
+ return mIMogoStatusManager;
+ }
+
+ public static IMogoServiceApis getServiceApis() {
+ return mServiceApis;
+ }
+
+}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/BaseDataComapt.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/BaseDataComapt.kt
new file mode 100644
index 0000000000..c6f859c599
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/BaseDataComapt.kt
@@ -0,0 +1,5 @@
+package com.mogo.module.share.bean
+
+import com.mogo.commons.data.BaseData
+
+data class BaseDataCompat(var result:T?):BaseData()
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfoRequest.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfoRequest.kt
new file mode 100644
index 0000000000..6fb5f5a59a
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfoRequest.kt
@@ -0,0 +1,5 @@
+package com.mogo.module.share.bean
+
+data class RoadInfoRequest(var location:Location,var poiTypes:Array,var onlyFocus:Boolean = false,var onlySameCity:Boolean = false)
+
+data class Location(var lat:Double,var lon:Double)
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfos.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfos.kt
new file mode 100644
index 0000000000..c785131e11
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/RoadInfos.kt
@@ -0,0 +1,6 @@
+package com.mogo.module.share.bean
+
+import com.mogo.commons.data.BaseData
+import com.mogo.module.common.entity.MarkerExploreWay
+
+data class RoadInfos(var data:List) : BaseData()
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/VoiceCmdData.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/VoiceCmdData.kt
new file mode 100644
index 0000000000..5532eb7524
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/VoiceCmdData.kt
@@ -0,0 +1,39 @@
+package com.mogo.module.share.bean
+
+import com.mogo.module.share.constant.*
+import com.mogo.module.share.constant.ShareConstants.*
+
+
+/**
+ * 语音指令附带数据,目前只针对道路事件查询 */
+class VoiceCmdData(var op: String, var location: String, var obj: String) {
+
+ /**
+ * 将obj转成服务端可识别的道路事件类型
+ */
+ val type: String
+ get() {
+ return when (obj) {
+ TYPE_NAME_BLOCK -> TANLU_ROAD_CONGESTION_COMPAT
+ TYPE_NAME_TRAFFIC_CHECK -> TANLU_TRAFFIC_CHECK_COMPAT
+ TYPE_NAME_CLOSURE -> TANLU_ROAD_CLOSURE_COMPAT
+ TYPE_NAME_ACCIDENT -> TANLU_ROAD_ACCIDENT
+ TYPE_NAME_REAL_TIME_TRAFFIC -> TANLU_ROAD_CURRENT
+ TYPE_NAME_STAGNANT_WATER -> TANLU_ROAD_PONDING
+ TYPE_NAME_ROAD_ICY -> TANLU_ROAD_ICING
+ TYPE_NAME_DENSE_FOG -> TANLU_ROAD_HEAVY_FOG
+ TYPE_NAME_ROAD_CONSTRUCTION -> TANLU_ROAD_CONSTRUCTION
+ else -> ""
+ }
+ }
+
+ fun isHere(): Boolean {
+ return "附近" == location
+ }
+
+ override fun toString(): String {
+ return "VoiceCmdData(op='$op', location='$location', obj='$obj', type='$type')"
+ }
+
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/event/MarkerInfo.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/event/MarkerInfo.java
new file mode 100644
index 0000000000..9dfea2c3f0
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/event/MarkerInfo.java
@@ -0,0 +1,27 @@
+package com.mogo.module.share.bean.event;
+
+import java.io.Serializable;
+
+/**
+ * @author lixiaopeng
+ * @description marker数据
+ * @since 2020-01-08
+ */
+public class MarkerInfo implements Serializable {
+ public String type; //封路,还是上报
+ public String fromType; //来源 主动,被动,策略。
+ public String imageUrl; //上传完cos图片
+ public double lon; //经度
+ public double lat; //纬度
+ public boolean isCumtom; //是否主动上报
+
+ public MarkerInfo(String type, String imageUrl, double lon, double lat, boolean isCumtom, String fromType) {
+ this.type = type;
+ this.imageUrl = imageUrl;
+ this.lon = lon;
+ this.lat = lat;
+ this.isCumtom = isCumtom;
+ this.fromType = fromType;
+ }
+
+}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/callback/RoadInfoCallback.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/callback/RoadInfoCallback.kt
new file mode 100644
index 0000000000..17b708a5b7
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/callback/RoadInfoCallback.kt
@@ -0,0 +1,10 @@
+package com.mogo.module.share.callback
+
+import com.mogo.module.common.entity.MarkerExploreWay
+
+interface RoadInfoCallback {
+ fun onLocatSuccess(lat: Double, lon: Double)
+ fun onQueryRoadInfoSuccess(roadInfoList:List)
+ fun onQueryRoadInfoFail(msg: String, code: Int)
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
index 28ed0f468e..b7c9abf73b 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java
@@ -7,7 +7,6 @@ package com.mogo.module.share.constant;
* 描述
*/
public class ShareConstants {
-
/**
* 分享分类
*/
@@ -27,6 +26,10 @@ public class ShareConstants {
".pubTroubleHelp";
public static final String VOICE_CMD_GO_TO_SHARE = "com.zhidao.share";
+ 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";
+
/**
* 免唤醒词上报拥堵
*/
@@ -68,9 +71,9 @@ public class ShareConstants {
public static final String[] CMD_ROAD_CLOSURE = {"上报封路"};
public static final String[] CMD_UPLOAD_ACCIDENT = {"上报事故", "上报交通事故"};
public static final String[] UPLOAD_REAL_TIME_TRAFFIC = {"上报实时路况", "上报路况"};
- public static final String[] UPLOAD_SEEK_HELP = {"故障求助","发起故障求助"};
+ public static final String[] UPLOAD_SEEK_HELP = {"故障求助", "发起故障求助"};
public static final String[] UPLOAD_STAGNANT_WATER = {"上报积水"};
- public static final String[] UPLOAD_ROAD_ICY = {"上报积冰","上报道路积冰","上报结冰","上报道路结冰"};
+ public static final String[] UPLOAD_ROAD_ICY = {"上报积冰", "上报道路积冰", "上报结冰", "上报道路结冰"};
public static final String[] UPLOAD_DENSE_FOG = {"上报大雾", "上报浓雾"};
public static final String[] UPLOAD_ROAD_CONSTRUCTION = {"上报施工", "上报道路施工"};
@@ -114,12 +117,75 @@ public class ShareConstants {
public static final int VOICE_ALERT_COUNT = 3;
- //1天的毫秒 TODO
+ //1天的毫秒
public static final long ONE_DAY_TIME = 86400000;
// public static final long ONE_DAY_TIME = 60000;
//7天的毫秒
public static final long SEVEN_DAY_TIME = 604800000;
-// public static final long SEVEN_DAY_TIME = 60000;
+
+ /**
+ * 加油 10001
+ * 交通检查 10002
+ * 封路 10003
+ * 商场打折 10004
+ * 4S店 10005
+ * 施工 10006
+ * 拥堵 10007
+ * 积水 10008
+ * 超市折扣 10009
+ * 浓雾 10010
+ * 结冰 10011
+ * 停车场 10012
+ * 交通事故 10013
+ * 社保 10014
+ * 实时路况 10015
+ */
+ public static final String TANLU_ROAD_PONDING = "10008"; //积水
+ public static final String TANLU_ROAD_ICING = "10011"; //积冰
+ public static final String TANLU_ROAD_HEAVY_FOG = "10010"; //大雾
+ public static final String TANLU_ROAD_ACCIDENT = "10013"; //事故
+ public static final String TANLU_ROAD_CONSTRUCTION = "10006"; //道路施工
+ public static final String TANLU_ROAD_CONGESTION_COMPAT = "10007"; //拥堵,适配语音不做数值转换
+ public static final String TANLU_TRAFFIC_CHECK_COMPAT = "10002"; //交通检查,适配语音不做数值转换
+ public static final String TANLU_ROAD_CLOSURE_COMPAT = "10003"; //封路,适配语音不做数值转换
+ public static final String TANLU_ROAD_CURRENT = "10015"; //实时路况
+
+
+ // 道路事件名称,用于语音识别区分道路事件
+ public static final String TYPE_NAME_BLOCK = "拥堵";
+ public static final String TYPE_NAME_TRAFFIC_CHECK = "交通检查";
+ public static final String TYPE_NAME_CLOSURE = "封路";
+ public static final String TYPE_NAME_ACCIDENT = "交通事故";
+ public static final String TYPE_NAME_REAL_TIME_TRAFFIC = "实时路况";
+ public static final String TYPE_NAME_STAGNANT_WATER = "积水";
+ public static final String TYPE_NAME_ROAD_ICY = "积冰";
+ public static final String TYPE_NAME_DENSE_FOG = "雾";
+ public static final String TYPE_NAME_ROAD_CONSTRUCTION = "施工";
+
+
+ // 同行者 xx堵不堵 唤醒
+ public static final String TXZ_SPECIFIEDROAD_SEARCH = "com.zhidao.roadcondition.roadinfo";
+
+ //思必驰 xx堵不堵 唤醒
+ public static final String SPECIFIEDROAD_SEARCH = "com.zhidao.pathfinder.specifiedroad.search";
+
+ /**
+ * 搜索交通检查
+ */
+ public static final String VOICE_COMMAND_QUERY_TRAFFIC_CHECK = "com.zhidao.share.traffic.police";
+
+ /**
+ * 搜索封路信息
+ */
+ public static final String VOICE_COMMAND_QUERY_ROAD_CLOSED = "com.zhidao.share.road.closure.query";
+
+ /**
+ * 其他道路事件,包括事故,实时路况,道路积水,道路积冰,浓雾
+ */
+ public static final String VOICE_COMMAND_NOVELTY_QUERY = "com.zhidao.novelty.query";
+
+ //语音搜索
+ public static final String CARNET_VOICE_SEARCH = "CarNet_Voice_Search";
}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt
index 74c0ab300d..49ca5a0210 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt
@@ -1,6 +1,7 @@
package com.mogo.module.share.manager
import android.content.Context
+import android.util.Log
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt
index a4b734bd8b..9fff555579 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt
@@ -6,6 +6,7 @@ import com.mogo.commons.voice.AIAssist
import com.mogo.map.MogoLatLng
import com.mogo.module.common.entity.MarkerPoiTypeEnum
import com.mogo.module.share.R
+import com.mogo.module.share.TanluManager
import com.mogo.module.share.constant.ShareConstants.*
import com.mogo.service.share.TanluUploadParams
import com.mogo.utils.NetworkUtils
@@ -46,7 +47,7 @@ object UploadHelper {
// 有网就正常上报
ServiceApisManager.serviceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true)
// 上报即成功
- ServiceApisManager.serviceApis.tanluUiApi.shareSuccess(type.eventType, type.location)
+ TanluManager.getInstance(context).shareSuccess(type.eventType, type.location)
val location = ServiceApisManager.serviceApis.mapServiceApi.getSingletonLocationClient(context).lastKnowLocation
val latLon = MogoLatLng(location.latitude, location.longitude)
type.location = latLon
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/ShareApiService.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/ShareApiService.kt
index 7921527e17..1485f30d96 100644
--- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/ShareApiService.kt
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/ShareApiService.kt
@@ -2,6 +2,8 @@ package com.mogo.module.share.net
import com.mogo.commons.data.BaseData
import com.mogo.module.share.bean.AverateSpeedResponse
+import com.mogo.module.share.bean.BaseDataCompat
+import com.mogo.module.share.bean.RoadInfos
import com.mogo.module.share.bean.ShareButtonConfigResponse
import io.reactivex.Observable
import okhttp3.RequestBody
@@ -23,13 +25,23 @@ interface ShareApiService {
*/
@Headers("Content-type:application/json;charset=UTF-8")
@POST("/deva/car/path/no/poiStrategyCheck/v1")
- fun sendAverageSpeedForBlockStrategy(@Body request:RequestBody,@Query("sn") sn:String):Observable
+ fun sendAverageSpeedForBlockStrategy(@Body request: RequestBody, @Query("sn") sn: String): Observable
/**
* 获取分享框服务端配置
*/
@FormUrlEncoded
@POST("/deva/car/poiType/no/poiTypeList")
- fun queryShareButtonConfig(@FieldMap param: Map):Observable
+ fun queryShareButtonConfig(@FieldMap param: Map): Observable
+
+ /**
+ * 查询(搜索)道路事件信息
+ * 接口文档:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=42305842
+ * 文档中有些参数暂时没有用到,包括radius,limit
+ * @return
+ */
+ @FormUrlEncoded
+ @POST("/yycp-launcherSnapshot/launcherSnapshot/searchRoadEventsSync")
+ fun queryRoadInfos(@FieldMap params: Map): Observable>
}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluApiService.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluApiService.java
new file mode 100644
index 0000000000..55fe73fab3
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluApiService.java
@@ -0,0 +1,31 @@
+package com.mogo.module.share.net;
+
+
+import com.mogo.module.share.bean.BaseDataCompat;
+import com.mogo.module.share.bean.RoadInfos;
+
+import java.util.Map;
+
+import io.reactivex.Observable;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+
+/**
+ * @author lixiaopeng
+ * @description 探路相关接口定义
+ * @since 2020-01-07
+ */
+public interface TanluApiService {
+
+ /**
+ * 查询(搜索)道路事件信息
+ * 接口文档:http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=42305842
+ * 文档中有些参数暂时没有用到,包括radius,limit
+ * @return
+ */
+ @FormUrlEncoded
+ @POST("/yycp-launcherSnapshot/launcherSnapshot/searchRoadEventsSync")
+ Observable> queryRoadInfos(@FieldMap Map params);
+
+}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluModelData.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluModelData.java
new file mode 100644
index 0000000000..71a6442627
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/net/TanluModelData.java
@@ -0,0 +1,182 @@
+package com.mogo.module.share.net;
+
+import android.content.Context;
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.debug.DebugConfig;
+import com.mogo.commons.network.ParamsProvider;
+import com.mogo.commons.network.SubscribeImpl;
+import com.mogo.commons.network.Utils;
+import com.mogo.map.location.MogoLocation;
+import com.mogo.map.search.geo.MogoPoiItem;
+import com.mogo.map.search.poisearch.IMogoPoiSearch;
+import com.mogo.map.search.poisearch.MogoPoiResult;
+import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
+import com.mogo.module.share.TanluServiceManager;
+import com.mogo.module.share.bean.BaseDataCompat;
+import com.mogo.module.share.bean.Location;
+import com.mogo.module.share.bean.RoadInfoRequest;
+import com.mogo.module.share.bean.RoadInfos;
+import com.mogo.module.share.bean.VoiceCmdData;
+import com.mogo.module.share.callback.RoadInfoCallback;
+import com.mogo.module.share.constant.HttpConstant;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.map.IMogoMapService;
+import com.mogo.service.network.IMogoNetwork;
+import com.mogo.utils.logger.Logger;
+import com.mogo.utils.network.RequestOptions;
+import com.mogo.utils.network.utils.GsonUtil;
+
+import java.util.Map;
+
+import io.reactivex.Observable;
+import io.reactivex.ObservableEmitter;
+import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.functions.Function;
+import io.reactivex.schedulers.Schedulers;
+
+import static com.mogo.module.share.constant.ShareConstants.TANLU_ROAD_CONGESTION_COMPAT;
+import static com.mogo.module.share.constant.ShareConstants.TANLU_ROAD_CURRENT;
+import static com.mogo.module.share.constant.ShareConstants.TYPE_NAME_BLOCK;
+
+
+/**
+ * @author lixiaopeng
+ * @description 探路接口数据处理
+ * @since 2020-01-09
+ */
+public class TanluModelData {
+
+ private final Context mContext;
+ private TanluApiService mShareApiService;
+ 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);
+ mShareApiService = network.create(TanluApiService.class, getBaseUrl());
+ }
+
+ private String getBaseUrl() {
+ if (DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE) {
+ return HttpConstant.HOST_PRODUCT;
+ } else if (DebugConfig.getNetMode() == DebugConfig.NET_MODE_DEMO) {
+ return HttpConstant.HOST_DEMO;
+ } else {
+ return HttpConstant.HOST_TEST;
+ }
+ }
+
+ /**
+ * 查询周边道路事件,是通过语音搜索,然后根据语音提供的语义,从服务端查询道路事件
+ *
+ * @param voiceCmdData 语音提供的语义封装
+ */
+ public void queryRodeInfo(final VoiceCmdData voiceCmdData, final RoadInfoCallback callback) {
+ Logger.d(TAG, "queryRodeInfo: " + voiceCmdData);
+ if (voiceCmdData.isHere()) {
+ // 搜索附近路况,只需要拿到当前位置信息,就可以请求服务端
+ MogoLocation l = TanluServiceManager.getServiceApis().getMapServiceApi().getSingletonLocationClient(mContext).getLastKnowLocation();
+ Location location = new Location(l.getLatitude(), l.getLongitude());
+ callback.onLocatSuccess(l.getLatitude(), l.getLongitude());
+ RoadInfoRequest request;
+ if (voiceCmdData.getObj().equals(TYPE_NAME_BLOCK)) {
+ // 拥堵和路况同时查
+ request = new RoadInfoRequest(location, new String[]{TANLU_ROAD_CONGESTION_COMPAT, TANLU_ROAD_CURRENT}, false, false);
+ }else{
+ request = new RoadInfoRequest(location, new String[]{voiceCmdData.getType()}, false, false);
+ }
+
+ Map params = new ParamsProvider.Builder(mContext)
+ .append("sn", Utils.getSn())
+ .append("data", GsonUtil.jsonFromObject(request))
+ .build();
+
+ mShareApiService.queryRoadInfos(params)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl>(RequestOptions.create(mContext)) {
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ }
+
+ @Override
+ public void onSuccess(BaseDataCompat o) {
+ super.onSuccess(o);
+ Logger.d(TAG, "搜索附近路况信息成功: " + o);
+ callback.onQueryRoadInfoSuccess(o.getResult().getData());
+ Logger.d(TAG, "搜索附近路况信息成功2: " + o);
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ callback.onQueryRoadInfoFail(message, code);
+ }
+ });
+ } else {
+ // 查询的不是附近的信息,所以需要查询一下目标地址的经纬度,然后再请求服务端
+ Observable.create(new ObservableOnSubscribe() {
+ @Override
+ public void subscribe(ObservableEmitter emitter) throws Exception {
+ // 根据传入的地址,转成经纬度
+ IMogoMapService mapService = TanluServiceManager.getServiceApis().getMapServiceApi();
+ String cityCode = mapService.getSingletonLocationClient(mContext).getLastKnowLocation().getCityCode();
+ MogoPoiSearchQuery poiSearchQuery = new MogoPoiSearchQuery(voiceCmdData.getLocation(), "", cityCode);
+ IMogoPoiSearch poiSearch = mapService.getPoiSearch(mContext, poiSearchQuery);
+ MogoPoiResult result = poiSearch.searchPOI();
+ if (result != null && result.getPois() != null && result.getPois().size() > 0) {
+ emitter.onNext(result);
+ } else {
+ emitter.onError(new IllegalArgumentException("没有根据地址查询到对应的经纬度"));
+ }
+ }
+ }).subscribeOn(Schedulers.io()).observeOn(Schedulers.io())
+ .flatMap(new Function>>() {
+ @Override
+ public Observable> apply(MogoPoiResult mogoPoiResult) throws Exception {
+ // 转成经纬度后,整理参数,进行接口请求
+ Logger.d(TAG, "查询目标地址经纬度成功===" + Thread.currentThread().getName());
+ MogoPoiItem poiItem = mogoPoiResult.getPois().get(0);
+ Location location = new Location(poiItem.getPoint().lat, poiItem.getPoint().lon);
+ callback.onLocatSuccess(location.getLat(), location.getLon());
+ RoadInfoRequest request;
+ if (voiceCmdData.getObj().equals(TYPE_NAME_BLOCK)) {
+ // 拥堵和路况同时查
+ request = new RoadInfoRequest(location, new String[]{TANLU_ROAD_CONGESTION_COMPAT, TANLU_ROAD_CURRENT}, false, false);
+ }else{
+ request = new RoadInfoRequest(location, new String[]{voiceCmdData.getType()}, false, false);
+ }
+
+ Map params = new ParamsProvider.Builder(mContext)
+ .append("sn", Utils.getSn())
+ .append("data", GsonUtil.jsonFromObject(request))
+ .build();
+ return mShareApiService.queryRoadInfos(params);
+ }
+ }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl>(RequestOptions.create(mContext)) {
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ callback.onQueryRoadInfoFail(e.getMessage(), -1);
+ }
+
+ @Override
+ public void onSuccess(BaseDataCompat o) {
+ super.onSuccess(o);
+ Logger.d(TAG, "当前线程为"+Thread.currentThread().getName()+" 搜索目标地址路况信息成功: " + o);
+ callback.onQueryRoadInfoSuccess(o.getResult().getData());
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ callback.onQueryRoadInfoFail(message, code);
+ }
+ });
+ }
+ }
+
+}
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/receiver/SearchTrafficInfoReceiver.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/receiver/SearchTrafficInfoReceiver.kt
new file mode 100644
index 0000000000..e38626205f
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/receiver/SearchTrafficInfoReceiver.kt
@@ -0,0 +1,48 @@
+package com.mogo.module.share.receiver
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import com.mogo.module.share.bean.VoiceCmdData
+import com.mogo.module.share.constant.ShareConstants.*
+import com.mogo.module.share.utils.Utils
+import com.mogo.utils.logger.Logger
+
+class SearchTrafficInfoReceiver : BroadcastReceiver() {
+ private val TAG = "SearchTrafficInfoReceiver"
+ override fun onReceive(context: Context?, intent: Intent?) {
+ // 目前只接com.zhidao.speech.awake.notify这一个广播,所以暂不区分action
+ Logger.d(TAG,"收到搜索事件广播====")
+ val data = intent?.getStringExtra("data") ?: ""
+ var voiceData: VoiceCmdData? = null
+ when (intent?.getStringExtra("command") ?: "") {
+ VOICE_COMMAND_QUERY_TRAFFIC_CHECK -> {
+ // 搜索交通检查
+ voiceData = Utils.parseTOVoiceCmdData(data)
+ voiceData.obj = TYPE_NAME_TRAFFIC_CHECK
+ }
+ VOICE_COMMAND_QUERY_ROAD_CLOSED -> {
+ // 搜索封路
+ Logger.d(TAG, "封路: $data")
+ voiceData = Utils.parseTOVoiceCmdData(data)
+ voiceData.location = voiceData.obj
+ voiceData.obj = TYPE_NAME_CLOSURE
+ }
+ SPECIFIEDROAD_SEARCH->{
+ // 拥堵和路况
+ Logger.d(TAG,"拥堵和路况:$data")
+ voiceData = Utils.parseTOVoiceCmdData(data)
+ voiceData.obj = TYPE_NAME_BLOCK
+ }
+ // 其他道路事件
+ VOICE_COMMAND_NOVELTY_QUERY -> voiceData = Utils.parseTOVoiceCmdData(data)
+ else->{
+ Logger.d(TAG, "未收录广播===${intent?.getStringExtra("command")}")
+ }
+ }
+
+ voiceData?.let {
+ Logger.d(TAG, "准备开始网络请求,搜索附近道路事件: $it")
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/utils/Utils.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/utils/Utils.java
new file mode 100644
index 0000000000..234266e26d
--- /dev/null
+++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/utils/Utils.java
@@ -0,0 +1,45 @@
+package com.mogo.module.share.utils;
+
+import com.google.gson.Gson;
+import com.mogo.module.share.bean.VoiceCmdData;
+
+import java.text.DecimalFormat;
+
+/**
+ * @author lixiaopeng
+ * @description
+ * @since 2020-01-08
+ */
+public class Utils {
+
+ //处理距离,大于1000时,四舍五入保留一位小数
+ public static String handleDistance(double distance) {
+ if (distance < 1000) {
+ return distance + "M";
+ } else {
+ DecimalFormat df = new DecimalFormat("0.0");
+ double transformDistance = distance / 1000;
+ return (df.format(transformDistance)) + "KM";
+ }
+ }
+
+ //保留整数,四舍五入
+ 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)));
+ }
+
+ /**
+ * 解析json串为 VoiceCmdData 对象
+ *
+ * @param dataJsonStr
+ * @return
+ */
+ public static VoiceCmdData parseTOVoiceCmdData(String dataJsonStr) {
+ Gson gson = new Gson();
+ return gson.fromJson(dataJsonStr, VoiceCmdData.class);
+ }
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_fail.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_fail.png
new file mode 100644
index 0000000000..f11f2cb3cd
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_fail.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_success.png b/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_success.png
new file mode 100644
index 0000000000..19829a2454
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-ldpi/module_tanlu_upload_success.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_fail.png b/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_fail.png
new file mode 100644
index 0000000000..f11f2cb3cd
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_fail.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_success.png b/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_success.png
new file mode 100644
index 0000000000..19829a2454
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-mdpi/module_tanlu_upload_success.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_fail.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_fail.png
new file mode 100644
index 0000000000..4511f314bb
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_fail.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_success.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_success.png
new file mode 100644
index 0000000000..1ad96fc40f
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_tanlu_upload_success.png differ
diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/tanlu_circle_image.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/tanlu_circle_image.png
new file mode 100644
index 0000000000..32847b095d
Binary files /dev/null and b/modules/mogo-module-share/src/main/res/drawable-xhdpi/tanlu_circle_image.png differ
diff --git a/modules/mogo-module-share/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-mdpi/dimens.xml
new file mode 100644
index 0000000000..9e9341f116
--- /dev/null
+++ b/modules/mogo-module-share/src/main/res/values-mdpi/dimens.xml
@@ -0,0 +1,11 @@
+
+
+
+ 400px
+ 150px
+ 80px
+ 32px
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-share/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-share/src/main/res/values-xhdpi-1920x1000/dimens.xml
index 4041b60f30..bbd605b6e3 100644
--- a/modules/mogo-module-share/src/main/res/values-xhdpi-1920x1000/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values-xhdpi-1920x1000/dimens.xml
@@ -21,6 +21,11 @@
28px
28px
+ 750px
+ 270px
+ 120px
+ 60px
+
diff --git a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
index d39998ae78..de87d2e54a 100644
--- a/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values-xhdpi/dimens.xml
@@ -15,6 +15,11 @@
30px
116px
+ 750px
+ 270px
+ 120px
+ 60px
+
40px
32px
diff --git a/modules/mogo-module-share/src/main/res/values/colors.xml b/modules/mogo-module-share/src/main/res/values/colors.xml
index b24059e5d9..cea1d8cca7 100644
--- a/modules/mogo-module-share/src/main/res/values/colors.xml
+++ b/modules/mogo-module-share/src/main/res/values/colors.xml
@@ -3,4 +3,5 @@
#fff
#fff
#99FFFFFF
+ #00FFFFFF
diff --git a/modules/mogo-module-share/src/main/res/values/dimens.xml b/modules/mogo-module-share/src/main/res/values/dimens.xml
index 044d40bc47..f2945f04a4 100644
--- a/modules/mogo-module-share/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-share/src/main/res/values/dimens.xml
@@ -16,6 +16,11 @@
16.4px
63.4px
+ 400px
+ 150px
+ 80px
+ 32px
+
22px
18px
diff --git a/modules/mogo-module-share/src/main/res/values/strings.xml b/modules/mogo-module-share/src/main/res/values/strings.xml
index 4c1ef21f86..45044748ba 100644
--- a/modules/mogo-module-share/src/main/res/values/strings.xml
+++ b/modules/mogo-module-share/src/main/res/values/strings.xml
@@ -1,4 +1,24 @@
share
+ 正在更新情报数据
+ 欢迎使用探路,您可以在探路内查看到周边的实时路况,也可以通过关键词“上报路况”来分享一段视频给其他车主
+ 您还可以试试语音上报
+ 为您找到%s条路况信息
+ 已分享成功,你分享的内容将帮助%s位车友
+ 上传失败
+ 上报路况
+
+ 取消(%s)
+ 好的(%s)
+
+
+ - 正在为您搜索路况
+ - 系统正在为您搜索
+ - 小智这就去查
+
+
+ - 找不到相关地址,试试换个说法
+ - 找不到地址,换个地址试试
+
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 f47228a344..eb5dad8178 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
@@ -33,7 +33,6 @@ public class TanluConstants {
public static final String TANLU_ROAD_CONGESTION_COMPAT = "10007"; //拥堵,适配语音不做数值转换
public static final String TANLU_TRAFFIC_CHECK_COMPAT = "10002"; //交通检查,适配语音不做数值转换
public static final String TANLU_ROAD_CLOSURE_COMPAT = "10003"; //封路,适配语音不做数值转换
-
public static final String TANLU_ROAD_CURRENT = "10015"; //实时路况
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 c184721629..74ed7bc9e3 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
@@ -34,11 +34,11 @@ public class TanluCardViewProvider implements IMogoTanluUiProvider {
@Override
public void init( Context context ) {
Logger.d(TAG, "init --------------> 1");
- TanluServiceManager.init( context );
- TanluServiceManager.getDataManager().registerDataListener( TanluConstants.MODEL_NAME, DataSetChangedAdapter.getInstance() );
-
- tanluListWindow = new TanluListWindow(context);
- tanluListWindow.initWindow();
+// TanluServiceManager.init( context );
+// TanluServiceManager.getDataManager().registerDataListener( TanluConstants.MODEL_NAME, DataSetChangedAdapter.getInstance() );
+//
+// tanluListWindow = new TanluListWindow(context);
+// tanluListWindow.initWindow();
}
@Override
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/recycler/TanluSlideAdapterNew.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/recycler/TanluSlideAdapterNew.java
index d4e9630b6e..b7cbed5842 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/recycler/TanluSlideAdapterNew.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/recycler/TanluSlideAdapterNew.java
@@ -544,12 +544,10 @@ public class TanluSlideAdapterNew extends RecyclerView.Adapter ");
mRoundLayout.setBackgroundResource(R.drawable.shape_tanlu_top_bg);
break;
case Type_Light:
- Log.d("liyz", "Type_Light ---------> ");
mRoundLayout.setBackgroundResource(R.drawable.shape_tanlu_top_bg_light);
break;
}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/SearchTrafficInfoReceiver.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/SearchTrafficInfoReceiver.kt
index df29f3ce8b..b317748183 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/SearchTrafficInfoReceiver.kt
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/SearchTrafficInfoReceiver.kt
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.Intent
import com.mogo.module.tanlu.constant.*
import com.mogo.module.tanlu.constant.TanluConstants.SPECIFIEDROAD_SEARCH
-import com.mogo.module.tanlu.model.TanluModelData
import com.mogo.module.tanlu.model.VoiceCmdData
import com.mogo.module.tanlu.util.Utils
import com.mogo.utils.logger.Logger
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/MediaCoverVideoPlayer.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/MediaCoverVideoPlayer.kt
index 4d6228e2e8..d55a6345cb 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/MediaCoverVideoPlayer.kt
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/MediaCoverVideoPlayer.kt
@@ -112,8 +112,6 @@ package com.mogo.module.tanlu.video
// completionListener.let {
// it.onCompletion()
// }
-//
-// Log.d("liyz", "MediaCoverVideoPlayer onAutoCompletion ------->")
// }
//
// override fun showWifiDialog() {
diff --git a/settings.gradle b/settings.gradle
index 6dffa6f0a2..849a39e744 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -57,7 +57,7 @@ include ':modules:mogo-module-push-noop'
include ':modules:mogo-module-guide'
-include ':modules:mogo-module-tanlu'
+//include ':modules:mogo-module-tanlu'
include ':libraries:tanlulib'
include ':skin'
include ':test'