opt
This commit is contained in:
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -46,12 +46,13 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
|
||||
//运营位卡片,需要默认显示,放在第一个加载
|
||||
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
|
||||
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
|
||||
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
|
||||
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
|
||||
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
|
||||
MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
|
||||
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));
|
||||
MogoModulePaths.addModule(new MogoModule( BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME));
|
||||
Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
|
||||
@@ -107,7 +107,7 @@ public class SocketManager implements IMogoSocketManager, OnSocketReceiveCallbac
|
||||
object = GsonUtil.objectFromJson( payload.getPayload().toStringUtf8(), listener.target() );
|
||||
}
|
||||
if ( listener != null ) {
|
||||
Logger.d( TAG, "received msgId = %s", msgId );
|
||||
Logger.d( TAG, "received msgId = %s, content = %s", msgId, payload.getPayload().toStringUtf8() );
|
||||
listener.onMsgReceived( object );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import java.util.concurrent.Executors;
|
||||
|
||||
public class ThreadPoolService {
|
||||
|
||||
private static final ExecutorService SERVICE = Executors.newScheduledThreadPool( 3 );
|
||||
private static final ExecutorService SERVICE = Executors.newFixedThreadPool( 3 );
|
||||
|
||||
private ThreadPoolService() {
|
||||
}
|
||||
|
||||
@@ -294,7 +294,13 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer {
|
||||
|
||||
@Override
|
||||
public String getOwner() {
|
||||
return this.mOwner == null ? mMogoMarkerOptions.getOwner() : mOwner;
|
||||
if ( mOwner != null ) {
|
||||
return mOwner;
|
||||
}
|
||||
if ( mMogoMarkerOptions != null ) {
|
||||
return mMogoMarkerOptions.getOwner();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,6 +40,7 @@ import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import org.json.JSONException;
|
||||
@@ -65,6 +66,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
private MogoModulesHandler mMogoModuleHandler;
|
||||
private IMogoCardManager mMogoCardManager;
|
||||
private IMogoFragmentManager mMogoFragmentManager;
|
||||
private IMogoStatusManager mMogoStatusManager;
|
||||
|
||||
private OrientedViewPager mCardsContainer;
|
||||
private VerticalStackTransformer mTransformer;
|
||||
@@ -100,73 +102,66 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
mCardsContainer = findViewById( R.id.module_main_id_cards_container );
|
||||
mCardsContainer.setOrientation( OrientedViewPager.Orientation.VERTICAL );
|
||||
mTransformer = new VerticalStackTransformer( this );
|
||||
mCardsContainer.setOnPageChangeListener(
|
||||
mOnPageChangeListener = new OnPageChangeListenerAdapter() {
|
||||
private boolean mIsLast = true;
|
||||
private boolean mCardFlipStatus = false;
|
||||
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 );
|
||||
mPresenter.postTrackLastCardShowEvent( provider );
|
||||
mCurrentPosition = position;
|
||||
provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mMogoModuleHandler.setModuleEnable( provider.getModuleName() );
|
||||
mMogoCardManager.invoke( position,
|
||||
mMogoModuleHandler.getCurrentModuleName() );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Logger.i( TAG,
|
||||
"onPageSelected cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
@Override
|
||||
public void onPageSelected( int position ) {
|
||||
final long start = System.currentTimeMillis();
|
||||
try {
|
||||
IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mPresenter.postTrackLastCardShowEvent( provider );
|
||||
mCurrentPosition = position;
|
||||
provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mMogoModuleHandler.setModuleEnable( provider.getModuleName() );
|
||||
mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
|
||||
} 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();
|
||||
}
|
||||
|
||||
@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();
|
||||
|
||||
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" );
|
||||
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 );
|
||||
}
|
||||
} );
|
||||
@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 );
|
||||
@@ -261,6 +256,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
} );
|
||||
|
||||
mMogoIntentManager = mServiceApis.getIntentManagerApi();
|
||||
mMogoStatusManager = mServiceApis.getStatusManagerApi();
|
||||
registerVoiceCmd();
|
||||
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
}
|
||||
@@ -324,7 +320,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
|
||||
@Override
|
||||
public boolean onMarkerClicked( IMogoMarker marker ) {
|
||||
switch2Card( marker.getOwner() );
|
||||
switch2Card( marker.getOwner(), false );
|
||||
if ( mMogoModuleHandler != null ) {
|
||||
mMogoModuleHandler.onMarkerClicked( marker );
|
||||
}
|
||||
@@ -332,17 +328,23 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switch2Card( String cardType ) {
|
||||
if ( mCardModulesAdapter != null ) {
|
||||
public void switch2Card( String cardType, boolean lockCar ) {
|
||||
if ( mCardModulesAdapter == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
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 );
|
||||
}
|
||||
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 );
|
||||
}
|
||||
|
||||
if ( lockCar ) {
|
||||
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
|
||||
mMogoMapUIController.recoverLockMode();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -67,11 +67,11 @@ public class MainPresenter extends Presenter< MainView > {
|
||||
@Override
|
||||
public void onCreate( @NonNull LifecycleOwner owner ) {
|
||||
super.onCreate( owner );
|
||||
CardSwitchLiveData.getInstance().observeForever( to -> {
|
||||
if ( TextUtils.isEmpty( to ) ) {
|
||||
CardSwitchLiveData.getInstance().observeForever( cardInfo -> {
|
||||
if ( TextUtils.isEmpty( cardInfo.mCardName ) ) {
|
||||
return;
|
||||
}
|
||||
mView.switch2Card( to );
|
||||
mView.switch2Card( cardInfo.mCardName, true );
|
||||
} );
|
||||
mAnalytics = ( IMogoAnalytics ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_ANALYTICS ).navigation( getContext() );
|
||||
mCardStartShowTime = System.currentTimeMillis();
|
||||
|
||||
@@ -15,7 +15,7 @@ public interface MainView extends IView {
|
||||
*
|
||||
* @param cardType
|
||||
*/
|
||||
void switch2Card( String cardType );
|
||||
void switch2Card( String cardType, boolean lockCar );
|
||||
|
||||
/**
|
||||
* 加载卡片
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.module.main;
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.module.main.livedata.CardInfo;
|
||||
import com.mogo.module.main.livedata.CardSwitchLiveData;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.cardmanager.IMogoCardChangedListener;
|
||||
@@ -25,7 +26,7 @@ public class MogoCardManager implements IMogoCardManager {
|
||||
|
||||
@Override
|
||||
public void switch2( String cardType ) {
|
||||
CardSwitchLiveData.getInstance().postValue( cardType );
|
||||
CardSwitchLiveData.getInstance().postValue( new CardInfo( cardType, false ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,6 +52,11 @@ public class MogoCardManager implements IMogoCardManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switch2( String cardType, boolean lockCar ) {
|
||||
CardSwitchLiveData.getInstance().postValue( new CardInfo( cardType, lockCar ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
|
||||
|
||||
@@ -148,7 +148,8 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
providers.add( provider );
|
||||
}
|
||||
}
|
||||
return sort( providers );
|
||||
return providers;
|
||||
// return sort( providers ); v2.0.2暂不支持变顺序
|
||||
}
|
||||
|
||||
private List< IMogoModuleProvider > sort( List< IMogoModuleProvider > modules ) {
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.mogo.module.main.livedata;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-09
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
public class CardInfo implements Parcelable {
|
||||
|
||||
public String mCardName;
|
||||
public boolean mLockCar;
|
||||
|
||||
public CardInfo( String cardName, boolean lockCar ) {
|
||||
this.mCardName = cardName;
|
||||
this.mLockCar = lockCar;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel( Parcel dest, int flags ) {
|
||||
dest.writeString( this.mCardName );
|
||||
dest.writeByte( this.mLockCar ? ( byte ) 1 : ( byte ) 0 );
|
||||
}
|
||||
|
||||
protected CardInfo( Parcel in ) {
|
||||
this.mCardName = in.readString();
|
||||
this.mLockCar = in.readByte() != 0;
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator< CardInfo > CREATOR = new Parcelable.Creator< CardInfo >() {
|
||||
@Override
|
||||
public CardInfo createFromParcel( Parcel source ) {
|
||||
return new CardInfo( source );
|
||||
}
|
||||
|
||||
@Override
|
||||
public CardInfo[] newArray( int size ) {
|
||||
return new CardInfo[size];
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,7 @@ import androidx.lifecycle.MutableLiveData;
|
||||
* <p>
|
||||
* 切换卡片
|
||||
*/
|
||||
public class CardSwitchLiveData extends MutableLiveData< String > {
|
||||
public class CardSwitchLiveData extends MutableLiveData< CardInfo > {
|
||||
|
||||
private CardSwitchLiveData() {
|
||||
// private constructor
|
||||
|
||||
@@ -29,6 +29,11 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility 1.8
|
||||
targetCompatibility 1.8
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.module.common.entity.MarkerResponse;
|
||||
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.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.cardmanager.IMogoCardManager;
|
||||
@@ -28,6 +29,7 @@ import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
public class MarkerServiceHandler {
|
||||
private static final String TAG = "MarkerServiceHandler";
|
||||
|
||||
private static IMogoServiceApis mApis;
|
||||
|
||||
private static IMogoMapService mMapService;
|
||||
private static IMogoMarkerManager mMarkerManager;
|
||||
@@ -44,22 +46,22 @@ public class MarkerServiceHandler {
|
||||
|
||||
private static MapMarkerManager mMapMarkerManager;
|
||||
|
||||
public static void init( final Context context ) {
|
||||
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context );
|
||||
mMapService = mApis.getMapServiceApi();
|
||||
mImageloader = mApis.getImageLoaderApi();
|
||||
mMogoStatusManager = mApis.getStatusManagerApi();
|
||||
mMogoSocketManager = mApis.getSocketManagerApi( context );
|
||||
mMogoCardManager = mApis.getCardManagerApi();
|
||||
mMogoAnalytics = mApis.getAnalyticsApi();
|
||||
|
||||
public static void init(final Context context) {
|
||||
mMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(context);
|
||||
mImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation(context);
|
||||
mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(context);
|
||||
mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation();
|
||||
mMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation();
|
||||
mMogoAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation();
|
||||
|
||||
mMarkerManager = mMapService.getMarkerManager(context);
|
||||
mNavi = mMapService.getNavi(context);
|
||||
mMarkerManager = mMapService.getMarkerManager( context );
|
||||
mNavi = mMapService.getNavi( context );
|
||||
mMapUIController = mMapService.getMapUIController();
|
||||
mLocationClient = mMapService.getSingletonLocationClient(context);
|
||||
mLocationClient = mMapService.getSingletonLocationClient( context );
|
||||
|
||||
mMapMarkerManager = MapMarkerManager.getInstance(context);
|
||||
mMapMarkerManager.init(context);
|
||||
mMapMarkerManager = MapMarkerManager.getInstance();
|
||||
mMapMarkerManager.init( context );
|
||||
}
|
||||
|
||||
public static IMogoMapService getMapService() {
|
||||
@@ -112,30 +114,33 @@ public class MarkerServiceHandler {
|
||||
/**
|
||||
* 绘制Marker
|
||||
* 建议使用
|
||||
*
|
||||
* @see MapMarkerManager#drawMapMarker(MarkerResponse)
|
||||
*/
|
||||
@Deprecated
|
||||
public static void drawMapMarker(MarkerResponse response) {
|
||||
getMapMarkerManager().drawMapMarker(response);
|
||||
public static void drawMapMarker( MarkerResponse response ) {
|
||||
getMapMarkerManager().drawMapMarker( response );
|
||||
}
|
||||
|
||||
/**
|
||||
* 绘制Marker
|
||||
* 建议使用
|
||||
*
|
||||
* @see MapMarkerManager#drawMapMarker(MarkerShowEntity)
|
||||
*/
|
||||
@Deprecated
|
||||
public static void drawMapMarker(MarkerShowEntity markerShowEntity) {
|
||||
getMapMarkerManager().drawMapMarker(markerShowEntity);
|
||||
public static void drawMapMarker( MarkerShowEntity markerShowEntity ) {
|
||||
getMapMarkerManager().drawMapMarker( markerShowEntity );
|
||||
}
|
||||
|
||||
/**
|
||||
* 对指定类型高亮处理
|
||||
* 建议使用
|
||||
* @see MapMarkerManager#highlightedMarker(String,boolean)
|
||||
*
|
||||
* @see MapMarkerManager#highlightedMarker(String, boolean)
|
||||
*/
|
||||
@Deprecated
|
||||
public static void highlightedMarker(String typeTag) {
|
||||
getMapMarkerManager().highlightedMarker(typeTag,false);
|
||||
public static void highlightedMarker( String typeTag ) {
|
||||
getMapMarkerManager().highlightedMarker( typeTag, false );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -143,11 +143,7 @@ public class MogoServices implements IMogoMapListener,
|
||||
mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL;
|
||||
if ( mRefreshRemainingTime == 0 ) {
|
||||
Logger.d( TAG, "move to center and refresh data." );
|
||||
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
|
||||
mUiController.recoverLockMode();
|
||||
mStatusManager.setUserInteractionStatus( TAG, true, false );
|
||||
mUiController.changeZoom( 16.0f );
|
||||
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
|
||||
invokeAutoRefresh();
|
||||
} else {
|
||||
mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL );
|
||||
}
|
||||
@@ -158,11 +154,21 @@ public class MogoServices implements IMogoMapListener,
|
||||
}
|
||||
if ( mLoopRequest ) {
|
||||
Logger.d( TAG, "补偿刷新触发" );
|
||||
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
|
||||
invokeAutoRefresh();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动刷新:锁车、缩放比例:16、半径 2KM
|
||||
*/
|
||||
private void invokeAutoRefresh() {
|
||||
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
|
||||
mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
|
||||
mUiController.recoverLockMode();
|
||||
notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
|
||||
}
|
||||
};
|
||||
private Context mContext;
|
||||
|
||||
@@ -246,6 +252,7 @@ public class MogoServices implements IMogoMapListener,
|
||||
registerCenter.registerMogoLocationListener( ServiceConst.TYPE, this );
|
||||
registerCenter.registerMogoNaviListener( ServiceConst.TYPE, this );
|
||||
registerCenter.registerMogoMapListener( ServiceConst.TYPE, this );
|
||||
registerCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this );
|
||||
|
||||
mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context );
|
||||
mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this );
|
||||
@@ -500,7 +507,7 @@ public class MogoServices implements IMogoMapListener,
|
||||
mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
|
||||
mUiController.recoverLockMode();
|
||||
mStatusManager.setUserInteractionStatus( TAG, true, false );
|
||||
mUiController.changeZoom( 16.0f );
|
||||
mUiController.changeZoom( ServiceConst.DEFAULT_ZOOM_LEVEL );
|
||||
mLastAutoRefreshLocation = point;
|
||||
notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback );
|
||||
}
|
||||
@@ -548,8 +555,8 @@ public class MogoServices implements IMogoMapListener,
|
||||
case USER_INTERACTED:
|
||||
if ( isTrue && !mRefreshRemainingTimeStatus ) {
|
||||
mRefreshRemainingTimeStatus = true;
|
||||
mRefreshRemainingTime += mAutoRefreshStrategy.getInterruptInterval();
|
||||
Logger.i( TAG, "用户状态改变,自动刷新时间延时,%s ms后自动刷新", mRefreshRemainingTime );
|
||||
mRefreshRemainingTime = ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT;
|
||||
Logger.i( TAG, "用户状态改变,下次刷新时间:%ss后", mRefreshRemainingTime );
|
||||
}
|
||||
break;
|
||||
case SEARCH_UI:
|
||||
@@ -636,7 +643,7 @@ public class MogoServices implements IMogoMapListener,
|
||||
return;
|
||||
}
|
||||
int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 );
|
||||
mUiController.setLockZoom( status == 1 ? 15 : 16 );
|
||||
mUiController.setLockZoom( status == 1 ? 15 : ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
|
||||
mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 );
|
||||
mUiController.showMyLocation( true );
|
||||
} else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) {
|
||||
|
||||
@@ -62,4 +62,30 @@ public class ServiceConst {
|
||||
*/
|
||||
public static final String CARD_TYPE_NOVELTY = "CARD_TYPE_NOVELTY";
|
||||
|
||||
/**
|
||||
* 运营位
|
||||
*/
|
||||
public static final String CARD_TYPE_BUSINESS_OPERATION = "CARD_TYPE_BUSINESS_OPERATION";
|
||||
|
||||
/**
|
||||
* 默认地图缩放比例
|
||||
*/
|
||||
public static final float DEFAULT_ZOOM_LEVEL = 16.0f;
|
||||
|
||||
/**
|
||||
* 默认地图锁车缩放比例
|
||||
*/
|
||||
public static final int DEFAULT_LOCK_CAR_ZOOM_LEVEL = 16;
|
||||
|
||||
/**
|
||||
* 自动酸辛默认半径
|
||||
*/
|
||||
public static final int DEFAULT_AUTO_REFRESH_DATA_RADIUS = 2_000;
|
||||
|
||||
/**
|
||||
* 30 s
|
||||
*/
|
||||
public static final int DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT = 30 * 1_000;
|
||||
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,9 +21,9 @@ public class AutoRefreshStrategy {
|
||||
private long interval = 3 * ONE_MINUTE;
|
||||
|
||||
/**
|
||||
* 用户打断后的延时(s)
|
||||
* 用户打断后的延时(s)【2.0.2后不再延时】
|
||||
*/
|
||||
private long interruptInterval = 1 * ONE_MINUTE;
|
||||
private long interruptInterval = 0 * ONE_MINUTE;
|
||||
|
||||
/**
|
||||
* 距离(米)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.service;
|
||||
import android.content.Context;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
import com.mogo.service.analytics.IMogoAnalytics;
|
||||
import com.mogo.service.cardmanager.IMogoCardManager;
|
||||
import com.mogo.service.connection.IMogoSocketManager;
|
||||
@@ -103,7 +104,7 @@ public interface IMogoServiceApis extends IProvider {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
IMogoSettingManager getSettingManager();
|
||||
IMogoSettingManager getSettingManagerApi();
|
||||
|
||||
/**
|
||||
* 网络接口api
|
||||
@@ -129,5 +130,12 @@ public interface IMogoServiceApis extends IProvider {
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
IMogoWindowManager getWindowManager();
|
||||
IMogoWindowManager getWindowManagerApi();
|
||||
|
||||
/**
|
||||
* 辅助驾驶控制接口
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
IMogoADASController getAdasControllerApi();
|
||||
}
|
||||
|
||||
@@ -132,6 +132,12 @@ public class MogoServicePaths {
|
||||
@Deprecated
|
||||
public static final String PATH_DATA_MANAGER = "/datamanager/api";
|
||||
|
||||
/**
|
||||
* adas 控制
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String PATH_ADAS_CONTROLLER = "/adascontroller/api";
|
||||
|
||||
/**
|
||||
* 接口集合
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mogo.service.adas;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-10
|
||||
* <p>
|
||||
* v2x 页面控制
|
||||
*/
|
||||
public interface IMogoADASController extends IProvider {
|
||||
|
||||
/**
|
||||
* 打开adas
|
||||
*/
|
||||
void openADAS();
|
||||
|
||||
/**
|
||||
* 关闭adas
|
||||
*/
|
||||
void closeADAS();
|
||||
|
||||
}
|
||||
@@ -17,6 +17,14 @@ public interface IMogoCardManager extends IProvider {
|
||||
*/
|
||||
void switch2( String cardType );
|
||||
|
||||
/**
|
||||
* 切换卡片
|
||||
*
|
||||
* @param cardType 卡片类型
|
||||
* @param lockCar 是否锁车[将视图拉回车位]
|
||||
*/
|
||||
void switch2( String cardType, boolean lockCar );
|
||||
|
||||
/**
|
||||
* 注册卡片切换监听
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.mogo.service.datamanager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-02-11
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.mogo.connection.socket.SocketManager;
|
||||
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;
|
||||
@@ -114,15 +115,20 @@ public class MogoServiceApis implements IMogoServiceApis {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSettingManager getSettingManager() {
|
||||
public IMogoSettingManager getSettingManagerApi() {
|
||||
return getApiInstance( IMogoSettingManager.class, MogoServicePaths.PATH_SETTING_MANAGER );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoWindowManager getWindowManager() {
|
||||
public IMogoWindowManager getWindowManagerApi() {
|
||||
return getApiInstance( IMogoWindowManager.class, MogoServicePaths.PATH_WINDOW_MANAGER );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoADASController getAdasControllerApi() {
|
||||
return getApiInstance( IMogoADASController.class, MogoServicePaths.PATH_ADAS_CONTROLLER );
|
||||
}
|
||||
|
||||
private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {
|
||||
T inst = SingletonsHolder.get( clazz );
|
||||
if ( inst == null ) {
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.mogo.service.impl.adas;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-10
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
@Route( path = MogoServicePaths.PATH_ADAS_CONTROLLER )
|
||||
public class MogoADASController implements IMogoADASController {
|
||||
|
||||
private static final String TAG = "MogoADASController";
|
||||
|
||||
public static final String ACTION = "com.zhidao.speech.awake.notify";
|
||||
public static final String PARAM_COMMAND = "command";
|
||||
public static final String VAL_COMMAND = "system.application.operation";
|
||||
public static final String PARAM_DATA = "data";
|
||||
public static final String PARAM_OBJECT = "object";
|
||||
public static final String VAL_OBJECT = "辅助驾驶";
|
||||
public static final String PARAM_OPERATION = "operation";
|
||||
public static final String VAL_OPEN = "打开";
|
||||
public static final String VAL_CLOSE = "关闭";
|
||||
|
||||
@Override
|
||||
public void openADAS() {
|
||||
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 e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeADAS() {
|
||||
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 e ) {
|
||||
Logger.e( TAG, e, "error." );
|
||||
}
|
||||
}
|
||||
|
||||
private void sendBroadcast( Intent intent ) {
|
||||
Application app = AbsMogoApplication.getApp();
|
||||
if ( app == null ) {
|
||||
Logger.e( TAG, "un handle Application instance." );
|
||||
return;
|
||||
}
|
||||
app.sendBroadcast( intent );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user