1. 替换自车图表(有指向)

2. 解决部分内存泄漏
3. 设定点击间隔,防止快速点击
This commit is contained in:
wangcongtao
2020-09-25 17:18:30 +08:00
parent 865d53a421
commit 784efe81b4
30 changed files with 238 additions and 550 deletions

View File

@@ -111,18 +111,10 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
mContext = context.getApplicationContext();
mRefreshModel = new RefreshModel( mContext );
// 长连接 - 长链变短链
// MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this );
MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this );
MarkerServiceHandler.getApis().getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
}
// ACC ON 的时候重置为trueACC OFF 设置为 false
// 保留 - 外部模块调用
public void setCheckOn( boolean checkOnLineData ) {
Logger.e( TAG, "do not invoke anymore." );
}
/**
* 地图上的Marker点击回调
*/
@@ -132,6 +124,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
try {
boolean result = switchMarkerOpenStatus( marker );
if ( !result ) {
updateCarUserInfoWindow( marker );
return false;
}
@@ -188,14 +181,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
mLastCheckMarker = mogoMarker;
// 在线车辆点击使用infoWindow
if ( TextUtils.equals( mogoMarker.getOwner(), ModuleNames.CARD_TYPE_USER_DATA ) ) {
if ( !mogoMarker.isDestroyed() ) {
try {
MarkerOnlineCar onlineCar = ( MarkerOnlineCar ) ( ( MarkerShowEntity ) mogoMarker.getObject() ).getBindObj();
CallChatApi.getInstance().showUserWindow( mContext, onlineCar );
} catch ( Exception e ) {
Logger.e( TAG, e, "openMarker" );
}
}
updateCarUserInfoWindow( mogoMarker );
} else {
Object object = mogoMarker.getObject();
if ( object != null ) {
@@ -218,6 +204,17 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
MarkerServiceHandler.getMapUIController().moveToCenter( mogoMarker.getPosition(), CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X );
}
private void updateCarUserInfoWindow( IMogoMarker marker ) {
if ( !marker.isDestroyed() ) {
try {
MarkerOnlineCar onlineCar = ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj();
CallChatApi.getInstance().showUserWindow( mContext, onlineCar );
} catch ( Exception e ) {
Logger.e( TAG, e, "openMarker" );
}
}
}
// 折叠气泡
private void closeMarker( IMogoMarker mogoMarker ) {
if ( mogoMarker == null ) {

View File

@@ -12,6 +12,7 @@ import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.voice.AIAssist;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.entity.MarkerOnlineCar;
import com.mogo.module.common.view.OnPreventFastClickListener;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.R;
@@ -46,8 +47,11 @@ public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, On
@Override
protected void initViews() {
findViewById( R.id.module_services_id_close ).setOnClickListener( view -> {
removeSelf();
findViewById( R.id.module_services_id_close ).setOnClickListener( new OnPreventFastClickListener() {
@Override
public void onClickImpl( View v ) {
removeSelf();
}
} );
mList = findViewById( R.id.module_services_id_recycler_view );
mRefreshPanel = findViewById( R.id.module_services_id_load_strategy_container );
@@ -59,15 +63,26 @@ public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, On
mList.setLayoutManager( new LinearLayoutManager( getContext(), LinearLayoutManager.VERTICAL, false ) );
m20KMStrategy.setOnClickListener( view -> {
mPresenter.nextStrategy();
m20KMStrategy.setOnClickListener( new OnPreventFastClickListener() {
@Override
public void onClickImpl( View v ) {
mPresenter.nextStrategy();
}
} );
m40KMStrategy.setOnClickListener( view -> {
mPresenter.nextStrategy();
m40KMStrategy.setOnClickListener( new OnPreventFastClickListener() {
@Override
public void onClickImpl( View v ) {
mPresenter.nextStrategy();
}
} );
mErrorPanel.setOnClickListener( view -> {
mPresenter.loadOnlineCar();
mErrorPanel.setOnClickListener( new OnPreventFastClickListener() {
@Override
public void onClickImpl( View v ) {
mPresenter.loadOnlineCar();
}
} );
mRootView.setOnClickListener( view -> {} );
}
public void refreshPanel(){