1. UI 走查修改
2. 其他修复。
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
package com.mogo.module.service.marker;
|
||||
|
||||
import com.mogo.module.carchattingprovider.ICallProviderResponse;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/9/28
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
abstract class CallProviderResponseImpl implements ICallProviderResponse {
|
||||
|
||||
@Override
|
||||
public void addFriend( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callInvokeError( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callStatus( int i ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callWindowStatus( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void canCall( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideUserWindowError( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invisibleUser( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void isFriend( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void isOnLine( boolean b, @Nullable String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userInfoCallBack( @Nullable String s, @Nullable String s1 ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userWindowStatus( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void call( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancelMatch( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void error( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hangUp( boolean b ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invokeCallData( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void match( @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void matchInvokeResult( boolean b, @NotNull String s ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mute( boolean b ) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mogo.module.service.marker;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Rect;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
@@ -16,7 +17,9 @@ import com.mogo.map.marker.IMogoMarkerManager;
|
||||
import com.mogo.map.marker.MogoMarkerOptions;
|
||||
import com.mogo.map.marker.anim.OnMarkerAnimationListener;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.module.carchattingprovider.ICallProviderResponse;
|
||||
import com.mogo.module.common.ModuleNames;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.module.common.api.CallChatApi;
|
||||
import com.mogo.module.common.entity.MarkerCarPois;
|
||||
import com.mogo.module.common.entity.MarkerCardResult;
|
||||
@@ -45,6 +48,8 @@ import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.WorkThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@@ -113,6 +118,19 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|
||||
|
||||
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
|
||||
MarkerServiceHandler.getApis().getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
|
||||
|
||||
CallChatApi.getInstance().getApiProvider().registerUserWindowStatusListener( TAG, mContext, new CallProviderResponseImpl() {
|
||||
|
||||
@Override
|
||||
public void userWindowStatus( boolean b ) {
|
||||
try {
|
||||
closeMarker( mLastCheckMarker );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -207,6 +225,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|
||||
private void updateCarUserInfoWindow( IMogoMarker marker ) {
|
||||
if ( !marker.isDestroyed() ) {
|
||||
try {
|
||||
marker.setIcon( OnlineCarMarkerView.getInstance().getSelectedBitmap( getCarVehicleType( marker ) ) );
|
||||
MarkerOnlineCar onlineCar = ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj();
|
||||
CallChatApi.getInstance().showUserWindow( mContext, onlineCar );
|
||||
} catch ( Exception e ) {
|
||||
@@ -222,8 +241,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|
||||
}
|
||||
// 在线车辆点击使用infoWindow
|
||||
if ( TextUtils.equals( mogoMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA ) ) {
|
||||
// mogoMarker.hideInfoWindow();
|
||||
Logger.d( TAG, "关闭info window" );
|
||||
mogoMarker.setIcon( OnlineCarMarkerView.getInstance().getBitmap( getCarVehicleType( mogoMarker ) ) );
|
||||
} else {
|
||||
Object object = mogoMarker.getObject();
|
||||
if ( object != null ) {
|
||||
@@ -243,6 +261,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
|
||||
}
|
||||
}
|
||||
|
||||
private int getCarVehicleType( IMogoMarker marker ) {
|
||||
try {
|
||||
return ( ( MarkerOnlineCar )
|
||||
( ( MarkerShowEntity ) marker.getObject() ).getBindObj() )
|
||||
.getCarInfo()
|
||||
.getVehicleType();
|
||||
} catch ( Exception e ) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// 绘制Marker
|
||||
public synchronized void drawMapMarker( MarkerResponse response ) {
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import java.util.Map;
|
||||
public class OnlineCarMarkerView implements IMarkerView {
|
||||
|
||||
private static Map< Integer, SoftReference< Bitmap > > sRef = new HashMap<>();
|
||||
private static Map< Integer, SoftReference< Bitmap > > sTypedRef = new HashMap<>();
|
||||
|
||||
private OnlineCarMarkerView() {
|
||||
// private constructor
|
||||
@@ -60,6 +61,20 @@ public class OnlineCarMarkerView implements IMarkerView {
|
||||
return sRef.get( vehicleType ).get();
|
||||
}
|
||||
|
||||
public Bitmap getSelectedBitmap( int vehicleType ) {
|
||||
if ( sTypedRef.get( vehicleType ) == null || sTypedRef.get( vehicleType ).get() == null
|
||||
|| sTypedRef.get( vehicleType ).get().isRecycled() ) {
|
||||
switch ( vehicleType ) {
|
||||
case 2:
|
||||
sTypedRef.put( vehicleType, new SoftReference<>( BitmapFactory.decodeResource( AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_type2 ) ) );
|
||||
break;
|
||||
default:
|
||||
sTypedRef.put( vehicleType, new SoftReference<>( BitmapFactory.decodeResource( AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_gray_selected ) ) );
|
||||
}
|
||||
}
|
||||
return sTypedRef.get( vehicleType ).get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMarker( IMogoMarker marker ) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user