This commit is contained in:
wangcongtao
2020-03-13 19:07:19 +08:00
parent 0f4f44e30f
commit cb970a224d
7 changed files with 87 additions and 6 deletions

View File

@@ -157,7 +157,7 @@ public class MogoServices implements IMogoMapListener,
return;
}
mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL;
if ( mRefreshRemainingTime == 0 ) {
if ( mRefreshRemainingTime <= 0 ) {
Logger.d( TAG, "move to center and refresh data." );
invokeAutoRefresh();
} else {
@@ -503,7 +503,6 @@ public class MogoServices implements IMogoMapListener,
if ( factor == 0.0f ) {
return false;
}
Logger.d( TAG, "invokeRefreshWhenTranslationByUsermLastCustomRefreshCenterLocation = %s, latLng = %s", mLastCustomRefreshCenterLocation, latLng );
float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation );
Trace.endSection();
return distance > factor;
@@ -592,8 +591,7 @@ public class MogoServices implements IMogoMapListener,
switch ( descriptor ) {
case USER_INTERACTED:
if ( isTrue ) {
mRefreshRemainingTime = ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT;
Logger.i( TAG, "用户状态改变,下次刷新时间:%ss后", mRefreshRemainingTime );
restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT );
}
break;
case SEARCH_UI:
@@ -636,6 +634,21 @@ public class MogoServices implements IMogoMapListener,
}
}
public void restartAutoRefreshAtTime( int time ) {
if ( time < 0 ) {
Logger.w( TAG, "ignore refresh request case time < 0" );
return;
}
stopAutoRefreshStrategy();
mRefreshRemainingTime = time;
long delay = ServiceConst.DECREASE_INTERVAL;
if( mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL ){
delay = mRefreshRemainingTime;
}
mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay );
Logger.i( TAG, "下次刷新时间:%ss后", mRefreshRemainingTime );
}
public void refreshStrategy() {
Logger.d( TAG, "move to center and refresh data." );
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );

View File

@@ -0,0 +1,28 @@
package com.mogo.module.service.strategy;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.module.service.MogoServices;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
/**
* @author congtaowang
* @since 2020-03-13
* <p>
* 描述
*/
@Route( path = MogoServicePaths.PATH_REFRESH_STRATEGY_API )
public class MogoRefreshStrategyController implements IMogoRefreshStrategyController {
@Override
public void restartAutoRefreshAtTime( int delay ) {
MogoServices.getInstance().restartAutoRefreshAtTime( delay );
}
@Override
public void init( Context context ) {
}
}