From a5b450f765b0c799cfd9b85651c42f71576cedea Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 23 Sep 2020 14:05:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/module_ext_layout_entrance.xml | 3 +- .../com/mogo/module/service/MogoServices.java | 27 ++++++++++++- .../com/mogo/module/service/ServiceConst.java | 10 +++++ .../launchercard/LauncherCardRefresher.java | 2 +- .../service/marker/MapMarkerManager.java | 2 +- .../module/service/network/RefreshBody.java | 1 + .../module/service/network/RefreshModel.java | 4 +- .../panel/OnlineCarPanelPresenter.java | 1 + ...ule_services_fragment_online_car_panel.xml | 5 ++- .../module/widgets/AutoNaviIntentHandler.java | 36 +++++++++++++----- .../module_widgets_app_handler_close.png | Bin 0 -> 372 bytes .../module_widgets_app_handler_open.png | Bin 0 -> 360 bytes .../module_widgets_app_handler_close.png | Bin 0 -> 372 bytes .../module_widgets_app_handler_open.png | Bin 0 -> 360 bytes .../module_widgets_app_handler_close.png | Bin 0 -> 577 bytes .../module_widgets_app_handler_open.png | Bin 0 -> 564 bytes .../drawable/module_widgets_app_body_bkg.xml | 2 +- .../layout/module_widgets_app_entrance.xml | 31 ++++++++------- .../src/main/res/values-ldpi/dimens.xml | 2 + .../src/main/res/values-mdpi/dimens.xml | 2 + .../res/values-xhdpi-1920x1000/dimens.xml | 4 +- .../src/main/res/values-xhdpi/dimens.xml | 4 +- .../src/main/res/values/dimens.xml | 4 +- 23 files changed, 101 insertions(+), 39 deletions(-) create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_handler_close.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_handler_open.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-mdpi/module_widgets_app_handler_close.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-mdpi/module_widgets_app_handler_open.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-xhdpi/module_widgets_app_handler_close.png create mode 100644 modules/mogo-module-widgets/src/main/res/drawable-xhdpi/module_widgets_app_handler_open.png diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index fc9358f174..b5da488ae6 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -44,9 +44,8 @@ android:layout_marginTop="@dimen/module_ext_camera_button_marginTop" android:background="@drawable/module_ext_dw_navi_info_panel_bkg" android:drawableLeft="@drawable/module_ext_destination_online_car_dw" - android:gravity="center" android:drawablePadding="@dimen/module_ext_destination_online_car_drawablePadding" - android:paddingTop="@dimen/dp_14" + android:gravity="center_vertical" android:text="@string/module_ext_destination_online_car_text" android:visibility="gone" android:layout_marginLeft="@dimen/module_common_shadow_width_pos" diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 27ab6142e5..aacf70217f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -200,6 +200,9 @@ public class MogoServices implements IMogoMapListener, invokeAutoRefresh(); } break; + case ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH: + handleCalculationNotHomeCompanyDistanceForPush(); + break; } } @@ -855,7 +858,6 @@ public class MogoServices implements IMogoMapListener, @Override public void onIntentReceived( String command, Intent intent ) { - if ( ServiceConst.COMMAND_NEXT.equals( command ) ) { onActionDone( MogoAction.Next ); } else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) { @@ -942,6 +944,27 @@ public class MogoServices implements IMogoMapListener, @Override public void onStartNavi() { + Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush" ); + scheduleCalculationNotHomeCompanyDistanceForPush(); + } + + @Override + public void onStopNavi() { + Logger.d( TAG, "onStopNavi: remove MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH msg" ); + mHandler.removeMessages( ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + } + + /** + * 延时一分钟发起计算导航目的地推送策略 + */ + private void scheduleCalculationNotHomeCompanyDistanceForPush() { + mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH, ServiceConst.INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + } + + /** + * 发起计算导航目的地推送策略 + */ + private void handleCalculationNotHomeCompanyDistanceForPush() { String json = SpStorage.getNavigationTarget(); if ( !TextUtils.isEmpty( json ) ) { try { @@ -978,7 +1001,7 @@ public class MogoServices implements IMogoMapListener, } } ); } catch ( Exception e ) { - Logger.e( TAG, e, "onStartNavi" ); + Logger.e( TAG, e, "handleCalculationNotHomeCompanyDistanceForPush" ); } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index 8fccd82812..1fb0c5cdf2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -208,4 +208,14 @@ public class ServiceConst { */ public static final String COMMAND_ONLINE_CAR_PANEL = "com.zhidao.search.riders"; + /** + * 导航开始后,延时1分钟开启推送策略 + */ + public static final int MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH = 0x301; + + /** + * 延时1分钟开启推送策略 + */ + public static final long INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH = 60 * 1_000L; + } 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 17a0c4a293..ceee0204a2 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 @@ -151,7 +151,7 @@ class LauncherCardRefresher { private ZhidaoRefreshModel mZhidaoRefreshModel; private LauncherCardRefreshStrategy mExplorerWayOrOnlineCarDataStrategy = new LauncherCardRefreshStrategy( - 20 * ONE_MINUTE,null, MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA + 40 * ONE_MINUTE,null, MSG_EXPLORER_WAY_OR_ONLINE_CAR_DATA ); private LauncherCardRefreshStrategy mInduceStrategy = new LauncherCardRefreshStrategy( 3 * ONE_MINUTE,mExplorerWayOrOnlineCarDataStrategy, MSG_INDUCE diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index 701215fb6c..eccbd1b862 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -792,7 +792,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } Logger.d( TAG, "内部 - 请求开始" ); - mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit, new RefreshCallback() { + mRefreshModel.queryOnLineCarWithRoute( latLng, onlyFocus, onlySameCity, radius, limit,false, new RefreshCallback() { @Override public void onSuccess( Object o ) { MarkerResponse data = ( MarkerResponse ) o; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java index d1a5384490..853b8280d2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java @@ -20,6 +20,7 @@ public class RefreshBody { public boolean onlyFocus; // 是否仅查询已关注的好友 public boolean onlySameCity; // 是否仅查询注册城市相同的同城用户 public boolean viewPush; // 是否走V2X通道 ,true-401011,false -401001 + public boolean onlyRealUser; public static class LatLon { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java index 16fc3e91a2..356ec9bfac 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java @@ -124,7 +124,6 @@ public class RefreshModel { query.put( "data", data ); Logger.d( TAG, data ); - mRefreshApiService.refreshDataSync( query ) .subscribeOn( Schedulers.io() ) .observeOn( AndroidSchedulers.mainThread() ) @@ -163,12 +162,14 @@ public class RefreshModel { * @param onlyFocus 是否仅查询已关注的好友 * @param onlySameCity 是否仅查询注册城市相同的同城用户 * @param callback + * @param onlyRealUser 是否只查询真实用户 */ public void queryOnLineCarWithRoute( MogoLatLng latLng, boolean onlyFocus, boolean onlySameCity, int radius, int limit, + boolean onlyRealUser, final RefreshCallback callback ) { if ( mRefreshApiService != null ) { final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); @@ -181,6 +182,7 @@ public class RefreshModel { refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng ); refreshBody.onlyFocus = onlyFocus; refreshBody.onlySameCity = onlySameCity; + refreshBody.onlyRealUser = onlyRealUser; refreshBody.dataType.add( ServiceConst.CARD_TYPE_USER_DATA ); query.put( "data", GsonUtil.jsonFromObject( refreshBody ) ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java index b51e1943f8..44926e7c64 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelPresenter.java @@ -56,6 +56,7 @@ class OnlineCarPanelPresenter extends Presenter< IOnlineCarPanelView > implement false, mStrategy.getRadius(), LIMIT, + true, this ); } catch ( Exception e ) { diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml index 3e39b0146f..319d3bb6d1 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml @@ -41,7 +41,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:orientation="vertical"> + android:orientation="vertical" + android:visibility="gone"> = target.getLeft() - && xPos <= target.getRight() - && yPos >= target.getTop() - && yPos <= target.getBottom() ) { + private boolean isInViewArea( View root, View target, float xPos, float yPos ) { + int loc[] = new int[2]; + root.getLocationOnScreen( loc ); + int rootX = loc[0]; + int rootY = loc[1]; + + target.getLocationOnScreen( loc ); + int targetX = loc[0]; + int targetY = loc[1]; + int targetWidth = target.getMeasuredWidth(); + int targetHeight = target.getMeasuredHeight(); + + if ( xPos + rootX >= targetX + && xPos + rootX <= targetX + targetWidth + && yPos + rootY >= targetY + && yPos + rootY <= targetY + targetHeight ) { return true; } return false; @@ -156,7 +170,7 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { * @param context */ private void consultUser( Context context ) { - Map properties = new HashMap<>(); + Map< String, Object > properties = new HashMap<>(); properties.put( "type", 1 ); MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "NAVI_Find_Mogoer", properties ); if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageOnResume() ) { @@ -174,10 +188,12 @@ class AutoNaviIntentHandler implements IMogoVoiceCmdCallBack { mEnterApp.setText( R.string.module_widgets_app_entrance_short ); mConsult.setText( R.string.module_widgets_app_consult_short ); mLargeStyle = false; + mHandlerIcon.setImageResource( R.drawable.module_widgets_app_handler_open ); } else { mEnterApp.setText( R.string.module_widgets_app_entrance_text ); mConsult.setText( R.string.module_widgets_app_entrance_consult ); mLargeStyle = true; + mHandlerIcon.setImageResource( R.drawable.module_widgets_app_handler_close ); } } diff --git a/modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_handler_close.png b/modules/mogo-module-widgets/src/main/res/drawable-ldpi/module_widgets_app_handler_close.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4c01773792089e4de7b4f2c7512dcfff1aca22 GIT binary patch literal 372 zcmV-)0gL{LP)Px$E=fc|R5%f>Q#nqv782ZnE*9=V5fue#a)T692&GFC=u@P~8KC0^v>bun zh1bp%E$)z)yf@;H#*3U3jAYM$|1C2f+m2(8rfDWl5CoT|8OQP5fG`Z-2qwHytCad+ ztq0g^sr3xSS(>J|1lj`mZ&{X)MkRr!!GbmtVr`K&5Fz$Bv-`T{_Lvey(V|CYSvGAw zSyusa)9n%K$M_=@;$MeEriYa0qap}iY>~Z$B>kXJ0$MYiD_r`uv6svdOuz=~r0xA_3QM54=q S#}4`c0000Px$B1uF+R5%f(QacWUKoDgiv7@%4Glbs6Xl-Nb3Dm*^XldygEVQt+u<`~L)^-#? z;1(vD7y`ZlX0zyONF-TicHV~>b`3*)@;o<-z3=;u5k=8ZMU5Z`c2p=iNQ4k4sUZZ6 zF2&-BdE_{0{VU_vbt2=%g7^T9Av4NcdrE7U;)ew2E*Y zAe~_0P{q;nyfagN8qmSwDojaenr7s>?&kekXbqYOzji?L;VQMU?zU~O9LISuSr@e( z(5-^OxDs43^B%2djSZOC#7Nr#8*o&OEXz9JXI>clJH7y1DWS{W>`Qb20000Px$E=fc|R5%f>Q#nqv782ZnE*9=V5fue#a)T692&GFC=u@P~8KC0^v>bun zh1bp%E$)z)yf@;H#*3U3jAYM$|1C2f+m2(8rfDWl5CoT|8OQP5fG`Z-2qwHytCad+ ztq0g^sr3xSS(>J|1lj`mZ&{X)MkRr!!GbmtVr`K&5Fz$Bv-`T{_Lvey(V|CYSvGAw zSyusa)9n%K$M_=@;$MeEriYa0qap}iY>~Z$B>kXJ0$MYiD_r`uv6svdOuz=~r0xA_3QM54=q S#}4`c0000Px$B1uF+R5%f(QacWUKoDgiv7@%4Glbs6Xl-Nb3Dm*^XldygEVQt+u<`~L)^-#? z;1(vD7y`ZlX0zyONF-TicHV~>b`3*)@;o<-z3=;u5k=8ZMU5Z`c2p=iNQ4k4sUZZ6 zF2&-BdE_{0{VU_vbt2=%g7^T9Av4NcdrE7U;)ew2E*Y zAe~_0P{q;nyfagN8qmSwDojaenr7s>?&kekXbqYOzji?L;VQMU?zU~O9LISuSr@e( z(5-^OxDs43^B%2djSZOC#7Nr#8*o&OEXz9JXI>clJH7y1DWS{W>`Qb200001r;P)Px$`$;m5^;h& z6dGy}Cx{&WKk-J+n9XL#c7?ot9LJX`B?JaX!3lX;p<&yQ_%QlAmnE?i7eNED zlZAjxs@LmXK_b<1RFH{W6-=AHR=^7qVDl9y1qt)0(lmXdkHdZ*3rUxW-B_DLePfM&yPr*DgkNTZubZNZ`L15ycD!A zxqyXJwITCudch)ysw!9p5p>pw+j5Jz_vI5}b3h#UCkM2j3&y3XQ zsc>aM5zij@4f>TpQxGJXoYpo zv6f&RAz5W5!6rhL1ph-w1l3Oz85E08mV5Xu=~w-A5w4Qu=T68cPg&7F<-9MU_*H|B P00000NkvXXu0mjfXaoTe literal 0 HcmV?d00001 diff --git a/modules/mogo-module-widgets/src/main/res/drawable-xhdpi/module_widgets_app_handler_open.png b/modules/mogo-module-widgets/src/main/res/drawable-xhdpi/module_widgets_app_handler_open.png new file mode 100644 index 0000000000000000000000000000000000000000..cb114a6bcc05056b1b5e0fe01c60e1d1cb782651 GIT binary patch literal 564 zcmV-40?Yl0P)Px$?ny*JR7efARy$6^KoE^Bp8(O*5an|M#4+emL`6w~gv6&sRL~+S3VM1jfH*-u zB{j%3RlteIn?8$Y|h&rnvB6$rhL8!2F$)8|0kC0@bj?;qXPF z{myE&%42MY^8uNQ7!95%kq#*QGa8M~05ge#&?}1Krr+;>fy6c-NiVjC!pqafJkkf#mU0*#pUrh6(e>bS~) zN79#zfYHVANwKX7h$$qVnIfi=n5c40*?1=L5Sh0h3$Vw9FNDJQ~*90x?C=A zgW}_jp>pKdMz;flrjP^0RI%N>Ed~J~YRKIjnJS zbVOe*PUEezNbF}J+Uf~y09Q`;(6a2iPNcDRh7cmFglO!Ns_%neeSOVj!T$ - + diff --git a/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml b/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml index 50c79786b3..fa0ce143ab 100644 --- a/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml +++ b/modules/mogo-module-widgets/src/main/res/layout/module_widgets_app_entrance.xml @@ -1,5 +1,5 @@ - - - - - - + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml index 3b9f47b99b..7d4932a5ba 100644 --- a/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-ldpi/dimens.xml @@ -9,4 +9,6 @@ 27px 71px 4px + 56px + 40px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml index 3b9f47b99b..7d4932a5ba 100644 --- a/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-mdpi/dimens.xml @@ -9,4 +9,6 @@ 27px 71px 4px + 56px + 40px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml index 2914119343..e0aabc6db4 100644 --- a/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -3,10 +3,12 @@ 40px 30px 4px - 48px + 836px 1000px 37px 50px 71px 8px + 100px + 85px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml index 2914119343..e0aabc6db4 100644 --- a/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values-xhdpi/dimens.xml @@ -3,10 +3,12 @@ 40px 30px 4px - 48px + 836px 1000px 37px 50px 71px 8px + 100px + 85px \ No newline at end of file diff --git a/modules/mogo-module-widgets/src/main/res/values/dimens.xml b/modules/mogo-module-widgets/src/main/res/values/dimens.xml index bf234e4ac3..43846dd773 100644 --- a/modules/mogo-module-widgets/src/main/res/values/dimens.xml +++ b/modules/mogo-module-widgets/src/main/res/values/dimens.xml @@ -3,10 +3,12 @@ 22px 30px 4px - 48px + 505px 1000px 20px 27px 71px 4px + 56px + 40px \ No newline at end of file