From 448323e182d14a201f370ad5161f04d114ca61ca Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 13 May 2020 16:32:08 +0800 Subject: [PATCH 1/9] opt --- .../commons/voice/IMogoVoiceCmdCallBack.java | 10 +- .../map/impl/amap/navi/CalculatePathItem.java | 12 +- .../map/impl/amap/navi/NaviOverlayHelper.java | 8 +- .../mogo/map/marker/MogoMarkersHandler.java | 4 +- .../com/mogo/map/navi/IMogoNaviListener.java | 16 +- .../com/mogo/map/navi/IMogoNaviListener2.java | 4 +- .../com/mogo/map/navi/MogoCalculatePath.java | 40 +++- .../java/com/mogo/map/MogoMarkerManager.java | 2 +- .../module/apps/AppNavigatorFragment.java | 108 +++++----- .../module_apps_fragment_apps_navigator.xml | 1 + .../com/mogo/module/main/MainActivity.java | 18 +- .../module_main_card_cover_up_bottom.png | Bin 713 -> 0 bytes .../module_main_card_cover_up_bottom.png | Bin 1577 -> 0 bytes .../res/layout/module_main_activity_main.xml | 17 -- .../module/navi/constants/AMapConstants.java | 2 + .../module/navi/constants/DataConstants.java | 31 +++ .../navi/ui/adapter/CalculatePathAdapter.java | 5 +- .../navi/ui/search/ChoosePathFragment.kt | 188 +++++++++++------- .../service/marker/MapMarkerManager.java | 120 +++++++---- 19 files changed, 352 insertions(+), 234 deletions(-) delete mode 100644 modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png delete mode 100644 modules/mogo-module-main/src/main/res/drawable-xhdpi/module_main_card_cover_up_bottom.png diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java index 58365cd886..eb26dc64f6 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/IMogoVoiceCmdCallBack.java @@ -34,33 +34,33 @@ public interface IMogoVoiceCmdCallBack { * * @param cmd */ - void onCmdSelected( String cmd ); + default void onCmdSelected( String cmd ){} /** * 语音播报临时免唤醒“确定”命令 * * @param speakText 播报内容 */ - void onCmdAction( String speakText ); + default void onCmdAction( String speakText ){} /** * 语音播报临时免唤醒“取消”命令 * * @param speakText 播报内容 */ - void onCmdCancel( String speakText ); + default void onCmdCancel( String speakText ){} /** * 语音播报完毕 * * @param speakText 播报内容 */ - void onSpeakEnd( String speakText ); + default void onSpeakEnd( String speakText ){} /** * 语音播报完临时命令选择超时 * * @param speakText 播报内容 */ - void onSpeakSelectTimeOut( String speakText ); + default void onSpeakSelectTimeOut( String speakText ){} } \ No newline at end of file diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java index ec40a2b4fb..8a705ce576 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/CalculatePathItem.java @@ -55,7 +55,7 @@ public class CalculatePathItem { return mPath.getLabels(); } - public String getTime() { + public String getFormattedTime() { if ( mTimeBuilder == null ) { final int time = mPath.getAllTime(); mTimeBuilder = new StringBuilder(); @@ -64,6 +64,14 @@ public class CalculatePathItem { return mTimeBuilder.toString(); } + public int getTime(){ + return mPath.getAllTime(); + } + + public int getDistance(){ + return mPath.getAllLength(); + } + private StringBuilder mTimeBuilder; private void fillFormatTime( int seconds, StringBuilder builder ) { @@ -83,7 +91,7 @@ public class CalculatePathItem { private String mDistanceCacheStr = ""; - public String getDistance() { + public String getFormattedDistance() { if ( TextUtils.isEmpty( mDistanceCacheStr ) ) { int distance = mPath.getAllLength(); if ( distance == -1 ) { diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java index 9448f2b296..c057446979 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java @@ -13,7 +13,6 @@ import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.LatLngBounds; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; -import com.amap.api.maps.model.MarkerOptionsCreator; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; import com.amap.api.navi.model.AMapNaviLocation; @@ -21,15 +20,12 @@ import com.amap.api.navi.model.AMapNaviPath; import com.amap.api.navi.model.NaviInfo; import com.amap.api.navi.model.NaviLatLng; import com.mogo.map.MogoLatLng; -import com.mogo.map.MogoMap; import com.mogo.map.impl.amap.AMapWrapper; import com.mogo.map.impl.amap.R; import com.mogo.map.impl.amap.overlay.RouteOverLayWrapper; -import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.marker.MogoMarkersHandler; import com.mogo.map.navi.MogoCalculatePath; import com.mogo.map.navi.OnCalculatePathItemClickInteraction; -import com.mogo.utils.UiThreadHandler; import com.mogo.utils.WindowUtils; import com.mogo.utils.logger.Logger; @@ -394,10 +390,12 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { if ( mCalculatePathItems != null && !mCalculatePathItems.isEmpty() ) { for ( CalculatePathItem calculatePathItem : mCalculatePathItems ) { MogoCalculatePath path = new MogoCalculatePath(); - path.setDistance( calculatePathItem.getDistance() ); + path.setFormattedDistance( calculatePathItem.getFormattedDistance() ); path.setPathId( calculatePathItem.getId() ); path.setStrategyName( calculatePathItem.getStrategyName() ); + path.setFormattedTime( calculatePathItem.getFormattedTime() ); path.setTime( calculatePathItem.getTime() ); + path.setDistance( calculatePathItem.getDistance() ); List< NaviLatLng > coordList = calculatePathItem.getPath().getCoordList(); ArrayList< MogoLatLng > mogoLatLngs = new ArrayList<>(); for ( NaviLatLng latlng : coordList diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java index 07919c3124..51425cae06 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/MogoMarkersHandler.java @@ -86,7 +86,7 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker if ( marker == null ) { return; } - if ( !mServicesMarkers.containsKey( tag ) ) { + if ( mServicesMarkers.get( tag ) == null ) { mServicesMarkers.put( tag, new ArrayList< IMogoMarker >() ); } mServicesMarkers.get( tag ).add( marker ); @@ -96,7 +96,7 @@ public class MogoMarkersHandler implements IMogoMarkerClickListener, IMogoMarker if ( markers == null || markers.isEmpty() ) { return; } - if ( !mServicesMarkers.containsKey( tag ) ) { + if ( mServicesMarkers.get( tag ) == null ) { mServicesMarkers.put( tag, new ArrayList< IMogoMarker >() ); } mServicesMarkers.get( tag ).addAll( markers ); diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java index abe7a663b8..ff989a920f 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java @@ -11,44 +11,44 @@ public interface IMogoNaviListener { /** * 导航初始化失败 */ - void onInitNaviFailure(); + default void onInitNaviFailure(){} /** * 导航初始化成功 */ - void onInitNaviSuccess(); + default void onInitNaviSuccess(){} /** * 导航引导信息 * * @param naviinfo */ - void onNaviInfoUpdate( MogoNaviInfo naviinfo ); + default void onNaviInfoUpdate( MogoNaviInfo naviinfo ){} /** * 导航开始回调 */ - void onStartNavi(); + default void onStartNavi(){} /** * 导航停止:包括到达目的地和主动停止导航 */ - void onStopNavi(); + default void onStopNavi(){} /** * 路径规划成功 */ - void onCalculateSuccess(); + default void onCalculateSuccess(){} /** * 路径规划失败 */ - void onoCalculateFailed(); + default void onoCalculateFailed(){} /** * 巡航信息发生改变 * Deprecated, use {@link IMogoAimlessModeListener#onUpdateTraffic2(MogoTraffic)} instead. */ @Deprecated - void onUpdateTraffic( MogoTraffic traffic ); + default void onUpdateTraffic( MogoTraffic traffic ){} } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java index 831d5d77a0..c0d261c1d6 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener2.java @@ -11,10 +11,10 @@ public interface IMogoNaviListener2 extends IMogoNaviListener { /** * 实际导航结束 */ - void onArriveDestination(); + default void onArriveDestination() { } /** * 模拟导航结束 */ - void onEndEmulatorNavi(); + default void onEndEmulatorNavi(){} } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java index 394772abaa..ec44cd59cb 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoCalculatePath.java @@ -20,12 +20,14 @@ public class MogoCalculatePath { /** * 时间 */ - private String mTime; + private String mFormattedTime; + private int mTime; /** * 距离 */ - private String mDistance; + private String mFormattedDistance; + private int mDistance; /** * 红绿灯个数 @@ -69,20 +71,20 @@ public class MogoCalculatePath { this.mStrategyName = mStrategyName; } - public String getTime() { - return mTime; + public String getFormattedTime() { + return mFormattedTime; } - public void setTime( String mTime ) { - this.mTime = mTime; + public void setFormattedTime( String mTime ) { + this.mFormattedTime = mTime; } - public String getDistance() { - return mDistance; + public String getFormattedDistance() { + return mFormattedDistance; } - public void setDistance( String mDistance ) { - this.mDistance = mDistance; + public void setFormattedDistance( String mDistance ) { + this.mFormattedDistance = mDistance; } public int getTrafficLights() { @@ -125,4 +127,22 @@ public class MogoCalculatePath { public void setPathId( int mPathId ) { this.mPathId = mPathId; } + + public int getTime() { + return mTime; + } + + public MogoCalculatePath setTime( int time ) { + this.mTime = time; + return this; + } + + public int getDistance() { + return mDistance; + } + + public MogoCalculatePath setDistance( int distance ) { + this.mDistance = distance; + return this; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java index bb3aa752d9..33d7bfff49 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java @@ -3,7 +3,6 @@ package com.mogo.map; import android.content.Context; import android.util.Log; -import com.mogo.map.impl.amap.InterceptorHandler; import com.mogo.map.impl.amap.overlay.RouteOverlayHelper; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerManager; @@ -54,6 +53,7 @@ public class MogoMarkerManager implements IMogoMarkerManager { try { return MogoMap.getInstance().getMogoMap().addMarker( tag, options ); } catch ( Exception e ) { + Logger.e( TAG, Log.getStackTraceString( e ) ); return null; } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index 3092323b9d..d5b4006ee4 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -57,7 +57,7 @@ public class AppNavigatorFragment extends MvpFragment { // openSearchPanel(); // trackNavigatorClickEvent( 1 ); @@ -222,44 +222,44 @@ public class AppNavigatorFragment extends MvpFragment= 3) { - index = index - CARD_SIZE; - } - //RecyclerView 的特性,如果是否在屏幕内 - //if (index < 0) { - // index -= 2; - //} - - Logger.d(TAG, "position--" - + position - + "index--" - + index - + "scroll-->" - + scroller.getCurrentItem() - + index); - - //scroller.setPendingScroll(getResources().getDimensionPixelSize(R.dimen.dp_137)*index); - //layoutManager.scrollToPositionWithOffset(scroller.getCurrentItem() + index,0); - //scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137)*index,0); - - if (Math.abs(index) == 1) { - scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137) * index, - 0, null, 10); - } else { - layoutManager.startSmoothPendingScroll(layoutManager.getCurrentPosition() + index); - } +// DiscreteScrollLayoutManager layoutManager = +// (DiscreteScrollLayoutManager) scroller.getLayoutManager(); +// +// int currentPosition = (scroller.getCurrentItem() - 2) % CARD_SIZE; +// +// int index = position - currentPosition; +// +// if (index == 0) { +// return; +// } +// if (index <= -3) { +// index += CARD_SIZE; +// } else if (index >= 3) { +// index = index - CARD_SIZE; +// } +// //RecyclerView 的特性,如果是否在屏幕内 +// //if (index < 0) { +// // index -= 2; +// //} +// +// Logger.d(TAG, "position--" +// + position +// + "index--" +// + index +// + "scroll-->" +// + scroller.getCurrentItem() +// + index); +// +// //scroller.setPendingScroll(getResources().getDimensionPixelSize(R.dimen.dp_137)*index); +// //layoutManager.scrollToPositionWithOffset(scroller.getCurrentItem() + index,0); +// //scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137)*index,0); +// +// if (Math.abs(index) == 1) { +// scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137) * index, +// 0, null, 10); +// } else { +// layoutManager.startSmoothPendingScroll(layoutManager.getCurrentPosition() + index); +// } //layoutManager.smoothScrollToPosition(scroller.getCurrentItem() + index); //currentPosition = position; } diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml index 35a825c7c5..1a0b739e7f 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml @@ -10,6 +10,7 @@ impleme private View mHeader; private View mCards; - private View mCardsBkg; private View mApps; private View mEntrance; private FrameLayout mFloatingLayout; private FrameLayout mCoverUpLayout; - private FrameLayout mCardCoverUpBottomLayout; private View mLeftShadowFrame; private View mTopShadowFrame; @@ -180,14 +178,12 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mHeader = findViewById( R.id.module_main_id_header_fragment_container ); mCards = findViewById( R.id.module_main_id_cards_container ); - mCardsBkg = findViewById( R.id.module_main_id_cards_bkg ); mApps = findViewById( R.id.module_main_id_apps_fragment_container ); mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container ); mFloatingLayout = findViewById( R.id.module_main_id_floating_view ); mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame ); mTopShadowFrame = findViewById( R.id.module_main_id_map_top_shadow_frame ); mCoverUpLayout = findViewById( R.id.module_main_id_cover_up ); - mCardCoverUpBottomLayout = findViewById( R.id.module_main_id_card_cover_up_bottom ); // 避免事件穿透导致地图被滑动 mLeftShadowFrame.setOnClickListener( view -> { @@ -204,8 +200,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mFloatingLayout.setVisibility( View.GONE ); mLeftShadowFrame.setVisibility( View.GONE ); mTopShadowFrame.setVisibility( View.GONE ); - mCardsBkg.setVisibility( View.GONE ); - mCardCoverUpBottomLayout.setVisibility( View.GONE ); } // 显示布局 @@ -217,8 +211,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mFloatingLayout.setVisibility( View.VISIBLE ); mLeftShadowFrame.setVisibility( View.VISIBLE ); mTopShadowFrame.setVisibility( View.VISIBLE ); - mCardsBkg.setVisibility( View.VISIBLE ); - mCardCoverUpBottomLayout.setVisibility( View.VISIBLE ); } @Override @@ -305,23 +297,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme // 默认触发第一个卡片 mOnPageChangeListener.onPageSelected( 0 ); } - mCardCoverUpBottomLayout.setVisibility( View.VISIBLE ); } @Override public void hideCoverUpLayout() { mCoverUpLayout.setVisibility( View.GONE ); - mCardsBkg.setVisibility( View.VISIBLE ); } @Override public void loadCardModules() { List< IMogoModuleProvider > providers = mMogoModuleHandler.loadCardsModule(); - mCardModulesAdapter = new CardModulesAdapter( this, providers ); - mCardsContainer.setOffscreenPageLimit( providers.size() ); - mCardsContainer.setPageTransformer( true, mTransformer ); - mCardsContainer.setAdapter( mCardModulesAdapter ); +// mCardModulesAdapter = new CardModulesAdapter( this, providers ); +// mCardsContainer.setOffscreenPageLimit( providers.size() ); +// mCardsContainer.setPageTransformer( true, mTransformer ); +// mCardsContainer.setAdapter( mCardModulesAdapter ); } @NonNull diff --git a/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png b/modules/mogo-module-main/src/main/res/drawable-ldpi/module_main_card_cover_up_bottom.png deleted file mode 100644 index 84957fe2917063319221f1788daef2c26a493ff2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)Px%gGod|RCodHn@?*KK^Vq&H!8JS?Y-g`PAE_V+(zI!tnLf|BZ`stgv@2aupMf_sJM(Vd?CS$amoa<67SxM?2#7$D1h6YwAG>?&3TnC}Eu1*# zJ{9>PR7(UzKm@V`QU?Vm*^VjhY<6b)&i7r*r@zn<{U zuN3tmR7V6vKm?2c-9rcAI-E0^m|UaL__6l=+kHz^F9ISU0!0y^d*~q4bF5iHaO)H- zHP?K#G(0l$cA)>_jW~`kF+oiPL_h>iivV{@t7~6xKYTDgiyGUAE^ARtY$hlFX0G|g zx$PH2Lswm?RJxobNk7)lhAh2^fCz}dpA%?zyWPc&_Qvz+>6iDOO;+FIEw>OsO6Yw! zXiDpF%%H4zC~jf%nEKT!mC8Hps34UMsr2};T4gM4ru z8YkJ9%8K4Lyw2$yOiAOa%rJAu>}?R3RF!=9e8;Iggth{+ZxAWPnp z5f`nY&=f2vF&Pl`A|L{X5}+@z*f}6!PefSDj>C>N&Ym8j*wX$Rbu9uS zAOcwe^aOo@xgLk4*XEfXDe->$xd6wTCLCJa=DK4CLWXzBKRlZbGhD3 vH;I4<{OttR@cisE_g22_jk$0G&R^6Q8=Y?&GyV~b9jm~eIhB}Vf_QO;qh97^nEUc#V0x@qMa?OA zZesuXM0#lTv-%e4`_09p2i=4h0|}MFX_U+6Bab;n#lcQ*U-inY9XD>jEWl{PvjCt4 z!^P`Y*;S2qVj=O`^{=lfb%vz9-@H{4LlGCqQnqwC%@JJRECce^?W+7!sC3f@(B%;{4{&k_^!5H%E&D?s=_cwVx++rBDS2M;xg zH7b}$Dbq9^06HEOo30Q>BfK^Kl}vWP}|%AQf0ZR?CAu z7kjzb&;teN!{oPW%qX`kk1x{Mz#Mb6H^<^tTo|@Y+#VK9i6uyF$ z-$g(JC}Oya2WnQ#It}sI6hG0wqfy0%ot@?~e7Evo$VvXA0-IYFY1ML)xLjUbVU@&3 zvVXEyLxHVzhrjgh<3C-yj2`*u+!X@RXB){sXQ*qfrSwT0yfup%qCZLgI-02}gIHuV zVGyVTWCM*F=oler5I=kMfy%?fjXmG$ERX4{B4Ho3^$^H<%cxp20R3}DVA^%s+}!aJ z5hsneLmIWK=?bp``L&OR6i)z)vwkA+24#v_n|qIkkM<|vwKsM+702Q}NXXU_y7+oeFEA;+cb-~SVd z6#U(SfSSFiX@tP$t@FMhM0 zb{B~5dDp%_wQ`)Api_$qBcT;hV)E0?C+B4+XF=5Wk}@BNsyRqjhnS=qn?=<2VkZPA zR!g@1(37&kvNZi$CoEzt){2GVkZxG8J~8@j*@=E;rD(>OP1u$xB^O4-Py0oOonUn! zn>Bits=!BUYd3bmqOT?B%&M9v?~jXx$Ud6GPW73#Jdr!OTyz7qp;~_E$sZntCYsR^ zl%P-4rWS%_x#V3%mSYDm^H)>zPinP__yX}R)U2AJT)7F74!4pJ@&+nKux(uvYp}V-x0H8jb z()7=lW=e3wmCozgk~>E!$m|(LP0+BH<|9$wt}J|l;z-zQN;+}PHOh90Tu$z5o8siv zZXFsZgMP0>8MG{|b&`tFpR^?(TV`{n@G%PNlvJAD9D19xx5KCXytu?kO5U>JM^SA9 y>x13C{lRiR)_?O(r>pI&OibLuh9!DhUyLVBE>sfRvicWxKOn#-$eZOAbLxNoCdW+x diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index 6be848e190..603a0ecaed 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -37,12 +37,6 @@ android:layout_marginLeft="@dimen/module_main_card_container_marginLeft" android:layout_marginTop="@dimen/module_main_card_container_marginTop"> - - - diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java index 738d2ad4bc..a3a709ce12 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java @@ -47,4 +47,6 @@ public class AMapConstants { */ public static final String COMMAND_START_NAVI = "com.ileja.navi.route.confirm"; + public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.plan"; + } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java index 029bbdc252..9bc52fdf63 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/DataConstants.java @@ -2,6 +2,9 @@ package com.mogo.module.navi.constants; import android.net.Uri; +import java.util.HashMap; +import java.util.Map; + /** * @author zyz * @since 2019-10-02 @@ -42,4 +45,32 @@ public class DataConstants { public static final String COMPANY_ADDRESS_LATITUDE = "companyAddressLatitude"; public static final String COMPANY_ADDRESS_LONGITUDE = "companyAddressLongitude"; + // 泛化语义 + public static final String STRATEGY_THE_TIME_SHORTEST_PATH = "STRATEGY_THE_TIME_SHORTEST_PATH"; + public static final String[] WORDS_STRATEGY_THE_TIME_SHORTEST_PATH = {"最快的"}; + public static final String STRATEGY_THE_DISTANCE_SHORTEST_PATH = "STRATEGY_THE_DISTANCE_SHORTEST_PATH"; + public static final String[] WORDS_STRATEGY_THE_DISTANCE_SHORTED_PATH = {"路程最短的"}; + + // 第x个选个 + public static final String STRATEGY_THE_FIRST_PATH = "STRATEGY_THE_FIRST_PATH"; + public static final String[] WORDS_STRATEGY_THE_FIRST_PATH = {"第一个"}; + public static final String STRATEGY_THE_SECOND_PATH = "STRATEGY_THE_SECOND_PATH"; + public static final String[] WORDS_STRATEGY_THE_SECOND_PATH = {"第二个"}; + public static final String STRATEGY_THE_THIRD_PATH = "STRATEGY_THE_THIRD_PATH"; + public static final String[] WORDS_STRATEGY_THE_THIRD_PATH = {"第三个"}; + + // 开始导航 + public static final String STRATEGY_START_NAVI = "STRATEGY_START_NAVI"; + public static final String[] WORDS_STRATEGY_START_NAVI = {"开始导航", "开始"}; + + public static final Map< String, String[] > sCmds = new HashMap<>(); + + static { + sCmds.put( STRATEGY_THE_TIME_SHORTEST_PATH, WORDS_STRATEGY_THE_TIME_SHORTEST_PATH ); + sCmds.put( STRATEGY_THE_DISTANCE_SHORTEST_PATH, WORDS_STRATEGY_THE_DISTANCE_SHORTED_PATH ); + sCmds.put( STRATEGY_THE_FIRST_PATH, WORDS_STRATEGY_THE_FIRST_PATH ); + sCmds.put( STRATEGY_THE_SECOND_PATH, WORDS_STRATEGY_THE_SECOND_PATH ); + sCmds.put( STRATEGY_THE_THIRD_PATH, WORDS_STRATEGY_THE_THIRD_PATH ); + sCmds.put( STRATEGY_START_NAVI, WORDS_STRATEGY_START_NAVI ); + } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java index 338c0ff859..93d8ebb3da 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/adapter/CalculatePathAdapter.java @@ -4,7 +4,6 @@ import android.content.Context; import android.text.TextUtils; import android.view.View; import com.mogo.map.navi.MogoCalculatePath; -import com.mogo.map.search.inputtips.MogoTip; import com.mogo.module.navi.R; import com.mogo.module.navi.ui.adapter.base.RecycleBaseAdapter; import com.mogo.module.navi.ui.adapter.base.RecycleViewHolder; @@ -53,8 +52,8 @@ public class CalculatePathAdapter extends RecycleBaseAdapter if (holder.getLayoutPosition() >= 2) { mName.setVisibility(View.GONE); } - holder.setText(R.id.amap_calculate_item_strategy_time, item.getTime()); - holder.setText(R.id.amap_calculate_item_strategy_distance, item.getDistance()); + holder.setText(R.id.amap_calculate_item_strategy_time, item.getFormattedTime()); + holder.setText(R.id.amap_calculate_item_strategy_distance, item.getFormattedDistance()); holder.setText(R.id.amap_calculate_item_strategy_desc, item.getDesc()); if (TextUtils.isEmpty(item.getDesc())) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index f715aa8428..750335c1be 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -11,25 +11,26 @@ import com.mogo.commons.voice.IMogoVoiceCmdCallBack import com.mogo.map.MogoLatLng import com.mogo.map.navi.IMogoNaviListener import com.mogo.map.navi.MogoCalculatePath -import com.mogo.map.navi.MogoNaviInfo -import com.mogo.map.navi.MogoTraffic -import com.mogo.module.common.MogoModulePaths +import com.mogo.map.navi.MogoNaviConfig import com.mogo.module.common.map.MapCenterPointStrategy import com.mogo.module.common.map.Scene import com.mogo.module.navi.R import com.mogo.module.navi.constants.AMapConstants +import com.mogo.module.navi.constants.DataConstants import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.manager.SettingManager import com.mogo.module.navi.ui.adapter.CalculatePathAdapter import com.mogo.module.navi.ui.base.BaseFragment import com.mogo.service.intent.IMogoIntentListener import com.mogo.utils.UiThreadHandler +import com.mogo.utils.logger.Logger import kotlinx.android.synthetic.main.fragment_search_category.group_path import kotlinx.android.synthetic.main.fragment_search_category.pb_path import kotlinx.android.synthetic.main.fragment_search_category.rv_search_result import kotlinx.android.synthetic.main.fragment_search_category.tv_navi_navi import kotlinx.android.synthetic.main.include_search_bar.et_navi_search import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back +import org.json.JSONObject /** * @author zyz @@ -37,24 +38,34 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back */ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack, IMogoIntentListener { + var mTimeShortestPosition = -1 + var mDistanceShortestPosition = -1 + override fun onCmdSelected(cmd: String?) { when (cmd) { - "firstPath" -> { + DataConstants.STRATEGY_THE_FIRST_PATH -> { selectItem(0) startNavi() - } - "secondPath" -> { + DataConstants.STRATEGY_THE_SECOND_PATH -> { selectItem(1) startNavi() - } - "thirdPath" -> { + DataConstants.STRATEGY_THE_THIRD_PATH -> { selectItem(2) startNavi() - } - "startNavi" -> { + DataConstants.STRATEGY_START_NAVI -> { + startNavi() + } + DataConstants.STRATEGY_THE_DISTANCE_SHORTEST_PATH -> { + // 路程最短 + selectItem(mDistanceShortestPosition) + startNavi() + } + DataConstants.STRATEGY_THE_TIME_SHORTEST_PATH -> { + // 时间最短 + selectItem(mTimeShortestPosition) startNavi() } "retry" -> { @@ -63,45 +74,15 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB "cancel" -> { SearchServiceHolder.fragmentManager.clearAll() } - } - } private fun selectItem(index: Int) { - - if (mAdapter.list.size > index) { + if (mAdapter.list.size > index && index > 0) { selectPath(mAdapter.list[index]) } } - override fun onCmdAction(speakText: String?) { - } - - override fun onCmdCancel(speakText: String?) { - } - - override fun onSpeakEnd(speakText: String?) { - } - - override fun onSpeakSelectTimeOut(speakText: String?) { - } - - override fun onInitNaviFailure() { - } - - override fun onInitNaviSuccess() { - } - - override fun onNaviInfoUpdate(naviinfo: MogoNaviInfo?) { - } - - override fun onStartNavi() { - } - - override fun onStopNavi() { - } - override fun onCalculateSuccess() { var calculatedStrategies = SearchServiceHolder.getNavi().calculatedStrategies if (calculatedStrategies != null && calculatedStrategies.size > 0) { @@ -115,9 +96,33 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB return@postDelayed } SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(calculatedStrategies[0].tagId) + + if (calculatedStrategies.size == 1) { + // 一条路线,自动开启导航 + startNavi() + } }, 500L) + + if (calculatedStrategies.size > 1) { + + var timeShortest = Integer.MAX_VALUE + var distanceShortest = Integer.MAX_VALUE + + for (i in 0 until calculatedStrategies.size) { + if (timeShortest > calculatedStrategies[i].time) { + timeShortest = calculatedStrategies[i].time + mTimeShortestPosition = i + } + if (distanceShortest > calculatedStrategies[i].distance) { + distanceShortest = calculatedStrategies[i].distance + mDistanceShortestPosition = i + } + } + + Logger.d(TAG, "mTimeShortestPosition = ${mTimeShortestPosition}, mDistanceShortestPosition = $mDistanceShortestPosition") + AIAssist.getInstance(context).speakTTSVoice(String.format("已为你规划处%d条路线,请选择", calculatedStrategies.size)) + } } - AIAssist.getInstance(context).speakTTSVoice(String.format("已为你规划处%d条路线,请选择", calculatedStrategies.size)) pb_path.visibility = View.GONE group_path.visibility = View.GONE tv_navi_navi.text = getString(R.string.start_navi) @@ -132,10 +137,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB pb_path.visibility = View.GONE registerRetryVoice() - - } - - override fun onUpdateTraffic(traffic: MogoTraffic?) { } private lateinit var mAdapter: CalculatePathAdapter @@ -143,24 +144,16 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB return R.layout.fragment_search_category } - val firstPath: String = "第一个" - val secondPath: String = "第二个" - val thirdPath: String = "第三个" - val startNavi: String = "开始导航" - var mogoTip: MogoLatLng? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mogoTip = arguments?.getParcelable(AMapConstants.KEY_PARCELABLE) - } // 是否开启导航 var isStartedNavi = false - override fun onViewCreated( - view: View, - savedInstanceState: Bundle?) { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) iv_navi_back.setOnClickListener { @@ -199,13 +192,14 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB SearchServiceHolder.getMarkerManger().removeMarkers() - AIAssist.getInstance(context).registerUnWakeupCommand("firstPath", arrayOf(firstPath), this) - AIAssist.getInstance(context).registerUnWakeupCommand("secondPath", arrayOf(secondPath), this) - AIAssist.getInstance(context).registerUnWakeupCommand("thirdPath", arrayOf(thirdPath), this) - AIAssist.getInstance(context).registerUnWakeupCommand("startNavi", arrayOf(startNavi, "开始"), this) + DataConstants.sCmds.entries.filter { + it != null && !TextUtils.isEmpty(it.key) && (it.value?.isNotEmpty() ?: false) + }.forEach { + AIAssist.getInstance(mContext).registerUnWakeupCommand(it.key, it.value, this@ChoosePathFragment) + } SearchServiceHolder.intentManager.registerIntentListener(AMapConstants.COMMAND_START_NAVI, this) - + SearchServiceHolder.intentManager.registerIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this) } private fun registerRetryVoice() { @@ -214,7 +208,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB private fun unregisterRetryVoice() { AIAssist.getInstance(context).unregisterUnWakeupCommand("retry") - } private fun retry() { @@ -227,7 +220,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB if (TextUtils.isEmpty(mAdapter.selectTag)) { return } -// moveMapToRight() SearchServiceHolder.getNavi().startNavi(!SettingManager.isMonitor()) SearchServiceHolder.getMapUIController().recoverLockMode() @@ -253,21 +245,81 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB SearchServiceHolder.getNavi().clearCalculatePaths() } - AIAssist.getInstance(context).unregisterUnWakeupCommand("firstPath") - AIAssist.getInstance(context).unregisterUnWakeupCommand("secondPath") - AIAssist.getInstance(context).unregisterUnWakeupCommand("thirdPath") - AIAssist.getInstance(context).unregisterUnWakeupCommand("startNavi") + DataConstants.sCmds.entries.filter { + it != null && !TextUtils.isEmpty(it.key) && (it.value?.isNotEmpty() ?: false) + }.forEach { + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(it.key) + } SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_START_NAVI, this) + SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_CHOOSE_PATH, this) } override fun onIntentReceived(intentStr: String?, intent: Intent?) { - if (TextUtils.equals(AMapConstants.COMMAND_START_NAVI, intentStr)) { - startNavi() + when (intentStr) { + AMapConstants.COMMAND_START_NAVI -> { + startNavi() + } + AMapConstants.COMMAND_CHOOSE_PATH -> { + choosePath(intent) + } + } + } + + private fun choosePath(intent: Intent?) { + var dataJsonStr = intent?.getStringExtra("data") ?: "" + try { + var jsonObj = JSONObject(dataJsonStr) + var routePlan = jsonObj.optString("route_plan", " ") + when (routePlan) { + "最快" -> { + // 时间最短 + selectItem(mTimeShortestPosition) + startNavi() + } + "不走高速" -> { + // 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。 + // 避免收费 | 1 + // 多策略算路 | 2 + // 不走高速 | 3 + // 躲避拥堵 | 4 + // 不走高速且避免收费 | 5 + // 不走高速且躲避拥堵 | 6 + // 躲避收费和拥堵 | 7 + // 不走高速躲避收费和拥堵 | 8 + // 高速优先 | 20 + // 躲避拥堵且高速优先 | 24 + var prefer = 3 + val config = MogoNaviConfig().congestion(prefer == 4) + .cost(prefer == 1 || prefer == 7) + .highSpeed(prefer == 20) + .avoidSpeed(prefer == 3) + SearchServiceHolder.getNavi().reCalculateRoute(config) + } + "最近" -> { + // 路程最短 + selectItem(mDistanceShortestPosition) + startNavi() + } + "躲避拥堵" -> { + var prefer = 4 + val config = MogoNaviConfig().congestion(prefer == 4) + .cost(prefer == 1 || prefer == 7) + .highSpeed(prefer == 20) + .avoidSpeed(prefer == 3) + SearchServiceHolder.getNavi().reCalculateRoute(config) + } + } + } catch (e: Exception) { + } } companion object { + + @JvmField + val TAG: String = "ChoosePathFragment" + fun newInstance(searchPoi: MogoLatLng): Fragment { MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CALCULATE_PATH) var bundle = Bundle() 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 0298414d3b..77024d794b 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 @@ -3,6 +3,7 @@ package com.mogo.module.service.marker; import android.content.Context; import android.content.Intent; import android.text.TextUtils; +import android.util.Log; import android.view.animation.BounceInterpolator; import android.view.animation.OvershootInterpolator; @@ -257,20 +258,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } } - /** - * 关闭 Marker 详情 - * - * @param marker 要关闭的Marker - */ - public synchronized void closeMarkerSelect( IMogoMarker marker ) { - // 将上次选中 Marker 设置为未选中状态 - if ( marker != null ) { - Logger.i( TAG, "closeMarkerSelect 将出Marker详情关闭:" + marker ); - closeMarker( marker ); - mLastCheckMarker = null; - } - } - // 展开气泡 private void openMarker( IMogoMarker mogoMarker ) { if ( mogoMarker == null ) { @@ -358,7 +345,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } else { mLastCheckMarker = null; // 清空所有地图上绘制的Marker - MarkerServiceHandler.getMarkerManager().removeMarkers(); + MarkerServiceHandler.getMarkerManager().removeMarkersExcept( ModuleNames.CARD_TYPE_USER_DATA ); } drawMarkerByCurrentType( mLastDataResult ); @@ -402,29 +389,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, mCurrentModuleName = ServiceConst.CARD_TYPE_BUSINESS_OPERATION; } - List< MarkerOnlineCar > onlineCarList = markerCardResult.getOnlineCar(); - List< MarkerExploreWay > exploreWayList = markerCardResult.getExploreWay(); - List< MarkerShareMusic > shareMusicList = markerCardResult.getShareMusic(); - List< MarkerNoveltyInfo > noveltyInfoList = markerCardResult.getNoveltyInfo(); - - switch ( mCurrentModuleName ) { - case ServiceConst.CARD_TYPE_BUSINESS_OPERATION: - drawAllMarker( markerCardResult ); - break; - case ServiceConst.CARD_TYPE_NOVELTY: - drawNoveltyMarker( noveltyInfoList, ServiceConst.MAX_AMOUNT_SINGLE_CARD ); - break; -// case ServiceConst.CARD_TYPE_CARS_CHATTING: -// case ServiceConst.CARD_TYPE_USER_DATA: -// drawOnlineCarMarkers(onlineCarList, ServiceConst.MAX_AMOUNT_SINGLE_CARD); -// break; - case ServiceConst.CARD_TYPE_ROAD_CONDITION: - drawRoadConditionMarker( exploreWayList, ServiceConst.MAX_AMOUNT_SINGLE_CARD ); - break; - case ServiceConst.CARD_TYPE_SHARE_MUSIC: - drawShareMusicMarker( shareMusicList, ServiceConst.MAX_AMOUNT_SINGLE_CARD ); - break; - } + drawAllMarker( markerCardResult ); } /** @@ -457,6 +422,9 @@ public class MapMarkerManager implements IMogoMarkerClickListener, double nearlyDistance = Float.MAX_VALUE; int size = getAppropriateSize( maxAmount, onlineCarList ); + + Map< String, IMogoMarker > existCarMap = purgeCarsData( onlineCarList ); + for ( int i = 0; i < size; i++ ) { MarkerOnlineCar markerOnlineCar = onlineCarList.get( i ); MarkerLocation markerLocation = markerOnlineCar.getLocation(); @@ -470,9 +438,15 @@ public class MapMarkerManager implements IMogoMarkerClickListener, markerShowEntity.setIconUrl( markerOnlineCar.getUserInfo().getUserHead() ); } - IMogoMarker iMogoMarker = drawMapMarker( markerShowEntity ); -// iMogoMarker.setInfoWindowAdapter(this); - startSmooth( iMogoMarker, markerOnlineCar, markerLocation ); + if ( markerOnlineCar.getUserInfo() == null || TextUtils.isEmpty( markerOnlineCar.getUserInfo().getSn() ) ) { + continue; + } + IMogoMarker mogoMarker = existCarMap.get( markerOnlineCar.getUserInfo().getSn() ); + if ( mogoMarker == null ) { + Logger.d( TAG, "car [%s] need be create.", markerOnlineCar.getUserInfo().getSn() ); + mogoMarker = drawMapMarker( markerShowEntity ); + } + startSmooth( mogoMarker, markerOnlineCar, markerLocation ); // 计算在线车辆距离当前车辆的距离,每次都与最后一次距离最近的进行比较,保留距离最近的车辆,进行卡片展示 try { @@ -489,7 +463,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, // 进行比较,保留最近的一个数据 if ( calculateDistance < nearlyDistance ) { nearlyDistance = calculateDistance; - mNearlyMarker = iMogoMarker; + mNearlyMarker = mogoMarker; } } catch ( Exception e ) { @@ -519,6 +493,66 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } } + /** + * 根据新的在线车辆列表,选出已存在的在线车辆,并从视图和内存中移除不存在的在线车辆 + * + * @param newCarsList + * @return + */ + private Map< String, IMogoMarker > purgeCarsData( List< MarkerOnlineCar > newCarsList ) { + + final long start = System.currentTimeMillis(); + Map< String, IMogoMarker > existCarsMap = new HashMap<>(); + List< IMogoMarker > allCarsList = MarkerServiceHandler.getMarkerManager().getMarkers( ModuleNames.CARD_TYPE_USER_DATA ); + if ( allCarsList == null || allCarsList.isEmpty() ) { + return existCarsMap; + } + if ( newCarsList == null || newCarsList.isEmpty() ) { + return existCarsMap; + } + + Map< String, IMogoMarker > allCarsMap = new HashMap<>(); + for ( IMogoMarker marker : allCarsList ) { + String sn = getCarSnFromMarker( marker ); + Logger.d( TAG, "sn = [%s]", sn ); + allCarsMap.put( sn, marker ); + } + for ( MarkerOnlineCar markerOnlineCar : newCarsList ) { + String sn = markerOnlineCar.getUserInfo().getSn(); + if ( allCarsMap.containsKey( sn ) ) { + Logger.d( TAG, " car [%s] is cached.", sn ); + existCarsMap.put( sn, allCarsMap.get( sn ) ); + } + } + for ( String sn : allCarsMap.keySet() ) { + if ( !existCarsMap.containsKey( sn ) ) { + IMogoMarker dirtyMarker = allCarsMap.get( sn ); + allCarsList.remove( dirtyMarker ); + dirtyMarker.destroy(); + Logger.d( TAG, " car [%s] is destroy.", sn ); + } + } + allCarsMap.clear(); + Logger.i( "timer", "purge data cost " + ( System.currentTimeMillis() - start ) + "ms" ); + return existCarsMap; + } + + private String getCarSnFromMarker( IMogoMarker marker ) { + if ( marker == null || marker.getObject() == null || marker.isDestroyed() ) { + return null; + } + if ( !( marker.getObject() instanceof MarkerShowEntity ) ) { + return null; + } + if ( !( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() instanceof MarkerOnlineCar ) ) { + return null; + } + if ( ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo() == null ) { + return null; + } + return ( ( MarkerOnlineCar ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() ).getUserInfo().getSn(); + } + /** * 探路数据 * @@ -869,7 +903,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( result == null ) { return; } - removeCarMarkers(); + List< MarkerOnlineCar > onlineCarList = result.getOnlineCar(); if ( !MarkerServiceHandler.getMogoStatusManager().isADASShow() ) { dispatchDataToBis( ServiceConst.CARD_TYPE_USER_DATA, onlineCarList == null ? new ArrayList<>() : onlineCarList ); From aa7c997ada102786789aadcf4d494ebe9c4c488f Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 13 May 2020 16:32:36 +0800 Subject: [PATCH 2/9] upgrade the version of callChat --- .idea/misc.xml | 2 +- gradle.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b6a4fe9fdd..7e35f360fc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -56,9 +56,9 @@ MOGO_MODULE_GUIDE_VERSION=1.0.3.12 # 探路 MOGO_MODULE_TANLU_VERSION=1.0.5.6 # 车聊聊 -CARCHATTING_VERSION=1.0.3.2-SNAPSHOT +CARCHATTING_VERSION=1.0.4-SNAPSHOT # 车聊聊接口 -CARCHATTINGPROVIDER_VERSION=1.0.3.2-SNAPSHOT +CARCHATTINGPROVIDER_VERSION=1.0.4-SNAPSHOT # 视频引导 MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT # 视频引导接口 From 9c95a164f263c55be39d351ace5a6ee0aef8d903 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 14 May 2020 15:26:13 +0800 Subject: [PATCH 3/9] note the guide module and auth module add todo to prevent forget --- app/src/main/java/com/mogo/launcher/MogoApplication.java | 2 +- .../authorize/authprovider/biz/MogoAuthorizeProvider.kt | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 45ac48420c..6ade51c351 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -51,7 +51,7 @@ public class MogoApplication extends AbsMogoApplication { crashSystem.setDebug(BuildConfig.DEBUG); Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF); - MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME)); +// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(PATH_AGREEMENT_FRAGMENT, PATH_AGREEMENT_MODULE_NAME)); //运营位卡片,需要默认显示,放在第一个加载 diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt index 4627cf25e8..7db66447cd 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt @@ -64,7 +64,9 @@ class MogoAuthorizeProvider : IMogoModuleProvider { } override fun init(context: Context?) { - if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { + //todo 引导判断暂时去掉 后续引导流程更改完再放开 +// todo if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { + if (isDeviceOfD() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { mogoAuthShow.invokeAuthorizeForShow() } else { //首次进入Launcher同步一下授权状态,防止由于用户清除数据造成首次加载还会出现授权状态不同步问题 From 1d3dbb80412c4baffdff28a4e0d6f61bdebf3a36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 14 May 2020 19:00:58 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BA=86V2X=E6=94=AF?= =?UTF-8?q?=E6=8C=812.0.2=E4=B8=AD=E7=9A=84=E4=B8=80=E4=BA=9B=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b6a4fe9fdd..7a2fa60048 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,7 +66,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2 # v2x -MOGO_MODULE_V2X_VERSION=1.0.6.28 +MOGO_MODULE_V2X_VERSION=1.0.7 # 媒体卡片 MOGO_MODULE_MEDIA_VERSION=1.0.4.3 # 推送 From 9e11eecc2e51e24299c244a654c1ca7f2291cb9f Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 15 May 2020 10:45:11 +0800 Subject: [PATCH 5/9] opt --- .idea/misc.xml | 2 +- config.gradle | 2 + gradle.properties | 4 +- .../mogo/map/listener/IMogoMapListener.java | 14 +- .../map/navi/IMogoAimlessModeListener.java | 4 +- .../main/java/com/mogo/map/MogoInitor.java | 16 - .../module/apps/AppNavigatorFragment.java | 273 ++---------------- .../module/apps/AppNavigatorPresenter.java | 5 +- .../mogo/module/apps/AppServiceHandler.java | 15 +- .../module/apps/AppsFragmentProvider.java | 2 +- .../com/mogo/module/apps/AppsPresenter.java | 124 ++++---- .../apps/adapter/AppIndicatorAdapter.java | 58 +--- .../apps/adapter/base/RecycleBaseAdapter.java | 95 +++--- .../module/apps/applaunch/AppLauncher.java | 2 + .../applaunch/InternalFunctionLauncher.java | 47 +++ .../mogo/module/apps/model/NavigatorApp.java | 32 +- .../mogo/module/apps/model/NavigatorApps.java | 56 +--- .../apps/utils/CardScaleTransformer.java | 122 -------- .../module_apps_fragment_apps_navigator.xml | 47 +-- .../layout/module_apps_item_app_indicator.xml | 18 +- .../back/BackToLauncherModuleProvider.java | 5 +- .../module/back/BackToMainHomeManager.java | 9 +- .../extensions/ExtensionsPresenter.java | 6 +- .../extensions/entrance/EntranceFragment.java | 88 ------ .../res/layout/module_ext_layout_entrance.xml | 81 +----- .../layout/module_ext_layout_extensions.xml | 1 + .../com/mogo/module/main/MainActivity.java | 116 +------- .../com/mogo/module/main/MainPresenter.java | 65 +---- .../java/com/mogo/module/main/MainView.java | 5 - .../module/main/cards/MogoModulesHandler.java | 26 -- .../module/main/cards/MogoModulesManager.java | 131 +-------- .../module/main/constants/MainConstants.java | 15 - .../res/layout/module_main_activity_main.xml | 11 +- .../com/mogo/module/map/MapPresenter.java | 64 +--- .../module/navi/constants/AMapConstants.java | 2 +- .../navi/constants/SearchServiceHolder.kt | 3 +- .../module/navi/manager/AddressManager.kt | 15 + .../navi/manager/MogoAddressManager.java | 16 +- .../navi/ui/search/ChoosePathFragment.kt | 37 +-- .../com/mogo/module/service/MogoServices.java | 112 ++----- .../service/marker/MapMarkerManager.java | 5 +- .../module/service/receiver/MogoReceiver.java | 1 + .../service/refresh/AutoRefreshStrategy.java | 4 +- .../service/adas/IMogoADASController.java | 13 +- .../statusmanager/IMogoStatusManager.java | 8 +- services/mogo-service/build.gradle | 1 + .../service/impl/adas/MogoADASController.java | 81 ++++-- .../mogo/service/impl/map/MogoMapService.java | 2 - .../impl/singleton/SingletonsHolder.java | 2 +- 49 files changed, 430 insertions(+), 1433 deletions(-) delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java create mode 100644 modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java delete mode 100644 modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/config.gradle b/config.gradle index e1158d2fd3..1b33af44ee 100644 --- a/config.gradle +++ b/config.gradle @@ -143,5 +143,7 @@ ext { gpssimulator : "com.mogo.module:module-gps-simulator:${MOGO_MODULE_GPS_SIMULATOR_VERSION}", gpssimulatordebug : "com.mogo.module:module-gps-simulator-debug:${MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION}", gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}", + + adasapi : "com.zhidao.autopilot.support:adas:1.0.0-SNAPSHOT", ] } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index b6a4fe9fdd..7e35f360fc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -56,9 +56,9 @@ MOGO_MODULE_GUIDE_VERSION=1.0.3.12 # 探路 MOGO_MODULE_TANLU_VERSION=1.0.5.6 # 车聊聊 -CARCHATTING_VERSION=1.0.3.2-SNAPSHOT +CARCHATTING_VERSION=1.0.4-SNAPSHOT # 车聊聊接口 -CARCHATTINGPROVIDER_VERSION=1.0.3.2-SNAPSHOT +CARCHATTINGPROVIDER_VERSION=1.0.4-SNAPSHOT # 视频引导 MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT # 视频引导接口 diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java index 13f5e3ac4a..f5667e96c2 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoMapListener.java @@ -18,42 +18,42 @@ public interface IMogoMapListener { /** * 地图加载完毕 */ - void onMapLoaded(); + default void onMapLoaded(){}; /** * 地图点击 * * @param motionEvent */ - void onTouch( MotionEvent motionEvent ); + default void onTouch( MotionEvent motionEvent ){}; /** * 地图上的任意poi点击 * * @param poi */ - void onPOIClick( MogoPoi poi ); + default void onPOIClick( MogoPoi poi ){}; /** * 地图点击 * * @param latLng */ - void onMapClick( MogoLatLng latLng ); + default void onMapClick( MogoLatLng latLng ){} /** * 地图锁定 * * @param isLock */ - void onLockMap( boolean isLock ); + default void onLockMap( boolean isLock ){} /** * 地图白天黑夜、导航视角切换 * * @param ui */ - void onMapModeChanged( EnumMapUI ui ); + default void onMapModeChanged( EnumMapUI ui ){} /** * @param latLng 中点的经纬度 @@ -61,5 +61,5 @@ public interface IMogoMapListener { * @param tilt 倾斜度 * @param bearing 旋转角度 */ - void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ); + default void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ){} } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java index 5138ad5729..4d36b30fb0 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoAimlessModeListener.java @@ -11,12 +11,12 @@ public interface IMogoAimlessModeListener { /** * 巡航信息发生改变 */ - void onUpdateTraffic2( MogoTraffic traffic ); + default void onUpdateTraffic2( MogoTraffic traffic ){} /** * 拥堵信息 * * @param info */ - void onUpdateCongestion( MogoCongestionInfo info ); + default void onUpdateCongestion( MogoCongestionInfo info ){} } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java deleted file mode 100644 index 76d61012a6..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInitor.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.map; - -import android.content.Context; - - -/** - * @author congtaowang - * @since 2019-12-26 - *

- * 描述 - */ -public class MogoInitor { - - public static void init( Context context ) { - } -} diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index d5b4006ee4..a1c65890ef 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -1,37 +1,20 @@ package com.mogo.module.apps; import android.os.Bundle; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; - import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.alibaba.android.arouter.launcher.ARouter; + import com.mogo.commons.mvp.MvpFragment; import com.mogo.module.apps.adapter.AppIndicatorAdapter; -import com.mogo.module.apps.adapter.base.RecycleViewHolder; -import com.mogo.module.apps.model.NavigatorApp; +import com.mogo.module.apps.applaunch.AppLauncher; +import com.mogo.module.apps.applaunch.BaseAppLauncher; +import com.mogo.module.apps.applaunch.InternalFunctionLauncher; import com.mogo.module.apps.model.NavigatorApps; -import com.mogo.module.apps.utils.CardScaleTransformer; -import com.mogo.module.common.MogoModulePaths; -import com.mogo.service.MogoServicePaths; -import com.mogo.service.analytics.IMogoAnalytics; -import com.mogo.service.cardmanager.IMogoCardChangedListener; -import com.mogo.service.fragmentmanager.FragmentDescriptor; -import com.mogo.service.fragmentmanager.IMogoFragmentManager; -import com.mogo.service.module.IMogoModuleProvider; -import com.mogo.utils.logger.Logger; -import com.yarolegovich.discretescrollview.DiscreteScrollLayoutManager; -import com.yarolegovich.discretescrollview.DiscreteScrollView; -import java.util.ArrayList; + import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -40,27 +23,14 @@ import java.util.Map; *

* 描述 */ -public class AppNavigatorFragment extends MvpFragment - implements AppNavigatorView, DiscreteScrollView.OnItemChangedListener, - DiscreteScrollView.ScrollStateChangeListener, - IMogoCardChangedListener { +public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > implements AppNavigatorView { private static final String TAG = "AppNavigatorFragment"; - private View mApps; - private IMogoFragmentManager mMogoFragmentManager; - List apps; + private RecyclerView mNavigatorAppsList; + private AppIndicatorAdapter mAppIndicatorAdapter; - /** - * 搜索莫模块 - */ - private IMogoModuleProvider mSearchProvider; - - private IMogoAnalytics mMogoAnalytics; -// private DiscreteScrollView scroller; - - private static int CARD_SIZE = 6; - private AppIndicatorAdapter appIndicatorAdapter; + private BaseAppLauncher mLauncher; @Override protected int getLayoutId() { @@ -69,228 +39,49 @@ public class AppNavigatorFragment extends MvpFragment { +// openAppsPanel(); +// trackNavigatorClickEvent( 4 ); +// } ); + mLauncher = new InternalFunctionLauncher( getActivity() ); + mLauncher.setNext( new AppLauncher() ); - mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance() - .build(MogoServicePaths.PATH_FRAGMENT_MANAGER) - .navigation(); - - mApps = findViewById(R.id.module_apps_id_apps); - -// scroller = findViewById(R.id.module_apps_id_scroller); -// -// scroller.setRatio(330 / 523F); -// //scroller.setRatio(176/279F); -// scroller.setSlideOnFling(true); -// scroller.addOnItemChangedListener(this); -// scroller.addScrollStateChangeListener(this); -// //scroller.setItemTransitionTimeMillis(DiscreteScrollViewOptions.getTransitionTime()); -// apps = NavigatorApps.getApps(); -// CARD_SIZE = apps.size(); -// scroller.setItemTransformer(new CardScaleTransformer.Builder() -// .setMinScale(0.84f) -// .build()); - - appIndicatorAdapter = new AppIndicatorAdapter(getContext(), apps); - - appIndicatorAdapter.setOnClickListener(new View.OnClickListener() { - @Override public void onClick(View v) { - NavigatorApp item = (NavigatorApp) v.getTag(); - AppServiceHandler.getMogoCardManager().switch2(item.mModuleType); - } - }); - -// scroller.setAdapter(appIndicatorAdapter); -// scroller.scrollToPosition(Integer.MAX_VALUE / 2 - 1); - //mNavigation.setOnClickListener( view -> { - // openSearchPanel(); - // trackNavigatorClickEvent( 1 ); - //} ); - //mMediaCenter.setOnClickListener( view -> { - // try { - // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_MUSIC ); - // trackNavigatorClickEvent( 2 ); - // } catch ( Exception e ) { - // TipToast.shortTip( R.string.module_apps_str_no_app ); - // } - //} ); - //mCarSettings.setOnClickListener( view -> { - // try { - // LaunchUtils.launchByPkg( getContext(), AppsConst.APP_PKG_CAR_SETTINGS ); - // trackNavigatorClickEvent( 3 ); - // } catch ( Exception e ) { - // TipToast.shortTip( R.string.module_apps_str_no_app ); - // } - //} ); - mApps.setOnClickListener(view -> { - openAppsPanel(); - - //AppServiceHandler.getMogoCardManager() - // .switch2(apps.get((int) (Math.random() * 6)).mModuleType); - - trackNavigatorClickEvent(4); - }); - AppServiceHandler.init(getContext()); - - AppServiceHandler.getMogoCardManager().registerCardChangedListener(TAG, this); - } - - private void scrollToCenter(int index) { - + mNavigatorAppsList = findViewById( R.id.module_apps_id_apps_list ); + mNavigatorAppsList.setLayoutManager( new LinearLayoutManager( getActivity(), RecyclerView.VERTICAL, false ) ); + mAppIndicatorAdapter = new AppIndicatorAdapter( getContext(), NavigatorApps.getApps() ); + mAppIndicatorAdapter.setOnItemClickedListener( ( data, position ) -> { + mLauncher.launch( getContext(), data ); + } ); + mNavigatorAppsList.setAdapter( mAppIndicatorAdapter ); } @NonNull @Override protected AppNavigatorPresenter createPresenter() { - return new AppNavigatorPresenter(this); + return new AppNavigatorPresenter( this ); } @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance() - .build(MogoServicePaths.PATH_FRAGMENT_MANAGER) - .navigation(getContext()); - mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance() - .build(MogoServicePaths.PATH_UTILS_ANALYTICS) - .navigation(getContext()); + public void onActivityCreated( @Nullable Bundle savedInstanceState ) { + super.onActivityCreated( savedInstanceState ); } @Override public void openAppsPanel() { - AppsListActivity.start(getActivity()); + AppsListActivity.start( getActivity() ); } - private void trackNavigatorClickEvent(int type) { - final Map properties = new HashMap<>(); - properties.put("type", type); - mMogoAnalytics.track("Launcher_APP_Icon", properties); + private void trackNavigatorClickEvent( int type ) { + final Map< String, Object > properties = new HashMap<>(); + properties.put( "type", type ); + AppServiceHandler.getMogoAnalytics().track( "Launcher_APP_Icon", properties ); } @Override public void onDestroyView() { super.onDestroyView(); - if (mPresenter != null) { - mPresenter.onDestroy(getViewLifecycleOwner()); + if ( mPresenter != null ) { + mPresenter.onDestroy( getViewLifecycleOwner() ); } } - - @Override - public void onCurrentItemChanged(@Nullable RecycleViewHolder viewHolder, int i) { - Logger.d(TAG, "onCurrentItemChanged--position--" + i % CARD_SIZE); - int currentPosition = (i - 2) % CARD_SIZE; - - //if (!scroller.isComputingLayout()) { - // appIndicatorAdapter.setCurrentPos(i); - //} - //this.currentPosition=currentPosition; - AppServiceHandler.getMogoCardManager().switch2(apps.get(i % CARD_SIZE).mModuleType, true); - - //holder.showText(); - - //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon); - //view.setImageResource(apps.get(currentPosition).getmIconId()); - // - //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name); - //tvTitle.setTextColor(getResources().getColor(R.color.white)); - - } - - @Override public void onScrollStart(@NonNull RecycleViewHolder viewHolder, int i) { - int currentPosition = i % CARD_SIZE - 2; - // - //ImageView view = viewHolder.getView(R.id.module_apps_id_app_icon); - // - // - //view.setImageResource(apps.get(currentPosition).mUncheckedIconId); - //TextView tvTitle = viewHolder.getView(R.id.module_apps_id_app_name); - //tvTitle.setTextColor(getResources().getColor(R.color.white_80)); - - } - - @Override public void onScrollEnd(@NonNull RecycleViewHolder viewHolder, int i) { - - } - - @Override - public void onScroll(float v, int i, int i1, @Nullable RecycleViewHolder viewHolder, - @Nullable RecycleViewHolder t1) { - - } - - //private int currentPosition = 0; - - @Override public void onSwitched(int position, String moduleName) { - //int index = (position - scroller.getCurrentItem() % CARD_SIZE + 2) % CARD_SIZE; - //int i = scroller.getCurrentItem() + index; -// DiscreteScrollLayoutManager layoutManager = -// (DiscreteScrollLayoutManager) scroller.getLayoutManager(); -// -// int currentPosition = (scroller.getCurrentItem() - 2) % CARD_SIZE; -// -// int index = position - currentPosition; -// -// if (index == 0) { -// return; -// } -// if (index <= -3) { -// index += CARD_SIZE; -// } else if (index >= 3) { -// index = index - CARD_SIZE; -// } -// //RecyclerView 的特性,如果是否在屏幕内 -// //if (index < 0) { -// // index -= 2; -// //} -// -// Logger.d(TAG, "position--" -// + position -// + "index--" -// + index -// + "scroll-->" -// + scroller.getCurrentItem() -// + index); -// -// //scroller.setPendingScroll(getResources().getDimensionPixelSize(R.dimen.dp_137)*index); -// //layoutManager.scrollToPositionWithOffset(scroller.getCurrentItem() + index,0); -// //scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137)*index,0); -// -// if (Math.abs(index) == 1) { -// scroller.smoothScrollBy(getResources().getDimensionPixelSize(R.dimen.dp_137) * index, -// 0, null, 10); -// } else { -// layoutManager.startSmoothPendingScroll(layoutManager.getCurrentPosition() + index); -// } - //layoutManager.smoothScrollToPosition(scroller.getCurrentItem() + index); - //currentPosition = position; - } - - private void printIds(View view) { - System.out.println(view.getId()); - if (view instanceof ViewGroup) { - int childCount = ((ViewGroup) view).getChildCount(); - for (int i = 0; i < childCount; i++) { - printIds(((ViewGroup) view).getChildAt(i)); - } - } - } - - private void print(View view) { - - ArrayList views = new ArrayList<>(); - views.add(view); - - while (views.size() > 0) { - System.out.println(view.getId()); - View remove = views.remove(0); - - if (remove instanceof ViewGroup) { - - int childCount = ((ViewGroup) view).getChildCount(); - for (int i = 0; i < childCount; i++) { - views.add(((ViewGroup) view).getChildAt(i)); - } - } - } - - } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java index 378522b10b..6dbdc52ac9 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java @@ -40,8 +40,8 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme @Override public void onCreate( @NonNull LifecycleOwner owner ) { super.onCreate( owner ); - mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( getContext() ); - mMogoStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation( getContext() ); + mIntentManager = AppServiceHandler.getApis().getIntentManagerApi(); + mMogoStatusManager = AppServiceHandler.getApis().getStatusManagerApi(); // 预加载应用列表,空间换时间 AppsModel.getInstance( getContext() ).load( null ); } @@ -68,6 +68,7 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme return; } try { + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); JSONObject object = new JSONObject( intent.getStringExtra( "data" ) ); String app = object.optString( "object" ); String operation = object.optString( "operation" ); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java index 7dc4ce40d3..9bf52fd3b0 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppServiceHandler.java @@ -1,7 +1,9 @@ package com.mogo.module.apps; import android.content.Context; + import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.AbsMogoApplication; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoNavi; @@ -27,6 +29,7 @@ import com.mogo.service.statusmanager.IMogoStatusManager; * version: 1.0 */ public class AppServiceHandler { + private static final String TAG = "AppServiceHandler"; private static IMogoServiceApis mApis; @@ -34,17 +37,18 @@ public class AppServiceHandler { private static IMogoAnalytics mMogoAnalytics; private static IGuideShowProvider mMogoGuideShow; - public static void init( final Context context ) { mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context ); mMogoCardManager = mApis.getCardManagerApi(); mMogoAnalytics = mApis.getAnalyticsApi(); - mMogoGuideShow = (IGuideShowProvider) ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation(context); + mMogoGuideShow = ( IGuideShowProvider ) ARouter.getInstance().build( GuideShowProviderConstant.GUIDE_SHOW_PROVIDER ).navigation( context ); } + public static IMogoCardManager getMogoCardManager() { return mMogoCardManager; } + public static IMogoAnalytics getMogoAnalytics() { return mMogoAnalytics; } @@ -52,4 +56,11 @@ public class AppServiceHandler { public static IGuideShowProvider getMogoGuideShow() { return mMogoGuideShow; } + + public static IMogoServiceApis getApis() { + if ( mApis == null ) { + mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( AbsMogoApplication.getApp() ); + } + return mApis; + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java index 054707c758..1f0dc91f16 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragmentProvider.java @@ -74,7 +74,7 @@ public class AppsFragmentProvider implements IMogoModuleProvider { @Override public void init( Context context ) { - + AppServiceHandler.init( context ); } @Override diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java index 54f42368d3..306c626b83 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.Presenter; import com.mogo.module.apps.applaunch.AppLaunchFilter; import com.mogo.module.apps.applaunch.AppLauncher; @@ -36,7 +37,7 @@ import java.util.Set; *

* 描述 */ -public class AppsPresenter extends Presenter { +public class AppsPresenter extends Presenter< AppsView > { private static final String TAG = "AppsPresenter"; @@ -48,61 +49,62 @@ public class AppsPresenter extends Presenter { private IMogoCardManager mCardManager; private IMogoStatusManager mMogoStatusManager; - public AppsPresenter(AppsView view) { - super(view); - mApis = (IMogoServiceApis)ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(getContext()); + public AppsPresenter( AppsView view ) { + super( view ); + mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); mCardManager = mApis.getCardManagerApi(); - CardAppLauncher cardAppLauncher = new CardAppLauncher(this, mCardManager); - GuideShowLauncher guideShowLauncher = new GuideShowLauncher(mApis.getMapServiceApi().getNavi( getContext() )); - cardAppLauncher.setNext(guideShowLauncher); - guideShowLauncher.setNext(new AppLauncher()); + CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager ); + GuideShowLauncher guideShowLauncher = new GuideShowLauncher( mApis.getMapServiceApi().getNavi( getContext() ) ); + cardAppLauncher.setNext( guideShowLauncher ); + guideShowLauncher.setNext( new AppLauncher() ); mLauncher = cardAppLauncher; } @Override - public void onCreate(@NonNull LifecycleOwner owner) { - super.onCreate(owner); + public void onCreate( @NonNull LifecycleOwner owner ) { + super.onCreate( owner ); renderAppsList(); - AppsListChangedLiveData.getInstance().observeForever(bool -> { - if (mView != null) { + AppsListChangedLiveData.getInstance().observeForever( bool -> { + if ( mView != null ) { renderAppsList(); } - }); + } ); mAnalytics = mApis.getAnalyticsApi(); mMogoStatusManager = mApis.getStatusManagerApi(); - mMogoStatusManager.setAppListUIShow(TAG, true); + mMogoStatusManager.setAppListUIShow( TAG, true ); } private void renderAppsList() { - ThreadPoolService.execute(() -> { - AppsModel.getInstance(getContext()).load(appInfoList -> { + ThreadPoolService.execute( () -> { + AppsModel.getInstance( getContext() ).load( appInfoList -> { - Logger.d(TAG, "apps: %s", appInfoList); - final Map> result = addOthersEntrances( appInfoList ); - UiThreadHandler.post(() -> { - if (mView != null) { + Logger.d( TAG, "apps: %s", appInfoList ); + final Map< Integer, List< AppInfo > > result = addOthersEntrances( appInfoList ); + UiThreadHandler.post( () -> { + if ( mView != null ) { mView.renderApps( result ); } - }); - }); + } ); + } ); - }); + } ); } /** * 新增入口 + * * @param appInfoMap * @return */ - private Map> addOthersEntrances( Map> appInfoMap) { - Map> result = new HashMap<>(); + private Map< Integer, List< AppInfo > > addOthersEntrances( Map< Integer, List< AppInfo > > appInfoMap ) { + Map< Integer, List< AppInfo > > result = new HashMap<>(); if ( appInfoMap != null && !appInfoMap.isEmpty() ) { // val deep copy - Set keys = appInfoMap.keySet(); + Set< Integer > keys = appInfoMap.keySet(); for ( Integer key : keys ) { - List val = appInfoMap.get( key ); + List< AppInfo > val = appInfoMap.get( key ); try { result.put( key, new ArrayList<>( val ) ); } catch ( Exception e ) { @@ -112,16 +114,16 @@ public class AppsPresenter extends Presenter { } // 手动添加无法识别到的app - List apps = UnScannedApps.getUnScannedApps(); + List< AppInfo > apps = UnScannedApps.getUnScannedApps(); if ( apps != null && !apps.isEmpty() ) { for ( AppInfo app : apps ) { if ( app == null ) { continue; } - Set keys = result.keySet(); + Set< Integer > keys = result.keySet(); boolean addFlag = true; for ( Integer key : keys ) { - List val = result.get( key ); + List< AppInfo > val = result.get( key ); // 无法扫描到蓝牙电话app,这里手动添加 for ( AppInfo appInfo : val ) { if ( appInfo == null ) { @@ -137,71 +139,77 @@ public class AppsPresenter extends Presenter { } } if ( addFlag ) { - growthCapacity(result); - result.get(result.size() - 1).add(app); + growthCapacity( result ); + result.get( result.size() - 1 ).add( app ); } } } - growthCapacity(result); + growthCapacity( result ); // 添加介绍入口 - result.get(result.size() - 1).add(new AppInfo(GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show)); + result.get( result.size() - 1 ).add( new AppInfo( GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show ) ); + if ( DebugConfig.isDebug() ) { + // 添加测试入口 + growthCapacity( result ); + result.get( result.size() - 1 ).add( new AppInfo( "包管理程序", "com.mogo.packages.manager", null, 0, null, -1 ) ); + } return result; } /** * 扩容 + * * @param target */ - private void growthCapacity( Map> target ){ + private void growthCapacity( Map< Integer, List< AppInfo > > target ) { if ( target == null ) { return; } - if (target.isEmpty()) { - target.put(0, new ArrayList<>()); - } else if (target.get(target.size() - 1) == null) { - target.put(target.size() - 1, new ArrayList<>()); - } else if (target.get(target.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) { - target.put(target.size(), new ArrayList<>()); + if ( target.isEmpty() ) { + target.put( 0, new ArrayList<>() ); + } else if ( target.get( target.size() - 1 ) == null ) { + target.put( target.size() - 1, new ArrayList<>() ); + } else if ( target.get( target.size() - 1 ).size() == AppsConst.TOTAL_SIZE_EACH_PAGE ) { + target.put( target.size(), new ArrayList<>() ); } } - public void launch(AppInfo appInfo) { - if (appInfo == null) { + public void launch( AppInfo appInfo ) { + if ( appInfo == null ) { return; } - trackAppClicked(appInfo); + trackAppClicked( appInfo ); try { - mLauncher.launch(getContext(), appInfo); - } catch (Exception e) { + mLauncher.launch( getContext(), appInfo ); + } catch ( Exception e ) { } } - private void trackAppClicked(AppInfo appInfo) { - if (appInfo == null) { + private void trackAppClicked( AppInfo appInfo ) { + if ( appInfo == null ) { return; } - Map properties = new HashMap<>(); - properties.put("appname", appInfo.getName()); - properties.put("packagename", appInfo.getPackageName()); - properties.put("appversion", appInfo.getVersionName()); - properties.put("from", 1); - mAnalytics.track("appenterfront", properties); + Map< String, Object > properties = new HashMap<>(); + properties.put( "appname", appInfo.getName() ); + properties.put( "packagename", appInfo.getPackageName() ); + properties.put( "appversion", appInfo.getVersionName() ); + properties.put( "from", 1 ); + mAnalytics.track( "appenterfront", properties ); } @Override - public void onDestroy(@NonNull LifecycleOwner owner) { - super.onDestroy(owner); - mMogoStatusManager.setAppListUIShow(TAG, false); + public void onDestroy( @NonNull LifecycleOwner owner ) { + super.onDestroy( owner ); + mMogoStatusManager.setAppListUIShow( TAG, false ); AppsListChangedLiveData.getInstance().release(); mView = null; mLauncher.destroy(); } public void exit() { - if (mView != null) { + if ( mView != null ) { mView.exit(); } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java index 9b78d95c2e..dfd77cce0c 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/AppIndicatorAdapter.java @@ -1,62 +1,34 @@ package com.mogo.module.apps.adapter; import android.content.Context; -import android.view.View; import android.widget.ImageView; -import android.widget.TextView; -import androidx.core.content.ContextCompat; + import com.mogo.module.apps.R; import com.mogo.module.apps.adapter.base.RecycleBaseAdapter; import com.mogo.module.apps.adapter.base.RecycleViewHolder; +import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.NavigatorApp; + import java.util.List; /** * @author zyz * 2020-03-09. */ -public class AppIndicatorAdapter extends RecycleBaseAdapter { +public class AppIndicatorAdapter extends RecycleBaseAdapter< AppInfo > { - - private int currentPos; - - private View.OnClickListener onClickListener; - /** - * - */ - public AppIndicatorAdapter(Context context, List list - ) { - super(context, list, R.layout.module_apps_item_app_indicator); + public AppIndicatorAdapter( Context context, List< AppInfo > list ) { + super( context, list, R.layout.module_apps_item_app_indicator ); } - @Override public int getItemCount() { - return Integer.MAX_VALUE; - } - - @Override public void onBindViewHolder(RecycleViewHolder holder, NavigatorApp integer) { - ImageView ivIndicator = holder.getView(R.id.module_apps_id_app_icon); - ivIndicator.setImageResource(integer.getmIconId()); - holder.setText(R.id.module_apps_id_app_name,integer.getmName() ); - - TextView tvTitle = holder.getView(R.id.module_apps_id_app_name); - if (currentPos==holder.getLayoutPosition()) { - ivIndicator.setImageResource(integer.getmIconId()); - tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white)); - }else { - tvTitle.setTextColor(ContextCompat.getColor(context,R.color.white_80)); - ivIndicator.setImageResource(integer.getmUncheckedIconId()); - } - holder.itemView.setTag(integer); - holder.itemView.setOnClickListener(onClickListener); - - } - - public void setOnClickListener(View.OnClickListener onClickListener) { - this.onClickListener = onClickListener; - } - - public void setCurrentPos(int currentPos){ - this.currentPos=currentPos; - notifyDataSetChanged(); + @Override + public void onBindViewHolder( RecycleViewHolder holder, AppInfo app, int position ) { + ImageView ivIndicator = holder.getView( R.id.module_apps_id_app_icon ); + ivIndicator.setImageResource( app.getIconResId() ); + holder.itemView.setOnClickListener( view -> { + if ( getOnItemClickedListener() != null ) { + getOnItemClickedListener().onItemClicked( app, position ); + } + } ); } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java index 2a8cc64079..d39ca569b9 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/adapter/base/RecycleBaseAdapter.java @@ -5,7 +5,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; + import androidx.recyclerview.widget.RecyclerView; + import java.util.List; /** @@ -21,20 +23,19 @@ import java.util.List; *

*

*/ -public abstract class RecycleBaseAdapter extends - RecyclerView.Adapter -{ +public abstract class RecycleBaseAdapter< T > extends + RecyclerView.Adapter< RecycleViewHolder > { protected Context context; - protected List list; + protected List< T > list; private int resourceID; - private Toast toast; + + protected OnItemClickListener mOnItemClickedListener; /** * @param context */ - public RecycleBaseAdapter(Context context, List list, int resourceID) - { + public RecycleBaseAdapter( Context context, List< T > list, int resourceID ) { super(); this.context = context; this.list = list; @@ -42,81 +43,75 @@ public abstract class RecycleBaseAdapter extends } @Override - public RecycleViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) - { - View v = LayoutInflater.from(context).inflate(resourceID, viewGroup, - false); + public RecycleViewHolder onCreateViewHolder( ViewGroup viewGroup, int viewType ) { + View v = LayoutInflater.from( context ).inflate( resourceID, viewGroup, + false ); RecycleViewHolder holder = RecycleViewHolder - .get(v); + .get( v ); - initHolder(holder); + initHolder( holder ); return holder; } @Override - public void onBindViewHolder( - RecycleViewHolder viewHolder, int position) - { - onBindViewHolder(viewHolder, list.get(position % list.size())); + public void onBindViewHolder( RecycleViewHolder viewHolder, int position ) { + onBindViewHolder( viewHolder, list.get( position % list.size()), position ); } @Override - public int getItemCount() - { + public int getItemCount() { return list == null ? 0 : list.size(); } - public abstract void onBindViewHolder( - RecycleViewHolder holder, T t); + public abstract void onBindViewHolder( RecycleViewHolder holder, T t, int position ); - public void initHolder(RecycleViewHolder holder) - { + public void initHolder( RecycleViewHolder holder ) { } - public void setDatas(List list) - { - setDatas(list, false); + + public void setDatas( List< T > list ) { + setDatas( list, false ); } - public void setDatas(List list, boolean add) - { - if (add) - { - this.list.addAll(list); - } - else - { + public void setDatas( List< T > list, boolean add ) { + if ( add ) { + this.list.addAll( list ); + } else { this.list = list; } notifyDataSetChanged(); } - public void clear(){ - if (list != null) { + + public void clear() { + if ( list != null ) { list.clear(); notifyDataSetChanged(); } } - public void messageShow(String mes) - { - if (toast==null){ - toast= Toast.makeText(context,mes, Toast.LENGTH_LONG); - } - else{ - toast.setText(mes); - } - toast.show(); - } - public T getItem(int position){ - if (list==null||list.size()==0){ + public T getItem( int position ) { + if ( list == null || list.size() == 0 ) { return null; } - return list.get(position); + return list.get( position ); } - public List getList() { + public List< T > getList() { return list; } + + public interface OnItemClickListener< T > { + void onItemClicked( T data, int position ); + } + + public RecycleBaseAdapter< T > setOnItemClickedListener( OnItemClickListener< T > onItemClickedListener ) { + this.mOnItemClickedListener = onItemClickedListener; + return this; + } + + public OnItemClickListener< T > getOnItemClickedListener() { + return mOnItemClickedListener; + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java index 0ce9ae3b23..fe9e34b244 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java @@ -2,6 +2,7 @@ package com.mogo.module.apps.applaunch; import android.content.Context; +import com.mogo.module.apps.AppServiceHandler; import com.mogo.module.apps.R; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.utils.LaunchUtils; @@ -21,6 +22,7 @@ public class AppLauncher extends BaseAppLauncher { @Override public void launch( Context context, AppInfo appInfo ) { try { + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); LaunchUtils.launchByPkg( context, appInfo.getPackageName() ); } catch ( Exception e ) { Logger.e( TAG, e, "error." ); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java new file mode 100644 index 0000000000..5db46d1315 --- /dev/null +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java @@ -0,0 +1,47 @@ +package com.mogo.module.apps.applaunch; + +import android.app.Activity; +import android.content.Context; + +import com.mogo.module.apps.AppServiceHandler; +import com.mogo.module.apps.AppsListActivity; +import com.mogo.module.apps.model.AppInfo; + +/** + * @author congtaowang + * @since 2020-05-14 + *

+ * 描述 + */ +public class InternalFunctionLauncher extends BaseAppLauncher { + + private Activity mActivity; + + public InternalFunctionLauncher( Activity activity ) { + this.mActivity = activity; + } + + @Override + public void launch( Context context, AppInfo appInfo ) { + switch ( appInfo.getPackageName() ) { + case "com.mogo.launcher.navi.search": + AppServiceHandler.getApis().getSearchManagerApi().showSearch(); + break; + case "com.mogo.launcher.applist": + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); + AppsListActivity.start( mActivity ); + break; + default: + if ( getNext() != null ) { + getNext().launch( context, appInfo ); + } + } + } + + @Override + public void destroy() { + if ( getNext() != null ) { + getNext().destroy(); + } + } +} diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java index d5f7df5b9b..9681af74b6 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApp.java @@ -15,44 +15,18 @@ public class NavigatorApp { @DrawableRes public int mUncheckedIconId; public String mName; - public String mModuleType; - public NavigatorApp( int mIconId,int mUncheckedIconId, String mName, String mModuleType ) { + public NavigatorApp( int mIconId, int mUncheckedIconId, String mName ) { this.mIconId = mIconId; this.mUncheckedIconId = mUncheckedIconId; this.mName = mName; - this.mModuleType = mModuleType; } - public int getmIconId() { + public int getIconId() { return mIconId; } - public void setmIconId(int mIconId) { - this.mIconId = mIconId; - } - - public int getmUncheckedIconId() { - return mUncheckedIconId; - } - - public void setmUncheckedIconId(int mUncheckedIconId) { - this.mUncheckedIconId = mUncheckedIconId; - } - - public String getmName() { + public String getName() { return mName; } - - public void setmName(String mName) { - this.mName = mName; - } - - public String getmModuleType() { - return mModuleType; - } - - public void setmModuleType(String mModuleType) { - this.mModuleType = mModuleType; - } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java index 3ff8bc8b09..9e5a98be45 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java @@ -1,9 +1,6 @@ package com.mogo.module.apps.model; import com.mogo.module.apps.R; -import com.mogo.module.common.ModuleNames; -import com.mogo.module.common.MogoModule; -import com.mogo.module.common.MogoModulePaths; import java.util.ArrayList; import java.util.List; @@ -16,48 +13,15 @@ import java.util.List; */ public class NavigatorApps { - public static List< NavigatorApp > getApps() { - List< NavigatorApp > apps = new ArrayList<>(); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_online_car,R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ) ); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked,"新鲜事", ModuleNames.CARD_TYPE_NOVELTY ) ); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_news,R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ) ); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ) ); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked,"车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ) ); - apps.add( new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked,"探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ) ); - return apps; - } + private static List< AppInfo > sApps = new ArrayList<>(); -// public static List< NavigatorApp > getApps() { -// List< NavigatorApp > apps = new ArrayList<>(); -// List< MogoModule > modules = MogoModulePaths.getModules(); -// for ( MogoModule module : modules ) { -// NavigatorApp app = getApp( module ); -// if ( app == null ) { -// continue; -// } -// apps.add( app ); -// } -// return apps; -// } -// -// private static NavigatorApp getApp( MogoModule module ) { -// if ( module == null ) { -// return null; -// } -// switch ( module.getName() ) { -// case ModuleNames.CARD_TYPE_USER_DATA: -// return new NavigatorApp( R.drawable.module_apps_ic_online_car, R.drawable.module_apps_ic_online_car_unchecked, "在线车辆", ModuleNames.CARD_TYPE_USER_DATA ); -// case ModuleNames.CARD_TYPE_NOVELTY: -// return new NavigatorApp( R.drawable.module_apps_ic_interest, R.drawable.module_apps_ic_interest_unchecked, "新鲜事", ModuleNames.CARD_TYPE_NOVELTY ); -// case ModuleNames.CARD_TYPE_BUSINESS_OPERATION: -// return new NavigatorApp( R.drawable.module_apps_ic_news, R.drawable.module_apps_ic_news_unchecked, "首页", ModuleNames.CARD_TYPE_BUSINESS_OPERATION ); -// case ModuleNames.CARD_TYPE_SHARE_MUSIC: -// return new NavigatorApp( R.drawable.module_apps_ic_media_center, R.drawable.module_apps_ic_media_center_checked, "媒体中心", ModuleNames.CARD_TYPE_SHARE_MUSIC ); -// case ModuleNames.CARD_TYPE_CARS_CHATTING: -// return new NavigatorApp( R.drawable.module_apps_ic_chat_icon, R.drawable.module_apps_ic_chat_unchecked, "车聊聊", ModuleNames.CARD_TYPE_CARS_CHATTING ); -// case ModuleNames.CARD_TYPE_ROAD_CONDITION: -// return new NavigatorApp( R.drawable.module_apps_ic_tanlu, R.drawable.module_apps_ic_tanlu_unchecked, "探路", ModuleNames.CARD_TYPE_ROAD_CONDITION ); -// } -// return null; -// } + public static List< AppInfo > getApps() { + if ( sApps.isEmpty() ) { + sApps.add( new AppInfo( "导航", "com.mogo.launcher.navi.search", "", 0, null, R.drawable.module_apps_ic_apps ) ); + sApps.add( new AppInfo( "音乐", "com.pvetec.musics", "", 0, null, R.drawable.module_apps_ic_apps ) ); + sApps.add( new AppInfo( "个人中心", "com.zhidao.auto.personal", "", 0, null, R.drawable.module_apps_ic_apps ) ); + sApps.add( new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_apps ) ); + } + return sApps; + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java deleted file mode 100644 index 771fc71f2d..0000000000 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/utils/CardScaleTransformer.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.mogo.module.apps.utils; - -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import androidx.annotation.FloatRange; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.RecyclerView; -import com.mogo.module.apps.R; -import com.mogo.module.apps.model.NavigatorApp; -import com.yarolegovich.discretescrollview.transform.DiscreteScrollItemTransformer; -import com.yarolegovich.discretescrollview.transform.Pivot; -import com.yarolegovich.discretescrollview.transform.ScaleTransformer; -import java.util.List; - -/** - * @author zyz - * 2020-03-11. - */ -public class CardScaleTransformer implements DiscreteScrollItemTransformer { - - private Pivot pivotX; - private Pivot pivotY; - private float minScale; - private float maxMinDiff; - private static final int CARD_SIZE = 6; - - List apps; - - public CardScaleTransformer() { - pivotX = Pivot.X.CENTER.create(); - pivotY = Pivot.Y.BOTTOM.create(); - minScale = 0.8f; - maxMinDiff = 0.2f; - } - - public void setApps(List apps) { - this.apps = apps; - } - - @Override - public void transformItem(View item, RecyclerView.ViewHolder childViewHolder, float position) { - - ImageView ivItem = item.findViewById(R.id.module_apps_id_app_icon); - - TextView tvTitle = item.findViewById(R.id.module_apps_id_app_name); - NavigatorApp tag = (NavigatorApp) item.getTag(); - - pivotX.setOn(ivItem); - pivotY.setOn(ivItem); - float closenessToCenter = 1f - Math.abs(position); - float scale = minScale + maxMinDiff * closenessToCenter; - ivItem.setScaleX(scale); - ivItem.setScaleY(scale); - - if (tag != null) { - if (scale == 1) { - ivItem.setImageResource(tag.getmIconId()); - tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white)); - } else { - ivItem.setImageResource(tag.getmUncheckedIconId()); - tvTitle.setTextColor(ContextCompat.getColor(item.getContext(),R.color.white_80)); - } - - } - - //int currentPosition = (position - 2) % CARD_SIZE; - - } - - public static class Builder { - - private CardScaleTransformer transformer; - private float maxScale; - - public Builder() { - transformer = new CardScaleTransformer(); - maxScale = 1f; - } - - public Builder setMinScale(@FloatRange(from = 0.01) float scale) { - transformer.minScale = scale; - return this; - } - - public Builder setMaxScale(@FloatRange(from = 0.01) float scale) { - maxScale = scale; - return this; - } - - public Builder setPivotX(Pivot.X pivotX) { - return setPivotX(pivotX.create()); - } - - public Builder setPivotX(Pivot pivot) { - assertAxis(pivot, Pivot.AXIS_X); - transformer.pivotX = pivot; - return this; - } - - public Builder setPivotY(Pivot.Y pivotY) { - return setPivotY(pivotY.create()); - } - - public Builder setPivotY(Pivot pivot) { - assertAxis(pivot, Pivot.AXIS_Y); - transformer.pivotY = pivot; - return this; - } - - public CardScaleTransformer build() { - transformer.maxMinDiff = maxScale - transformer.minScale; - return transformer; - } - - private void assertAxis(Pivot pivot, @Pivot.Axis int axis) { - if (pivot.getAxis() != axis) { - throw new IllegalArgumentException("You passed a Pivot for wrong axis."); - } - } - } -} diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml index 1a0b739e7f..2ea21751a8 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps_navigator.xml @@ -1,47 +1,16 @@ + android:paddingBottom="@dimen/module_apps_navigation_icon_paddingBottom"> - - - - - - - + \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml index 8e02e01c0e..3e37557a76 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_indicator.xml @@ -2,23 +2,13 @@ - - + android:layout_width="@dimen/module_apps_all_icon_width" + android:layout_height="@dimen/module_apps_all_icon_height" + android:scaleType="fitXY" /> \ No newline at end of file diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java index c7fc69be71..74c6826eed 100644 --- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToLauncherModuleProvider.java @@ -10,15 +10,12 @@ import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; -import com.alibaba.idst.nls.internal.utils.L; -import com.mogo.commons.AbsMogoApplication; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; -import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.module.IMogoModuleLifecycle; @@ -104,7 +101,7 @@ public class BackToLauncherModuleProvider implements IMogoModuleProvider, IMogoI mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); mIntentManager = mServiceApis.getIntentManagerApi(); mIntentManager.registerIntentListener( COMMAND_BACK, this ); - BackToMainHomeManager.init( mServiceApis.getFragmentManagerApi(), mServiceApis.getStatusManagerApi() ); + BackToMainHomeManager.init( mServiceApis ); } @Override diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java index 64fb84055d..93a1eec5d3 100644 --- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java @@ -11,6 +11,7 @@ import android.view.WindowManager; import com.mogo.commons.AbsMogoApplication; import com.mogo.module.back.utils.WindowManagerViewHelper; +import com.mogo.service.IMogoServiceApis; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.AppUtils; @@ -24,10 +25,12 @@ public class BackToMainHomeManager { private static IMogoFragmentManager mFragmentManager; private static IMogoStatusManager mStatusManager; + private static IMogoServiceApis mApis; - public static void init( IMogoFragmentManager manager, IMogoStatusManager statusManager ) { - mFragmentManager = manager; - mStatusManager = statusManager; + public static void init( IMogoServiceApis apis ) { + mApis = apis; + mFragmentManager = apis.getFragmentManagerApi(); + mStatusManager = apis.getStatusManagerApi(); } public static void backToLauncher() { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java index 3581fa2353..6621be43bd 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsPresenter.java @@ -202,7 +202,7 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements switch ( descriptor ) { case APP_LIST_UI: case SEARCH_UI: - changeAutoSwitchVoiceTipsWordsStatus( !isTrue ); +// changeAutoSwitchVoiceTipsWordsStatus( !isTrue ); break; } } @@ -210,13 +210,13 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements @Override public void onResume( @NonNull LifecycleOwner owner ) { super.onResume( owner ); - changeAutoSwitchVoiceTipsWordsStatus( true ); +// changeAutoSwitchVoiceTipsWordsStatus( true ); } @Override public void onPause( @NonNull LifecycleOwner owner ) { super.onPause( owner ); - changeAutoSwitchVoiceTipsWordsStatus( true ); +// changeAutoSwitchVoiceTipsWordsStatus( true ); } private void changeAutoSwitchVoiceTipsWordsStatus( boolean autoChange ) { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index e5aeabede9..7d95097c3e 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -77,12 +77,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private static final String TAG = "EntranceFragment"; - private View mSearch; - - private View mCommonAddress; - private View mHome; - private View mCompany; - private View mUploadRoadCondition; private TextView mUpload; private ImageView mUploading; @@ -188,29 +182,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mStatusManager = mApis.getStatusManagerApi(); - mCommonAddress = findViewById( R.id.module_entrance_id_common_address ); - - mSearch = findViewById( R.id.module_entrance_id_search ); - - mSearch.setOnClickListener( view -> { - mApis.getAddressManagerApi().goSearch(); - mApis.getAdasControllerApi().closeADAS(); - } ); - - mHome = findViewById( R.id.module_entrance_id_home ); - mHome.setOnClickListener( view -> { - mMogoAddressManager.goHome(); - mApis.getAdasControllerApi().closeADAS(); - - } ); - - mCompany = findViewById( R.id.module_entrance_id_company ); - mCompany.setOnClickListener( view -> { - mMogoAddressManager.goCompany(); - mApis.getAdasControllerApi().closeADAS(); - - } ); - mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition ); mUpload = findViewById( R.id.module_entrance_id_upload ); mUploading = findViewById( R.id.module_entrance_id_uploading ); @@ -354,14 +325,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } - @Override - public void onInitNaviFailure() { - } - - @Override - public void onInitNaviSuccess() { - } - @Override public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { if ( naviinfo == null ) { @@ -372,8 +335,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override public void onStartNavi() { - mSearch.setVisibility( View.GONE ); - mCommonAddress.setVisibility( View.GONE ); mNaviInfo.setVisibility( View.VISIBLE ); mCameraMode.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); @@ -386,8 +347,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override public void onStopNavi() { - mSearch.setVisibility( View.VISIBLE ); - mCommonAddress.setVisibility( View.VISIBLE ); mNaviInfo.setVisibility( View.GONE ); mCameraMode.setVisibility( View.GONE ); mExitNavi.setVisibility( View.GONE ); @@ -396,18 +355,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.AIMLESS ); } - @Override - public void onCalculateSuccess() { - } - - @Override - public void onoCalculateFailed() { - } - - @Override - public void onUpdateTraffic( MogoTraffic traffic ) { - } - @Override public void onUpdateTraffic2( MogoTraffic traffic ) { if ( traffic == null ) { @@ -423,31 +370,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } } - @Override - public void onUpdateCongestion( MogoCongestionInfo info ) { - - } - - @Override - public void onMapLoaded() { - - } - - @Override - public void onTouch( MotionEvent motionEvent ) { - - } - - @Override - public void onPOIClick( MogoPoi poi ) { - - } - - @Override - public void onMapClick( MogoLatLng latLng ) { - - } - @Override public void onLockMap( boolean isLock ) { mIsLock = isLock; @@ -461,16 +383,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } } - @Override - public void onMapModeChanged( EnumMapUI ui ) { - - } - - @Override - public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { - - } - private void traceData( String from ) { Map< String, Object > properties = new HashMap<>(); properties.put( "from", from ); 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 42400dbae6..6e91ac92d1 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 @@ -5,73 +5,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - - - - - - - - - - - - - - - + app:layout_goneMarginRight="@dimen/module_ext_operation_panel_share_goneMarginRight"> + + + android:textSize="@dimen/module_ext_operation_panel_share_textSize" + android:visibility="gone" /> diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index d6dd637cc9..debafa9007 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -24,17 +24,12 @@ import com.mogo.module.common.MogoModulePaths; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; import com.mogo.module.main.cards.CardIntroduceConfigs; -import com.mogo.module.main.cards.CardModulesAdapter; -import com.mogo.module.main.cards.HorizentalStackTransformer; import com.mogo.module.main.cards.MogoModulesHandler; import com.mogo.module.main.cards.MogoModulesManager; -import com.mogo.module.main.cards.OnPageChangeListenerAdapter; -import com.mogo.module.main.cards.OrientedViewPager; import com.mogo.module.main.windowview.FloatingViewHandler; import com.mogo.module.service.ServiceConst; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; -import com.mogo.service.cardmanager.IMogoCardManager; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.map.IMogoMapService; import com.mogo.service.module.IMogoModuleProvider; @@ -59,16 +54,10 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme private IMogoMapService mMogoMapService; private IMogoMapUIController mMogoMapUIController; private MogoModulesHandler mMogoModuleHandler; - private IMogoCardManager mMogoCardManager; private IMogoFragmentManager mMogoFragmentManager; private IMogoStatusManager mMogoStatusManager; - private OrientedViewPager mCardsContainer; - private HorizentalStackTransformer mTransformer; - private CardModulesAdapter mCardModulesAdapter; - private View mHeader; - private View mCards; private View mApps; private View mEntrance; private FrameLayout mFloatingLayout; @@ -102,82 +91,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme getWindow().setBackgroundDrawable( null ); - mCardsContainer = findViewById( R.id.module_main_id_cards_container ); - mCardsContainer.setOrientation( OrientedViewPager.Orientation.HORIZONTAL ); - mTransformer = new HorizentalStackTransformer( this ); - mCardsContainer.setOnPageChangeListener( mOnPageChangeListener = new OnPageChangeListenerAdapter() { - private boolean mIsLast = true; - private boolean mCardFlipStatus = false; - - @Override - public void onPageSelected( int position ) { - final long start = System.currentTimeMillis(); - try { - IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition ); - if ( mCurrentPosition != position ) { - mPresenter.postTrackLastCardShowEvent( provider ); - } - mCurrentPosition = position; - provider = mCardModulesAdapter.getProvider( mCurrentPosition ); - mMogoModuleHandler.setModuleEnable( provider.getModuleName() ); - mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); - - if ( mLockCarStatus ) { - mMogoStatusManager.setUserInteractionStatus( TAG, true, false ); - mMogoMapUIController.setLockZoom( 16 ); - mMogoMapUIController.recoverLockMode(); - } - mLockCarStatus = true; - - } catch ( Exception e ) { - e.printStackTrace(); - } - Logger.i( TAG, "onPageSelected cost " + ( System.currentTimeMillis() - start ) + "ms" ); - } - - @Override - public void onPageScrollStateChanged( int state ) { - final long start = System.currentTimeMillis(); - super.onPageScrollStateChanged( state ); - if ( state == ViewPager.SCROLL_STATE_DRAGGING ) { - if ( !mCardFlipStatus ) { - mCardFlipStatus = true; - final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition ); - mPresenter.postTrackCardFlipEvent( provider ); - } - } else if ( state == ViewPager.SCROLL_STATE_IDLE ) { - mCardFlipStatus = false; - mTransformer.resetOffsetScroll(); - } - - int cardSize = mCardModulesAdapter.getCount(); - - if ( state == ViewPager.SCROLL_STATE_SETTLING ) { - mIsLast = false; - } else if ( state == ViewPager.SCROLL_STATE_IDLE && mIsLast ) { - //此处为你需要的情况,再加入当前页码判断可知道是第一页还是最后一页 - if ( cardSize != 1 && mCurrentPosition == ( cardSize - 1 ) ) { - mCardsContainer.setCurrentItem( 0, false ); - } else if ( cardSize != 1 && mCurrentPosition == 0 ) { - mCardsContainer.setCurrentItem( cardSize - 1, false ); - } - } else { - mIsLast = true; - } - Logger.i( TAG, "onPageScrollStateChanged cost " + ( System.currentTimeMillis() - start ) + "ms" ); - } - - @Override - public void onPageScrolled( int position, float positionOffset, - int positionOffsetPixels ) { - super.onPageScrolled( position, positionOffset, positionOffsetPixels ); - Logger.d( TAG, "pageScrolled : offset --- " + positionOffset ); - mTransformer.offsetScrollChanged( positionOffset ); - } - } ); - mHeader = findViewById( R.id.module_main_id_header_fragment_container ); - mCards = findViewById( R.id.module_main_id_cards_container ); mApps = findViewById( R.id.module_main_id_apps_fragment_container ); mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container ); mFloatingLayout = findViewById( R.id.module_main_id_floating_view ); @@ -194,7 +108,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme // 隐藏布局 private void hideLayout() { mHeader.setVisibility( View.GONE ); - mCards.setVisibility( View.GONE ); mApps.setVisibility( View.GONE ); mEntrance.setVisibility( View.GONE ); mFloatingLayout.setVisibility( View.GONE ); @@ -205,7 +118,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme // 显示布局 private void showLayout() { mHeader.setVisibility( View.VISIBLE ); - mCards.setVisibility( View.VISIBLE ); mApps.setVisibility( View.VISIBLE ); mEntrance.setVisibility( View.VISIBLE ); mFloatingLayout.setVisibility( View.VISIBLE ); @@ -249,6 +161,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme loadContainerModules(); mMogoModuleHandler.loadModules(); mPresenter.delayOperations(); + mPresenter.initADAS(); hideCoverUpLayout(); // 显示左边遮罩 @@ -264,8 +177,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme } ); mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container ); - mMogoCardManager = mServiceApis.getCardManagerApi(); - mMogoFragmentManager = mServiceApis.getFragmentManagerApi(); mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment ); mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> { @@ -291,17 +202,10 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mMogoModuleHandler.loadEntrancesModule( R.id.module_main_id_entrance_fragment_container ); } - @Override - public void postPickFirstCardEvent() { - if ( mOnPageChangeListener != null ) { - // 默认触发第一个卡片 - mOnPageChangeListener.onPageSelected( 0 ); - } - } - @Override public void hideCoverUpLayout() { mCoverUpLayout.setVisibility( View.GONE ); + mServiceApis.getAdasControllerApi().showADAS(); } @Override @@ -336,23 +240,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public void switch2Card( String cardType, boolean lockCar ) { - if ( mCardModulesAdapter == null ) { - return; - } - mLockCarStatus = lockCar; - int position = mCardModulesAdapter.getProviderPosition( cardType ); - if ( position != -1 ) { - int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition ); - mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 ); - } else { - Logger.e( TAG, "Can't find type of %s's position", cardType ); - } } @Override protected void onResume() { super.onResume(); mMogoStatusManager.setMainPageResumeStatus( TAG, true ); + if ( mCoverUpLayout.getVisibility() == View.VISIBLE ) { + mServiceApis.getAdasControllerApi().showADAS(); + } } @Override @@ -360,6 +256,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme super.onPause(); mMogoStatusManager.setMainPageResumeStatus( TAG, false ); CardIntroduceConfigs.flush( getApplicationContext() ); + mServiceApis.getAdasControllerApi().closeADAS(); } @Override @@ -400,7 +297,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mMogoModuleHandler = null; mMogoMapService = null; mMogoMapUIController = null; - mMogoCardManager = null; mMogoFragmentManager = null; AIAssist.getInstance( this ).release(); } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java index 9b002249ca..9d15afb925 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainPresenter.java @@ -1,7 +1,6 @@ package com.mogo.module.main; import android.content.Intent; -import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -12,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; -import com.mogo.map.navi.IMogoNavi; import com.mogo.module.main.constants.MainConstants; import com.mogo.module.main.livedata.CardSwitchLiveData; import com.mogo.service.MogoServicePaths; @@ -33,8 +31,6 @@ public class MainPresenter extends Presenter< MainView > { // 埋点接口 private IMogoAnalytics mAnalytics; - private long mCardStartShowTime = 0; - private Handler mMsgHandler = new Handler( Looper.getMainLooper() ) { @Override public void handleMessage( Message msg ) { @@ -42,16 +38,6 @@ public class MainPresenter extends Presenter< MainView > { switch ( msg.what ) { case MainConstants.MSG_LOAD_CARD_MODULES: mView.loadCardModules(); - mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT, 1_000L ); - break; - case MainConstants.MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT: - mView.postPickFirstCardEvent(); - break; - case MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT: - trackLastCardShowEvent( ( IMogoModuleProvider ) msg.obj ); - break; - case MainConstants.MSG_TRACK_CARD_FLIP_EVENT: - trackCardFlipEvent( ( IMogoModuleProvider ) msg.obj ); break; case MainConstants.MSG_HIDE_MAP_COVER_FRAME: mView.hideCoverUpLayout(); @@ -65,7 +51,6 @@ public class MainPresenter extends Presenter< MainView > { public MainPresenter( MainView view ) { super( view ); - mCardStartShowTime = System.currentTimeMillis(); SchemeIntent.getInstance().init( getContext(), mView.getApis() ); } @@ -81,38 +66,6 @@ public class MainPresenter extends Presenter< MainView > { mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() ); } - /** - * 卡片展示时长埋点 - * - * @param provider - */ - public void trackLastCardShowEvent( IMogoModuleProvider provider ) { - if ( provider == null ) { - return; - } - Map< String, Object > properties = new HashMap<>(); - properties.put( "appname", provider.getAppName() ); - properties.put( "packagename", provider.getAppPackage() ); - properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime ); - properties.put( "type", provider.getModuleName() ); - mAnalytics.track( "Launcher_Card_Show", properties ); - mCardStartShowTime = System.currentTimeMillis(); - } - - /** - * 卡片滑动埋点,WTF - */ - public void trackCardFlipEvent( IMogoModuleProvider provider ) { - if ( provider == null ) { - return; - } - Map< String, Object > properties = new HashMap<>(); - properties.put( "appname", provider.getAppName() ); - properties.put( "packagename", provider.getAppPackage() ); - properties.put( "type", provider.getModuleName() ); - mAnalytics.track( "Launcher_Card_Slide", properties ); - } - /** * 延时操作 */ @@ -121,20 +74,6 @@ public class MainPresenter extends Presenter< MainView > { mMsgHandler.sendEmptyMessageDelayed( MainConstants.MSG_HIDE_MAP_COVER_FRAME, 150L ); } - public void postTrackLastCardShowEvent( IMogoModuleProvider provider ) { - Message msg = Message.obtain(); - msg.what = MainConstants.MSG_TRACK_LAST_CARD_DISPLAY_EVENT; - msg.obj = provider; - mMsgHandler.sendMessage( msg ); - } - - public void postTrackCardFlipEvent( IMogoModuleProvider provider ) { - Message msg = Message.obtain(); - msg.what = MainConstants.MSG_TRACK_CARD_FLIP_EVENT; - msg.obj = provider; - mMsgHandler.sendMessage( msg ); - } - public void postLoadModuleMsg() { Message msg = Message.obtain(); msg.what = MainConstants.MSG_LOAD_MODULES; @@ -144,4 +83,8 @@ public class MainPresenter extends Presenter< MainView > { public void handleSchemeIntent( Intent intent ) { SchemeIntent.getInstance().handle( intent ); } + + public void initADAS(){ + + } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java index 8ab476a7c4..ec93570a23 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java @@ -23,11 +23,6 @@ public interface MainView extends IView { */ void loadCardModules(); - /** - * 触发第一张卡片选中 - */ - void postPickFirstCardEvent(); - /** * 隐藏背景 */ diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java index b42e719706..ed57a10838 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesHandler.java @@ -1,21 +1,9 @@ package com.mogo.module.main.cards; -import com.mogo.map.listener.IMogoMapListener; -import com.mogo.map.location.IMogoLocationClient; -import com.mogo.map.location.IMogoLocationListener; -import com.mogo.map.marker.IMogoMarker; -import com.mogo.map.marker.IMogoMarkerClickListener; -import com.mogo.map.navi.IMogoAimlessModeListener; -import com.mogo.map.navi.IMogoCarLocationChangedListener; -import com.mogo.map.navi.IMogoCarLocationChangedListener2; -import com.mogo.map.navi.IMogoNaviListener; import com.mogo.service.module.IMogoModuleProvider; -import java.util.Collection; import java.util.List; -import javax.security.auth.callback.Callback; - /** * @author congtaowang * @since 2019-12-24 @@ -64,22 +52,8 @@ public interface MogoModulesHandler { */ void loadEntrancesModule( int containerId ); - /** - * 设置某一个module可用 - * - * @param module - */ - void setModuleEnable( String module ); - /** * 销毁 */ void destroy(); - - /** - * 当前卡片名称 - * - * @return - */ - String getCurrentModuleName(); } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index be86c4e7ad..bc4f9ae071 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -1,7 +1,6 @@ package com.mogo.module.main.cards; import android.content.Context; -import android.text.TextUtils; import androidx.fragment.app.Fragment; @@ -11,24 +10,13 @@ import com.mogo.module.common.MogoModulePaths; import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.main.EventDispatchCenter; import com.mogo.module.main.MainActivity; -import com.mogo.module.main.registercenter.MogoRegisterCenterHandler; import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; -import com.mogo.service.intent.IMogoIntentManager; -import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.module.IMogoModuleProvider; -import com.mogo.service.module.ModuleType; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.logger.Logger; -import com.mogo.utils.network.utils.GsonUtil; -import com.mogo.utils.storage.SharedPrefsMgr; - -import org.json.JSONArray; -import org.json.JSONException; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -38,7 +26,7 @@ import java.util.Map; *

* 卡片加载 */ -public class MogoModulesManager implements MogoModulesHandler{ +public class MogoModulesManager implements MogoModulesHandler { private static final String TAG = "MogoModulesManager"; @@ -48,17 +36,12 @@ public class MogoModulesManager implements MogoModulesHandler{ // 空间换效率 private Map< String, IMogoModuleProvider > mModuleNameProviders = new HashMap<>(); - private String mEnableModuleName = null; - - public static final String KEY_SORTED_CARD_MODULES = "sortedCards"; - private List< String > mSortedCards = new ArrayList<>(); - - public MogoModulesManager( MainActivity activity , IMogoServiceApis apis) { + public MogoModulesManager( MainActivity activity, IMogoServiceApis apis ) { if ( activity == null ) { throw new NullPointerException( "activity can't be null." ); } this.mActivity = activity; - EventDispatchCenter.getInstance().registerReceiver(apis.getIntentManagerApi()); + EventDispatchCenter.getInstance().registerReceiver( apis.getIntentManagerApi() ); CardIntroduceConfigs.init( getContext(), apis ); } @@ -88,61 +71,13 @@ public class MogoModulesManager implements MogoModulesHandler{ @Override public List< IMogoModuleProvider > loadCardsModule() { - String sortedJson = SharedPrefsMgr.getInstance( getContext() ).getString( KEY_SORTED_CARD_MODULES ); - try { - JSONArray array = new JSONArray( sortedJson ); - mSortedCards = new ArrayList<>( array.length() ); - for ( int i = 0; i < array.length(); i++ ) { - mSortedCards.add( array.getString( i ) ); - } - Logger.d( TAG, "Last cache card: %s", mSortedCards ); - } catch ( JSONException e ) { - e.printStackTrace(); - } - final List< MogoModule > modules = MogoModulePaths.getModules(); final ArrayList< IMogoModuleProvider > providers = new ArrayList<>(); for ( MogoModule module : modules ) { IMogoModuleProvider provider = mModuleProviders.get( module ); - if ( provider.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName == null ) { - mEnableModuleName = provider.getModuleName(); - } - providers.add( provider ); - } + providers.add( provider ); } return providers; -// return sort( providers ); v2.0.2暂不支持变顺序 - } - - private List< IMogoModuleProvider > sort( List< IMogoModuleProvider > modules ) { - if ( modules == null || modules.size() == 0 ) { - return modules; - } - if ( mSortedCards == null ) { - mSortedCards = new ArrayList<>(); - } - List< IMogoModuleProvider > sortedList = new ArrayList<>( modules.size() ); - - for ( String sortedCard : mSortedCards ) { - for ( IMogoModuleProvider module : modules ) { - if ( TextUtils.equals( module.getModuleName(), sortedCard ) ) { - sortedList.add( module ); - Logger.d( TAG, "%s sorted.", sortedCard ); - break; - } - } - } - for ( IMogoModuleProvider module : modules ) { - if ( !sortedList.contains( module ) ) { - sortedList.add( module ); - } - } - mSortedCards.clear(); - for ( IMogoModuleProvider provider : sortedList ) { - mSortedCards.add( provider.getModuleName() ); - } - return sortedList; } @Override @@ -183,14 +118,12 @@ public class MogoModulesManager implements MogoModulesHandler{ private void addFragment( IMogoModuleProvider provider, int containerId ) { if ( provider == null ) { - Logger.e( TAG, "add fragment fail cause provider == null, container is %s", - ResourcesHelper.getResNameById( getApplicationContext(), containerId ) ); + Logger.e( TAG, "add fragment fail cause provider == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) ); return; } final Fragment fragment = provider.createFragment( getContext(), null ); if ( fragment == null ) { - Logger.e( TAG, "add fragment fail cause fragment == null, container is %s", - ResourcesHelper.getResNameById( getApplicationContext(), containerId ) ); + Logger.e( TAG, "add fragment fail cause fragment == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) ); return; } mActivity.getSupportFragmentManager().beginTransaction() @@ -198,52 +131,6 @@ public class MogoModulesManager implements MogoModulesHandler{ .commitAllowingStateLoss(); } - @Override - public void setModuleEnable( String module ) { - final long start1 = System.currentTimeMillis(); - // 仅操作上一个模块和当前模块 - Iterator< IMogoModuleProvider > iterator = mModuleProviders.values().iterator(); - int counter = 0; - - // 上一个卡片设置为 disable - IMogoModuleProvider prev = mModuleNameProviders.get( mEnableModuleName ); - if ( prev != null ) { - final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( mEnableModuleName ); - if ( lifecycle != null ) { - try { - final long start = System.currentTimeMillis(); - lifecycle.onDisable(); - Logger.i( TAG, "set %s module disable event cost " + ( System.currentTimeMillis() - start ) + "ms", mEnableModuleName ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); - } - } - } - - // 当前卡片设置为 perform - IMogoModuleProvider current = mModuleNameProviders.get( module ); - if ( current != null ) { - final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( module ); - if ( lifecycle != null ) { - try { - final long start = System.currentTimeMillis(); - lifecycle.onPerform(); - Logger.i( TAG, "set %s module perform event cost " + ( System.currentTimeMillis() - start ) + "ms", module ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); - } - } - } - - mEnableModuleName = module; - mSortedCards.remove( mEnableModuleName ); - mSortedCards.add( 0, mEnableModuleName ); - SharedPrefsMgr.getInstance( getContext() ).putString( KEY_SORTED_CARD_MODULES, GsonUtil.jsonFromObject( mSortedCards ) ); - Logger.i( TAG, "enable & disable card cost " + ( System.currentTimeMillis() - start1 ) + "ms" ); - - CardIntroduceConfigs.broadcastCardIntroduce( mActivity, mEnableModuleName ); - } - @Override public void destroy() { mActivity = null; @@ -251,11 +138,5 @@ public class MogoModulesManager implements MogoModulesHandler{ mModuleProviders.clear(); } mModuleProviders = null; - mEnableModuleName = null; - } - - @Override - public String getCurrentModuleName() { - return mEnableModuleName; } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java index 5689102e6d..deb859893a 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/constants/MainConstants.java @@ -13,21 +13,6 @@ public class MainConstants { */ public static final int MSG_LOAD_CARD_MODULES = 5000; - /** - * 消息:触发第一张卡片的onPerform 时间 - */ - public static final int MSG_LOAD_INVOKE_FIRST_CARD_PERFORM_EVENT = 5001; - - /** - * 消息:卡片展示事件 - */ - public static final int MSG_TRACK_LAST_CARD_DISPLAY_EVENT = 5002; - - /** - * 消息:卡片滑动事件 - */ - public static final int MSG_TRACK_CARD_FLIP_EVENT = 5003; - /** * 消息:隐藏地图遮罩(避免地图加载白屏) */ diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index 603a0ecaed..9ba1c6ea16 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -37,19 +37,10 @@ android:layout_marginLeft="@dimen/module_main_card_container_marginLeft" android:layout_marginTop="@dimen/module_main_card_container_marginTop"> - - diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index 127ad28b9e..a1cec4be2c 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -20,11 +20,8 @@ import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.IMogoNaviListener2; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.navi.MogoNaviInfo; -import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.MapControlResult; -import com.mogo.module.common.map.MapCenterPointStrategy; -import com.mogo.module.common.map.Scene; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.intent.IMogoIntentListener; @@ -242,7 +239,7 @@ public class MapPresenter extends Presenter< MapView > implements Logger.d( TAG, "未开始导航." ); return; } - if ( mStatusManager.isADASShow() ) { + if ( mStatusManager.isV2XShow() ) { Logger.d( TAG, "ADAS模式忽略该请求." ); return; } @@ -282,8 +279,8 @@ public class MapPresenter extends Presenter< MapView > implements mMogoMapService.getMapUIController().recoverLockMode();//缩放地图会导致锁车发生改变,这里强制锁车 }, 1_000 ); } else { - // 20s后锁车刷新 - mRefreshStrategyController.restartAutoRefreshAtTime( 20_000 ); + // 30s后锁车刷新 + mRefreshStrategyController.restartAutoRefreshAtTime( 30_000 ); } } @@ -461,46 +458,6 @@ public class MapPresenter extends Presenter< MapView > implements } } - @Override - public void onCmdAction( String speakText ) { - - } - - @Override - public void onCmdCancel( String speakText ) { - - } - - @Override - public void onSpeakEnd( String speakText ) { - - } - - @Override - public void onSpeakSelectTimeOut( String speakText ) { - - } - - @Override - public void onArriveDestination() { - - } - - @Override - public void onEndEmulatorNavi() { - - } - - @Override - public void onInitNaviFailure() { - - } - - @Override - public void onInitNaviSuccess() { - - } - @Override public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { MapBroadCastHelper.getInstance( getContext() ).notifyXiaozhi( naviinfo ); @@ -515,19 +472,4 @@ public class MapPresenter extends Presenter< MapView > implements public void onStopNavi() { MapBroadCastHelper.getInstance( getContext() ).stopNavi(); } - - @Override - public void onCalculateSuccess() { - - } - - @Override - public void onoCalculateFailed() { - - } - - @Override - public void onUpdateTraffic( MogoTraffic traffic ) { - - } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java index a3a709ce12..375936ee6b 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java @@ -47,6 +47,6 @@ public class AMapConstants { */ public static final String COMMAND_START_NAVI = "com.ileja.navi.route.confirm"; - public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.plan"; + public static final String COMMAND_CHOOSE_PATH = "com.zhidao.route.choice"; } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt index a74f3e6118..ace72751bb 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt @@ -14,6 +14,7 @@ import com.mogo.module.gps.simulator.GpsSimulatorConstants import com.mogo.module.gps.simulator.IMogoGpsSimulatorManager import com.mogo.module.guideshow.provider.GuideShowProviderConstant import com.mogo.module.guideshow.provider.IGuideShowProvider +import com.mogo.service.IMogoServiceApis import com.mogo.service.MogoServicePaths import com.mogo.service.analytics.IMogoAnalytics import com.mogo.service.fragmentmanager.FragmentDescriptor @@ -42,7 +43,7 @@ object SearchServiceHolder { val mogoLauncher: IMogoLauncher = ARouter.getInstance().build(MogoServicePaths.PATH_LAUNCHER_API).navigation() as IMogoLauncher val gpsSimulator = ARouter.getInstance().build(GpsSimulatorConstants.API_PATH).navigation() as IMogoGpsSimulatorManager val intentManager = ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation() as IMogoIntentManager - + val apis = ARouter.getInstance().navigation(IMogoServiceApis::class.java) var geoSearch: IMogoGeoSearch? = null fun init(context: Context) { this.context = context diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt index 7e57736dad..1817c3163b 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt @@ -122,6 +122,7 @@ object AddressManager { * 回家 */ fun goHome() { + closeADAS() SearchServiceHolder.statusManager.setSearchUIShow(TAG, true) if (homeAddress == null) { choosePoint(DataConstants.TYPE_HOME_ADDRESS) @@ -134,6 +135,7 @@ object AddressManager { * 去公司 */ fun goCompany() { + closeADAS() SearchServiceHolder.statusManager.setSearchUIShow(TAG, true) if (companyAddress == null) { choosePoint( DataConstants.TYPE_COMPANY_ADDRESS) @@ -146,6 +148,7 @@ object AddressManager { * 搜索 */ fun goSearch() { + closeADAS() SearchServiceHolder.statusManager.setSearchUIShow(TAG, true) SearchServiceHolder.fragmentManager.push( FragmentDescriptor.Builder().fragment(SearchFragment()) @@ -160,12 +163,14 @@ object AddressManager { */ fun calculatePath(destination: MogoLatLng?) { destination?.let { + closeADAS() var newInstance = ChoosePathFragment.newInstance(destination) SearchServiceHolder.push(newInstance, AMapConstants.PATH_FRAGMENT_CHOOSE_PATH) } } fun categorySearch(category: String){ + closeADAS() val searchFragment = CategorySearchFragment.newInstance(category) SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(searchFragment) .tag(AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY) @@ -174,6 +179,7 @@ object AddressManager { } fun goSettings(){ + closeADAS() val naviSettingFragment = NaviSettingFragment() SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(naviSettingFragment) .tag(AMapConstants.PATH_FRAGMENT_NAVI_SETTING) @@ -181,4 +187,13 @@ object AddressManager { .build()) } + + private fun closeADAS() { + try { + SearchServiceHolder.apis.adasControllerApi.closeADAS() + } catch (e: Exception) { + e.printStackTrace() + } + + } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java index 6c290d1675..8c2204f9f8 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/MogoAddressManager.java @@ -1,6 +1,7 @@ package com.mogo.module.navi.manager; import android.content.Context; + import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.map.MogoLatLng; import com.mogo.module.navi.constants.SearchServiceHolder; @@ -14,11 +15,13 @@ import com.mogo.service.module.IMogoAddressManager; @Route( path = MogoServicePaths.PATH_ADDRESS_MANAGER ) public class MogoAddressManager implements IMogoAddressManager { - @Override public void goHome() { + @Override + public void goHome() { AddressManager.INSTANCE.goHome(); } - @Override public void goCompany() { + @Override + public void goCompany() { AddressManager.INSTANCE.goCompany(); } @@ -42,9 +45,10 @@ public class MogoAddressManager implements IMogoAddressManager { AddressManager.INSTANCE.goSettings(); } - @Override public void init( Context context) { - AddressManager.INSTANCE.init(context); - SearchServiceHolder.INSTANCE.init(context); - SettingManager.INSTANCE.init(context); + @Override + public void init( Context context ) { + AddressManager.INSTANCE.init( context ); + SearchServiceHolder.INSTANCE.init( context ); + SettingManager.INSTANCE.init( context ); } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 750335c1be..0abd48fc46 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -38,8 +38,8 @@ import org.json.JSONObject */ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack, IMogoIntentListener { - var mTimeShortestPosition = -1 - var mDistanceShortestPosition = -1 + private var mTimeShortestPosition = -1 + private var mDistanceShortestPosition = -1 override fun onCmdSelected(cmd: String?) { when (cmd) { @@ -270,45 +270,18 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB var dataJsonStr = intent?.getStringExtra("data") ?: "" try { var jsonObj = JSONObject(dataJsonStr) - var routePlan = jsonObj.optString("route_plan", " ") + var routePlan = jsonObj.optString("route_choice", " ") when (routePlan) { - "最快" -> { + "fastest" -> { // 时间最短 selectItem(mTimeShortestPosition) startNavi() } - "不走高速" -> { - // 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。 - // 避免收费 | 1 - // 多策略算路 | 2 - // 不走高速 | 3 - // 躲避拥堵 | 4 - // 不走高速且避免收费 | 5 - // 不走高速且躲避拥堵 | 6 - // 躲避收费和拥堵 | 7 - // 不走高速躲避收费和拥堵 | 8 - // 高速优先 | 20 - // 躲避拥堵且高速优先 | 24 - var prefer = 3 - val config = MogoNaviConfig().congestion(prefer == 4) - .cost(prefer == 1 || prefer == 7) - .highSpeed(prefer == 20) - .avoidSpeed(prefer == 3) - SearchServiceHolder.getNavi().reCalculateRoute(config) - } - "最近" -> { + "nearest" -> { // 路程最短 selectItem(mDistanceShortestPosition) startNavi() } - "躲避拥堵" -> { - var prefer = 4 - val config = MogoNaviConfig().congestion(prefer == 4) - .cost(prefer == 1 || prefer == 7) - .highSpeed(prefer == 20) - .avoidSpeed(prefer == 3) - SearchServiceHolder.getNavi().reCalculateRoute(config) - } } } catch (e: Exception) { 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 8b72b40756..88f0bf02e7 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 @@ -172,7 +172,7 @@ public class MogoServices implements IMogoMapListener, super.handleMessage( msg ); switch ( msg.what ) { case ServiceConst.MSG_TYPE_REFRESH_DECREASE: - if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { stopAutoRefreshStrategy(); return; } @@ -185,7 +185,7 @@ public class MogoServices implements IMogoMapListener, } break; case ServiceConst.MSG_LOOP_REQUEST: - if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { return; } if ( mLoopRequest ) { @@ -200,7 +200,7 @@ public class MogoServices implements IMogoMapListener, * 自动刷新:锁车、缩放比例:16、半径 2KM */ private void invokeAutoRefresh() { - if ( mStatusManager.isSearchUIShow() || mStatusManager.isADASShow() ) { + if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { mStatusManager.setUserInteractionStatus( TAG, true, false ); mUiController.recoverLockMode(); return; @@ -230,7 +230,7 @@ public class MogoServices implements IMogoMapListener, */ private RefreshCallback mCustomRefreshCallback = new RefreshCallback() { @Override - public void onSuccess(Object o) { + public void onSuccess( Object o ) { mLoopRequest = false; // 用户手动操作地图刷新成功后,设置状态为 true,引发延时策略 mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, true ); @@ -248,7 +248,7 @@ public class MogoServices implements IMogoMapListener, */ private RefreshCallback mAutoRefreshCallback = new RefreshCallback() { @Override - public void onSuccess(Object o) { + public void onSuccess( Object o ) { mLoopRequest = false; Logger.d( TAG, "request Success." ); invokeAutoRefreshStrategy(); @@ -348,11 +348,11 @@ public class MogoServices implements IMogoMapListener, if ( msg.obj instanceof RefreshObject ) { RefreshObject ro = ( ( RefreshObject ) msg.obj ); mRefreshModel.refreshData( ro.mLonLat, ro.mRadius, ro.mAmount, ro.mCallback ); - MapMarkerManager.getInstance().getOnlineCarData(ro.mLonLat); + MapMarkerManager.getInstance().getOnlineCarData( ro.mLonLat ); Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount ); } - } else if( msg.what == ServiceConst.MSG_LOCK_CAR ){ + } else if ( msg.what == ServiceConst.MSG_LOCK_CAR ) { if ( mStatusManager.isSearchUIShow() ) { return; } @@ -436,8 +436,7 @@ public class MogoServices implements IMogoMapListener, */ private float getMapCameraFactHeight() { try { - return Utils.calculateLineDistance( mCameraSouthWestPosition, - new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); } catch ( Exception e ) { return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS; } @@ -468,16 +467,6 @@ public class MogoServices implements IMogoMapListener, mHandler.removeMessages( ServiceConst.MSG_TYPE_REFRESH_DECREASE ); } - @Override - public void onPOIClick( MogoPoi poi ) { - - } - - @Override - public void onMapClick( MogoLatLng latLng ) { - - } - @Override public void onLockMap( boolean isLock ) { mThreadHandler.removeMessages( ServiceConst.MSG_LOCK_CAR ); @@ -486,15 +475,10 @@ public class MogoServices implements IMogoMapListener, } } - @Override - public void onMapModeChanged( EnumMapUI ui ) { - - } - @Override public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { - MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng. lat ); + MapMarkerManager.getInstance().syncLocation( latLng.lon, latLng.lat ); if ( mIsCameraInited ) { mLastZoomLevel = zoom; @@ -513,7 +497,7 @@ public class MogoServices implements IMogoMapListener, } // v2x // adas 状态下不做任何操作 - if ( mStatusManager.isADASShow() ) { + if ( mStatusManager.isV2XShow() ) { mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; return; @@ -585,7 +569,7 @@ public class MogoServices implements IMogoMapListener, @Override public void onCarLocationChanged2( Location latLng ) { - if ( mStatusManager.isADASShow() ) { + if ( mStatusManager.isV2XShow() ) { return; } @@ -637,28 +621,6 @@ public class MogoServices implements IMogoMapListener, mThreadHandler.sendMessage( msg ); } - @Override - public void onInitNaviFailure() { - - } - - @Override - public void onInitNaviSuccess() { - - } - - @Override - public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { - } - - @Override - public void onStartNavi() { - } - - @Override - public void onStopNavi() { - } - @Override public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { //Logger.d( TAG, "状态发生改变---descriptor---" + descriptor + "----isTrue---" + isTrue ); @@ -675,7 +637,7 @@ public class MogoServices implements IMogoMapListener, } else { // 搜索后,打开打点策略 if ( mAutoRefreshCallback != null ) { - mAutoRefreshCallback.onSuccess(null); + mAutoRefreshCallback.onSuccess( null ); } } break; @@ -730,7 +692,7 @@ public class MogoServices implements IMogoMapListener, refreshStrategy(); // ADAS关闭后,打开打点策略 if ( mAutoRefreshCallback != null ) { - mAutoRefreshCallback.onSuccess(null); + mAutoRefreshCallback.onSuccess( null ); } } @@ -756,21 +718,6 @@ public class MogoServices implements IMogoMapListener, notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } - @Override - public void onCalculateSuccess() { - - } - - @Override - public void onoCalculateFailed() { - - } - - @Override - public void onUpdateTraffic( MogoTraffic traffic ) { - - } - @Override public void onUpdateTraffic2( MogoTraffic traffic ) { @@ -816,9 +763,9 @@ public class MogoServices implements IMogoMapListener, mStatusManager.setVoiceUIShow( TAG, true ); } } else if ( ServiceConst.COMMAND_NEXT.equals( command ) ) { - onActionDown( MogoAction.Next ); + onActionDone( MogoAction.Next ); } else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) { - onActionDown( MogoAction.Prev ); + onActionDone( MogoAction.Prev ); } else if ( ServiceConst.COMMAND_SWITCH_CARD.equals( command ) ) { IntentHandlerFactory.getInstance().handle( mContext, command, intent ); } else if ( MogoReceiver.ACTION_ADAS_STATUS.equals( command ) ) { @@ -909,9 +856,9 @@ public class MogoServices implements IMogoMapListener, @Override public void onCmdSelected( String cmd ) { if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_PREV, cmd ) ) { - onActionDown( MogoAction.Prev ); + onActionDone( MogoAction.Prev ); } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_NEXT, cmd ) ) { - onActionDown( MogoAction.Next ); + onActionDone( MogoAction.Next ); } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd ) ) { if ( mStatusManager.isMainPageOnResume() ) { mUiController.recoverLockMode(); @@ -921,11 +868,11 @@ public class MogoServices implements IMogoMapListener, } } - private void onActionDown(MogoAction action){ + private void onActionDone( MogoAction action ) { if ( !mStatusManager.isMainPageOnResume() ) { return; } - if ( mStatusManager.isADASShow() ) { + if ( mStatusManager.isV2XShow() ) { // 分发到V2X mActionManager.invoke( "V2X_UI", action ); } else { @@ -934,26 +881,6 @@ public class MogoServices implements IMogoMapListener, } } - @Override - public void onCmdAction( String speakText ) { - - } - - @Override - public void onCmdCancel( String speakText ) { - - } - - @Override - public void onSpeakEnd( String speakText ) { - - } - - @Override - public void onSpeakSelectTimeOut( String speakText ) { - - } - @Override public void onTransaction( int size ) { if ( size == 0 ) { @@ -968,6 +895,7 @@ public class MogoServices implements IMogoMapListener, MapCenterPointStrategy.setMapCenterPointByScene( mUiController, Scene.AIMLESS ); } mUiController.recoverLockMode(); + mADASController.showADAS(); } else { mUiController.showMyLocation( false ); AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this ); 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 77024d794b..806a4d37a8 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 @@ -105,8 +105,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, // 长连接 MarkerServiceHandler.getMogoSocketManager().registerOnMessageListener( 401001, this ); - MarkerServiceHandler.getMogoCardManager().registerCardChangedListener( - "LAUNCHER_MARKER_MODULE", this ); + MarkerServiceHandler.getMogoCardManager().registerCardChangedListener( TAG, this ); MarkerServiceHandler.getActionManager().registerBizActionDoneListener( this ); } @@ -269,6 +268,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( !mogoMarker.isDestroyed() ) { mogoMarker.setInfoWindowAdapter( UserDataMarkerInfoWindowAdapter.getInstance( mContext ) ); mogoMarker.showInfoWindow(); + MarkerServiceHandler.getMogoStatusManager().setUserInteractionStatus( TAG, true, false ); + MarkerServiceHandler.getMapUIController().moveToCenter( mogoMarker.getPosition() ); Logger.d( TAG, "打开info window" ); } } else { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java index cdb891aed0..ede5636b6e 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java @@ -71,6 +71,7 @@ public class MogoReceiver extends BroadcastReceiver { if (TextUtils.equals(VOICE_ACTION, action)) { String cmd = intent.getStringExtra(PARAM_COMMAND); if (!TextUtils.isEmpty(cmd)) { + Logger.d( TAG, "receive command: %s", cmd ); mMogoIntentManager.invoke(cmd, intent); } } else { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java index 47d96799f4..ba15e2424f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/refresh/AutoRefreshStrategy.java @@ -13,12 +13,12 @@ public class AutoRefreshStrategy { /** * 距离(米) */ - private int distance = 2_000; + private int distance = 1_000; /** * 时间间距(s) */ - private long interval = 3 * ONE_MINUTE; + private long interval = 3 * ONE_MINUTE / 6; /** * 用户打断后的延时(s)【2.0.2后不再延时】 diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java index 5a6f90560d..468c965b26 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/IMogoADASController.java @@ -13,11 +13,22 @@ public interface IMogoADASController extends IProvider { /** * 打开adas */ + @Deprecated void openADAS(); /** - * 关闭adas + * 隐藏adas */ void closeADAS(); + /** + * 显示 + */ + void showADAS(); + + /** + * 关闭 + */ + void killADAS(); + } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java index c5126c1a0a..07930bc5fb 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/statusmanager/IMogoStatusManager.java @@ -22,16 +22,14 @@ public interface IMogoStatusManager extends IProvider { * * @return */ + @Deprecated boolean isADASShow(); /** * v2x UI 是否在展示 - *

- * Deprecated, use {@link #isADASShow()} instead. * * @return */ - @Deprecated boolean isV2XShow(); /** @@ -119,18 +117,16 @@ public interface IMogoStatusManager extends IProvider { * @param tag 业务类型 * @param show true - 显示 false - 隐藏 */ + @Deprecated void setADASUIShow( String tag, boolean show ); /** * 设置 V2X UI 状态 *

- *

- * Deprecated, use {@link #setADASUIShow} instead. * * @param tag 业务类型 * @param show true - 显示 false - 隐藏 */ - @Deprecated void setV2XUIShow( String tag, boolean show ); /** diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index 66f2a244d6..3cd53dffe6 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -40,6 +40,7 @@ dependencies { implementation rootProject.ext.dependencies.arouter annotationProcessor rootProject.ext.dependencies.aroutercompiler + implementation rootProject.ext.dependencies.adasapi if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap implementation rootProject.ext.dependencies.mogomapapi diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index f2d6092c5e..cadd1e446f 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -3,6 +3,7 @@ package com.mogo.service.impl.adas; import android.app.Application; import android.content.Context; import android.content.Intent; +import android.os.RemoteException; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.commons.AbsMogoApplication; @@ -13,7 +14,9 @@ import com.mogo.service.impl.MogoServiceApis; import com.mogo.service.impl.singleton.SingletonsHolder; import com.mogo.service.impl.statusmanager.MogoStatusManager; import com.mogo.service.statusmanager.IMogoStatusManager; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; +import com.zhidao.autopilot.support.api.AutopilotServiceManage; import org.json.JSONObject; @@ -38,49 +41,71 @@ public class MogoADASController implements IMogoADASController { public static final String VAL_OPEN = "打开"; public static final String VAL_CLOSE = "关闭"; - private MogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class ); + private IMogoStatusManager mStatusManager = SingletonsHolder.get( IMogoStatusManager.class ); @Override public void openADAS() { + showADAS(); + } - if ( mStatusManager.isADASShow() ) { - return; - } - - Logger.d( TAG, "open adas" ); - - Intent intent = new Intent( ACTION ); - intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); - JSONObject object = new JSONObject(); + @Override + public void killADAS() { try { - object.put( PARAM_OBJECT, VAL_OBJECT ); - object.put( PARAM_OPERATION, VAL_OPEN ); - intent.putExtra( PARAM_DATA, object.toString() ); - sendBroadcast( intent ); + AutopilotServiceManage.getInstance().kill(); } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); + } } + @Override + public void showADAS() { + + Logger.d( TAG, "show adas" ); + + UiThreadHandler.postDelayed( () -> { + try { + if ( mStatusManager.isSearchUIShow() ) { + return; + } + if ( !mStatusManager.isMainPageOnResume() ) { + return; + } + AutopilotServiceManage.getInstance().showAdas(); + } catch ( Exception e ) { + Intent intent = new Intent( ACTION ); + intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); + JSONObject object = new JSONObject(); + try { + object.put( PARAM_OBJECT, VAL_OBJECT ); + object.put( PARAM_OPERATION, VAL_OPEN ); + intent.putExtra( PARAM_DATA, object.toString() ); + sendBroadcast( intent ); + } catch ( Exception e1 ) { + Logger.e( TAG, e1, "error." ); + } + } + }, 500 ); + } + @Override public void closeADAS() { - if ( !mStatusManager.isADASShow() ) { - return; - } - Logger.d( TAG, "close adas" ); - Intent intent = new Intent( ACTION ); - intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); - JSONObject object = new JSONObject(); try { - object.put( PARAM_OBJECT, VAL_OBJECT ); - object.put( PARAM_OPERATION, VAL_CLOSE ); - intent.putExtra( PARAM_DATA, object.toString() ); - sendBroadcast( intent ); + AutopilotServiceManage.getInstance().hideAdas(); } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); + Intent intent = new Intent( ACTION ); + intent.putExtra( PARAM_COMMAND, VAL_COMMAND ); + JSONObject object = new JSONObject(); + try { + object.put( PARAM_OBJECT, VAL_OBJECT ); + object.put( PARAM_OPERATION, VAL_CLOSE ); + intent.putExtra( PARAM_DATA, object.toString() ); + sendBroadcast( intent ); + } catch ( Exception e1 ) { + Logger.e( TAG, e1, "error." ); + } } } @@ -95,6 +120,6 @@ public class MogoADASController implements IMogoADASController { @Override public void init( Context context ) { - + AutopilotServiceManage.getInstance().init( context ); } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java index 2f454add44..87a3ae0491 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/map/MogoMapService.java @@ -4,7 +4,6 @@ import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.map.MogoGeoSearch; -import com.mogo.map.MogoInitor; import com.mogo.map.MogoInputtipsSearch; import com.mogo.map.MogoLocationClient; import com.mogo.map.MogoMapUIController; @@ -88,6 +87,5 @@ public class MogoMapService implements IMogoMapService { @Override public void init( Context context ) { - MogoInitor.init( context ); } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java index 84f241d427..6f54efc813 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java @@ -33,7 +33,7 @@ public class SingletonsHolder { sSingletons.put( IMogoStatusManager.class, new MogoStatusManager() ); } - public static < T > T get( Class clazz ) { + public static < T > T get( Class clazz ) { return ( T ) sSingletons.get( clazz ); } From ecb1d702aec16d7fcbf9d8ff5eb6c40b6eeb1d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 15 May 2020 10:50:58 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86toString?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- .../com/mogo/map/search/geo/MogoAoiItem.java | 11 ++++++ .../mogo/map/search/geo/MogoBusinessArea.java | 8 +++++ .../mogo/map/search/geo/MogoCrossroad.java | 12 +++++++ .../map/search/geo/MogoGeocodeAddress.java | 16 +++++++++ .../map/search/geo/MogoGeocodeResult.java | 7 ++++ .../mogo/map/search/geo/MogoIndoorData.java | 9 +++++ .../com/mogo/map/search/geo/MogoPhoto.java | 8 +++++ .../com/mogo/map/search/geo/MogoPoiItem.java | 34 +++++++++++++++++++ .../map/search/geo/MogoRegeocodeAddress.java | 23 +++++++++++++ .../map/search/geo/MogoRegeocodeResult.java | 7 ++++ .../map/search/geo/MogoRegeocodeRoad.java | 11 ++++++ .../mogo/map/search/geo/MogoStreetNumber.java | 11 ++++++ .../mogo/map/search/geo/MogoSubPoiItem.java | 13 +++++++ 14 files changed, 171 insertions(+), 1 deletion(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 2dc54c489f..707ee6e613 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java index 957c920f60..98b4c8ef03 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoAoiItem.java @@ -96,4 +96,15 @@ public class MogoAoiItem implements Parcelable { return new MogoAoiItem[size]; } }; + + @Override + public String toString() { + return "MogoAoiItem{" + + "aoiId='" + aoiId + '\'' + + ", aoiName='" + aoiName + '\'' + + ", adCode='" + adCode + '\'' + + ", aoiCenterPoint=" + aoiCenterPoint + + ", aoiArea=" + aoiArea + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java index 5b04b34c93..d8e48978e1 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoBusinessArea.java @@ -63,4 +63,12 @@ public class MogoBusinessArea implements Parcelable { return new MogoBusinessArea[size]; } }; + + @Override + public String toString() { + return "MogoBusinessArea{" + + "centerPoint=" + centerPoint + + ", name='" + name + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java index b2899e33a4..3dcd6ea798 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoCrossroad.java @@ -105,4 +105,16 @@ public class MogoCrossroad implements Parcelable { return new MogoCrossroad[size]; } }; + + @Override + public String toString() { + return "MogoCrossroad{" + + "distance=" + distance + + ", direction='" + direction + '\'' + + ", firstRoadId='" + firstRoadId + '\'' + + ", firstRoadName='" + firstRoadName + '\'' + + ", secondRoadId='" + secondRoadId + '\'' + + ", secondRoadName='" + secondRoadName + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java index ddeac51edc..f92f294de2 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeAddress.java @@ -100,4 +100,20 @@ public class MogoGeocodeAddress { public void setLevel( String level ) { this.level = level; } + + @Override + public String toString() { + return "MogoGeocodeAddress{" + + "formatAddress='" + formatAddress + '\'' + + ", province='" + province + '\'' + + ", city='" + city + '\'' + + ", district='" + district + '\'' + + ", township='" + township + '\'' + + ", neighborhood='" + neighborhood + '\'' + + ", building='" + building + '\'' + + ", adcode='" + adcode + '\'' + + ", latlng=" + latlng + + ", level='" + level + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java index 5105908e9a..004bdda363 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoGeocodeResult.java @@ -20,4 +20,11 @@ public class MogoGeocodeResult { public void setAddresses( List< MogoGeocodeAddress > addresses ) { this.addresses = addresses; } + + @Override + public String toString() { + return "MogoGeocodeResult{" + + "addresses=" + addresses + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java index 263b5544ab..bae861260a 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoIndoorData.java @@ -72,4 +72,13 @@ public class MogoIndoorData implements Parcelable { return new MogoIndoorData[size]; } }; + + @Override + public String toString() { + return "MogoIndoorData{" + + "poiId='" + poiId + '\'' + + ", floor=" + floor + + ", floorName='" + floorName + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java index ba393665a1..88f3b38427 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPhoto.java @@ -61,4 +61,12 @@ public class MogoPhoto implements Parcelable { return new MogoPhoto[size]; } }; + + @Override + public String toString() { + return "MogoPhoto{" + + "title='" + title + '\'' + + ", url='" + url + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java index b378a59abc..27ed374472 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoPoiItem.java @@ -352,4 +352,38 @@ public class MogoPoiItem implements Parcelable { return new MogoPoiItem[size]; } }; + + @Override + public String toString() { + return "MogoPoiItem{" + + "businessArea='" + businessArea + '\'' + + ", adName='" + adName + '\'' + + ", cityName='" + cityName + '\'' + + ", provinceName='" + provinceName + '\'' + + ", typeDes='" + typeDes + '\'' + + ", tel='" + tel + '\'' + + ", adCode='" + adCode + '\'' + + ", poiId='" + poiId + '\'' + + ", distance=" + distance + + ", title='" + title + '\'' + + ", snippet='" + snippet + '\'' + + ", point=" + point + + ", cityCode='" + cityCode + '\'' + + ", enter=" + enter + + ", exit=" + exit + + ", website='" + website + '\'' + + ", postcode='" + postcode + '\'' + + ", email='" + email + '\'' + + ", direction='" + direction + '\'' + + ", indoorMap=" + indoorMap + + ", provinceCode='" + provinceCode + '\'' + + ", parkingType='" + parkingType + '\'' + + ", subPois=" + subPois + + ", indoorData=" + indoorData + + ", photos=" + photos + + ", poiExtension=" + poiExtension + + ", typeCode='" + typeCode + '\'' + + ", shopID='" + shopID + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java index a15f7eb132..2026ac051a 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeAddress.java @@ -228,4 +228,27 @@ public class MogoRegeocodeAddress implements Parcelable { return new MogoRegeocodeAddress[size]; } }; + + @Override + public String toString() { + return "MogoRegeocodeAddress{" + + "formatAddress='" + formatAddress + '\'' + + ", province='" + province + '\'' + + ", city='" + city + '\'' + + ", cityCode='" + cityCode + '\'' + + ", adCode='" + adCode + '\'' + + ", district='" + district + '\'' + + ", township='" + township + '\'' + + ", neighborhood='" + neighborhood + '\'' + + ", building='" + building + '\'' + + ", streetNumber=" + streetNumber + + ", roads=" + roads + + ", pois=" + pois + + ", crossroads=" + crossroads + + ", businessAreas=" + businessAreas + + ", aois=" + aois + + ", towncode='" + towncode + '\'' + + ", country='" + country + '\'' + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java index d5f83828b4..1c2bcca713 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeResult.java @@ -50,4 +50,11 @@ public class MogoRegeocodeResult implements Parcelable { return new MogoRegeocodeResult[size]; } }; + + @Override + public String toString() { + return "MogoRegeocodeResult{" + + "regeocodeAddress=" + regeocodeAddress + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java index 6ec6a29d0b..59b32cbcf2 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoRegeocodeRoad.java @@ -95,4 +95,15 @@ public class MogoRegeocodeRoad implements Parcelable { return new MogoRegeocodeRoad[size]; } }; + + @Override + public String toString() { + return "MogoRegeocodeRoad{" + + "id='" + id + '\'' + + ", name='" + name + '\'' + + ", distance=" + distance + + ", direction='" + direction + '\'' + + ", point=" + point + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java index 1d3f953c7c..c026129e36 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoStreetNumber.java @@ -95,4 +95,15 @@ public class MogoStreetNumber implements Parcelable { return new MogoStreetNumber[size]; } }; + + @Override + public String toString() { + return "MogoStreetNumber{" + + "street='" + street + '\'' + + ", number='" + number + '\'' + + ", latLonPoint=" + latLonPoint + + ", direction='" + direction + '\'' + + ", distance=" + distance + + '}'; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java index b3796963d6..b43ff95317 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/search/geo/MogoSubPoiItem.java @@ -118,4 +118,17 @@ public class MogoSubPoiItem implements Parcelable { return new MogoSubPoiItem[size]; } }; + + @Override + public String toString() { + return "MogoSubPoiItem{" + + "poiId='" + poiId + '\'' + + ", title='" + title + '\'' + + ", subName='" + subName + '\'' + + ", distance=" + distance + + ", point=" + point + + ", snippet='" + snippet + '\'' + + ", subTypeDes='" + subTypeDes + '\'' + + '}'; + } } From d082ccf28514e25cb953b894e8e53f4b8758bfec Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 15 May 2020 11:16:18 +0800 Subject: [PATCH 7/9] opt --- .idea/misc.xml | 2 +- gradle.properties | 47 ++++++++++--------- .../impl/network/MogoNetWorkService.java | 2 - 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index ad6b79f528..4c551048f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,29 +27,29 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.0.3.12 -MOGO_UTILS_VERSION=1.0.3.12 -MAP_AMAP_VERSION=1.0.3.12 -MOGO_MAP_VERSION=1.0.3.12 -MOGO_MAP_API_VERSION=1.0.3.12 -MOGO_SERVICE_VERSION=1.0.3.12 -MOGO_SERVICE_API_VERSION=1.0.3.12 -MOGO_CONNECTION_VERSION=1.0.3.12 -MOGO_MODULE_APPS_VERSION=1.0.3.12 -MOGO_MODULE_NAVI_VERSION=1.0.3.12 -MOGO_MODULE_SHARE_VERSION=1.0.3.12 -MOGO_MODULE_COMMON_VERSION=1.0.3.12 -MOGO_MODULE_MAIN_VERSION=1.0.3.12 -MOGO_MODULE_MAP_VERSION=1.0.3.12 -MOGO_MODULE_SERVICE_VERSION=1.0.3.12 -MOGO_MODULE_EXTENSIONS_VERSION=1.0.3.12 -MOGO_MODULE_SEARCH_VERSION=1.0.3.12 -MOGO_MODULE_BACK_VERSION=1.0.3.12 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.0.3.12 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.0.3.12 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.0.3.12 -MOGO_MODULE_AUTHORIZE_VERSION=1.0.3.12 -MOGO_MODULE_GUIDE_VERSION=1.0.3.12 +MOGO_COMMONS_VERSION=1.1.0.1 +MOGO_UTILS_VERSION=1.1.0.1 +MAP_AMAP_VERSION=1.1.0.1 +MOGO_MAP_VERSION=1.1.0.1 +MOGO_MAP_API_VERSION=1.1.0.1 +MOGO_SERVICE_VERSION=1.1.0.1 +MOGO_SERVICE_API_VERSION=1.1.0.1 +MOGO_CONNECTION_VERSION=1.1.0.1 +MOGO_MODULE_APPS_VERSION=1.1.0.1 +MOGO_MODULE_NAVI_VERSION=1.1.0.1 +MOGO_MODULE_SHARE_VERSION=1.1.0.1 +MOGO_MODULE_COMMON_VERSION=1.1.0.1 +MOGO_MODULE_MAIN_VERSION=1.1.0.1 +MOGO_MODULE_MAP_VERSION=1.1.0.1 +MOGO_MODULE_SERVICE_VERSION=1.1.0.1 +MOGO_MODULE_EXTENSIONS_VERSION=1.1.0.1 +MOGO_MODULE_SEARCH_VERSION=1.1.0.1 +MOGO_MODULE_BACK_VERSION=1.1.0.1 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.1.0.1 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.1.0.1 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.1.0.1 +MOGO_MODULE_AUTHORIZE_VERSION=1.1.0.1 +MOGO_MODULE_GUIDE_VERSION=1.1.0.1 ## 工程外部模块 @@ -73,5 +73,6 @@ MOGO_MODULE_MEDIA_VERSION=1.0.4.3 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 + # 新鲜事 MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.4 diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java b/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java index 9c6942f7a7..eda4617702 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/network/MogoNetWorkService.java @@ -3,7 +3,6 @@ package com.mogo.service.impl.network; import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.map.MogoInitor; import com.mogo.service.MogoServicePaths; import com.mogo.service.network.IMogoNetwork; import com.mogo.utils.network.RetrofitFactory; @@ -19,7 +18,6 @@ public class MogoNetWorkService implements IMogoNetwork { @Override public void init(Context context) { - MogoInitor.init(context); } @Override From 7d2506e33fd783227fd486603af440c8685b7637 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 15 May 2020 11:23:49 +0800 Subject: [PATCH 8/9] rm fresh thing module --- app/build.gradle | 3 --- app/src/main/java/com/mogo/launcher/MogoApplication.java | 4 ---- config.gradle | 1 - gradle.properties | 5 +---- 4 files changed, 1 insertion(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 515a43bb57..9172cdd059 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -153,9 +153,6 @@ dependencies { implementation rootProject.ext.dependencies.guideshowprovider implementation rootProject.ext.dependencies.guideshow implementation rootProject.ext.dependencies.modulemedia - implementation rootProject.ext.dependencies.modulefreshnews, { - exclude group: 'com.mogo.module', module: 'module-onlinecar' - } implementation rootProject.ext.dependencies.modulepush, { exclude group: 'com.mogo.module', module: 'module-common' diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 6ade51c351..3b339d9a2d 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -9,7 +9,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.auto.zhidao.logsdk.CrashSystem; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; -import com.mogo.launcher.news.FreshNewsConstants; import com.mogo.module.adcard.AdCardConstants; import com.mogo.module.back.BackToLauncherConst; import com.mogo.module.carchatting.card.CallChatConstant; @@ -27,8 +26,6 @@ import com.mogo.utils.logger.Logger; import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_FRAGMENT; import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME; -import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_FRAGMENT; -import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_MODULE_NAME; /** * @author congtaowang @@ -60,7 +57,6 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME)); MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME)); - MogoModulePaths.addModule(new MogoModule(FreshNewsConstants.TAG, FreshNewsConstants.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI)); MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG)); diff --git a/config.gradle b/config.gradle index 1b33af44ee..60aa4d1cf8 100644 --- a/config.gradle +++ b/config.gradle @@ -109,7 +109,6 @@ ext { modulepush : "com.mogo.module:module-push:${MOGO_MODULE_PUSH_VERSION}", //运营位卡片 moduleadcard : "com.mogo.module:module-adcard:${MOGO_MODULE_AD_CARD_VERSION}", - modulefreshnews : "com.mogo.module:module-freshnews:${MOGO_MODULE_FRESH_NEWS_VERSION}", //统一返回键 mogomoduleback : "com.mogo.module:module-back:${MOGO_MODULE_BACK_VERSION}", mogomoduleauth : "com.mogo.module:module-authorize:${MOGO_MODULE_AUTHORIZE_VERSION}", diff --git a/gradle.properties b/gradle.properties index 4c551048f3..a4ddce33ff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -72,7 +72,4 @@ MOGO_MODULE_MEDIA_VERSION=1.0.4.3 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 -MOGO_MODULE_AD_CARD_VERSION=1.0.1 - -# 新鲜事 -MOGO_MODULE_FRESH_NEWS_VERSION=1.0.3.4 +MOGO_MODULE_AD_CARD_VERSION=1.0.1 \ No newline at end of file From 696491509cd769d73d5076f42ce77497a54a9f12 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 15 May 2020 11:24:38 +0800 Subject: [PATCH 9/9] opt tanlu version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a4ddce33ff..bf7b67a9c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -54,7 +54,7 @@ MOGO_MODULE_GUIDE_VERSION=1.1.0.1 ## 工程外部模块 # 探路 -MOGO_MODULE_TANLU_VERSION=1.0.5.6 +MOGO_MODULE_TANLU_VERSION=1.0.6-SNAPSHOT # 车聊聊 CARCHATTING_VERSION=1.0.4-SNAPSHOT # 车聊聊接口