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

@@ -48,7 +48,7 @@ MOGO_MODULE_BACK_VERSION=1.0.2-SNAPSHOT
## 工程外部模块
# 探路
MOGO_MODULE_TANLU_VERSION=1.0.1-SNAPSHOT
MOGO_MODULE_TANLU_VERSION=1.0.2-SNAPSHOT
# 车聊聊
CARCHATTING_VERSION=1.0.2-SNAPSHOT
# 车聊聊接口
@@ -64,7 +64,7 @@ MOGO_MODULE_PUSH_VERSION=1.0.0-SNAPSHOT
# 广告资源位
MOGO_MODULE_AD_CARD_VERSION=1.0.0-SNAPSHOT
# 新鲜水
MOGO_MODULE_FRESH_NEWS_VERSION=1.0.0-SNAPSHOT
MOGO_MODULE_FRESH_NEWS_VERSION=1.0.2-SNAPSHOT
# 卡片效果
CARD_LIBRARY_VERSION=1.0.0-SNAPSHOT

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

View File

@@ -19,6 +19,7 @@ import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
import com.mogo.service.windowview.IMogoWindowManager;
/**
@@ -146,4 +147,11 @@ public interface IMogoServiceApis extends IProvider {
* @return
*/
IMogoActionManager getActionManagerApi();
/**
* 获取刷新策略控制接口
*
* @return
*/
IMogoRefreshStrategyController getRefreshStrategyControllerApi();
}

View File

@@ -148,4 +148,10 @@ public class MogoServicePaths {
*/
@Deprecated
public static final String PATH_ACTION_APIS = "/mogoaction/api";
/**
* 刷新策略控制
*/
@Deprecated
public static final String PATH_REFRESH_STRATEGY_API = "refreshstrategy/api";
}

View File

@@ -0,0 +1,20 @@
package com.mogo.service.strategy;
import com.alibaba.android.arouter.facade.template.IProvider;
/**
* @author congtaowang
* @since 2020-03-13
* <p>
* 刷新策略控制
*/
public interface IMogoRefreshStrategyController extends IProvider {
/**
* 中断当前刷新,在 delay ms 后再次刷新
*
* @param delay 单位ms 0 为则立即刷新,为负值则忽略
*/
void restartAutoRefreshAtTime( int delay );
}

View File

@@ -28,6 +28,7 @@ import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
import com.mogo.service.windowview.IMogoWindowManager;
import com.mogo.utils.logger.Logger;
@@ -135,6 +136,11 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance( IMogoActionManager.class, MogoServicePaths.PATH_ACTION_APIS );
}
@Override
public IMogoRefreshStrategyController getRefreshStrategyControllerApi() {
return getApiInstance( IMogoRefreshStrategyController.class, MogoServicePaths.PATH_REFRESH_STRATEGY_API );
}
private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {
T inst = SingletonsHolder.get( clazz );
if ( inst == null ) {