From 011f9ee7aa5931fd5f40b29ac359179704c82693 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 27 Aug 2020 11:37:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E6=92=AD?= =?UTF-8?q?=E6=8A=A5/=E5=90=8E=E5=8F=B0=E9=85=8D=E7=BD=AE=E6=92=AD?= =?UTF-8?q?=E6=8A=A5=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../launchercard/LauncherCardRefresher.java | 56 +++++++++++++------ 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java index 4a770d61bb..283006d91f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/launchercard/LauncherCardRefresher.java @@ -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 );