From c25782dc84b4803eefe9dccf67f3fa60f925a54c Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 10:41:03 +0800 Subject: [PATCH 01/13] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E7=BD=91=E7=BB=9C?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E3=80=81=E6=9B=B4=E6=94=B9=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E5=92=8C=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E8=B6=85=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/launchercard/LauncherCardRefresher.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 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 7675cc9b51..a014376228 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 @@ -21,6 +21,7 @@ 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.utils.AppUtils; +import com.mogo.utils.NetworkUtils; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.RequestOptions; import com.mogo.utils.storage.SharedPrefsMgr; @@ -161,9 +162,13 @@ class LauncherCardRefresher { Logger.d( TAG, "start" ); mLaunchTTSText = mContext.getString( R.string.module_service_open_app_tip ); startExplorerWayStrategy(); - // 延时一分钟加载数据,已保证accOn之后网络恢复正常 - mHandler.sendEmptyMessageDelayed( MSG_START_REFRESH_ADVERTISEMENT, ONE_MINUTE ); mDefaultConfigCounter = 0; + // 延时加载数据,已保证accOn之后网络恢复正常 + long delay = ONE_MINUTE; + if ( NetworkUtils.isConnected( mContext ) ) { + delay = 0L; + } + mHandler.sendEmptyMessageDelayed( MSG_START_REFRESH_ADVERTISEMENT, delay ); } /** @@ -301,6 +306,7 @@ class LauncherCardRefresher { intent.putExtra( "v2x_card_button_name", mDefaultLauncherCardConfig.buttonContent ); intent.putExtra( "v2x_card_startTime", mDefaultLauncherCardConfig.startTime ); intent.putExtra( "v2x_card_endTime", mDefaultLauncherCardConfig.endTime ); + intent.putExtra( "v2x_card_is_default", true ); mContext.sendBroadcast( intent ); Logger.d( TAG, "发送默认配置广播到桌面卡片." ); if ( !TextUtils.isEmpty( mDefaultLauncherCardConfig.content ) ) { @@ -465,6 +471,8 @@ class LauncherCardRefresher { intent.putExtra( "v2x_card_button_name", advertisement.buttonContent ); intent.putExtra( "v2x_card_startTime", advertisement.startTime ); intent.putExtra( "v2x_card_endTime", advertisement.endTime ); + intent.putExtra( "v2x_card_timeout", 20 * 1000 ); + intent.putExtra( "v2x_card_is_default", false ); mContext.sendBroadcast( intent ); if ( !AppUtils.isAppForeground( mContext ) ) { speakTTS( advertisement.content, true ); From c3256f3e9f0e8931729432ab7a6638ce5705b1b8 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 10:47:19 +0800 Subject: [PATCH 02/13] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E5=9F=8B=E7=82=B9?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/service/launchercard/LauncherCardRefresher.java | 1 + .../service/network/bean/LauncherCardAdvertisementData.java | 1 + 2 files changed, 2 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 a014376228..ab96106098 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 @@ -471,6 +471,7 @@ class LauncherCardRefresher { intent.putExtra( "v2x_card_button_name", advertisement.buttonContent ); intent.putExtra( "v2x_card_startTime", advertisement.startTime ); intent.putExtra( "v2x_card_endTime", advertisement.endTime ); + intent.putExtra( "v2x_card_activity_id", advertisement.id ); intent.putExtra( "v2x_card_timeout", 20 * 1000 ); intent.putExtra( "v2x_card_is_default", false ); mContext.sendBroadcast( intent ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/LauncherCardAdvertisementData.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/LauncherCardAdvertisementData.java index cd633c1872..5edeb7193f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/LauncherCardAdvertisementData.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/LauncherCardAdvertisementData.java @@ -32,6 +32,7 @@ class LauncherCardAdvertisementData extends BaseData { * 活动展示顺序 sort */ public static class LauncherCardAdvertisement { + public String id; public String name; public int cardType; public String filePath; From 31e32aefde13253b97072f8a80449bcf476b9d19 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 12:00:36 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/service/launchercard/LauncherCardRefresher.java | 2 ++ 1 file changed, 2 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 ab96106098..534443515f 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 @@ -28,6 +28,7 @@ import com.mogo.utils.storage.SharedPrefsMgr; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Map; @@ -405,6 +406,7 @@ class LauncherCardRefresher { if ( !mAdvertisements.isEmpty() && mAdvertisements.size() > 1 ) { LauncherCardAdvertisementData.LauncherCardAdvertisement[] sorted = new LauncherCardAdvertisementData.LauncherCardAdvertisement[mAdvertisements.size()]; + sorted = mAdvertisements.toArray( sorted ); Arrays.sort( sorted, ( ( o1, o2 ) -> { return o1.sort < o2.sort ? 1 : ( o1.sort == o2.sort ? 0 : -1 ); } ) ); From c1d16d671cd3ebc4b4dbc4d7819cdb56c95c946f Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Fri, 28 Aug 2020 12:03:37 +0800 Subject: [PATCH 04/13] opt --- .../java/com/mogo/module/extensions/utils/TopViewAnimHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 37ba24720c..465e2dbf3c 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -671,6 +671,7 @@ public class TopViewAnimHelper { viewCaches.remove(child); IMogoTopViewStatusListener listener = statusListenerMap.remove(child); if (listener != null) { + listener.beforeViewRemoveAnim(child); listener.onViewRemoved(child); } } From 01aa1c3baa39d83d18f297d50d29db07806b0e9c Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 15:47:49 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=A0=E4=B8=BAticke?= =?UTF-8?q?t=E5=88=B7=E6=96=B0=E4=B8=8D=E5=8F=8A=E6=97=B6=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=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 ) { From 9d982632afce3fcc5fb1e8274fa49c843598dc21 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 15:59:59 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=A0=E4=B8=BAticke?= =?UTF-8?q?t=E5=88=B7=E6=96=B0=E4=B8=8D=E5=8F=8A=E6=97=B6=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20-=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/base/services/passport/PassportManager.java | 2 +- .../com/mogo/base/services/passport/PassportManager.java | 3 ++- .../module/service/launchercard/LauncherCardRefresher.java | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java index ede1bc990e..a1f374e4af 100644 --- a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java +++ b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java @@ -61,7 +61,7 @@ class PassportManager implements IMogoPassportManager { @Override public void onFailure( int code, String msg ) { - Logger.d( TAG, "fail" ); + Logger.d( TAG, "fail code= %s, msg=%s", code, msg ); if ( callback != null ) { callback.onError( code, msg ); } diff --git a/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java b/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java index 8f77ef1ecb..5a9c740370 100644 --- a/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java +++ b/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java @@ -69,7 +69,7 @@ class PassportManager implements IMogoPassportManager { @Override public void onFailure( int code ) { - Logger.d( TAG, "fail" ); + Logger.d( TAG, "fail: code = %s", code ); if ( callback != null ) { callback.onError( code, "getTicket error." ); } @@ -79,6 +79,7 @@ class PassportManager implements IMogoPassportManager { @Override public void onFailure( int code, String msg ) { + Logger.d( TAG, "onFailure: code = %s, msg = %s", code, msg ); if ( callback != null ) { callback.onError( code, "login: " + msg ); } 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 8373bb03ad..41a519a1a6 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 @@ -397,6 +397,9 @@ class LauncherCardRefresher { MarkerServiceHandler.getApis().getPassportManagerApi().requestTicket( new IMogoTicketCallback() { @Override public void onTicketGot( String ticket ) { + if ( mRefreshTicketCounter < 3 ) { + startAdvertisementsStrategy(); + } } @Override @@ -405,9 +408,6 @@ class LauncherCardRefresher { @Override public void onLoginSuccess( String token, String sn ) { - if ( mRefreshTicketCounter < 3 ) { - startAdvertisementsStrategy(); - } } } ); } From 7946d8a1df5271de20e02340cf92e2d38bd0b5da Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 16:07:17 +0800 Subject: [PATCH 07/13] opt --- .../module/service/launchercard/LauncherCardRefresher.java | 4 ++++ 1 file changed, 4 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 41a519a1a6..eb4181fa8c 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 @@ -394,9 +394,11 @@ class LauncherCardRefresher { 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(); } @@ -404,10 +406,12 @@ class LauncherCardRefresher { @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 ); } } ); } From 75f2bafb6eaa2f5af79d05dc84b14c55bf932a1e Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 16:17:46 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E5=8D=A1=E7=89=87=E5=88=B7=E6=96=B0debug?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E5=8E=BB=E6=8E=89ticket=E5=92=8C=E9=AA=8C?= =?UTF-8?q?=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../launchercard/LauncherCardRefresher.java | 38 +++---------------- 1 file changed, 5 insertions(+), 33 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 eb4181fa8c..0a4dac8b63 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 @@ -75,11 +75,6 @@ class LauncherCardRefresher { */ private int mDefaultConfigCounter = 0; - /** - * 因为缓存ticket失效导致失败的情况,需要重新请求ticket然后再次获取数据,这里重试3次 - */ - private int mRefreshTicketCounter = 0; - private LauncherCardRefresher( Context context ) { mContext = context; mRefreshModel = new RefreshModel( mContext ); @@ -170,7 +165,6 @@ 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 ) ) { @@ -359,6 +353,11 @@ 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() ) @@ -383,39 +382,12 @@ 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; From 15c61e2dfc0af25d4c793c6ad9c1dd0fb649da90 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 16:22:01 +0800 Subject: [PATCH 09/13] rlgl --- .../launchercard/LauncherCardRefresher.java | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 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 0a4dac8b63..30ee36e339 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 @@ -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; From d3a38a01b235428380f46b22b4408fcf9d50566c Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 17:54:53 +0800 Subject: [PATCH 10/13] rlgl - 2 --- .../launchercard/LauncherCardRefresher.java | 106 +++++++++--------- 1 file changed, 54 insertions(+), 52 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 30ee36e339..cca44dd636 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 @@ -29,7 +29,6 @@ import com.mogo.utils.storage.SharedPrefsMgr; import java.util.ArrayList; import java.util.Arrays; -import java.util.Comparator; import java.util.List; import java.util.Map; @@ -54,13 +53,15 @@ class LauncherCardRefresher { private static volatile LauncherCardRefresher sInstance; // 刷新道路事件/车友 - public static final int MSG_REFRESH = 2020; + public static final int MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA = 2020; + // 开始引导策略 + public static final int MSG_INDUCE = 2019; // 刷新卡片默认显示内容 public static final int MSG_REFRESH_DEFAULT_CARD = 2021; // 刷新卡片广告 public static final int MSG_REFRESH_ADVERTISEMENT = 2022; - // 开始刷新广告数据 - public static final int MSG_START_REFRESH_ADVERTISEMENT = 2023; + // 加载网络配置数据 + public static final int MSG_LOAD_NET_CONFIG = 2023; // 默认播报 public static final int MSG_START_LOOP_DEFAULT_CARD = 2024; public static final long ONE_MINUTE = 60 * 1000L; @@ -114,20 +115,24 @@ class LauncherCardRefresher { return; } switch ( msg.what ) { - case MSG_REFRESH: - try { - handleRefreshMsg(); - } catch ( Exception e ) { - Logger.e( TAG, e, "error when refresh launcher card." ); - } + case MSG_LOAD_NET_CONFIG: + loadNetworkConfigStrategy(); break; case MSG_REFRESH_DEFAULT_CARD: renderDefaultLauncherCardConfig(); - // 开启广告 - startLoopRenderAdvertisements(); mRefreshStrategy = mRefreshStrategy.getNext(); restart(); break; + case MSG_INDUCE: + handleInduceStrategy(); + break; + case MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA: + try { + handleRefreshExplorerWayOrOnlineCarMsg(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error when refresh launcher card." ); + } + break; case MSG_START_LOOP_DEFAULT_CARD: renderDefaultLauncherCardConfig(); break; @@ -135,9 +140,6 @@ class LauncherCardRefresher { int index = msg.arg1;// 当前广告索引 loopRenderAdvertisements( index ); break; - case MSG_START_REFRESH_ADVERTISEMENT: - startAdvertisementsStrategy(); - break; } } }; @@ -154,8 +156,8 @@ class LauncherCardRefresher { new LauncherCardRefreshStrategy( 5 * ONE_MINUTE, null, - MSG_REFRESH ), - MSG_REFRESH ), + MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA ), + MSG_INDUCE ), MSG_REFRESH_DEFAULT_CARD ); @@ -168,7 +170,6 @@ class LauncherCardRefresher { } Logger.d( TAG, "start" ); mLaunchTTSText = mContext.getString( R.string.module_service_open_app_tip ); - startExplorerWayStrategy(); mDefaultConfigCounter = 0; mRefreshTicketCounter = 0; // 延时加载数据,已保证accOn之后网络恢复正常 @@ -176,13 +177,14 @@ class LauncherCardRefresher { if ( NetworkUtils.isConnected( mContext ) ) { delay = 0L; } - mHandler.sendEmptyMessageDelayed( MSG_START_REFRESH_ADVERTISEMENT, delay ); + mHandler.sendEmptyMessageDelayed( MSG_LOAD_NET_CONFIG, delay ); + startInduceStrategy(); } /** - * 道路事件和车友播报 + * 引导策略:本地策略 & 网络策略 */ - private void startExplorerWayStrategy() { + private void startInduceStrategy() { mHandler.sendEmptyMessageDelayed( mRefreshStrategy.getMsgType(), mRefreshStrategy.getInterval() ); mRefreshStop = false; mStart = true; @@ -191,9 +193,12 @@ class LauncherCardRefresher { public void stop() { mRefreshStop = true; mStart = false; - mHandler.removeMessages( MSG_REFRESH ); + mHandler.removeMessages( MSG_INDUCE ); + mHandler.removeMessages( MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA ); mHandler.removeMessages( MSG_REFRESH_DEFAULT_CARD ); mHandler.removeMessages( MSG_START_LOOP_DEFAULT_CARD ); + mHandler.removeMessages( MSG_REFRESH_ADVERTISEMENT ); + mHandler.removeMessages( MSG_LOAD_NET_CONFIG ); Logger.d( TAG, "stop" ); } @@ -202,21 +207,40 @@ class LauncherCardRefresher { return; } mRefreshStop = false; - mHandler.removeMessages( MSG_REFRESH ); + mHandler.removeMessages( mRefreshStrategy.getMsgType() ); mHandler.sendEmptyMessageDelayed( mRefreshStrategy.getMsgType(), mRefreshStrategy.getInterval() ); } - private void handleRefreshMsg() { + /** + * 开始诱导策略 + * 第一次如果有活动,则优先播报活动,否则播报道路事件/车友 + * 后面的按各自的时间间隔播报 + */ + private void handleInduceStrategy() { + if ( mAdvertisements != null && !mAdvertisements.isEmpty() ) { + loopRenderAdvertisements( 0 ); + startNextRefreshStrategy(); + } else { + handleRefreshExplorerWayOrOnlineCarMsg(); + } + } + + private void startNextRefreshStrategy(){ + mRefreshStrategy = mRefreshStrategy.getNext(); + restart(); + } + + private void handleRefreshExplorerWayOrOnlineCarMsg() { MogoLocation location = MarkerServiceHandler.getMogoLocationClient().getLastKnowLocation(); if ( location == null ) { restart(); return; } MogoLatLng latLng = new MogoLatLng( location.getLatitude(), location.getLongitude() ); - handleRefreshData( latLng, mRefreshStrategy.getType() ); + handleRefreshExplorerWayOrOnlineCarData( latLng, mRefreshStrategy.getType() ); } - private void handleRefreshData( MogoLatLng latLng, LauncherCardRefreshType type ) { + private void handleRefreshExplorerWayOrOnlineCarData( MogoLatLng latLng, LauncherCardRefreshType type ) { mRefreshModel.refreshDataSync( latLng, mRefreshStrategy.getRadius(), mRefreshStrategy.getLimit(), @@ -224,14 +248,12 @@ class LauncherCardRefresher { @Override public void onSuccess( MarkerResponse response ) { notifyRefreshChanged( type, response ); - mRefreshStrategy = mRefreshStrategy.getNext(); - restart(); + startNextRefreshStrategy(); } @Override public void onFail() { - mRefreshStrategy = mRefreshStrategy.getNext(); - restart(); + startNextRefreshStrategy(); } } ); } @@ -355,7 +377,7 @@ class LauncherCardRefresher { /** * 请求广告数据 */ - private void startAdvertisementsStrategy() { + private void loadNetworkConfigStrategy() { final Map< String, Object > query = new ParamsProvider.Builder( mContext ) .append( "modelType", 30 ) .build(); @@ -400,7 +422,7 @@ class LauncherCardRefresher { public void onTicketGot( String ticket ) { Logger.d( TAG, "ticket=%s", ticket ); if ( mRefreshTicketCounter < 3 ) { - startAdvertisementsStrategy(); + loadNetworkConfigStrategy(); } } @@ -458,26 +480,6 @@ class LauncherCardRefresher { mHandler.sendMessageDelayed( msg, mDefaultTTSPlayInterval ); } - /** - * 开始按策略展示广告 - */ - private void startLoopRenderAdvertisements() { - Message msg = Message.obtain(); - if ( mAdvertisements == null || mAdvertisements.isEmpty() ) { - return; - } else { - try { - LauncherCardAdvertisementData.LauncherCardAdvertisement advertisement = mAdvertisements.get( 0 ); - msg.what = MSG_REFRESH_ADVERTISEMENT; - msg.arg1 = 1; - mHandler.sendMessageDelayed( msg, advertisement.popupNum * ONE_MINUTE ); - } catch ( Exception e ) { - e.printStackTrace(); - } - } - - } - private void loopRenderAdvertisements( int index ) { try { index = index % mAdvertisements.size(); From 812cb7d6d97cc3be91a6d8ddc9d78c4af1b0952e Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 28 Aug 2020 18:00:12 +0800 Subject: [PATCH 11/13] rlgl - 3 --- .../module/service/launchercard/LauncherCardRefresher.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 cca44dd636..e140c4e1ff 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 @@ -225,7 +225,7 @@ class LauncherCardRefresher { } } - private void startNextRefreshStrategy(){ + private void startNextRefreshStrategy() { mRefreshStrategy = mRefreshStrategy.getNext(); restart(); } @@ -286,6 +286,9 @@ class LauncherCardRefresher { } } + Logger.d( TAG, "返回数据情况:道路事件:%s, 车友: %s", response.getResult().getExploreWay() == null ? 0 : response.getResult().getExploreWay().size(), + response.getResult().getOnlineCar() == null ? 0 : response.getResult().getOnlineCar().size() ); + if ( size == 0 ) { return false; } From e8269f413100a3e812040402a3a1832c65536257 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Mon, 31 Aug 2020 09:56:45 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8Dinfla?= =?UTF-8?q?te=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/commons/mvp/MvpFragment.java | 1 - 1 file changed, 1 deletion(-) diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java index 0e788e140a..6e9fcd10be 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java @@ -41,7 +41,6 @@ public abstract class MvpFragment> exten viewGroup.removeView( mRootView ); } } - mRootView = inflater.inflate(getLayoutId(), container, false); return mRootView; } From c43f929ac29cbb6607a55abc514adeeb29e1bfa2 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Mon, 31 Aug 2020 09:59:10 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9mRootView=E5=AE=9E?= =?UTF-8?q?=E4=BE=8B=E4=B8=BAnull=E6=97=B6=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/commons/mvp/MvpFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java index 6e9fcd10be..5d299590a0 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java @@ -89,7 +89,7 @@ public abstract class MvpFragment> exten @Nullable protected T findViewById(int id) { if (mRootView == null) { - mRootView = getView().findViewById(id); + mRootView = getView(); } if (mRootView != null) { return (T) mRootView.findViewById(id);