1. UI 走查修改

2. 其他修复。
This commit is contained in:
wangcongtao
2020-09-28 20:11:29 +08:00
parent a5f7e7d910
commit 0d84238be4
41 changed files with 221 additions and 19 deletions

View File

@@ -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 ) {
}
}

View File

@@ -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 ) {

View File

@@ -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 ) {