修改默认播报/后台配置播报策略

This commit is contained in:
wangcongtao
2020-08-27 11:37:55 +08:00
parent f5a2ebc384
commit 011f9ee7aa

View File

@@ -72,6 +72,11 @@ class LauncherCardRefresher {
private LauncherCardAdvertisementData.LauncherCardAdvertisement mDefaultLauncherCardConfig;
private List< LauncherCardAdvertisementData.LauncherCardAdvertisement > mAdvertisements;
/**
* 默认播报/后台配置播报次数限制
*/
private int mDefaultConfigCounter = 0;
private LauncherCardRefresher( Context context ) {
mContext = context;
mRefreshModel = new RefreshModel( mContext );
@@ -161,36 +166,24 @@ class LauncherCardRefresher {
startExplorerWayStrategy();
// 延时一分钟加载数据已保证accOn之后网络恢复正常
mHandler.sendEmptyMessageDelayed( MSG_START_REFRESH_ADVERTISEMENT, ONE_MINUTE );
mDefaultConfigCounter = 0;
}
/**
* 道路事件和车友播报
*/
private void startExplorerWayStrategy() {
int counter = SharedPrefsMgr.getInstance( mContext ).getInt( KEY_LauncherCardTipCounter, 0 );
if ( counter >= 5 ) {
long lastTipTime = SharedPrefsMgr.getInstance( mContext ).getLong( KEY_LauncherCardTipLastTipTime, 0L );
if ( System.currentTimeMillis() - lastTipTime < 10 * ONE_MINUTE ) {
stop();
return;
} else {
SharedPrefsMgr.getInstance( mContext ).putInt( KEY_LauncherCardTipCounter, 0 );
counter = 0;
SharedPrefsMgr.getInstance( mContext ).putLong( KEY_LauncherCardTipLastTipTime, 0L );
}
}
mHandler.sendEmptyMessageDelayed( mRefreshStrategy.getMsgType(), mRefreshStrategy.getInterval() );
mRefreshStop = false;
mStart = true;
SharedPrefsMgr.getInstance( mContext ).putInt( KEY_LauncherCardTipCounter, ++counter );
SharedPrefsMgr.getInstance( mContext ).putLong( KEY_LauncherCardTipLastTipTime, System.currentTimeMillis() );
}
public void stop() {
mRefreshStop = true;
mStart = false;
mHandler.removeMessages( MSG_REFRESH );
mHandler.removeMessages( MSG_REFRESH_DEFAULT_CARD );
mHandler.removeMessages( MSG_START_LOOP_DEFAULT_CARD );
Logger.d( TAG, "stop" );
}
@@ -328,11 +321,32 @@ class LauncherCardRefresher {
}
}
}
if ( mDefaultConfigCounter++ >= 3 ) {
return;
}
int counter = SharedPrefsMgr.getInstance( mContext ).getInt( KEY_LauncherCardTipCounter, 0 );
if ( counter >= 5 ) {
long lastTipTime = SharedPrefsMgr.getInstance( mContext ).getLong( KEY_LauncherCardTipLastTipTime, 0L );
if ( System.currentTimeMillis() - lastTipTime < 10 * ONE_MINUTE ) {
stop();
return;
} else {
SharedPrefsMgr.getInstance( mContext ).putInt( KEY_LauncherCardTipCounter, 0 );
counter = 0;
SharedPrefsMgr.getInstance( mContext ).putLong( KEY_LauncherCardTipLastTipTime, 0L );
}
}
SharedPrefsMgr.getInstance( mContext ).putInt( KEY_LauncherCardTipCounter, ++counter );
SharedPrefsMgr.getInstance( mContext ).putLong( KEY_LauncherCardTipLastTipTime, System.currentTimeMillis() );
try {
speakTTS( mLaunchTTSText, true );
} catch ( Exception e ) {
e.printStackTrace();
}
startLoopDefaultConfigStrategy();
startLoopRenderAdvertisements();
}
@@ -404,14 +418,22 @@ class LauncherCardRefresher {
}
}
/**
* 默认播报 / 后台配置默认项播报策略
*/
private void startLoopDefaultConfigStrategy() {
Message msg = Message.obtain();
msg.what = MSG_START_LOOP_DEFAULT_CARD;
mHandler.sendMessageDelayed( msg, 3 * ONE_MINUTE );
}
/**
* 开始按策略展示广告
*/
private void startLoopRenderAdvertisements() {
Message msg = Message.obtain();
if ( mAdvertisements == null || mAdvertisements.isEmpty() ) {
msg.what = MSG_START_LOOP_DEFAULT_CARD;
mHandler.sendMessageDelayed( msg, 3 * ONE_MINUTE );
return;
} else {
try {
LauncherCardAdvertisementData.LauncherCardAdvertisement advertisement = mAdvertisements.get( 0 );