This commit is contained in:
wangcongtao
2020-03-10 10:18:30 +08:00
parent 237c351533
commit 53902601da
25 changed files with 823 additions and 466 deletions

2
.idea/misc.xml generated
View File

@@ -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>

View File

@@ -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");

View File

@@ -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 );
}
}

View File

@@ -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() {
}

View File

@@ -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

View File

@@ -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();
}
}

View File

@@ -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();

View File

@@ -15,7 +15,7 @@ public interface MainView extends IView {
*
* @param cardType
*/
void switch2Card( String cardType );
void switch2Card( String cardType, boolean lockCar );
/**
* 加载卡片

View File

@@ -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 ) {

View File

@@ -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 ) {

View File

@@ -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];
}
};
}

View File

@@ -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

View File

@@ -29,6 +29,11 @@ android {
}
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
dependencies {

View File

@@ -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 );
}
}

View File

@@ -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 ) ) {

View File

@@ -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;
}

View File

@@ -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;
/**
* 距离(米)

View File

@@ -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();
}

View File

@@ -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";
/**
* 接口集合
*/

View File

@@ -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();
}

View File

@@ -17,6 +17,14 @@ public interface IMogoCardManager extends IProvider {
*/
void switch2( String cardType );
/**
* 切换卡片
*
* @param cardType 卡片类型
* @param lockCar 是否锁车[将视图拉回车位]
*/
void switch2( String cardType, boolean lockCar );
/**
* 注册卡片切换监听
*/

View File

@@ -1,7 +1,5 @@
package com.mogo.service.datamanager;
import java.util.List;
/**
* @author congtaowang
* @since 2020-02-11

View File

@@ -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 ) {

View File

@@ -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 ) {
}
}