From 01aa1c3baa39d83d18f297d50d29db07806b0e9c Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 15:47:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=A0=E4=B8=BAticket?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E4=B8=8D=E5=8F=8A=E6=97=B6=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../launchercard/LauncherCardRefresher.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) 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 534443515f..8373bb03ad 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 @@ -20,6 +20,7 @@ import com.mogo.module.service.network.RefreshCallback; import com.mogo.module.service.network.RefreshModel; import com.mogo.module.service.network.ZhidaoRefreshModel; import com.mogo.module.service.network.bean.LauncherCardAdvertisementData; +import com.mogo.service.passport.IMogoTicketCallback; import com.mogo.utils.AppUtils; import com.mogo.utils.NetworkUtils; import com.mogo.utils.logger.Logger; @@ -74,6 +75,11 @@ class LauncherCardRefresher { */ private int mDefaultConfigCounter = 0; + /** + * 因为缓存ticket失效导致失败的情况,需要重新请求ticket然后再次获取数据,这里重试3次 + */ + private int mRefreshTicketCounter = 0; + private LauncherCardRefresher( Context context ) { mContext = context; mRefreshModel = new RefreshModel( mContext ); @@ -164,6 +170,7 @@ class LauncherCardRefresher { mLaunchTTSText = mContext.getString( R.string.module_service_open_app_tip ); startExplorerWayStrategy(); mDefaultConfigCounter = 0; + mRefreshTicketCounter = 0; // 延时加载数据,已保证accOn之后网络恢复正常 long delay = ONE_MINUTE; if ( NetworkUtils.isConnected( mContext ) ) { @@ -376,9 +383,33 @@ class LauncherCardRefresher { @Override public void onError( String message, int code ) { super.onError( message, code ); + if ( code == 100046 ) { + refreshTicket(); + } Logger.e( TAG, "获取配置失败 msg = %s, code = %s", message, code ); } } ); + + } + + private void refreshTicket() { + mRefreshTicketCounter++; + MarkerServiceHandler.getApis().getPassportManagerApi().requestTicket( new IMogoTicketCallback() { + @Override + public void onTicketGot( String ticket ) { + } + + @Override + public void onError( int code, String msg ) { + } + + @Override + public void onLoginSuccess( String token, String sn ) { + if ( mRefreshTicketCounter < 3 ) { + startAdvertisementsStrategy(); + } + } + } ); } private void handleGotCarAdvertisingList( List< LauncherCardAdvertisementData.LauncherCardAdvertisement > data ) {