This commit is contained in:
wangcongtao
2020-08-28 16:22:01 +08:00
parent 75f2bafb6e
commit 15c61e2dfc

View File

@@ -75,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 );
@@ -165,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 ) ) {
@@ -353,11 +359,6 @@ class LauncherCardRefresher {
final Map< String, Object > query = new ParamsProvider.Builder( mContext )
.append( "modelType", 30 )
.build();
if ( DebugConfig.isDebug() ) {
// debug 去掉ticket和验签
query.remove( "ticket" );
query.remove( "sig" );
}
mZhidaoRefreshModel.getRefreshApiService().getCarAdvertisingList( query )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
@@ -382,12 +383,39 @@ 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++;
Logger.d( TAG, "刷新ticket" );
MarkerServiceHandler.getApis().getPassportManagerApi().requestTicket( new IMogoTicketCallback() {
@Override
public void onTicketGot( String ticket ) {
Logger.d( TAG, "ticket=%s", ticket );
if ( mRefreshTicketCounter < 3 ) {
startAdvertisementsStrategy();
}
}
@Override
public void onError( int code, String msg ) {
Logger.d( TAG, "code=%s, msg=%s", code, msg );
}
@Override
public void onLoginSuccess( String token, String sn ) {
Logger.d( TAG, "token=%s, sn=%s", token, sn );
}
} );
}
private void handleGotCarAdvertisingList( List< LauncherCardAdvertisementData.LauncherCardAdvertisement > data ) {
if ( data == null ) {
mAdvertisements = null;