From 81a200ec1c638470606a1f125b9055063965b68a Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Tue, 16 Jun 2020 17:06:18 +0800 Subject: [PATCH 01/20] opt --- app/build.gradle | 1 - .../marker/CombineMovingPointOverlay.java | 330 ++++++++++++++++++ .../mogo/module/apps/AppsListActivity.java | 17 +- .../com/mogo/module/apps/AppsPresenter.java | 2 - .../common/map/MapCenterPointStrategy.java | 12 +- .../com/mogo/module/main/MainActivity.java | 4 +- .../com/mogo/module/service/MogoServices.java | 4 + .../java/com/mogo/module/service/Utils.java | 2 +- .../service/marker/MapMarkerManager.java | 24 +- .../service/impl/adas/MogoADASController.java | 15 +- 10 files changed, 383 insertions(+), 28 deletions(-) create mode 100644 libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/CombineMovingPointOverlay.java diff --git a/app/build.gradle b/app/build.gradle index a4be1c2467..9ec67a2001 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -281,4 +281,3 @@ def getGitCommit() { assert !gitCommit.isEmpty() gitCommit } - diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/CombineMovingPointOverlay.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/CombineMovingPointOverlay.java new file mode 100644 index 0000000000..4d7d1fb929 --- /dev/null +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/CombineMovingPointOverlay.java @@ -0,0 +1,330 @@ +package com.mogo.map.impl.amap.marker; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.AMapUtils; +import com.amap.api.maps.model.BasePointOverlay; +import com.amap.api.maps.model.LatLng; +import com.autonavi.amap.mapcore.IPoint; +import com.autonavi.amap.mapcore.MapProjection; +import com.mogo.utils.logger.Logger; + +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * @author congtaowang + * @since 2020/6/15 + *

+ */ +class CombineMovingPointOverlay { + + private static final String TAG = "CombineMovingPointOverlay"; + + private AMap mAMap; + private long mDuration = 1_000L; + private long mStepDuration = 20L; + private LinkedList< LatLng > mPoints = new LinkedList<>(); + private LinkedList< Double > mEachDistance = new LinkedList<>(); + + private double mTotalDistance = 0.0D; + private double mRemainDistance = 0.0D; + private ExecutorService mThreadPools; + private Object mLock = new Object(); + private BasePointOverlay mBaseOverlay = null; + private int mIndex = 0; + private boolean mUseDefaultDescriptor = false; + AtomicBoolean mExitFlag = new AtomicBoolean( false ); + private MoveListener mMoveListener; + private Status mStatus; + private long mPauseMillis; + private long mAnimationBeginTime; + + public CombineMovingPointOverlay( AMap amap, BasePointOverlay baseOverlay ) { + mStatus = Status.Status1; + mAnimationBeginTime = System.currentTimeMillis(); + if ( amap != null && baseOverlay != null ) { + this.mAMap = amap; + this.mBaseOverlay = baseOverlay; + mThreadPools = new ThreadPoolExecutor( 1, 2, 5L, TimeUnit.SECONDS, new SynchronousQueue(), new ThreadFactoryImpl() ); + } + } + + public void setMoveListener( MoveListener moveListener ) { + this.mMoveListener = moveListener; + } + + public void setPoints( List< LatLng > list ) { + synchronized ( mLock ) { + if ( list != null && list.size() >= 2 ) { + stopMove(); + if ( mPoints != null ) { + mPoints.clear(); + } + Iterator< LatLng > iterator = list.listIterator(); + while ( iterator.hasNext() ) { + LatLng latLng = iterator.next(); + if ( latLng != null ) { + mPoints.add( latLng ); + } + } + + mEachDistance.clear(); + mTotalDistance = 0.0D; + + for ( int i = 0; i < mPoints.size(); i++ ) { + double distance = AMapUtils.calculateLineDistance( mPoints.get( i ), mPoints.get( i + 1 ) ); + mEachDistance.add( distance ); + mTotalDistance += distance; + } + + mRemainDistance = mTotalDistance; + mBaseOverlay.setPosition( mPoints.get( 0 ) ); + reset(); + } + } + } + + + public int getIndex() { + return mIndex; + } + + public BasePointOverlay getBaseOverlay() { + return mBaseOverlay; + } + + public void destroy() { + try { + removeMarker(); + mThreadPools.shutdown(); + synchronized ( mLock ) { + mPoints.clear(); + mEachDistance.clear(); + ; + } + } catch ( Exception e ) { + + } + } + + public void removeMarker() { + try { + reset(); + if ( mBaseOverlay != null ) { + mBaseOverlay.remove(); + mBaseOverlay = null; + } + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + + public void stopMove() { + if ( mStatus == Status.Status3 ) { + mStatus = Status.Status4; + mPauseMillis = System.currentTimeMillis(); + } + } + + private void reset() { + if ( mStatus == Status.Status3 || mStatus == Status.Status4 ) { + mExitFlag.set( true ); + try { + mThreadPools.awaitTermination( mStepDuration + 20L, TimeUnit.MICROSECONDS ); + mBaseOverlay.setAnimation( null ); + mStatus = Status.Status1; + } catch ( InterruptedException e ) { + Logger.e( TAG, e, "error." ); + } + } + } + + public void resetIndex() { + mIndex = 0; + } + + + public void setTotalDuration( int seconds ) { + mDuration = seconds * 1_000L; + } + + public void startSmoothMove() { + if ( mStatus == Status.Status4 ) { + mStatus = Status.Status3; + long interval = System.currentTimeMillis() - mPauseMillis; + mAnimationBeginTime += interval; + } else { + if ( mStatus == Status.Status1 || mStatus == Status.Status5 ) { + if ( mPoints.size() <= 0 ) { + return; + } + mIndex = 0; + mThreadPools.execute( new MarkerMovingRunnable() ); + } + } + } + + public void setVisible( boolean visible ) { + if ( mBaseOverlay != null ) { + try { + mBaseOverlay.setVisible( visible ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + } + + private class MarkerMovingRunnable implements Runnable { + + @Override + public void run() { + mAnimationBeginTime = System.currentTimeMillis(); + mStatus = Status.Status2; + mExitFlag.set( false ); + + try { + for ( ; !mExitFlag.get() && mIndex <= mPoints.size() - 1; Thread.sleep( mStepDuration ) ) { + synchronized ( mLock ) { + if ( mExitFlag.get() ) { + return; + } + if ( mStatus == Status.Status4 ) { + long interval = System.currentTimeMillis() - mAnimationBeginTime; + IPoint point = getCurPosition( interval ); + mBaseOverlay.setGeoPoint( point ); + mStatus = Status.Status3; + } + } + } + mStatus = Status.Status5; + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + } + + private IPoint getCurPosition( long interval ) { + if ( interval > mDuration ) { + mExitFlag.set( true ); + IPoint point = new IPoint(); + mIndex = mPoints.size() - 1; + LatLng latLng = mPoints.get( mIndex ); + --mIndex; + mIndex = Math.max( mIndex, 0 ); + mRemainDistance = 0.0D; + MapProjection.lonlat2Geo( latLng.longitude, latLng.latitude, point ); + if ( mMoveListener != null ) { + mMoveListener.move( mRemainDistance ); + } + return point; + } else { + double step = interval * mTotalDistance / mDuration; + mRemainDistance = mTotalDistance - step; + int targetIndex = 0; + double val = 1.0D; + + for ( int i = 0; i < mEachDistance.size(); i++ ) { + double distance = mEachDistance.get( i ); + if ( step <= distance ) { + if ( distance > 0.0D ) { + val = step / distance; + } + targetIndex = i; + break; + } + step -= distance; + } + + if ( targetIndex != mIndex && mMoveListener != null ) { + mMoveListener.move( mRemainDistance ); + } + + mIndex = targetIndex; + LatLng latLng = mPoints.get( mIndex ); + LatLng latLng1 = mPoints.get( mIndex + 1 ); + IPoint point = new IPoint(); + MapProjection.lonlat2Geo( latLng.longitude, latLng.latitude, point ); + IPoint point1 = new IPoint(); + MapProjection.lonlat2Geo( latLng1.longitude, latLng1.latitude, point1 ); + + int xDelta = point1.x - point.x; + int yDelta = point1.y - point.y; + + if ( AMapUtils.calculateLineDistance( latLng, latLng1 ) > 1.0F ) { + float rotate = getRotate( point, point1 ); + setRotate( rotate ); + } + return new IPoint( ( ( int ) ( point.x + ( ( double ) xDelta ) * val ) ), ( ( int ) ( point.y + ( ( double ) yDelta ) * val ) ) ); + } + } + + private float getRotate( IPoint point, IPoint point1 ) { + if ( point != null && point1 != null ) { + double py1 = ( double ) point1.y; + double py = ( double ) point.y; + double px = ( double ) point.x; + return ( float ) ( Math.atan2( ( double ) point1.x - px, py - py1 ) / 3.141592653589793D * 180.0D ); + } else { + return 0.0F; + } + } + + public void setPoint( LatLng latLng ) { + if ( mBaseOverlay != null ) { + try { + mBaseOverlay.setPosition( latLng ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + } + + public void setRotate( float rotate ) { + if ( mBaseOverlay == null ) { + return; + } + if ( mAMap == null ) { + return; + } + if ( mAMap.getCameraPosition() == null ) { + return; + } + mBaseOverlay.setRotateAngle( 360.0F - rotate + mAMap.getCameraPosition().bearing ); + } + + public LatLng getPosition() { + if ( mBaseOverlay != null ) { + return mBaseOverlay.getPosition(); + } + return null; + } + + private enum Status { + Status1, + Status2, + Status3, + Status4, + Status5 + } + + public interface MoveListener { + void move( double val ); + } + + private static class ThreadFactoryImpl implements ThreadFactory { + + private static int mCounter = 1; + + @Override + public Thread newThread( Runnable r ) { + return new Thread( r, "MoveSmoothThread - " + mCounter++ ); + } + } +} diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java index cc9250b150..631ac5de16 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java @@ -27,6 +27,8 @@ import com.mogo.service.fragmentmanager.IMogoFragmentManager; */ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresenter > implements AppsListView, FragmentStackTransactionListener { + private static final String TAG = "AppsListActivity"; + private BottomSheetBehavior mBottomSheetBehavior; private IMogoFragmentManager mMogoFragmentManager; @@ -38,12 +40,13 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent @Override protected void onCreate( @Nullable Bundle savedInstanceState ) { - overridePendingTransition( R.anim.module_apps_anim_enter, 0); - getWindow().addFlags( WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + overridePendingTransition( R.anim.module_apps_anim_enter, 0 ); + getWindow().addFlags( WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS ); if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) { getWindow().setStatusBarColor( Color.BLACK ); } super.onCreate( savedInstanceState ); + AppServiceHandler.getApis().getStatusManagerApi().setAppListUIShow( TAG, true ); } @Override @@ -53,8 +56,9 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent @Override protected void initViews() { + getSupportFragmentManager().beginTransaction() - .add( R.id.module_apps_id_container, new AppsFragment() ) + .replace( R.id.module_apps_id_container, new AppsFragment() ) .commitAllowingStateLoss(); mBottomSheetBehavior = BottomSheetBehavior.from( findViewById( R.id.module_apps_id_container ) ); @@ -74,14 +78,14 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent } ); mBottomSheetBehavior.setState( BottomSheetBehavior.STATE_EXPANDED ); - mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( this ); + mMogoFragmentManager = AppServiceHandler.getApis().getFragmentManagerApi(); mMogoFragmentManager.addMainFragmentStackTransactionListener( this ); } @NonNull @Override protected AppsListPresenter createPresenter() { - return new AppsListPresenter(this); + return new AppsListPresenter( this ); } @Override @@ -100,12 +104,13 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent @Override public void closeAppsPanel() { finish(); - overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit); + overridePendingTransition( R.anim.module_apps_anim_enter, R.anim.module_apps_anim_exit ); } @Override protected void onDestroy() { super.onDestroy(); + AppServiceHandler.getApis().getStatusManagerApi().setAppListUIShow( TAG, false ); mMogoFragmentManager.removeMainFragmentStackTransactionListener( this ); mMogoFragmentManager = null; mBottomSheetBehavior = null; 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 d7705da71e..942568fc7f 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 @@ -72,7 +72,6 @@ public class AppsPresenter extends Presenter< AppsView > { mAnalytics = mApis.getAnalyticsApi(); mMogoStatusManager = mApis.getStatusManagerApi(); - mMogoStatusManager.setAppListUIShow( TAG, true ); } private void renderAppsList() { @@ -202,7 +201,6 @@ public class AppsPresenter extends Presenter< AppsView > { @Override public void onDestroy( @NonNull LifecycleOwner owner ) { super.onDestroy( owner ); - mMogoStatusManager.setAppListUIShow( TAG, false ); AppsListChangedLiveData.getInstance().release(); mView = null; mLauncher.destroy(); diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java index daec2f73d1..42426edf27 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MapCenterPointStrategy.java @@ -56,9 +56,9 @@ public class MapCenterPointStrategy { { // 导航场景 vs 道路事件展示场景,定位视图右下角偏下 Map< Integer, MapCenterPoint > naviWithRoadEvent = new HashMap<>(); - naviWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.68333333333D ) ); - naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.68333333333D ) ); - naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.68333333333D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.73936170212766D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.73936170212766D ) ); + naviWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.73936170212766D ) ); naviWithRoadEvent.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.683333333333D ) ); sStrategies.put( Scene.NAVI_WITH_ROAD_EVENT, naviWithRoadEvent ); } @@ -76,9 +76,9 @@ public class MapCenterPointStrategy { { // 巡航场景 vs 道路事件展示场景 Map< Integer, MapCenterPoint > aimlessWithRoadEvent = new HashMap<>(); - aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.585 ) ); - aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.585 ) ); - aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.585 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_D80X, new MapCenterPoint( 0.669444444444444, 0.68617 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84X, new MapCenterPoint( 0.734375D, 0.68617 ) ); + aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_E84XCD, new MapCenterPoint( 0.734375D, 0.68617 ) ); aimlessWithRoadEvent.put( CarSeries.CAR_SERIES_F80X, new MapCenterPoint( 0.705208333D, 0.599074074D ) ); sStrategies.put( Scene.AIMLESS_WITH_ROAD_EVENT, aimlessWithRoadEvent ); } 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 73e215fa53..5553aeab37 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 @@ -147,6 +147,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme // 启动一些基本的服务:定位等 startBaseService(); + + Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); } ); MogoModulesManager.getInstance().loadMapModule( R.id.module_main_id_map_fragment_container ); @@ -159,8 +161,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme hideLayout(); } } ); - - Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); } private void startBaseService() { 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 8a7f1e1c06..9837155cae 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 @@ -647,6 +647,10 @@ public class MogoServices implements IMogoMapListener, return; } + if ( !mStatusManager.isMainPageOnResume() ) { + return; + } + if ( mStatusManager.isSearchUIShow() ) { return; } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java index ef4534ac61..9978faf668 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/Utils.java @@ -66,7 +66,7 @@ public class Utils { } public static void main( String[] args ) { - double calculateLineDistance = calculateLineDistance( new MogoLatLng( 39.955533, 116.423262 ), new MogoLatLng( 39.955385, 116.414604 ) ); + double calculateLineDistance = calculateLineDistance( new MogoLatLng( 39.968598, 116.411121 ), new MogoLatLng( 39.968598, 116.411121 ) ); System.out.println( "距离点 calculateLineDistance:" + calculateLineDistance ); } } 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 e292dd6a94..b37af341fb 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 @@ -120,7 +120,11 @@ public class MapMarkerManager implements IMogoMarkerClickListener, Map< String, Object > properties = new HashMap<>(); if ( marker.getObject() instanceof MarkerShowEntity ) { - properties.put( "sn", getCarSnFromMarker( marker ) ); + final String sn = getCarSnFromEntity( marker ); + if ( TextUtils.isEmpty( sn ) ) { + return false; + } + properties.put( "sn", sn ); if ( ( ( MarkerShowEntity ) marker.getObject() ).getBindObj() instanceof MarkerExploreWay ) { MarkerExploreWay exploreWay = ( MarkerExploreWay ) ( ( MarkerShowEntity ) marker.getObject() ).getBindObj(); properties.put( "dbid", exploreWay.getInfoId() ); @@ -482,7 +486,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } else if ( entity instanceof MarkerNoveltyInfo ) { return ( ( MarkerNoveltyInfo ) entity ).getSn(); } else if ( entity instanceof MarkerExploreWay ) { - return ( ( MarkerExploreWay ) entity ).getInfoId(); + return ( ( MarkerExploreWay ) entity ).getUserInfo().getSn(); } } catch ( Exception e ) { @@ -844,6 +848,10 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } List< MogoLatLng > points = new ArrayList<>(); + + double lastLat = 0.0d; + double lastLon = 0.0d; + for ( int j = 0; j < poiList.size(); j++ ) { MarkerCarPois poi = poiList.get( j ); if ( poi == null || poi.getCoordinates() == null && poi.getCoordinates().size() != 2 ) { @@ -852,6 +860,14 @@ public class MapMarkerManager implements IMogoMarkerClickListener, try { double lat = Double.valueOf( poi.getCoordinates().get( 1 ) + "" ); double lng = Double.valueOf( poi.getCoordinates().get( 0 ) + "" ); + + float distance = Utils.calculateLineDistance( lastLon, lastLat, lng, lat ); + lastLon = lng; + lastLat = lat; + if ( distance < 0.5f ) {// 距离过短,认为静止不动 + continue; + } + points.add( new MogoLatLng( lat, lng ) ); } catch ( Exception e ) { } @@ -859,6 +875,8 @@ public class MapMarkerManager implements IMogoMarkerClickListener, if ( points.size() >= 1 ) { points.add( new MogoLatLng( markerLocation.getLat(), markerLocation.getLon() ) ); iMogoMarker.startSmooth( points, SMOOTH_DURATION ); + } else { + Logger.d( TAG, "静止小车,但是有相同的连续坐标" ); } } @@ -892,7 +910,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, return MarkerServiceHandler.getMogoStatusManager().isSearchUIShow() || MarkerServiceHandler.getMogoStatusManager().isV2XShow() || !MarkerServiceHandler.getMogoStatusManager().isMainPageLaunched() - || !MarkerServiceHandler.getMogoStatusManager().isMainPageLaunched(); + || !MarkerServiceHandler.getMogoStatusManager().isMainPageOnResume(); } private void runOnTargetThread( Runnable runnable ) { 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 8e1839fde8..f877ac186b 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 @@ -74,16 +74,17 @@ public class MogoADASController implements IMogoADASController { init( AbsMogoApplication.getApp() ); } - if ( mStatusManager.isSearchUIShow() ) { - return; - } - if ( !mStatusManager.isMainPageOnResume() ) { - return; - } - int delay = CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ? 0 : 100; UiThreadHandler.postDelayed( () -> { + + if ( mStatusManager.isSearchUIShow() ) { + return; + } + if ( !mStatusManager.isMainPageOnResume() ) { + return; + } + try { AutopilotServiceManage.getInstance().showAdas(); } catch ( Exception e ) { From 9deba00f04daca3e79a1349db502266079512d9f Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 16 Jun 2020 17:34:47 +0800 Subject: [PATCH 02/20] =?UTF-8?q?bug-D80XCD-1412=20sn=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE?= 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 2be089adf2..697b89654d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.13 +MOGO_MODULE_V2X_VERSION=1.1.14 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 9c2250d8ca2af8316dc19a5a91ab68170602aa0d Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 16 Jun 2020 17:47:46 +0800 Subject: [PATCH 03/20] add log --- .../com/mogo/module/extensions/utils/TopViewAnimHelper.java | 3 ++- .../src/main/res/layout/module_ext_layout_entrance.xml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 0b6ebc03de..d2425ae4c1 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -217,7 +217,8 @@ public class TopViewAnimHelper { // tvNextRoad.setTextSize(getDimen(R.dimen.dp_34)); // } topContainer.addView(view, params); - + Logger.d(TAG, "整体进入==== view.visibility: " + view.getVisibility() + " view" + + ".position: (" + view.getX() + ", " + view.getY() + ") params.width: " + params.width + " params.height: " + params.height); topContainer.setChildAddedListener(child -> { if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); 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 95ceaa4c07..a8d9fee6ac 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 @@ -252,6 +252,7 @@ android:layout_height="wrap_content" android:focusable="true" android:clickable="true" + android:background="#0ff" app:layout_constraintBottom_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> From 9f47dd17c4902e3c66b5d703cb83d4e2afd354d0 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 16 Jun 2020 19:31:22 +0800 Subject: [PATCH 04/20] no message --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2be089adf2..697b89654d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.13 +MOGO_MODULE_V2X_VERSION=1.1.14 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 67c7fd8e8777d0a156a1939f79fc7fffa19aceff Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 16 Jun 2020 19:33:52 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E5=9B=9E=E8=B0=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/extensions/utils/TopViewAnimHelper.java | 13 ++++++++++++- .../windowview/IMogoTopViewStatusListener.java | 12 ++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 0b6ebc03de..3cc8457df8 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -184,6 +184,9 @@ public class TopViewAnimHelper { topContainer.addView(view, params); Logger.d(TAG, "顶部view已经有布局了,增加新增view滑入动画: " + view.getTranslationY() + " height:" + " " + view.getHeight() + " paramsHeight: " + params.height); + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewAddAnim(view); + } view.animate().translationY(0).setDuration(500).setListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { @@ -217,7 +220,9 @@ public class TopViewAnimHelper { // tvNextRoad.setTextSize(getDimen(R.dimen.dp_34)); // } topContainer.addView(view, params); - + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewAddAnim(view); + } topContainer.setChildAddedListener(child -> { if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); @@ -300,6 +305,9 @@ public class TopViewAnimHelper { // 顶部view包含多个view,只推出当前view,不进行整体上移 Logger.d(TAG, "小view退出: " + view.getTranslationY() + " height: " + view.getHeight()); + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewRemoveAnim(view); + } view.animate().translationY(-(view.getHeight())).setDuration(500).setListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { @@ -333,6 +341,9 @@ public class TopViewAnimHelper { } else { // 顶部view仅剩一个view,需要整体上移 currentAnimatingView = view; + if (statusListenerMap.get(view) != null) { + statusListenerMap.get(view).beforeViewRemoveAnim(view); + } isTopViewOut = true; // if (naviBg.getVisibility() == View.VISIBLE) { // tvNextRoad.setTextSize(getDimen(R.dimen diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java index db9df440b4..c3316b01ed 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoTopViewStatusListener.java @@ -19,4 +19,16 @@ public interface IMogoTopViewStatusListener { * @param view 移除的view */ void onViewRemoved(View view); + + /** + * view添加动画开始之前 + * @param view 添加的view + */ + void beforeViewAddAnim(View view); + + /** + * view 移除动画开始之前 + * @param view 移除的view + */ + void beforeViewRemoveAnim(View view); } From 6da4e6095f3a96ee9cbbd3793340273df5934bab Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 16 Jun 2020 19:42:02 +0800 Subject: [PATCH 06/20] opt --- .../main/res/layout/module_main_activity_main.xml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) 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 96f61eca7b..fdc64aa4e9 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 @@ -9,13 +9,7 @@ - - - + android:layout_height="match_parent" /> - + + + \ No newline at end of file From 9b1300134cf42ca0bc35bd2b088d45aa3b3c73b2 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 09:44:55 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=8F=90=E5=8D=87=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 50 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index 697b89654d..8c248fb17e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,31 +27,31 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1 -MOGO_UTILS_VERSION=1.2.1 -MAP_AMAP_VERSION=1.2.1 -MAP_AUTONAVI_VERSION=1.2.1 -MOGO_MAP_VERSION=1.2.1 -MOGO_MAP_API_VERSION=1.2.1 -MOGO_SERVICE_VERSION=1.2.1 -MOGO_SERVICE_API_VERSION=1.2.1 -MOGO_CONNECTION_VERSION=1.2.1 -MOGO_MODULE_APPS_VERSION=1.2.1 -MOGO_MODULE_NAVI_VERSION=1.2.1 -MOGO_MODULE_SHARE_VERSION=1.2.1 -MOGO_MODULE_COMMON_VERSION=1.2.1 -MOGO_MODULE_MAIN_VERSION=1.2.1 -MOGO_MODULE_MAP_VERSION=1.2.1 -MOGO_MODULE_SERVICE_VERSION=1.2.1 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1 -MOGO_MODULE_SEARCH_VERSION=1.2.1 -MOGO_MODULE_BACK_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1 -MOGO_MODULE_GUIDE_VERSION=1.2.1 -MOGO_MODULE_MEDIA_VERSION=1.2.1 +MOGO_COMMONS_VERSION=1.2.1.1 +MOGO_UTILS_VERSION=1.2.1.1 +MAP_AMAP_VERSION=1.2.1.1 +MAP_AUTONAVI_VERSION=1.2.1.1 +MOGO_MAP_VERSION=1.2.1.1 +MOGO_MAP_API_VERSION=1.2.1.1 +MOGO_SERVICE_VERSION=1.2.1.1 +MOGO_SERVICE_API_VERSION=1.2.1.1 +MOGO_CONNECTION_VERSION=1.2.1.1 +MOGO_MODULE_APPS_VERSION=1.2.1.1 +MOGO_MODULE_NAVI_VERSION=1.2.1.1 +MOGO_MODULE_SHARE_VERSION=1.2.1.1 +MOGO_MODULE_COMMON_VERSION=1.2.1.1 +MOGO_MODULE_MAIN_VERSION=1.2.1.1 +MOGO_MODULE_MAP_VERSION=1.2.1.1 +MOGO_MODULE_SERVICE_VERSION=1.2.1.1 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.1 +MOGO_MODULE_SEARCH_VERSION=1.2.1.1 +MOGO_MODULE_BACK_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.1 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.1 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 +MOGO_MODULE_GUIDE_VERSION=1.2.1.1 +MOGO_MODULE_MEDIA_VERSION=1.2.1.1 MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.2 MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.2 From 757f3d056d828065f280dfca39bf05a4579ee6f8 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 10:51:55 +0800 Subject: [PATCH 08/20] opt --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 8c248fb17e..755621bd64 100644 --- a/gradle.properties +++ b/gradle.properties @@ -53,8 +53,8 @@ MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 MOGO_MODULE_GUIDE_VERSION=1.2.1.1 MOGO_MODULE_MEDIA_VERSION=1.2.1.1 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.2 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.2 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.3 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.3 ## 工程外部模块 From 8b84c16cbb592d10d99e7377d0407c4ff6d160cd Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 11:38:35 +0800 Subject: [PATCH 09/20] add log --- .../main/java/com/mogo/module/extensions/navi/TopView.java | 6 ++++++ .../com/mogo/module/extensions/utils/TopViewAnimHelper.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java index a4ef3f3a3e..0f98f21a68 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/TopView.java @@ -82,6 +82,12 @@ public class TopView extends FrameLayout { }); } + @Override + public void onViewRemoved(View child) { + super.onViewRemoved(child); + Logger.d("TopView", "onViewRemoved: " + child); + } + public interface OnChildAddedListener { /** * 子view添加完成,但是并不确定已经绘制完成 diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index d2425ae4c1..a12db9d15b 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -152,7 +152,7 @@ public class TopViewAnimHelper { hideNaviView(); } - private boolean isTopViewOut = true; + private volatile boolean isTopViewOut = true; private List viewCaches = new ArrayList<>(); private Map statusListenerMap = new ArrayMap<>(); From f71008c3507d7998755456887989c64f3c19e96e Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 17 Jun 2020 11:39:05 +0800 Subject: [PATCH 10/20] UI opt & bugfix --- .idea/misc.xml | 2 +- .../com/mogo/commons/AbsMogoApplication.java | 4 ++-- .../src/main/res/values-xhdpi/dimens.xml | 4 ++-- .../src/main/res/values/dimens.xml | 4 ++-- .../extensions/utils/TopViewAnimHelper.java | 4 ++-- .../res/layout/module_main_activity_main.xml | 13 +++++------ .../service/marker/MapMarkerManager.java | 2 +- .../module/service/marker/MapMarkerView.java | 3 --- .../drawable-xhdpi/module_service_ic_call.png | Bin 8990 -> 7971 bytes .../res/drawable/module_service_ic_call.png | Bin 3738 -> 3115 bytes .../layout/view_map_data_user_info_window.xml | 21 +++++++++--------- .../src/main/res/layout/view_map_marker.xml | 14 ++++-------- .../main/res/layout/view_map_marker_info.xml | 6 ++--- .../src/main/res/values-xhdpi/dimens.xml | 10 ++++++++- .../src/main/res/values/dimens.xml | 12 ++++++++-- 15 files changed, 52 insertions(+), 47 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/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index b1e7afd023..53d2b568cc 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -133,9 +133,9 @@ public class AbsMogoApplication extends Application { } ); } - private static void getTicket(TicketInfoCallback callback){ + private static void getTicket( TicketInfoCallback callback ) { if ( DebugConfig.isLauncher() ) { - AccountClientManager.getTicket(callback); + AccountClientManager.getTicket( callback ); } else { AccountClientManager.getAppTicket( callback ); } diff --git a/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml index e4753b0f9d..a9ba5a2fef 100644 --- a/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml @@ -24,6 +24,6 @@ 140px 140px 30px - 110px - 110px + 100px + 100px \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/values/dimens.xml b/modules/mogo-module-apps/src/main/res/values/dimens.xml index c9efac23e8..679816b821 100644 --- a/modules/mogo-module-apps/src/main/res/values/dimens.xml +++ b/modules/mogo-module-apps/src/main/res/values/dimens.xml @@ -24,6 +24,6 @@ 78px 78px 17px - 70px - 70px + 60px + 60px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 0b6ebc03de..f52b467232 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -473,9 +473,9 @@ public class TopViewAnimHelper { arriveTimeGroup.setVisibility(View.GONE); int scene = 0; if (isTopViewOut) { - scene = Scene.AIMLESS_WITH_ROAD_EVENT; - } else { scene = Scene.AIMLESS; + } else { + scene = Scene.AIMLESS_WITH_ROAD_EVENT; } Logger.d(TAG, "hide navi setMapCenterPointByScene: " + scene); MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); 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 96f61eca7b..25994bb014 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 @@ -9,13 +9,7 @@ - - - + android:layout_height="match_parent"/> + + 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 ReD4LgdG*$nvdhjf{|Dx=532wG diff --git a/modules/mogo-module-service/src/main/res/drawable/module_service_ic_call.png b/modules/mogo-module-service/src/main/res/drawable/module_service_ic_call.png index 3f90fd4af55cd683fbc5da1d339ecdee40fccdd8..a66ed29d09f3e05c3ebdd24fe5a2c0a4b3c9a08b 100644 GIT binary patch literal 3115 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 Ef{)K}$N&HU diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml b/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml index 5028bcbe89..0967298a46 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_data_user_info_window.xml @@ -7,14 +7,12 @@ android:background="@android:color/transparent" android:gravity="center" android:orientation="vertical" - android:paddingStart="@dimen/dp_5" - android:paddingEnd="@dimen/dp_5" tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> - - + android:layout_marginBottom="@dimen/module_service_marker_bubble_icon_marginBottom" + tools:src="@drawable/icon_map_marker_road_block_up" /> diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml index 1917bf59ae..028892962e 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml @@ -7,8 +7,6 @@ android:gravity="center" android:orientation="vertical" android:padding="1px" - android:paddingStart="@dimen/dp_5" - android:paddingEnd="@dimen/dp_5" tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> 117px 50px 50px - 24px + 8px 1000px 390px 200px 200px + 10px + 10px + 100px + 80px + 80px + 24px + 20px + 120px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index 451d9a661b..03b1e6650a 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -1,15 +1,23 @@ 16dp - 8dp + 4dp 56px 65px 27px 27px - 14px + 4px 550px 208px 100px 100px + 100px + 10px + 54px + 44px + 44px + 14px + 12px + 64px \ No newline at end of file From c5c3e56fa6fea20647fc10586b075233884c1230 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Wed, 17 Jun 2020 12:20:38 +0800 Subject: [PATCH 11/20] opt --- .../mogo/module/main/EventDispatchCenter.java | 30 ------------------- .../service/marker/MapMarkerManager.java | 2 +- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java index 48a0812257..937548ba6e 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java @@ -2,7 +2,6 @@ package com.mogo.module.main; import android.content.Intent; import android.location.Location; -import android.text.TextUtils; import android.view.MotionEvent; import com.mogo.map.MogoLatLng; @@ -21,20 +20,14 @@ import com.mogo.map.navi.MogoCongestionInfo; import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; -import com.mogo.module.common.entity.MarkerNoveltyInfo; -import com.mogo.module.common.entity.MarkerShareMusic; -import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.main.registercenter.MogoRegisterCenterHandler; -import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.utils.logger.Logger; -import java.util.HashMap; import java.util.Iterator; -import java.util.Map; /** * @author congtaowang @@ -83,7 +76,6 @@ public class EventDispatchCenter implements IMogoMarkerClickListener listener = MogoRegisterCenterHandler.getInstance().getMarkerListener( marker.getOwner() ); if ( listener != null ) { try { - trackMarkerClickEvent( marker ); return listener.onMarkerClicked( marker ); } catch ( Exception e ) { Logger.e( TAG, e, "error." ); @@ -92,28 +84,6 @@ public class EventDispatchCenter implements return false; } - /** - * marker 点击埋点 - * - * @param marker - */ - private void trackMarkerClickEvent( IMogoMarker marker ) { - if ( marker == null || TextUtils.isEmpty( marker.getOwner() ) ) { - return; - } - // 数据统计代码 - final Map< String, Object > properties = new HashMap<>(); - properties.put( "poitype", marker.getOwner() ); - MarkerShowEntity showEntity = ( MarkerShowEntity ) marker.getObject(); - Object bindObj = showEntity.getBindObj(); - if ( bindObj instanceof MarkerNoveltyInfo ) { - properties.put( "contenttype", ( ( MarkerNoveltyInfo ) bindObj ).getPoiType() ); - } else if ( bindObj instanceof MarkerShareMusic ) { - properties.put( "contenttype", ( ( MarkerShareMusic ) bindObj ).getShareType() + "" ); - } - MarkerServiceHandler.getMogoAnalytics().track( "Launcher_Icon_Click", properties ); - } - @Override public void onUpdateTraffic2( MogoTraffic traffic ) { Iterator< IMogoAimlessModeListener > iterator = MogoRegisterCenterHandler.getInstance().getAimlessModeListeners(); 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 559d7c301f..064551593a 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 @@ -120,7 +120,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, Map< String, Object > properties = new HashMap<>(); if ( marker.getObject() instanceof MarkerShowEntity ) { - final String sn = getCarSnFromEntity( marker ); + final String sn = getCarSnFromMarker( marker ); if ( TextUtils.isEmpty( sn ) ) { return false; } From a128caa462f35ef608b86b6f45b3a7b1b248720a Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 14:02:25 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dtop=20view=E6=9C=89?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E5=BC=B9=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 56 +++++++++---------- .../extensions/utils/TopViewAnimHelper.java | 1 + .../res/layout/module_ext_layout_entrance.xml | 1 - 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/gradle.properties b/gradle.properties index 755621bd64..47ab02a6d0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,34 +27,34 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1.1 -MOGO_UTILS_VERSION=1.2.1.1 -MAP_AMAP_VERSION=1.2.1.1 -MAP_AUTONAVI_VERSION=1.2.1.1 -MOGO_MAP_VERSION=1.2.1.1 -MOGO_MAP_API_VERSION=1.2.1.1 -MOGO_SERVICE_VERSION=1.2.1.1 -MOGO_SERVICE_API_VERSION=1.2.1.1 -MOGO_CONNECTION_VERSION=1.2.1.1 -MOGO_MODULE_APPS_VERSION=1.2.1.1 -MOGO_MODULE_NAVI_VERSION=1.2.1.1 -MOGO_MODULE_SHARE_VERSION=1.2.1.1 -MOGO_MODULE_COMMON_VERSION=1.2.1.1 -MOGO_MODULE_MAIN_VERSION=1.2.1.1 -MOGO_MODULE_MAP_VERSION=1.2.1.1 -MOGO_MODULE_SERVICE_VERSION=1.2.1.1 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.1 -MOGO_MODULE_SEARCH_VERSION=1.2.1.1 -MOGO_MODULE_BACK_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.1 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.1 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.1 -MOGO_MODULE_GUIDE_VERSION=1.2.1.1 -MOGO_MODULE_MEDIA_VERSION=1.2.1.1 +MOGO_COMMONS_VERSION=1.2.1.2 +MOGO_UTILS_VERSION=1.2.1.2 +MAP_AMAP_VERSION=1.2.1.2 +MAP_AUTONAVI_VERSION=1.2.1.2 +MOGO_MAP_VERSION=1.2.1.2 +MOGO_MAP_API_VERSION=1.2.1.2 +MOGO_SERVICE_VERSION=1.2.1.2 +MOGO_SERVICE_API_VERSION=1.2.1.2 +MOGO_CONNECTION_VERSION=1.2.1.2 +MOGO_MODULE_APPS_VERSION=1.2.1.2 +MOGO_MODULE_NAVI_VERSION=1.2.1.2 +MOGO_MODULE_SHARE_VERSION=1.2.1.2 +MOGO_MODULE_COMMON_VERSION=1.2.1.2 +MOGO_MODULE_MAIN_VERSION=1.2.1.2 +MOGO_MODULE_MAP_VERSION=1.2.1.2 +MOGO_MODULE_SERVICE_VERSION=1.2.1.2 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.2 +MOGO_MODULE_SEARCH_VERSION=1.2.1.2 +MOGO_MODULE_BACK_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.2 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.2 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.2 +MOGO_MODULE_GUIDE_VERSION=1.2.1.2 +MOGO_MODULE_MEDIA_VERSION=1.2.1.2 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.3 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.3 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.4 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.4 ## 工程外部模块 @@ -71,7 +71,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.1.14 +MOGO_MODULE_V2X_VERSION=1.1.132-SNAPSHOT # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 0ec3102bb3..60c72a3fa6 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -174,6 +174,7 @@ public class TopViewAnimHelper { } if (!viewCaches.contains(view)) { // 判断此view是否已经增加到了顶部view,如果增加过就不增加了 + view.setTranslationY(0); statusListenerMap.put(view, statusListener); Logger.d(TAG, "开始执行"); isTopViewOut = false; 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 a8d9fee6ac..95ceaa4c07 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 @@ -252,7 +252,6 @@ android:layout_height="wrap_content" android:focusable="true" android:clickable="true" - android:background="#0ff" app:layout_constraintBottom_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" /> From 682fca86d0e83df33275747a316a72df245f07ed Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 17 Jun 2020 14:52:30 +0800 Subject: [PATCH 13/20] upgrade the callchat release version to 1.0.6 --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 755621bd64..b9a8c5467b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -61,9 +61,9 @@ MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.3 # 探路 MOGO_MODULE_TANLU_VERSION=1.1.0.1-SNAPSHOT # 车聊聊 -CARCHATTING_VERSION=1.0.6-SNAPSHOT +CARCHATTING_VERSION=1.0.6 # 车聊聊接口 -CARCHATTINGPROVIDER_VERSION=1.0.6-SNAPSHOT +CARCHATTINGPROVIDER_VERSION=1.0.6 # 视频引导 MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT # 视频引导接口 From 01f2af62dcbaf59902df3f0186f99290c57260e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 17 Jun 2020 15:42:30 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BA=86V2X=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E5=BC=B9=E7=AA=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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/gradle.properties b/gradle.properties index b9a8c5467b..d0196d3840 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.14 +MOGO_MODULE_V2X_VERSION=1.1.15 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 4e339c475e1b64dc86d83d0e50ff093fdc5938eb Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 15:43:56 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9top=20view=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E9=80=BB=E8=BE=91=EF=BC=8C=E5=90=8C=E6=97=B6=E5=8F=AA?= =?UTF-8?q?=E5=B1=95=E7=A4=BA=E4=B8=80=E4=B8=AAview=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E5=8F=A0=E5=8A=A0=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 56 +++++++++---------- .../extensions/entrance/EntranceFragment.java | 20 ++++++- .../extensions/utils/TopViewAnimHelper.java | 37 +++++++++++- 3 files changed, 80 insertions(+), 33 deletions(-) diff --git a/gradle.properties b/gradle.properties index 47ab02a6d0..ce2fec7504 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,37 +24,37 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/ USERNAME=xintai PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 -RELEASE=false +RELEASE=true # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1.2 -MOGO_UTILS_VERSION=1.2.1.2 -MAP_AMAP_VERSION=1.2.1.2 -MAP_AUTONAVI_VERSION=1.2.1.2 -MOGO_MAP_VERSION=1.2.1.2 -MOGO_MAP_API_VERSION=1.2.1.2 -MOGO_SERVICE_VERSION=1.2.1.2 -MOGO_SERVICE_API_VERSION=1.2.1.2 -MOGO_CONNECTION_VERSION=1.2.1.2 -MOGO_MODULE_APPS_VERSION=1.2.1.2 -MOGO_MODULE_NAVI_VERSION=1.2.1.2 -MOGO_MODULE_SHARE_VERSION=1.2.1.2 -MOGO_MODULE_COMMON_VERSION=1.2.1.2 -MOGO_MODULE_MAIN_VERSION=1.2.1.2 -MOGO_MODULE_MAP_VERSION=1.2.1.2 -MOGO_MODULE_SERVICE_VERSION=1.2.1.2 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.2 -MOGO_MODULE_SEARCH_VERSION=1.2.1.2 -MOGO_MODULE_BACK_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.2 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.2 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.2 -MOGO_MODULE_GUIDE_VERSION=1.2.1.2 -MOGO_MODULE_MEDIA_VERSION=1.2.1.2 +MOGO_COMMONS_VERSION=1.2.1.3 +MOGO_UTILS_VERSION=1.2.1.3 +MAP_AMAP_VERSION=1.2.1.3 +MAP_AUTONAVI_VERSION=1.2.1.3 +MOGO_MAP_VERSION=1.2.1.3 +MOGO_MAP_API_VERSION=1.2.1.3 +MOGO_SERVICE_VERSION=1.2.1.3 +MOGO_SERVICE_API_VERSION=1.2.1.3 +MOGO_CONNECTION_VERSION=1.2.1.3 +MOGO_MODULE_APPS_VERSION=1.2.1.3 +MOGO_MODULE_NAVI_VERSION=1.2.1.3 +MOGO_MODULE_SHARE_VERSION=1.2.1.3 +MOGO_MODULE_COMMON_VERSION=1.2.1.3 +MOGO_MODULE_MAIN_VERSION=1.2.1.3 +MOGO_MODULE_MAP_VERSION=1.2.1.3 +MOGO_MODULE_SERVICE_VERSION=1.2.1.3 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.3 +MOGO_MODULE_SEARCH_VERSION=1.2.1.3 +MOGO_MODULE_BACK_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.3 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.3 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.3 +MOGO_MODULE_GUIDE_VERSION=1.2.1.3 +MOGO_MODULE_MEDIA_VERSION=1.2.1.3 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.4 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.4 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.5 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.5 ## 工程外部模块 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 9648fe49a8..f49414dd40 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 @@ -49,7 +49,6 @@ import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; -import com.mogo.utils.AppUtils; import com.mogo.utils.LaunchUtils; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.UiThreadHandler; @@ -184,6 +183,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private List< View > demoCache = new ArrayList<>(); + private int[] heights = new int[]{100,200,300}; + @Override protected void initViews() { mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); @@ -200,9 +201,12 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // // todo 测试动画 // View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null); // TextView tv = v.findViewById(R.id.tvIndex); -// tv.setText(demoCache.size() + ": " + v); +// Random random = new Random(); +// int height = heights[random.nextInt(3)]; +// tv.setText(demoCache.size()+" height: "+height + ": " + v); // demoCache.add(v); -// mApis.getTopViewManager().addView(v, new IMogoTopViewStatusListener() { +// LayoutParams params = new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, height); +// mApis.getTopViewManager().addView(v, params,new IMogoTopViewStatusListener() { // @Override // public void onViewAdded(View view) { // Logger.d(TAG, "onViewAdded: " + view); @@ -212,6 +216,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // public void onViewRemoved(View view) { // Logger.d(TAG, "onViewRemoved: " + view); // } +// +// @Override +// public void beforeViewAddAnim(View view) { +// Logger.d(TAG, "beforeViewAddAnim: " + view); +// } +// +// @Override +// public void beforeViewRemoveAnim(View view) { +// Logger.d(TAG, "beforeViewRemoveAnim: " + view); +// } // }); // 原始逻辑 showShareDialog(); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index 60c72a3fa6..e938b8e751 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -8,6 +8,7 @@ import android.transition.TransitionManager; import android.util.ArrayMap; import android.view.View; import android.view.ViewGroup; +import android.view.ViewGroup.LayoutParams; import android.view.animation.BounceInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; @@ -181,6 +182,31 @@ public class TopViewAnimHelper { if (topContainer.getChildCount() > 0) { // 顶部view已经有了内容,新增内容无需整体布局变化,只是新增布局加个动画 viewCaches.add(view); + + // 生硬的删掉上一个view + View lastView = topContainer.getChildAt(0); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.get(lastView).beforeViewRemoveAnim(lastView); + } + topContainer.removeView(lastView); + viewCaches.remove(lastView); + if (statusListenerMap.get(lastView) != null) { + statusListenerMap.remove(lastView).onViewRemoved(lastView); + } + // 如果高度变化,生硬的变化一下高度 + Logger.d(TAG,"container.height: "+topContainer.getHeight()); + if (topContainer.getHeight() != params.height) { + constraintSet.clone(topMotionLayout); + LayoutParams p = topContainer.getLayoutParams(); + p.height = params.height; + topContainer.setLayoutParams(p); + constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, + computeNaviMarginTop(params.height)); + constraintSet.applyTo(topMotionLayout); + Logger.d(TAG,"改变container的高度==="); + } + view.setTranslationY(-(params.height)); topContainer.addView(view, params); Logger.d(TAG, "顶部view已经有布局了,增加新增view滑入动画: " + view.getTranslationY() + " height:" + @@ -227,6 +253,7 @@ public class TopViewAnimHelper { statusListenerMap.get(view).beforeViewAddAnim(view); } topContainer.setChildAddedListener(child -> { + topContainer.setChildAddedListener(null); if (naviBg.getVisibility() == View.VISIBLE) { remainDistanceGroup.setVisibility(View.GONE); remainTimeGroup.setVisibility(View.GONE); @@ -261,7 +288,7 @@ public class TopViewAnimHelper { constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - (int) getDimen(R.dimen.dp_316)); + computeNaviMarginTop(params.height)); } constraintSet.applyTo(topMotionLayout); ivTurnIcon.getLayoutParams().height = @@ -455,7 +482,7 @@ public class TopViewAnimHelper { (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - (int) getDimen(R.dimen.dp_316)); + computeNaviMarginTop(topContainer.getHeight())); // ivTurnIcon.getLayoutParams().height = // (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); // ivTurnIcon.getLayoutParams().width = @@ -524,6 +551,12 @@ public class TopViewAnimHelper { return (int) topMotionLayout.getContext().getResources().getDimension(resId); } + private int computeNaviMarginTop(int height) { + int result = (int) (height - (getDimen(R.dimen.dp_350) - getDimen(R.dimen.dp_316))); + Logger.d(TAG, "computeNaviMarginTop: " + height + " result: " + result); + return result; + } + interface OnTopViewAnimSimpleListener { void onAnimStart(); From fbe171834211bcbeec7cb091ba3178a0a98abd1a Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 16:01:59 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9module=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/gradle.properties b/gradle.properties index e4022b3b4d..556aa181ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,37 +24,37 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/ USERNAME=xintai PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 -RELEASE=true +RELEASE=false # 模块版本 ## 工程内模块 -MOGO_COMMONS_VERSION=1.2.1.3 -MOGO_UTILS_VERSION=1.2.1.3 -MAP_AMAP_VERSION=1.2.1.3 -MAP_AUTONAVI_VERSION=1.2.1.3 -MOGO_MAP_VERSION=1.2.1.3 -MOGO_MAP_API_VERSION=1.2.1.3 -MOGO_SERVICE_VERSION=1.2.1.3 -MOGO_SERVICE_API_VERSION=1.2.1.3 -MOGO_CONNECTION_VERSION=1.2.1.3 -MOGO_MODULE_APPS_VERSION=1.2.1.3 -MOGO_MODULE_NAVI_VERSION=1.2.1.3 -MOGO_MODULE_SHARE_VERSION=1.2.1.3 -MOGO_MODULE_COMMON_VERSION=1.2.1.3 -MOGO_MODULE_MAIN_VERSION=1.2.1.3 -MOGO_MODULE_MAP_VERSION=1.2.1.3 -MOGO_MODULE_SERVICE_VERSION=1.2.1.3 -MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.3 -MOGO_MODULE_SEARCH_VERSION=1.2.1.3 -MOGO_MODULE_BACK_VERSION=1.2.1.3 -MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.3 -MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.3 -MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.3 -MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.3 -MOGO_MODULE_GUIDE_VERSION=1.2.1.3 -MOGO_MODULE_MEDIA_VERSION=1.2.1.3 +MOGO_COMMONS_VERSION=1.2.1.4 +MOGO_UTILS_VERSION=1.2.1.4 +MAP_AMAP_VERSION=1.2.1.4 +MAP_AUTONAVI_VERSION=1.2.1.4 +MOGO_MAP_VERSION=1.2.1.4 +MOGO_MAP_API_VERSION=1.2.1.4 +MOGO_SERVICE_VERSION=1.2.1.4 +MOGO_SERVICE_API_VERSION=1.2.1.4 +MOGO_CONNECTION_VERSION=1.2.1.4 +MOGO_MODULE_APPS_VERSION=1.2.1.4 +MOGO_MODULE_NAVI_VERSION=1.2.1.4 +MOGO_MODULE_SHARE_VERSION=1.2.1.4 +MOGO_MODULE_COMMON_VERSION=1.2.1.4 +MOGO_MODULE_MAIN_VERSION=1.2.1.4 +MOGO_MODULE_MAP_VERSION=1.2.1.4 +MOGO_MODULE_SERVICE_VERSION=1.2.1.4 +MOGO_MODULE_EXTENSIONS_VERSION=1.2.1.4 +MOGO_MODULE_SEARCH_VERSION=1.2.1.4 +MOGO_MODULE_BACK_VERSION=1.2.1.4 +MOGO_MODULE_GPS_SIMULATOR_VERSION=1.2.1.4 +MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION=1.2.1.4 +MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION=1.2.1.4 +MOGO_MODULE_AUTHORIZE_VERSION=1.2.1.4 +MOGO_MODULE_GUIDE_VERSION=1.2.1.4 +MOGO_MODULE_MEDIA_VERSION=1.2.1.4 -MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.5 -MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.5 +MOGO_MODULE_MAIN_LAUNCHER_VERSION = 1.0.0.6 +MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.0.0.6 ## 工程外部模块 From 62781bacdff1e6c7b759b7d5e577c73dced45ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 17 Jun 2020 16:21:15 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E4=BA=86V2X=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E5=BC=B9=E7=AA=97=E9=97=AE=E9=A2=98?= 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 556aa181ea..cda6b7f439 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.132-SNAPSHOT +MOGO_MODULE_V2X_VERSION=1.1.16 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 180a00c58b398b9c0bad3a654197489334af2823 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 17 Jun 2020 16:43:17 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E6=80=9D=E5=BF=85=E9=A9=B0=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E4=B8=8A=E6=8A=A5=E7=9A=84=E6=97=B6=E5=80=99=E4=BC=9A?= =?UTF-8?q?=E8=87=AA=E5=B7=B1=E6=92=AD=E6=94=BE=E2=80=9C=E6=84=9F=E8=B0=A2?= =?UTF-8?q?=E5=88=86=E4=BA=AB=EF=BC=8C=E6=AD=A3=E5=9C=A8=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E2=80=9D=EF=BC=8C=E6=89=80=E4=BB=A5=E5=AF=B9=E4=BA=8E=E6=80=9D?= =?UTF-8?q?=E5=BF=85=E9=A9=B0=EF=BC=8CLauncher=E8=BF=99=E8=BE=B9=E5=B0=B1?= =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E6=AD=A4=E6=92=AD=E6=8A=A5=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mogo/module/share/manager/UploadHelper.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt index 545ab05cce..61fcc30ad9 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt @@ -2,6 +2,7 @@ package com.mogo.module.share.manager import android.content.Context import android.content.Intent +import com.mogo.commons.debug.DebugConfig import com.mogo.commons.voice.AIAssist import com.mogo.module.share.ShareControl import com.mogo.module.share.dialog.LaucherShareDialog @@ -18,7 +19,9 @@ object UploadHelper { TipToast.tip("正在上报,请稍后重试") }else { ServiceApisManager.serviceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true) - AIAssist.getInstance(context).speakTTSVoice("感谢分享,正在上传") + if(DebugConfig.getAIType() == DebugConfig.AI_TYPE_TXZ) { + AIAssist.getInstance(context).speakTTSVoice("感谢分享,正在上传") + } Logger.d("UploadHelper", "upload ----> $type") val intent = Intent() intent.action = "com.zhidao.share.roadcondition.action" From c9bcf60c3336502d6029d415b1b459f00d1142eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 17 Jun 2020 17:55:22 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E5=8D=87=E7=BA=A7V2X=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=86=20=E3=80=90=E6=A1=8C=E9=9D=A2=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E3=80=91=E6=A1=8C=E9=9D=A2=E5=8D=A1=E7=89=87=E6=B2=A1=E6=94=B6?= =?UTF-8?q?=E5=88=B0=E6=95=85=E9=9A=9C=E6=B1=82=E5=8A=A9=20http://jira.zhi?= =?UTF-8?q?daohulian.com/browse/D80XCD-1425?= 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 cda6b7f439..d062427cef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.16 +MOGO_MODULE_V2X_VERSION=1.1.17 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 From 8fcc81e0089f2e3aeb49ba8985c7ea3d0a83a50f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 17 Jun 2020 18:14:08 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E5=8D=87=E7=BA=A7V2X=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=86=20=E5=88=A0=E9=99=A4=E4=BA=86=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=9A=84=E9=A2=9C=E8=89=B2?= 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 d062427cef..2edb4df825 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,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.1.17 +MOGO_MODULE_V2X_VERSION=1.1.18 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位