恢复误删代码

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2022-01-19 19:48:33 +08:00
parent df6e13b9d3
commit 57d7c9ce07
2 changed files with 80 additions and 6 deletions

View File

@@ -139,6 +139,8 @@ public class MogoServices implements IMogoMapListener,
private float mLastZoomLevel = 0;
private TtsConfigModleData mTtsModle;
private long mRefreshRemainingTime = Long.MAX_VALUE;
// 上次手动操作的中心点坐标
private MogoLatLng mLastCustomRefreshCenterLocation;
private IMogoMapService mMogoMapService;
private IMogoStatusManager mStatusManager;
@@ -326,6 +328,9 @@ public class MogoServices implements IMogoMapListener,
}
public void init( Context context ) {
initWorkThread();
registerMogoReceiver( context );
registerInternalUnWakeupWords();
@@ -372,6 +377,36 @@ public class MogoServices implements IMogoMapListener,
TimeDelayUploadManager.getInstance().init(context);
}
private void initWorkThread() {
mThreadHandler = new RefreshWorkThreadHandler( WorkThreadHandler.getInstance().getLooper() ) {
@Override
protected void handleMapChangedMessage( Message msg ) {
if ( msg.obj instanceof RefreshObject ) {
RefreshObject ro = ( ( RefreshObject ) msg.obj );
if ( invokeRefreshWhenTranslationByUser( ro.mLonLat ) ) {
notifyRefreshData( ro.mLonLat, ro.mRadius, ro.mCallback );
mLastCustomRefreshCenterLocation = ro.mLonLat;
}
}
}
@Override
protected void handleRequestDataMessage( Message msg ) {
if ( msg.obj instanceof RefreshObject ) {
RefreshObject ro = ( ( RefreshObject ) msg.obj );
if ( ro.mLonLat == null ) {
invokeAutoRefreshStrategy();
Logger.w( TAG, "lonLat is null." );
return;
}
//请求大而全数据刷新地图POI
mRefreshModel.refreshExplorerWayData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback );
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
}
}
};
}
private void registerMogoReceiver( Context context ) {
if ( context == null ) {
return;
@@ -495,6 +530,7 @@ public class MogoServices implements IMogoMapListener,
if ( mIsCameraInited ) {
mLastZoomLevel = zoom;
mLastCustomRefreshCenterLocation = latLng;
mIsCameraInited = false;
initMapStatus();
return;
@@ -503,18 +539,21 @@ public class MogoServices implements IMogoMapListener,
// 部分非用户操作导致地图视图变化:绘线、圈点等不触发用户刷新
// 消费状态
if ( mStatusManager.isUserInteracted() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
}
// v2x // adas 状态下不做任何操作
if ( mStatusManager.isV2XShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
}
// 搜索页面显示时不做任何策略
if ( mStatusManager.isSearchUIShow() ) {
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
return;
}
@@ -523,6 +562,7 @@ public class MogoServices implements IMogoMapListener,
if ( mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel() ) {
// 缩放级别缩小
notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback );
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
} else if ( mLastZoomLevel - zoom < 0 ) {
mLastZoomLevel = zoom;
@@ -547,6 +587,28 @@ public class MogoServices implements IMogoMapListener,
return Math.max(radius, 1000);
}
/**
* 平移地图刷新策略
*/
private boolean invokeRefreshWhenTranslationByUser( MogoLatLng latLng ) {
try {
float factor;
if ( mIsVertical ) {
factor = getMapCameraFactWidth();
} else {
factor = getMapCameraFactHeight();
}
if ( factor == 0.0f ) {
return false;
}
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
return distance > ( factor / 2 );
} catch ( Exception e ) {
Logger.e( TAG, e, "warming. " );
return false;
}
}
@Override
public void onLocationChanged( MogoLocation location ) {
@@ -822,8 +884,20 @@ public class MogoServices implements IMogoMapListener,
MoGoAiCloudRealTime.stopRealTime();
}
public Location getLastCarLocation() {
return mLastCarLocation;
}
private boolean mLastStatusIsVr = false;
public boolean isLastStatusIsVr() {
return mLastStatusIsVr;
}
public void setLastStatusIsVr(boolean lastStatusIsVr) {
this.mLastStatusIsVr = lastStatusIsVr;
}
@Override
public void onMapModeChanged( EnumMapUI ui ) {
Log.i(TAG, "onMapModeChanged:" + ui + " mLastStatusIsVr" + mLastStatusIsVr);
@@ -834,7 +908,7 @@ public class MogoServices implements IMogoMapListener,
MapCenterPointStrategy.resetByChangeMode();
MapMarkerManager.getInstance().redrawMarkerByStyleChanged();
if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_LENOVO ) {
AIAssist.getInstance( mContext ).speakTTSVoice( "已开启鹰眼模式" );
AIAssist.getInstance( mContext ).speakTTSVoice( "已开启鹰眼模式" );
}
mLastStatusIsVr = true;
}
@@ -845,7 +919,7 @@ public class MogoServices implements IMogoMapListener,
MapCenterPointStrategy.resetByChangeMode();
MapMarkerManager.getInstance().redrawMarkerByStyleChanged();
if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_LENOVO ) {
AIAssist.getInstance( mContext ).speakTTSVoice( "已退出鹰眼模式" );
AIAssist.getInstance( mContext ).speakTTSVoice( "已退出鹰眼模式" );
}
}
}

View File

@@ -26,16 +26,16 @@ public interface RefreshApiService {
@POST( "/yycp-launcherSnapshot/launcherSnapshot/querySnapshotAsync" )
Observable< BaseData > refreshData( @FieldMap Map< String, Object > parameters );
/*
/**
* 大而全
* */
*/
@FormUrlEncoded
@POST( "/yycp-launcherSnapshot/launcherSnapshot/querySnapshotSync" )
Observable< MarkerResponse > refreshDataSync( @FieldMap Map< String, Object > parameters );
/*
/**
* 周边在线车辆
* */
*/
@FormUrlEncoded
@POST( "/yycp-launcherSnapshot/user/queryOnLineCarWithRoute" )
Observable< MarkerResponse > queryOnLineCarWithRoute( @FieldMap Map< String, Object > parameters );