This commit is contained in:
wangcongtao
2020-01-10 13:44:37 +08:00
parent 5510ecd57f
commit 0b9d1c08b7
2 changed files with 30 additions and 3 deletions

View File

@@ -161,6 +161,9 @@ public class MogoServiceProvider implements IMogoModuleProvider,
}
private void invokeAutoRefreshStrategy() {
if ( mStatusManager.isSearchUIShow() ) {
return;
}
mRefreshRemainingTime = mAutoRefreshStrategy.getInterval();
mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE );
mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, ServiceConst.DECREASE_INTERVAL );
@@ -427,6 +430,9 @@ public class MogoServiceProvider implements IMogoModuleProvider,
* 刷新数据
*/
private void notifyRefreshData( MogoLatLng latLng, int radius, RefreshCallback callback ) {
if ( mStatusManager.isSearchUIShow() ) {
return;
}
Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" );
mRefreshModel.refreshData( latLng, radius, callback );
}
@@ -458,9 +464,24 @@ public class MogoServiceProvider implements IMogoModuleProvider,
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
if ( descriptor == StatusDescriptor.USER_INTERACTED && isTrue ) {
mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval();
Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime );
switch ( descriptor ) {
case USER_INTERACTED:
if ( isTrue ) {
mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval();
Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime );
}
break;
case SEARCH_UI:
if ( isTrue ) {
// 搜索时,不在自动刷新打点策略
stopAutoRefreshStrategy();
} else {
// 搜索后,打开打点策略
if ( mAutoRefreshCallback != null ) {
mAutoRefreshCallback.onSuccess();
}
}
break;
}
}

View File

@@ -69,6 +69,12 @@ public class MogoStatusManager implements IMogoStatusManager {
return get_bool_val( StatusDescriptor.USER_INTERACTED );
}
@Override
public boolean isSearchUIShow() {
return get_bool_val( StatusDescriptor.SEARCH_UI );
}
private boolean get_bool_val( StatusDescriptor descriptor ) {
Boolean val = mStatus.get( descriptor );
return val == null ? false : val;