From 81d3cbfac06836d05218913eae3d6edad88325c3 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 25 Mar 2020 09:54:24 +0800 Subject: [PATCH] opt --- app/build.gradle | 8 ++++- .../impl/amap/marker/AMapMarkerWrapper.java | 2 +- .../com/mogo/module/main/MainActivity.java | 2 ++ .../drawable/module_main_dw_top_frame_bkg.xml | 2 +- modules/mogo-module-service/build.gradle | 1 - .../module/service/MarkerServiceHandler.java | 35 +++++++++++++++++++ .../com/mogo/module/service/MogoServices.java | 33 +++++++++-------- .../service/datamanager/MogoDataHandler.java | 14 +++++--- .../service/datamanager/MogoDataManager.java | 5 +++ .../service/marker/MapMarkerManager.java | 3 +- .../service/datamanager/IMogoDataManager.java | 8 +++++ .../IMogoRefreshStrategyController.java | 2 ++ 12 files changed, 90 insertions(+), 25 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f7fac3e35b..0a33b8270d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode - versionName "${rootProject.ext.android.versionName}" + versionName "${rootProject.ext.android.versionName}.${getMonthAndDay()}" applicationId rootProject.ext.android.applicationId testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -136,6 +136,12 @@ android.applicationVariants.all { variant -> } } + +def getMonthAndDay(){ + SimpleDateFormat sdf = new SimpleDateFormat("MMddHH") + return sdf.format(new Date()) +} + def getCurrentDate() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss") return sdf.format(new Date()) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java index b08789023d..6983bd6b5c 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java @@ -75,7 +75,7 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer { mMogoMarkerOptions = null; } if ( mMarker != null ) { - mMarker.destroy(); + mMarker.remove(); mMarker.setObject( null ); mMarker = null; } 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 55c93e14dd..796410862b 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 @@ -195,6 +195,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mCoverUpLayout = findViewById( R.id.module_main_id_cover_up ); mCardCoverUpBottomLayout = findViewById( R.id.module_main_id_card_cover_up_bottom ); + // 避免事件穿透导致地图被滑动 + mLeftShadowFrame.setOnClickListener( view -> {} ); WindowViewHandler.init( mFloatingLayout ); } diff --git a/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml index 5f95c7f50f..f9f2d1743c 100644 --- a/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml +++ b/modules/mogo-module-main/src/main/res/drawable/module_main_dw_top_frame_bkg.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle index 4ccbff8bf0..57f5a280c7 100644 --- a/modules/mogo-module-service/build.gradle +++ b/modules/mogo-module-service/build.gradle @@ -45,7 +45,6 @@ dependencies { annotationProcessor rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.rxjava implementation rootProject.ext.dependencies.rxandroid -// implementation rootProject.ext.dependencies.moduleonlinecar if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomap diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index 338c1b121d..7d843891ca 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -12,10 +12,15 @@ import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.marker.MapMarkerManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.service.adas.IMogoADASController; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.cardmanager.IMogoCardManager; import com.mogo.service.connection.IMogoSocketManager; +import com.mogo.service.datamanager.IMogoDataManager; +import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.imageloader.IMogoImageloader; +import com.mogo.service.intent.IMogoIntentManager; +import com.mogo.service.launcher.IMogoLauncher; import com.mogo.service.map.IMogoMapService; import com.mogo.service.module.IMogoActionManager; import com.mogo.service.module.IMogoRegisterCenter; @@ -45,6 +50,11 @@ public class MarkerServiceHandler { private static IMogoAnalytics mMogoAnalytics; private static IMogoRegisterCenter mRegisterCenter; private static IMogoActionManager mActionManager; + private static IMogoDataManager mDataManager; + private static IMogoIntentManager mIntentManager; + private static IMogoADASController mADASController; + private static IMogoLauncher mLauncher; + private static IMogoFragmentManager mFragmentManager; private static MapMarkerManager mMapMarkerManager; @@ -62,6 +72,11 @@ public class MarkerServiceHandler { mLocationClient = mMapService.getSingletonLocationClient( context ); mRegisterCenter = mApis.getRegisterCenterApi(); mActionManager = mApis.getActionManagerApi(); + mDataManager = mApis.getDataManagerApi(); + mIntentManager = mApis.getIntentManagerApi(); + mADASController = mApis.getAdasControllerApi(); + mLauncher = mApis.getLauncherApi(); + mFragmentManager = mApis.getFragmentManagerApi(); mMapMarkerManager = MapMarkerManager.getInstance(); mMapMarkerManager.init( context ); @@ -119,6 +134,26 @@ public class MarkerServiceHandler { return mActionManager; } + public static IMogoIntentManager getIntentManager() { + return mIntentManager; + } + + public static IMogoADASController getADASController() { + return mADASController; + } + + public static IMogoLauncher getLauncher() { + return mLauncher; + } + + public static IMogoFragmentManager getFragmentManager() { + return mFragmentManager; + } + + public static IMogoDataManager getDataManager() { + return mDataManager; + } + //TODO -------------以下方法是临时过度使用的,后面统一使用,getMapMarkerManager进行调用 /** 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 0062376c10..2112206b1c 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 @@ -152,6 +152,8 @@ public class MogoServices implements IMogoMapListener, private IMogoFragmentManager mFragmentManager; private IMogoNavi mNavi; + private IMogoRegisterCenter mRegisterCenter; + /** * 地图视图初始化 */ @@ -272,30 +274,30 @@ public class MogoServices implements IMogoMapListener, public void init( Context context ) { mContext = context; + + MarkerServiceHandler.init( mContext ); mRefreshModel = new RefreshModel( context ); - IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); - mMogoMapService = apis.getMapServiceApi(); + mMogoMapService = MarkerServiceHandler.getMapService(); mUiController = mMogoMapService.getMapUIController(); mNavi = mMogoMapService.getNavi( context ); - mStatusManager = apis.getStatusManagerApi(); + mStatusManager = MarkerServiceHandler.getMogoStatusManager(); mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.USER_INTERACTED, this ); mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, this ); mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.ADAS_UI, this ); mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.MAIN_PAGE_RESUME, this ); - MarkerServiceHandler.init( mContext ); registerMogoReceiver( context ); registerInternalUnWakeupWords(); - IMogoRegisterCenter registerCenter = apis.getRegisterCenterApi(); - registerCenter.registerMogoLocationListener( ServiceConst.TYPE, this ); - registerCenter.registerMogoNaviListener( ServiceConst.TYPE, this ); - registerCenter.registerMogoMapListener( ServiceConst.TYPE, this ); - registerCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this ); + mRegisterCenter = MarkerServiceHandler.getRegisterCenter(); + mRegisterCenter.registerMogoLocationListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoNaviListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoMapListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this ); - mActionManager = apis.getActionManagerApi(); + mActionManager = MarkerServiceHandler.getActionManager(); - mIntentManager = apis.getIntentManagerApi(); + mIntentManager = MarkerServiceHandler.getIntentManager(); mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this ); mIntentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this ); mIntentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this ); @@ -310,10 +312,10 @@ public class MogoServices implements IMogoMapListener, mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_READY, this ); mIntentManager.registerIntentListener( MogoReceiver.ACTION_MOCK, this ); - mADASController = apis.getAdasControllerApi(); - mLauncher = apis.getLauncherApi(); - mFragmentManager = apis.getFragmentManagerApi(); - mCardManager = apis.getCardManagerApi(); + mADASController = MarkerServiceHandler.getADASController(); + mLauncher = MarkerServiceHandler.getLauncher(); + mFragmentManager = MarkerServiceHandler.getFragmentManager(); + mCardManager = MarkerServiceHandler.getMogoCardManager(); mFragmentManager.addMainFragmentStackTransactionListener( this ); initWorkThread(); @@ -438,6 +440,7 @@ public class MogoServices implements IMogoMapListener, } break; case MotionEvent.ACTION_UP: + mStatusManager.setUserInteractionStatus( TAG, true, true ); break; } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataHandler.java index 5df430623a..d6d78298c5 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataHandler.java @@ -98,20 +98,26 @@ public class MogoDataHandler implements IMogoDataManager { } - public void invoke( String tag, Object data ) { - if ( tag == null || mListeners.get( tag ) == null ) { + @Override + public void syncData( String module, Object object ) { + if ( module == null || mListeners.get( module ) == null ) { return; } try { - Iterator< IMogoDataChangedListener > iterator = mListeners.get( tag ).iterator(); + Iterator< IMogoDataChangedListener > iterator = mListeners.get( module ).iterator(); while ( iterator.hasNext() ) { IMogoDataChangedListener listener = iterator.next(); if ( listener != null ) { - listener.onDataSetChanged( data ); + listener.onDataSetChanged( object ); } } } catch ( Exception e ) { Logger.e( TAG, e, "error." ); } } + + @Deprecated + public void invoke( String tag, Object data ) { + syncData( tag, data ); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataManager.java index 5466194947..8b3f7dd5c9 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/datamanager/MogoDataManager.java @@ -36,6 +36,11 @@ public class MogoDataManager implements IMogoDataManager { MogoDataHandler.getInstance().removeDataFrom( module, object ); } + @Override + public void syncData( String module, Object object ) { + MogoDataHandler.getInstance().syncData( module, object ); + } + @Override public void init( Context context ) { MogoDataHandler.getInstance().init( context ); 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 9ea9784bac..6dd1001e38 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 @@ -24,7 +24,6 @@ import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.ServiceConst; import com.mogo.module.service.Utils; -import com.mogo.module.service.datamanager.MogoDataHandler; import com.mogo.module.service.utils.ViewUtils; import com.mogo.service.cardmanager.IMogoCardChangedListener; import com.mogo.service.connection.IMogoOnMessageListener; @@ -697,7 +696,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } try { Logger.d( TAG, "dispatch data to %s", biz ); - MogoDataHandler.getInstance().invoke( biz, object ); + MarkerServiceHandler.getDataManager().syncData( biz, object ); } catch ( Exception e ) { e.printStackTrace(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/datamanager/IMogoDataManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/datamanager/IMogoDataManager.java index b6fd635ccf..de17e718d8 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/datamanager/IMogoDataManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/datamanager/IMogoDataManager.java @@ -40,4 +40,12 @@ public interface IMogoDataManager extends IProvider { * @param object 数据 */ void removeDataFrom( String module, Object object ); + + /** + * 向固定模块透传数据 + * + * @param module + * @param object + */ + void syncData( String module, Object object ); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java index 72356ea315..7c3f6f89ca 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/strategy/IMogoRefreshStrategyController.java @@ -17,4 +17,6 @@ public interface IMogoRefreshStrategyController extends IProvider { */ void restartAutoRefreshAtTime( int delay ); + + } \ No newline at end of file