diff --git a/.idea/misc.xml b/.idea/misc.xml
index 707ee6e613..2dc54c489f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle
index 57f5a280c7..6c15a6d379 100644
--- a/modules/mogo-module-service/build.gradle
+++ b/modules/mogo-module-service/build.gradle
@@ -45,6 +45,7 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxjava
implementation rootProject.ext.dependencies.rxandroid
+ implementation rootProject.ext.dependencies.carcallprovider
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
index 089851d54e..a1774a2d4a 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
@@ -7,6 +7,7 @@ import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.IMogoMapUIController;
+import com.mogo.module.carchattingprovider.ICarsChattingProvider;
import com.mogo.module.common.entity.MarkerResponse;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.service.marker.MapMarkerManager;
@@ -25,6 +26,7 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
+import com.zhidao.carchattingprovider.CallChattingProviderConstant;
/**
* author : donghongyu
@@ -36,128 +38,136 @@ import com.mogo.service.statusmanager.IMogoStatusManager;
public class MarkerServiceHandler {
private static final String TAG = "MarkerServiceHandler";
- private static IMogoServiceApis mApis;
+ private static IMogoServiceApis sApis;
- private static IMogoMapService mMapService;
- private static IMogoMarkerManager mMarkerManager;
- private static IMogoNavi mNavi;
- private static IMogoMapUIController mMapUIController;
- private static IMogoLocationClient mLocationClient;
- private static IMogoStatusManager mMogoStatusManager;
- private static IMogoImageloader mImageloader;
- private static IMogoSocketManager mMogoSocketManager;
- private static IMogoCardManager mMogoCardManager;
- private static IMogoAnalytics mMogoAnalytics;
- private static IMogoRegisterCenter mRegisterCenter;
- private static IMogoActionManager mActionManager;
- private static IMogoDataManager mDataManager;
- private static IMogoIntentManager mIntentManager;
- private static IMogoADASController mADASController;
- private static IMogoLauncher mLauncher;
- private static IMogoFragmentManager mFragmentManager;
+ private static IMogoMapService sMapService;
+ private static IMogoMarkerManager sMarkerManager;
+ private static IMogoNavi sNavi;
+ private static IMogoMapUIController sMapUIController;
+ private static IMogoLocationClient sLocationClient;
+ private static IMogoStatusManager sMogoStatusManager;
+ private static IMogoImageloader sImageloader;
+ private static IMogoSocketManager sMogoSocketManager;
+ private static IMogoCardManager sMogoCardManager;
+ private static IMogoAnalytics sMogoAnalytics;
+ private static IMogoRegisterCenter sRegisterCenter;
+ private static IMogoActionManager sActionManager;
+ private static IMogoDataManager sDataManager;
+ private static IMogoIntentManager sIntentManager;
+ private static IMogoADASController sADASController;
+ private static IMogoLauncher sLauncher;
+ private static IMogoFragmentManager sFragmentManager;
+ private static ICarsChattingProvider sCarChatting;
- private static MapMarkerManager mMapMarkerManager;
+ private static MapMarkerManager sMapMarkerManager;
public static void init( final Context context ) {
- mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
- mMapService = mApis.getMapServiceApi();
- mImageloader = mApis.getImageLoaderApi();
- mMogoStatusManager = mApis.getStatusManagerApi();
- mMogoSocketManager = mApis.getSocketManagerApi( context );
- mMogoCardManager = mApis.getCardManagerApi();
- mMogoAnalytics = mApis.getAnalyticsApi();
- mMarkerManager = mMapService.getMarkerManager( context );
- mNavi = mMapService.getNavi( context );
- mMapUIController = mMapService.getMapUIController();
- mLocationClient = mMapService.getSingletonLocationClient( context );
- mRegisterCenter = mApis.getRegisterCenterApi();
- mActionManager = mApis.getActionManagerApi();
- mDataManager = mApis.getDataManagerApi();
- mIntentManager = mApis.getIntentManagerApi();
- mADASController = mApis.getAdasControllerApi();
- mLauncher = mApis.getLauncherApi();
- mFragmentManager = mApis.getFragmentManagerApi();
+ sApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
+ sMapService = sApis.getMapServiceApi();
+ sImageloader = sApis.getImageLoaderApi();
+ sMogoStatusManager = sApis.getStatusManagerApi();
+ sMogoSocketManager = sApis.getSocketManagerApi( context );
+ sMogoCardManager = sApis.getCardManagerApi();
+ sMogoAnalytics = sApis.getAnalyticsApi();
+ sMarkerManager = sMapService.getMarkerManager( context );
+ sNavi = sMapService.getNavi( context );
+ sMapUIController = sMapService.getMapUIController();
+ sLocationClient = sMapService.getSingletonLocationClient( context );
+ sRegisterCenter = sApis.getRegisterCenterApi();
+ sActionManager = sApis.getActionManagerApi();
+ sDataManager = sApis.getDataManagerApi();
+ sIntentManager = sApis.getIntentManagerApi();
+ sADASController = sApis.getAdasControllerApi();
+ sLauncher = sApis.getLauncherApi();
+ sFragmentManager = sApis.getFragmentManagerApi();
- mMapMarkerManager = MapMarkerManager.getInstance();
- mMapMarkerManager.init( context );
+ sCarChatting = (ICarsChattingProvider)ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation( context );
+
+ sMapMarkerManager = MapMarkerManager.getInstance();
+ sMapMarkerManager.init( context );
}
public static IMogoServiceApis getApis(){
- return mApis;
+ return sApis;
}
public static IMogoMapService getMapService() {
- return mMapService;
+ return sMapService;
}
public static IMogoMarkerManager getMarkerManager() {
- return mMarkerManager;
+ return sMarkerManager;
}
public static IMogoNavi getNavi() {
- return mNavi;
+ return sNavi;
}
public static IMogoMapUIController getMapUIController() {
- return mMapUIController;
+ return sMapUIController;
}
public static IMogoImageloader getImageloader() {
- return mImageloader;
+ return sImageloader;
}
public static IMogoSocketManager getMogoSocketManager() {
- return mMogoSocketManager;
+ return sMogoSocketManager;
}
public static IMogoStatusManager getMogoStatusManager() {
- return mMogoStatusManager;
+ return sMogoStatusManager;
}
public static IMogoCardManager getMogoCardManager() {
- return mMogoCardManager;
+ return sMogoCardManager;
}
public static IMogoAnalytics getMogoAnalytics() {
- return mMogoAnalytics;
+ return sMogoAnalytics;
}
public static IMogoLocationClient getMogoLocationClient() {
- return mLocationClient;
+ return sLocationClient;
}
public static MapMarkerManager getMapMarkerManager() {
- return mMapMarkerManager;
+ return sMapMarkerManager;
}
public static IMogoRegisterCenter getRegisterCenter() {
- return mRegisterCenter;
+ return sRegisterCenter;
}
public static IMogoActionManager getActionManager() {
- return mActionManager;
+ return sActionManager;
}
public static IMogoIntentManager getIntentManager() {
- return mIntentManager;
+ return sIntentManager;
}
public static IMogoADASController getADASController() {
- return mADASController;
+ return sADASController;
}
public static IMogoLauncher getLauncher() {
- return mLauncher;
+ return sLauncher;
}
public static IMogoFragmentManager getFragmentManager() {
- return mFragmentManager;
+ return sFragmentManager;
}
public static IMogoDataManager getDataManager() {
- return mDataManager;
+ return sDataManager;
}
+ public static ICarsChattingProvider getCarChatting() {
+ return sCarChatting;
+ }
+
+
//TODO -------------以下方法是临时过度使用的,后面统一使用,getMapMarkerManager进行调用
/**
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
index 99d613fcd5..1e187ebe6b 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
@@ -827,12 +827,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
};
private void getOnlineCarList() {
- if (mCurrentModuleName.equals(ServiceConst.CARD_TYPE_BUSINESS_OPERATION )
- || mCurrentModuleName.equals(ServiceConst.CARD_TYPE_USER_DATA) ) {
- if (MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() || MarkerServiceHandler.getMogoStatusManager().isADASShow()){
- return;
- }
+ if (MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() || MarkerServiceHandler.getMogoStatusManager().isADASShow()){
+ return;
+ }
+
+ if ( TextUtils.equals( ServiceConst.CARD_TYPE_USER_DATA, mCurrentModuleName )
+ || TextUtils.equals( ServiceConst.CARD_TYPE_BUSINESS_OPERATION, mCurrentModuleName )
+ || TextUtils.equals( ServiceConst.CARD_TYPE_CARS_CHATTING, mCurrentModuleName )) {
mRefreshModel.queryOnLineCarWithRoute(mCarLatLng, false, false, new RefreshCallback() {
@Override
@@ -845,7 +847,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
removeCarMarkers();
List onlineCarList = result.getOnlineCar();
dispatchDataToBis(ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList);
- drawOnlineCarMarkers(onlineCarList, ServiceConst.MAX_AMOUNT_SINGLE_CARD);
+ drawOnlineCarMarkers( onlineCarList, ServiceConst.MAX_AMOUNT_SINGLE_CARD );
}
@Override
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
index 47ebe41223..f41664ab8c 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/UserDataMarkerInfoWindowAdapter.java
@@ -1,23 +1,29 @@
package com.mogo.module.service.marker;
import android.content.Context;
-import android.graphics.Bitmap;
import android.os.Looper;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
+import android.widget.ImageView;
import android.widget.TextView;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
+import com.mogo.module.common.entity.MarkerLocation;
+import com.mogo.module.common.entity.MarkerOnlineCar;
import com.mogo.module.common.entity.MarkerShowEntity;
+import com.mogo.module.common.entity.MarkerUserInfo;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.R;
-import com.mogo.service.imageloader.IMogoImageLoaderListener;
import com.mogo.service.imageloader.MogoImageView;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.logger.Logger;
+import com.zhidao.carchattingprovider.CallChattingProviderConstant;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* @author congtaowang
@@ -36,6 +42,8 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter {
private MogoImageView mUserHeader;
private TextView mContent;
+ private TextView mTag;
+ private ImageView mCall;
private UserDataMarkerInfoWindowAdapter( Context context ) {
this.mContext = context;
@@ -70,12 +78,42 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter {
mInfoWindowView = LayoutInflater.from( mContext ).inflate( R.layout.view_map_data_user_info_window, null );
mUserHeader = mInfoWindowView.findViewById( R.id.module_service_id_user_header );
mContent = mInfoWindowView.findViewById( R.id.module_service_id_content );
+ mTag = mInfoWindowView.findViewById( R.id.module_service_id_tag );
+ mCall = mInfoWindowView.findViewById( R.id.module_service_id_call );
}
try {
MarkerShowEntity markerShowEntity = ( MarkerShowEntity ) marker.getObject();
mContent.setText( markerShowEntity.getTextContent() );
- loadImageWithMarker( markerShowEntity );
+ loadImageHeader( markerShowEntity );
+ if ( markerShowEntity.getBindObj() instanceof MarkerOnlineCar ) {
+ try {
+ mTag.setText( ( ( MarkerOnlineCar ) markerShowEntity.getBindObj() ).getUserInfo().getSafeLabel() );
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+ mCall.setOnClickListener( view -> {
+ if ( markerShowEntity.getBindObj() instanceof MarkerOnlineCar ) {
+ Map< String, String > params = new HashMap<>();
+ MarkerUserInfo userInfo = ( ( MarkerOnlineCar ) markerShowEntity.getBindObj() ).getUserInfo();
+ if ( userInfo != null ) {
+ params.put( CallChattingProviderConstant.CCPROVIDER_SN, userInfo.getSn() );
+ params.put( CallChattingProviderConstant.CCPROVIDER_USER_IMG, userInfo.getUserHead() );
+ params.put( CallChattingProviderConstant.CCPROVIDER_USER_AGE, userInfo.getAgeNumber() + "" );
+ params.put( CallChattingProviderConstant.CCPROVIDER_NICK_NAME, userInfo.getUserName() );
+ params.put( CallChattingProviderConstant.CCPROVIDER_USER_SEX, userInfo.getGender() + "" );
+ }
+ MarkerLocation location = ( ( MarkerOnlineCar ) markerShowEntity.getBindObj() ).getLocation();
+ if ( location != null ) {
+ params.put( CallChattingProviderConstant.CCPROVIDER_ADDRESS, location.getAddress() );
+ params.put( CallChattingProviderConstant.CCPROVIDER_LAT, location.getLat() + "" );
+ params.put( CallChattingProviderConstant.CCPROVIDER_LON, location.getLon() + "" );
+ }
+ Logger.d( TAG, "call parameters: %s", params );
+ MarkerServiceHandler.getCarChatting().call( params );
+ }
+ } );
} catch ( Exception e ) {
Logger.e( TAG, e, "error." );
}
@@ -83,7 +121,7 @@ public class UserDataMarkerInfoWindowAdapter implements IMogoInfoWindowAdapter {
return mInfoWindowView;
}
- protected void loadImageWithMarker( final MarkerShowEntity markerShowEntity ) {
+ protected void loadImageHeader( final MarkerShowEntity markerShowEntity ) {
if ( Looper.myLooper() != Looper.getMainLooper() ) {
UiThreadHandler.post( () -> {
diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml b/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml
index 85dc31340e..5028bcbe89 100644
--- a/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml
+++ b/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml
@@ -15,7 +15,7 @@
android:id="@+id/module_service_id_marker_content"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_90"
- android:background="@drawable/bg_map_marker_blue_info"
+ android:background="@drawable/module_services_driver_blue_info"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
@@ -38,15 +38,38 @@
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:ellipsize="end"
- android:gravity="center"
android:singleLine="true"
+ android:minWidth="@dimen/dp_100"
android:textColor="#ffffff"
android:textSize="@dimen/sp_32"
- app:layout_constraintBottom_toBottomOf="@+id/module_service_id_user_header"
- app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/module_service_id_user_header"
app:layout_constraintTop_toTopOf="@+id/module_service_id_user_header"
- tools:text="诗一样的女子" />
+ app:layout_goneMarginRight="@dimen/dp_30"
+ tools:text="诗" />
+
+
+
+
+ android:src="@drawable/bg_shape_reverse_triangle_grey" />
\ No newline at end of file