diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 31ebc2b2a2..a0bde360cb 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -72,6 +72,9 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule( new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE ) ); } else { } + // TODO + MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG ) ); + MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) ); if ( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD ) { MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); 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 aec4e89506..460b7eeac2 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 @@ -16,6 +16,7 @@ import android.view.MotionEvent; import androidx.annotation.NonNull; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.ParamsProvider; import com.mogo.commons.network.SubscribeImpl; @@ -34,6 +35,7 @@ import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoCongestionInfo; import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.module.carchattingprovider.ICarsChattingProvider; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; @@ -46,6 +48,8 @@ import com.mogo.module.service.launchercard.LauncherCardRefresher; import com.mogo.module.service.marker.MapMarkerManager; import com.mogo.module.service.network.RefreshCallback; import com.mogo.module.service.network.RefreshModel; +import com.mogo.module.service.network.bean.TtsConfigEntity; +import com.mogo.module.service.ttsConfig.TtsConfigModleData; import com.mogo.module.service.network.bean.HomeCompanyDistanceForPushData; import com.mogo.module.service.network.bean.HomeCompanyDistanceForPushResponse; import com.mogo.module.service.onlinecar.panel.NavigationTargetInfo; @@ -54,10 +58,7 @@ import com.mogo.module.service.refresh.AutoRefreshStrategy; import com.mogo.module.service.refresh.CustomRefreshStrategy; import com.mogo.module.service.refresh.RefreshObject; import com.mogo.module.service.strategy.CarIconDisplayStrategy; -import com.mogo.service.IMogoServiceApis; import com.mogo.service.adas.IMogoADASController; -import com.mogo.service.cardmanager.IMogoCardManager; -import com.mogo.service.connection.IMogoOnMessageListener; import com.mogo.service.fragmentmanager.FragmentStackTransactionListener; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.intent.IMogoIntentListener; @@ -76,6 +77,7 @@ import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.RequestOptions; import com.mogo.utils.network.utils.GsonUtil; +import com.zhidao.carchattingprovider.CallChattingProviderConstant; import com.zhidao.smartv2x.common.utils.LoggerUtils; import org.json.JSONObject; @@ -108,6 +110,7 @@ public class MogoServices implements IMogoMapListener, IDestroyable { private boolean mInternalUnWakeupRegisterStatus = false; + private ICarsChattingProvider carsChattingProvider; private MogoServices() { // private constructor @@ -154,6 +157,7 @@ public class MogoServices implements IMogoMapListener, private CustomRefreshStrategy mCustomRefreshStrategy = new CustomRefreshStrategy(); private float mLastZoomLevel = 0; private RefreshModel mRefreshModel; + private TtsConfigModleData mTtsModle; private long mRefreshRemainingTime = Long.MAX_VALUE; // 上次手动操作的中心点坐标 private MogoLatLng mLastCustomRefreshCenterLocation; @@ -166,7 +170,6 @@ public class MogoServices implements IMogoMapListener, private IMogoLauncher mLauncher; private IMogoFragmentManager mFragmentManager; private IMogoNavi mNavi; - private IMogoRegisterCenter mRegisterCenter; /** @@ -181,35 +184,35 @@ public class MogoServices implements IMogoMapListener, */ private boolean mLoopRequest = false; - private Handler mHandler = new Handler( Looper.getMainLooper() ) { + private Handler mHandler = new Handler(Looper.getMainLooper()) { @Override - public void handleMessage( @NonNull Message msg ) { - super.handleMessage( msg ); - switch ( msg.what ) { + public void handleMessage(@NonNull Message msg) { + super.handleMessage(msg); + switch (msg.what) { case ServiceConst.MSG_TYPE_REFRESH_DECREASE: - if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { + if (mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow()) { invokeAutoRefreshStrategy(); return; } mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL; - if ( mRefreshRemainingTime <= 0 ) { - Logger.d( TAG, "move to center and refresh data." ); + if (mRefreshRemainingTime <= 0) { + Logger.d(TAG, "move to center and refresh data."); invokeAutoRefresh(); } else { - mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL ); + mHandler.sendEmptyMessageDelayed(msg.what, ServiceConst.DECREASE_INTERVAL); } break; case ServiceConst.MSG_LOOP_REQUEST: - if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { + if (mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow()) { return; } - if ( mLoopRequest ) { - Logger.d( TAG, "补偿刷新触发" ); + if (mLoopRequest) { + Logger.d(TAG, "补偿刷新触发"); invokeAutoRefresh(); } break; case ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH: - handleCalculationNotHomeCompanyDistanceForPush( msg.arg1 ); + handleCalculationNotHomeCompanyDistanceForPush(msg.arg1); break; } } @@ -220,17 +223,17 @@ public class MogoServices implements IMogoMapListener, * 自动刷新:锁车、缩放比例:16、半径 2KM */ private void invokeAutoRefresh() { - if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) { - mStatusManager.setUserInteractionStatus( TAG, true, false ); + if (mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow()) { + mStatusManager.setUserInteractionStatus(TAG, true, false); mUiController.recoverLockMode(); return; } - mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); - mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); + mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); + mUiController.changeZoom(ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL); // mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL ); - mStatusManager.setUserInteractionStatus( TAG, true, false ); + mStatusManager.setUserInteractionStatus(TAG, true, false); mUiController.recoverLockMode(); - notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback ); + notifyRefreshData(mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback); } private Context mContext; @@ -266,19 +269,19 @@ public class MogoServices implements IMogoMapListener, /** * 自动刷新回调 */ - private RefreshCallback mAutoRefreshCallback = new RefreshCallback< MarkerResponse >() { + private RefreshCallback mAutoRefreshCallback = new RefreshCallback() { @Override - public void onSuccess( MarkerResponse o ) { - MapMarkerManager.getInstance().onSyncMarkerResponse( o ); + public void onSuccess(MarkerResponse o) { + MapMarkerManager.getInstance().onSyncMarkerResponse(o); mLoopRequest = false; invokeAutoRefreshStrategy(); } @Override public void onFail() { - if ( mLoopRequest ) { - Logger.d( TAG, "onFail and loop" ); - mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_LOOP_REQUEST, ServiceConst.LOOP_INTERVAL ); + if (mLoopRequest) { + Logger.d(TAG, "onFail and loop"); + mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_LOOP_REQUEST, ServiceConst.LOOP_INTERVAL); } else { invokeAutoRefreshStrategy(); } @@ -286,7 +289,7 @@ public class MogoServices implements IMogoMapListener, }; private void invokeAutoRefreshStrategy() { - restartAutoRefreshAtTime( mAutoRefreshStrategy.getInterval() ); + restartAutoRefreshAtTime(mAutoRefreshStrategy.getInterval()); } private Handler mThreadHandler; @@ -302,34 +305,39 @@ public class MogoServices implements IMogoMapListener, private IMogoStatusChangedListener statusChangedListener = new StatusChangedAdapter() { @Override - public void onUserInteracted( boolean userInteracted ) { - if ( userInteracted ) { - restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT ); + public void onUserInteracted(boolean userInteracted) { + if (userInteracted) { + restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT); } } @Override - public void onSearchUIShow( boolean visible ) { - if ( visible ) { + public void onSearchUIShow(boolean visible) { + if (visible) { // 搜索时,不在自动刷新打点策略 stopAutoRefreshStrategy(); } else { // 搜索后,打开打点策略 - if ( mAutoRefreshCallback != null ) { - mAutoRefreshCallback.onSuccess( null ); + if (mAutoRefreshCallback != null) { + mAutoRefreshCallback.onSuccess(null); } } } @Override - public void onMainPageResumeStatusChanged( boolean resume ) { - if ( resume ) { + public void onMainPageResumeStatusChanged(boolean resume) { + if (resume) { registerInternalUnWakeupWords(); - if ( !mIsMainPageFirstResume ) { - restartAutoRefreshAtTime( 2_000L ); + if (!mIsMainPageFirstResume) { + restartAutoRefreshAtTime(2_000L); } mIsMainPageFirstResume = false; - LauncherCardRefresher.getInstance( mContext ).stop(); + LauncherCardRefresher.getInstance(mContext).stop(); + + playAppTts(); + +// + } else { unregisterInternalUnWakeupWords(); stopAutoRefreshStrategy(); @@ -338,44 +346,67 @@ public class MogoServices implements IMogoMapListener, } @Override - public void onSeekHelpingStatusChanged( boolean isSeekingHelping ) { - CarIconDisplayStrategy.getInstance().changeCarIconStatus( isSeekingHelping ); - notifySeekHelpingStatusChanged( isSeekingHelping ); + public void onSeekHelpingStatusChanged(boolean isSeekingHelping) { + CarIconDisplayStrategy.getInstance().changeCarIconStatus(isSeekingHelping); + notifySeekHelpingStatusChanged(isSeekingHelping); } @Override - public void onAccStatusChanged( boolean accOn ) { - if ( accOn ) { - if ( mIsFirstAccOn ) { + public void onAccStatusChanged(boolean accOn) { + if (accOn) { + if (mIsFirstAccOn) { mIsFirstAccOn = false; return; } - initLocationServiceProcess( mContext ); + initLocationServiceProcess(mContext); mADASController.showADAS(); - MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).start(); - MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers(); - UiThreadHandler.postDelayed( () -> { + MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(mContext).start(); + MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(mContext).removeMarkers(); + UiThreadHandler.postDelayed(() -> { refreshStrategy(); - }, 3_000L ); + }, 3_000L); } else { - MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).stop(); - MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers(); + MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(mContext).stop(); + MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(mContext).removeMarkers(); } } @Override - public void onTopViewStatusChanged( boolean visible ) { - if ( visible ) { + public void onTopViewStatusChanged(boolean visible) { + if (visible) { return; } try { MapMarkerManager.getInstance().onCloseCurrentSelectedMarker(); - } catch ( Exception e ) { - Logger.e( TAG, e, "onTopViewStatusChanged" ); + } catch (Exception e) { + Logger.e(TAG, e, "onTopViewStatusChanged"); } } }; + /** + * 每次onResume的时候 在独立app里面播放系统配置的tts语音 + */ + private void playAppTts() { + if (DebugConfig.isLauncher()) { + return; + } + mTtsModle.playTts(new RefreshCallback() { + @Override + public void onSuccess(TtsConfigEntity o) { + if (!TextUtils.isEmpty(o.getTtsWord())) { + AIAssist.getInstance(mContext).speakTTSVoice(o.getTtsWord(), null); + } + } + + @Override + public void onFail() { + Log.e(TAG, "获取Tts失败"); + + } + }); + } + /** * 关闭所有模块的控制面板 */ @@ -383,86 +414,89 @@ public class MogoServices implements IMogoMapListener, LoggerUtils.log("zy=======stop"); MogoApisHandler.getInstance().getApis().getShareManager().dismissShareDialog(); MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().hidePanel(); - MogoApisHandler.getInstance().getApis().getAdasControllerApi().closeADAS(); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus(false); + MogoApisHandler.getInstance().getApis().getEventPanelManager().hidePanel(); + carsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation(); + carsChattingProvider.hideUserWindow("MOGO_COMMON_SERVICE", mContext, null); } - public void init( Context context ) { + public void init(Context context) { mContext = context; initWorkThread(); - - mRefreshModel = new RefreshModel( context ); + mRefreshModel = new RefreshModel(context); + mTtsModle = new TtsConfigModleData(); mMogoMapService = MarkerServiceHandler.getMapService(); mUiController = mMogoMapService.getMapUIController(); - mNavi = mMogoMapService.getNavi( context ); + mNavi = mMogoMapService.getNavi(context); mStatusManager = MarkerServiceHandler.getMogoStatusManager(); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.USER_INTERACTED, statusChangedListener ); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, statusChangedListener ); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.MAIN_PAGE_RESUME, statusChangedListener ); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.SEEK_HELPING, statusChangedListener ); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.ACC_STATUS, statusChangedListener ); - mStatusManager.registerStatusChangedListener( ServiceConst.TYPE, StatusDescriptor.TOP_VIEW, statusChangedListener ); - mStatusManager.setAIAssistReady( TAG, AIAssist.getInstance( mContext ).hasFlush() ); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.USER_INTERACTED, statusChangedListener); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.SEARCH_UI, statusChangedListener); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.MAIN_PAGE_RESUME, statusChangedListener); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.SEEK_HELPING, statusChangedListener); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.ACC_STATUS, statusChangedListener); + mStatusManager.registerStatusChangedListener(ServiceConst.TYPE, StatusDescriptor.TOP_VIEW, statusChangedListener); + mStatusManager.setAIAssistReady(TAG, AIAssist.getInstance(mContext).hasFlush()); - registerMogoReceiver( context ); + registerMogoReceiver(context); registerInternalUnWakeupWords(); mRegisterCenter = MarkerServiceHandler.getRegisterCenter(); - mRegisterCenter.registerMogoLocationListener( ServiceConst.TYPE, this ); - mRegisterCenter.registerMogoNaviListener( ServiceConst.TYPE, this ); - mRegisterCenter.registerMogoMapListener( ServiceConst.TYPE, this ); - mRegisterCenter.registerMogoAimlessModeListener( ServiceConst.TYPE, this ); - mRegisterCenter.registerCarLocationChangedListener( ServiceConst.TYPE, this ); + mRegisterCenter.registerMogoLocationListener(ServiceConst.TYPE, this); + mRegisterCenter.registerMogoNaviListener(ServiceConst.TYPE, this); + mRegisterCenter.registerMogoMapListener(ServiceConst.TYPE, this); + mRegisterCenter.registerMogoAimlessModeListener(ServiceConst.TYPE, this); + mRegisterCenter.registerCarLocationChangedListener(ServiceConst.TYPE, this); mActionManager = MarkerServiceHandler.getActionManager(); mIntentManager = MarkerServiceHandler.getIntentManager(); - mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_UI, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_NEXT, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_PREVIOUS, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_SWITCH_CARD, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_MY_LOCATION, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_ADAS_STATUS, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_OPERATION, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_READY, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_MOCK, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_CAR_ONLINE, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_ONLINE, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_USER_ONLINE, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_BYLOCATION, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_BACK, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_SEND, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_MOGO, this ); - mIntentManager.registerIntentListener( ServiceConst.COMMAND_ONLINE_CAR_PANEL, this ); - mIntentManager.registerIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, this ); + mIntentManager.registerIntentListener(MogoReceiver.ACTIION_ADAS, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_VOICE_UI, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_NEXT, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_PREVIOUS, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_SWITCH_CARD, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_MY_LOCATION, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_ADAS_STATUS, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_OPERATION, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_VOICE_READY, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_MOCK, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ZHIDAO_NEARBY_CAR_ONLINE, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_ONLINE, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ZHIDAO_NEARBY_USER_ONLINE, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_BYLOCATION, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_BACK, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_AUTO_NAVI_RECEIVER, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_AUTO_NAVI_SEND, this); + mIntentManager.registerIntentListener(MogoReceiver.ACTION_MOGO, this); + mIntentManager.registerIntentListener(ServiceConst.COMMAND_ONLINE_CAR_PANEL, this); + mIntentManager.registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, this); mADASController = MarkerServiceHandler.getADASController(); mLauncher = MarkerServiceHandler.getLauncher(); mFragmentManager = MarkerServiceHandler.getFragmentManager(); - mFragmentManager.addMainFragmentStackTransactionListener( this ); + mFragmentManager.addMainFragmentStackTransactionListener(this); - CarIconDisplayStrategy.getInstance().changeCarIconStatus( mStatusManager.isSeekHelping() ); + CarIconDisplayStrategy.getInstance().changeCarIconStatus(mStatusManager.isSeekHelping()); - if ( DebugConfig.isLaunchLocationService() ) { - initLocationServiceProcess( context ); + if (DebugConfig.isLaunchLocationService()) { + initLocationServiceProcess(context); } AutoPilotRemoteController.getInstance().start(); } - private void initLocationServiceProcess( Context context ) { + private void initLocationServiceProcess(Context context) { try { Intent intent = new Intent(); - intent.setAction( "com.zhidao.locationinfo.service.uploaddataservice" ); - ComponentName cn = new ComponentName( "com.zhidao.locationinfo", "com.zhidao.locationinfo.service.UploadDataService" ); - intent.setComponent( cn ); - context.startService( intent ); - } catch ( Exception e ) { - Logger.e( TAG, e, "start location service error." ); + intent.setAction("com.zhidao.locationinfo.service.uploaddataservice"); + ComponentName cn = new ComponentName("com.zhidao.locationinfo", "com.zhidao.locationinfo.service.UploadDataService"); + intent.setComponent(cn); + context.startService(intent); + } catch (Exception e) { + Logger.e(TAG, e, "start location service error."); } } @@ -521,24 +555,24 @@ public class MogoServices implements IMogoMapListener, filter.addAction( module.getBroadcastAction() ); } } - filter.addAction( MogoReceiver.VOICE_ACTION ); - filter.addAction( MogoReceiver.ACTIION_ADAS ); + filter.addAction(MogoReceiver.VOICE_ACTION); + filter.addAction(MogoReceiver.ACTIION_ADAS); // 小智语音 - filter.addAction( MogoReceiver.ACTION_VOICE_UI ); - filter.addAction( MogoReceiver.ACTION_ADAS_STATUS ); - filter.addAction( MogoReceiver.ACTION_VOICE_READY ); - filter.addAction( MogoReceiver.ACTION_MOCK ); - filter.addAction( Intent.ACTION_CLOSE_SYSTEM_DIALOGS ); - filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER ); - filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_SEND ); - filter.addAction( MogoReceiver.ACTION_MOGO ); - filter.addAction( MogoReceiver.ACTION_TXZ_BLOCK_SEARCH ); - filter.addAction( ConnectivityManager.CONNECTIVITY_ACTION ); + filter.addAction(MogoReceiver.ACTION_VOICE_UI); + filter.addAction(MogoReceiver.ACTION_ADAS_STATUS); + filter.addAction(MogoReceiver.ACTION_VOICE_READY); + filter.addAction(MogoReceiver.ACTION_MOCK); + filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); + filter.addAction(MogoReceiver.ACTION_AUTO_NAVI_RECEIVER); + filter.addAction(MogoReceiver.ACTION_AUTO_NAVI_SEND); + filter.addAction(MogoReceiver.ACTION_MOGO); + filter.addAction(MogoReceiver.ACTION_TXZ_BLOCK_SEARCH); + filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); try { - context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); - Logger.i( TAG, "register voice receiver." ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error. " ); + context.getApplicationContext().registerReceiver(mAIAssistReceiver, filter); + Logger.i(TAG, "register voice receiver."); + } catch (Exception e) { + Logger.e(TAG, e, "error. "); } } @@ -548,16 +582,16 @@ public class MogoServices implements IMogoMapListener, } private void initMapStatus() { - if ( mIsMapStatusOk ) { + if (mIsMapStatusOk) { return; } try { float width = getMapCameraFactWidth(); float height = getMapCameraFactHeight(); mIsVertical = width < height; - Logger.i( TAG, "map status is vertical : " + mIsVertical ); + Logger.i(TAG, "map status is vertical : " + mIsVertical); mIsMapStatusOk = true; - } catch ( Exception e ) { + } catch (Exception e) { e.printStackTrace(); } } @@ -567,8 +601,8 @@ public class MogoServices implements IMogoMapListener, */ private float getMapCameraFactWidth() { try { - return Utils.calculateLineDistance( mCameraNorthEastPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); - } catch ( Exception e ) { + return Utils.calculateLineDistance(mCameraNorthEastPosition, new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng)); + } catch (Exception e) { return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS; } } @@ -578,25 +612,25 @@ public class MogoServices implements IMogoMapListener, */ private float getMapCameraFactHeight() { try { - return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); - } catch ( Exception e ) { + return Utils.calculateLineDistance(mCameraSouthWestPosition, new MogoLatLng(mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng)); + } catch (Exception e) { return ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS; } } @Override - public void onTouch( MotionEvent motionEvent ) { - switch ( motionEvent.getActionMasked() ) { + public void onTouch(MotionEvent motionEvent) { + switch (motionEvent.getActionMasked()) { case MotionEvent.ACTION_DOWN: - if ( mLastZoomLevel == 0 ) { + if (mLastZoomLevel == 0) { mLastZoomLevel = mUiController.getZoomLevel(); - Logger.i( TAG, "初始化缩放级别 为:%f", mLastZoomLevel ); + Logger.i(TAG, "初始化缩放级别 为:%f", mLastZoomLevel); } break; case MotionEvent.ACTION_UP: - restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT, false ); - mThreadHandler.removeMessages( ServiceConst.MSG_LOCK_CAR ); - mThreadHandler.sendEmptyMessageDelayed( ServiceConst.MSG_LOCK_CAR, ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT ); + restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT, false); + mThreadHandler.removeMessages(ServiceConst.MSG_LOCK_CAR); + mThreadHandler.sendEmptyMessageDelayed(ServiceConst.MSG_LOCK_CAR, ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT); break; } } @@ -658,23 +692,23 @@ public class MogoServices implements IMogoMapListener, return; } - Logger.d( TAG, "mLastZoomLevel = %s, zoom = %s", mLastZoomLevel, zoom ); + Logger.d(TAG, "mLastZoomLevel = %s, zoom = %s", mLastZoomLevel, zoom); // 手动刷新触发 - if ( mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel() ) { + if (mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel()) { // 缩放级别缩小 - notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback ); + notifyRefreshData(latLng, getQueryRadius(), mCustomRefreshCallback); mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; - } else if ( mLastZoomLevel - zoom < 0 ) { + } else if (mLastZoomLevel - zoom < 0) { mLastZoomLevel = zoom; - } else if ( mLastZoomLevel == zoom ) { + } else if (mLastZoomLevel == zoom) { // 手动平移 Message msg = Message.obtain(); msg.what = ServiceConst.MSG_MAP_CHANGED; - msg.obj = new RefreshObject( mCustomRefreshCallback, getQueryRadius(), latLng, 0 ); - mThreadHandler.sendMessage( msg ); - Logger.d( TAG, "平移触发" ); + msg.obj = new RefreshObject(mCustomRefreshCallback, getQueryRadius(), latLng, 0); + mThreadHandler.sendMessage(msg); + Logger.d(TAG, "平移触发"); } } @@ -682,12 +716,12 @@ public class MogoServices implements IMogoMapListener, mCameraSouthWestPosition = mUiController.getCameraSouthWestPosition(); mCameraNorthEastPosition = mUiController.getCameraNorthEastPosition(); int radius = 0; - if ( mIsVertical ) { - radius = ( ( int ) ( getMapCameraFactWidth() / 2 ) ); + if (mIsVertical) { + radius = ((int) (getMapCameraFactWidth() / 2)); } else { - radius = ( ( int ) ( getMapCameraFactHeight() / 2 ) ); + radius = ((int) (getMapCameraFactHeight() / 2)); } - if ( radius < 1000 ) { + if (radius < 1000) { return 1_000; } return radius; @@ -696,63 +730,63 @@ public class MogoServices implements IMogoMapListener, /** * 平移地图刷新策略 */ - private boolean invokeRefreshWhenTranslationByUser( MogoLatLng latLng ) { + private boolean invokeRefreshWhenTranslationByUser(MogoLatLng latLng) { try { float factor = 0.0f; - if ( mIsVertical ) { + if (mIsVertical) { factor = getMapCameraFactWidth(); } else { factor = getMapCameraFactHeight(); } - if ( factor == 0.0f ) { + if (factor == 0.0f) { return false; } - float distance = Utils.calculateLineDistance( latLng, mLastCustomRefreshCenterLocation ); - Logger.d( TAG, "move distance = %s, factor = %s", distance, ( factor / 2 ) ); - return distance > ( factor / 2 ); - } catch ( Exception e ) { - Logger.e( TAG, e, "warming. " ); + float distance = Utils.calculateLineDistance(latLng, mLastCustomRefreshCenterLocation); + Logger.d(TAG, "move distance = %s, factor = %s", distance, (factor / 2)); + return distance > (factor / 2); + } catch (Exception e) { + Logger.e(TAG, e, "warming. "); return false; } } @Override - public void onLocationChanged( MogoLocation location ) { + public void onLocationChanged(MogoLocation location) { - if ( !DebugConfig.isMapBased() ) { + if (!DebugConfig.isMapBased()) { return; } - if ( !mStatusManager.isMainPageLaunched() ) { + if (!mStatusManager.isMainPageLaunched()) { return; } - if ( mStatusManager.isV2XShow() ) { + if (mStatusManager.isV2XShow()) { return; } - if ( mStatusManager.isSearchUIShow() ) { + if (mStatusManager.isSearchUIShow()) { return; } - if ( location == null ) { + if (location == null) { return; } // 自动刷新触发 - final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() ); - if ( mLastAutoRefreshLocation == null ) { - startFirstLocationRequest( point ); + final MogoLatLng point = new MogoLatLng(location.getLatitude(), location.getLongitude()); + if (mLastAutoRefreshLocation == null) { + startFirstLocationRequest(point); return; } - float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, point ); - if ( distance > mAutoRefreshStrategy.getDistance() ) { - mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); + float distance = Utils.calculateLineDistance(mLastAutoRefreshLocation, point); + if (distance > mAutoRefreshStrategy.getDistance()) { + mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); mUiController.recoverLockMode(); - mStatusManager.setUserInteractionStatus( TAG, true, false ); - mUiController.changeZoom( ServiceConst.DEFAULT_ZOOM_LEVEL ); + mStatusManager.setUserInteractionStatus(TAG, true, false); + mUiController.changeZoom(ServiceConst.DEFAULT_ZOOM_LEVEL); mLastAutoRefreshLocation = point; - notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); + notifyRefreshData(mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback); } } @@ -761,150 +795,150 @@ public class MogoServices implements IMogoMapListener, * * @param point */ - private void startFirstLocationRequest( MogoLatLng point ) { + private void startFirstLocationRequest(MogoLatLng point) { mLastAutoRefreshLocation = point; mLoopRequest = true; - notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); + notifyRefreshData(mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback); } @Override - public void onCarLocationChanged2( Location latLng ) { - if ( latLng == null ) { + public void onCarLocationChanged2(Location latLng) { + if (latLng == null) { return; } // poi 定位无法获取时,使用该定位 - if ( mLastAutoRefreshLocation == null ) { - MogoLatLng point = new MogoLatLng( latLng.getLatitude(), latLng.getLongitude() ); - startFirstLocationRequest( point ); + if (mLastAutoRefreshLocation == null) { + MogoLatLng point = new MogoLatLng(latLng.getLatitude(), latLng.getLongitude()); + startFirstLocationRequest(point); } } @Override - public void onCarLocationChanged( MogoLatLng latLng ) { + public void onCarLocationChanged(MogoLatLng latLng) { } /** * 刷新数据 */ - private void notifyRefreshData( MogoLatLng latLng, int radius, RefreshCallback callback ) { + private void notifyRefreshData(MogoLatLng latLng, int radius, RefreshCallback callback) { - if ( !DebugConfig.isMapBased() ) { + if (!DebugConfig.isMapBased()) { return; } - if ( !mStatusManager.isMainPageLaunched() ) { + if (!mStatusManager.isMainPageLaunched()) { return; } - if ( !mStatusManager.isMainPageOnResume() ) { + if (!mStatusManager.isMainPageOnResume()) { return; } - if ( mStatusManager.isSearchUIShow() ) { + if (mStatusManager.isSearchUIShow()) { return; } - Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" ); + Logger.d(TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新"); int amount = 20; Message msg = Message.obtain(); msg.what = ServiceConst.MSG_REQUEST_DATA; - msg.obj = new RefreshObject( callback, radius, latLng, amount ); - mThreadHandler.sendMessage( msg ); + msg.obj = new RefreshObject(callback, radius, latLng, amount); + mThreadHandler.sendMessage(msg); } - private void notifySeekHelpingStatusChanged( boolean seekHelpingStatus ) { - Intent intent = new Intent( "com.mogo.launcher.adas.app" ); + private void notifySeekHelpingStatusChanged(boolean seekHelpingStatus) { + Intent intent = new Intent("com.mogo.launcher.adas.app"); try { JSONObject data = new JSONObject(); - data.put( "object", "辅助驾驶" ); - data.put( "action", seekHelpingStatus ? "2" : "1" ); - data.put( "des", "自身故障报警" ); - data.put( "v2x_warning_type", "20007" );// 后台返回 - intent.putExtra( "data", data.toString() ); - mContext.sendBroadcast( intent ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); + data.put("object", "辅助驾驶"); + data.put("action", seekHelpingStatus ? "2" : "1"); + data.put("des", "自身故障报警"); + data.put("v2x_warning_type", "20007");// 后台返回 + intent.putExtra("data", data.toString()); + mContext.sendBroadcast(intent); + } catch (Exception e) { + Logger.e(TAG, e, "error."); } } - public void restartAutoRefreshAtTime( long time ) { - restartAutoRefreshAtTime( time, true ); + public void restartAutoRefreshAtTime(long time) { + restartAutoRefreshAtTime(time, true); } public void clearAllData() { try { - MarkerServiceHandler.getMapService().getMarkerManager( mContext ).removeMarkers(); - } catch ( Exception e ) { + MarkerServiceHandler.getMapService().getMarkerManager(mContext).removeMarkers(); + } catch (Exception e) { e.printStackTrace(); } } - private void restartAutoRefreshAtTime( long time, boolean stopOnlineCarRefresh ) { - if ( time < 0 ) { - Logger.w( TAG, "refresh request case time < 0, set to 0 and go on." ); + private void restartAutoRefreshAtTime(long time, boolean stopOnlineCarRefresh) { + if (time < 0) { + Logger.w(TAG, "refresh request case time < 0, set to 0 and go on."); time = 0; } - stopAutoRefreshStrategy( stopOnlineCarRefresh ); + stopAutoRefreshStrategy(stopOnlineCarRefresh); mRefreshRemainingTime = time; long delay = ServiceConst.DECREASE_INTERVAL; - if ( mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL ) { + if (mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL) { delay = mRefreshRemainingTime; } - if ( time == 0 ) { - Logger.d( TAG, "立即刷新" ); + if (time == 0) { + Logger.d(TAG, "立即刷新"); invokeAutoRefresh(); } else { - mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay ); + mHandler.sendEmptyMessageDelayed(ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay); } - Logger.i( TAG, "下次刷新时间:%sms后", mRefreshRemainingTime ); + Logger.i(TAG, "下次刷新时间:%sms后", mRefreshRemainingTime); } public void refreshStrategy() { - Logger.d( TAG, "move to center and refresh data." ); - mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); + Logger.d(TAG, "move to center and refresh data."); + mStatusManager.setUserInteractionStatus(ServiceConst.TYPE, true, false); mUiController.recoverLockMode();// 锁车代替移到中心点 - restartAutoRefreshAtTime( 0 ); + restartAutoRefreshAtTime(0); } @Override - public void onUpdateTraffic2( MogoTraffic traffic ) { + public void onUpdateTraffic2(MogoTraffic traffic) { - if ( traffic == null ) { + if (traffic == null) { return; } - if ( mCurrentLimit == traffic.getSpeedLimit() ) { + if (mCurrentLimit == traffic.getSpeedLimit()) { return; } mCurrentLimit = traffic.getSpeedLimit(); - Logger.i( TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc() ); + Logger.i(TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc()); // 发送当前限速到 adas - Intent intent = new Intent( "com.mogo.launcher.adas" ); - intent.putExtra( "adas_speed_limit", traffic.getSpeedLimit() ); - mContext.sendBroadcast( intent ); + Intent intent = new Intent("com.mogo.launcher.adas"); + intent.putExtra("adas_speed_limit", traffic.getSpeedLimit()); + mContext.sendBroadcast(intent); } @Override - public void onUpdateCongestion( MogoCongestionInfo info ) { + public void onUpdateCongestion(MogoCongestionInfo info) { } @Override - public void onIntentReceived( String command, Intent intent ) { + public void onIntentReceived(String command, Intent intent) { - if ( ServiceConst.COMMAND_NEXT.equals( command ) ) { - onActionDone( MogoAction.Next ); - } else if ( ServiceConst.COMMAND_PREVIOUS.equals( command ) ) { - onActionDone( MogoAction.Prev ); + if (ServiceConst.COMMAND_NEXT.equals(command)) { + onActionDone(MogoAction.Next); + } else if (ServiceConst.COMMAND_PREVIOUS.equals(command)) { + onActionDone(MogoAction.Prev); } else { - if ( TextUtils.equals( command, ConnectivityManager.CONNECTIVITY_ACTION ) - && NetworkUtils.isConnected( mContext ) ) { - mIntentManager.unregisterIntentListener( ConnectivityManager.CONNECTIVITY_ACTION, this ); + if (TextUtils.equals(command, ConnectivityManager.CONNECTIVITY_ACTION) + && NetworkUtils.isConnected(mContext)) { + mIntentManager.unregisterIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, this); } - IntentHandlerFactory.getInstance().handle( mContext, command, intent ); + IntentHandlerFactory.getInstance().handle(mContext, command, intent); } } @@ -912,102 +946,102 @@ public class MogoServices implements IMogoMapListener, * 注册桌面免唤醒指令 */ private void registerInternalUnWakeupWords() { - if ( mInternalUnWakeupRegisterStatus ) { + if (mInternalUnWakeupRegisterStatus) { return; } mInternalUnWakeupRegisterStatus = true; // AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV,ServiceConst.CMD_UN_WAKE_PREV_UN_WAKE_WORDS, this ); // AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT,ServiceConst.CMD_UN_WAKE_NEXT_UN_WAKE_WORDS, this ); - AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this ); + AIAssist.getInstance(mContext).registerUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, ServiceConst.CMD_UN_WAKEUP_WORDS_MY_LOCATION, this); } /** * 注销桌面免唤醒指令 */ private void unregisterInternalUnWakeupWords() { - if ( !mInternalUnWakeupRegisterStatus ) { + if (!mInternalUnWakeupRegisterStatus) { return; } mInternalUnWakeupRegisterStatus = false; // AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_PREV, this ); // AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKE_NEXT, this ); - AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this ); + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, this); } @Override - public void onCmdSelected( String cmd ) { - if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_PREV, cmd ) ) { - onActionDone( MogoAction.Prev ); - } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKE_NEXT, cmd ) ) { - onActionDone( MogoAction.Next ); - } else if ( TextUtils.equals( ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd ) ) { - if ( mStatusManager.isMainPageOnResume() ) { + public void onCmdSelected(String cmd) { + if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_PREV, cmd)) { + onActionDone(MogoAction.Prev); + } else if (TextUtils.equals(ServiceConst.CMD_UN_WAKE_NEXT, cmd)) { + onActionDone(MogoAction.Next); + } else if (TextUtils.equals(ServiceConst.CMD_UN_WAKEUP_MY_LOCATION, cmd)) { + if (mStatusManager.isMainPageOnResume()) { mUiController.recoverLockMode(); } - } else if ( TextUtils.equals( ServiceConst.CMD_BACK, cmd ) ) { + } else if (TextUtils.equals(ServiceConst.CMD_BACK, cmd)) { mFragmentManager.clearAll(); } } - private void onActionDone( MogoAction action ) { - if ( !mStatusManager.isMainPageOnResume() ) { + private void onActionDone(MogoAction action) { + if (!mStatusManager.isMainPageOnResume()) { return; } - if ( mStatusManager.isV2XShow() ) { + if (mStatusManager.isV2XShow()) { // 分发到V2X - mActionManager.invoke( "V2X_UI", action ); + mActionManager.invoke("V2X_UI", action); } else { String biz = MapMarkerManager.getInstance().getCurrentModuleName(); - mActionManager.invoke( biz, action ); + mActionManager.invoke(biz, action); } } @Override - public void onTransaction( int size ) { - if ( size == 0 ) { - mUiController.showMyLocation( true ); - AIAssist.getInstance( mContext ).unregisterUnWakeupCommand( ServiceConst.CMD_BACK ); - if ( mStatusManager.isSearchUIShow() ) { - mStatusManager.setSearchUIShow( TAG, false ); + public void onTransaction(int size) { + if (size == 0) { + mUiController.showMyLocation(true); + AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ServiceConst.CMD_BACK); + if (mStatusManager.isSearchUIShow()) { + mStatusManager.setSearchUIShow(TAG, false); } - if ( mNavi.isNaviing() ) { - MapCenterPointStrategy.setMapCenterPointByScene( mUiController, Scene.NAVI ); + if (mNavi.isNaviing()) { + MapCenterPointStrategy.setMapCenterPointByScene(mUiController, Scene.NAVI); } else { - MapCenterPointStrategy.setMapCenterPointByScene( mUiController, Scene.AIMLESS ); + MapCenterPointStrategy.setMapCenterPointByScene(mUiController, Scene.AIMLESS); } mUiController.recoverLockMode(); mADASController.showADAS(); } else { - mUiController.showMyLocation( false ); - AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this ); + mUiController.showMyLocation(false); + AIAssist.getInstance(mContext).registerUnWakeupCommand(ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this); } } @Override public void onStartNavi() { - if ( DebugConfig.isIsScheduleCalculateNotHomeCompanyDistanceForPush() ) { - Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush" ); - scheduleCalculationNotHomeCompanyDistanceForPush( 1, ServiceConst.INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + if (DebugConfig.isIsScheduleCalculateNotHomeCompanyDistanceForPush()) { + Logger.d(TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush"); + scheduleCalculationNotHomeCompanyDistanceForPush(1, ServiceConst.INTERVAL_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH); } else { - Logger.d( TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush un support" ); + Logger.d(TAG, "onStartNavi: scheduleCalculationNotHomeCompanyDistanceForPush un support"); } } @Override public void onStopNavi() { - SpStorage.setNavigationTarget( "" ); - Logger.d( TAG, "onStopNavi: remove MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH msg" ); - mHandler.removeMessages( ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); + SpStorage.setNavigationTarget(""); + Logger.d(TAG, "onStopNavi: remove MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH msg"); + mHandler.removeMessages(ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH); } /** * 延时一分钟发起计算导航目的地推送策略 */ - private void scheduleCalculationNotHomeCompanyDistanceForPush( int time, long delay ) { + private void scheduleCalculationNotHomeCompanyDistanceForPush(int time, long delay) { Message msg = Message.obtain(); msg.what = ServiceConst.MSG_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH; msg.arg1 = time; - mHandler.sendMessageDelayed( msg, delay ); + mHandler.sendMessageDelayed(msg, delay); } /** @@ -1015,50 +1049,50 @@ public class MogoServices implements IMogoMapListener, * * @param time 第x次重试 */ - private void handleCalculationNotHomeCompanyDistanceForPush( final int time ) { - if ( time > 3 ) { + private void handleCalculationNotHomeCompanyDistanceForPush(final int time) { + if (time > 3) { return; } String json = SpStorage.getNavigationTarget(); - if ( !TextUtils.isEmpty( json ) ) { + if (!TextUtils.isEmpty(json)) { try { - NavigationTargetInfo info = GsonUtil.objectFromJson( json, NavigationTargetInfo.class ); + NavigationTargetInfo info = GsonUtil.objectFromJson(json, NavigationTargetInfo.class); - Logger.d( TAG, "info = %s", info ); + Logger.d(TAG, "info = %s", info); HomeCompanyDistanceForPushData data = new HomeCompanyDistanceForPushData(); - data.lat = Double.valueOf( info.getToPoiLatitude() ); - data.lon = Double.valueOf( info.getToPoiLongitude() ); + data.lat = Double.valueOf(info.getToPoiLatitude()); + data.lon = Double.valueOf(info.getToPoiLongitude()); - final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); - query.put( "data", GsonUtil.jsonFromObject( data ) ); - mRefreshModel.getRefreshApiService().calculationNotHomeCompanyDistanceForPush( query ) - .subscribeOn( Schedulers.io() ) - .observeOn( AndroidSchedulers.mainThread() ) - .subscribe( new SubscribeImpl< HomeCompanyDistanceForPushResponse >( RequestOptions.create( mContext ) ) { + final Map query = new ParamsProvider.Builder(mContext).build(); + query.put("data", GsonUtil.jsonFromObject(data)); + mRefreshModel.getRefreshApiService().calculationNotHomeCompanyDistanceForPush(query) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { @Override - public void onSuccess( HomeCompanyDistanceForPushResponse o ) { - super.onSuccess( o ); - if ( o != null && o.result != null ) { - Logger.d( TAG, "calculationNotHomeCompanyDistanceForPush result %s", o.result.pushFlag ); + public void onSuccess(HomeCompanyDistanceForPushResponse o) { + super.onSuccess(o); + if (o != null && o.result != null) { + Logger.d(TAG, "calculationNotHomeCompanyDistanceForPush result %s", o.result.pushFlag); } } @Override - public void onError( Throwable e ) { - super.onError( e ); - Logger.d( TAG, "re scheduleCalculationNotHomeCompanyDistanceForPush after 30s" ); + public void onError(Throwable e) { + super.onError(e); + Logger.d(TAG, "re scheduleCalculationNotHomeCompanyDistanceForPush after 30s"); // 延时30s重试 - scheduleCalculationNotHomeCompanyDistanceForPush( time + 1, 30_000L ); + scheduleCalculationNotHomeCompanyDistanceForPush(time + 1, 30_000L); } @Override - public void onError( String message, int code ) { - super.onError( message, code ); + public void onError(String message, int code) { + super.onError(message, code); } - } ); - } catch ( Exception e ) { - Logger.e( TAG, e, "handleCalculationNotHomeCompanyDistanceForPush" ); + }); + } catch (Exception e) { + Logger.e(TAG, e, "handleCalculationNotHomeCompanyDistanceForPush"); } } @@ -1066,6 +1100,6 @@ public class MogoServices implements IMogoMapListener, @Override public void destroy() { - Logger.d( TAG, "MogoServices do nothings." ); + Logger.d(TAG, "MogoServices do nothings."); } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index 1fb0c5cdf2..1a0020979f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -18,6 +18,11 @@ public class ServiceConst { */ public static final String PATH_REFRESH_STRATEGY = "/strategy/refresh"; + /** + * tts语音配置 + */ + public static final String PATH_TTS_CONFIG = "/ttsserver/tts"; + /** * 倒计时消息 */ diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/TtsConfigEntity.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/TtsConfigEntity.java new file mode 100644 index 0000000000..f46d4a52db --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/bean/TtsConfigEntity.java @@ -0,0 +1,20 @@ +package com.mogo.module.service.network.bean; + +import com.mogo.commons.data.BaseData; + +/** + * @author :zhuangyan + * @date : 2020/11/17 11:43 + * @desc :分体机tts播报信息返回 + */ +public class TtsConfigEntity extends BaseData { + private String ttsWord; + + public String getTtsWord() { + return ttsWord; + } + + public void setTtsWord(String ttsWord) { + this.ttsWord = ttsWord; + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java index 9e0681abdf..6028d232f4 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java @@ -32,34 +32,34 @@ import java.util.List; *

* 描述 */ -class OnlineCarPanelAdapter extends RecyclerView.Adapter< OnlineCarPanelAdapter.VH > { +class OnlineCarPanelAdapter extends RecyclerView.Adapter { private static final String TAG = "OnlineCarPanelAdapter"; - private List< MarkerOnlineCar > mDatums; + private List mDatums; private double mToLon; private double mToLat; - public OnlineCarPanelAdapter( List< MarkerOnlineCar > mDatums, double mToLon, double mToLat ) { + public OnlineCarPanelAdapter(List mDatums, double mToLon, double mToLat) { this.mDatums = mDatums; this.mToLon = mToLon; this.mToLat = mToLat; } - public void setDatums( List< MarkerOnlineCar > mDatums ) { + public void setDatums(List mDatums) { this.mDatums = mDatums; notifyDataSetChanged(); } @NonNull @Override - public OnlineCarPanelAdapter.VH onCreateViewHolder( @NonNull ViewGroup parent, int viewType ) { - return new VH( LayoutInflater.from( parent.getContext() ).inflate( R.layout.module_services_online_car_panel_item, null ) ); + public OnlineCarPanelAdapter.VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new VH(LayoutInflater.from(parent.getContext()).inflate(R.layout.module_services_online_car_panel_item, null)); } @Override - public void onBindViewHolder( @NonNull OnlineCarPanelAdapter.VH holder, int position ) { - holder.bind( mDatums.get( position ), mToLon, mToLat ); + public void onBindViewHolder(@NonNull OnlineCarPanelAdapter.VH holder, int position) { + holder.bind(mDatums.get(position), mToLon, mToLat); } @Override @@ -73,32 +73,37 @@ class OnlineCarPanelAdapter extends RecyclerView.Adapter< OnlineCarPanelAdapter. private TextView nickname; private TextView distance; private TextView detail; + private TextView call; - public VH( @NonNull View itemView ) { - super( itemView ); - RecyclerView.LayoutParams params = new RecyclerView.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ); - params.bottomMargin = ResourcesHelper.getDimensionPixelSize( itemView.getContext(), R.dimen.module_services_panel_item_marginBottom ); - itemView.setLayoutParams( params ); - avatar = itemView.findViewById( R.id.module_services_id_panel_item_avatar ); - nickname = itemView.findViewById( R.id.module_services_id_panel_item_nickname ); - distance = itemView.findViewById( R.id.module_services_id_panel_item_distance ); - detail = itemView.findViewById( R.id.module_services_id_panel_item_detail ); + public VH(@NonNull View itemView) { + super(itemView); + RecyclerView.LayoutParams params = new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + params.bottomMargin = ResourcesHelper.getDimensionPixelSize(itemView.getContext(), R.dimen.module_services_panel_item_marginBottom); + itemView.setLayoutParams(params); + avatar = itemView.findViewById(R.id.module_services_id_panel_item_avatar); + nickname = itemView.findViewById(R.id.module_services_id_panel_item_nickname); + distance = itemView.findViewById(R.id.module_services_id_panel_item_distance); + detail = itemView.findViewById(R.id.module_services_id_panel_item_detail); + call = itemView.findViewById(R.id.module_services_id_panel_item_call); } - public void bind( MarkerOnlineCar car, double lon, double lat ) { - RequestOptions options = new RequestOptions().circleCrop().placeholder( R.drawable.module_common_default_user_head ).error( R.drawable.module_common_default_user_head ); - GlideApp.with( itemView.getContext() ).asBitmap().apply( options ).load( car.getUserInfo().getUserHead() ).into( new SkinAbleBitmapTarget( avatar, options ) ); - nickname.setText( car.getUserInfo().getUserName() ); - String content = getDistanceStr( car.getLocation(), lon, lat ); - distance.setText( content ); - detail.setOnClickListener( view -> { - MogoApisHandler.getInstance().getApis().getAnalyticsApi().track( "Mogoer_List_click", null ); + public void bind(MarkerOnlineCar car, double lon, double lat) { + RequestOptions options = new RequestOptions().circleCrop().placeholder(R.drawable.module_common_default_user_head).error(R.drawable.module_common_default_user_head); + GlideApp.with(itemView.getContext()).asBitmap().apply(options).load(car.getUserInfo().getUserHead()).into(new SkinAbleBitmapTarget(avatar, options)); + nickname.setText(car.getUserInfo().getUserName()); + String content = getDistanceStr(car.getLocation(), lon, lat); + distance.setText(content); + detail.setOnClickListener(view -> { + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track("Mogoer_List_click", null); try { - CallChatApi.getInstance().showUserWindow( itemView.getContext(), car ); - } catch ( Exception e ) { - Logger.e( TAG, e, "detail.OnClick" ); + CallChatApi.getInstance().showUserWindow(itemView.getContext(), car); + } catch (Exception e) { + Logger.e(TAG, e, "detail.OnClick"); } - } ); + }); + call.setOnClickListener(view -> { + //TODO 拨打电话 + }); } private String getDistanceStr( MarkerLocation location, double lon, double lat ) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigApiService.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigApiService.java new file mode 100644 index 0000000000..8d831ab96b --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigApiService.java @@ -0,0 +1,26 @@ +package com.mogo.module.service.ttsConfig; + +import com.mogo.commons.data.BaseData; +import com.mogo.module.service.network.bean.TtsConfigEntity; + +import java.util.Map; + +import io.reactivex.Observable; +import retrofit2.http.FieldMap; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; + +/** + * @author :zhuangyan + * @date : 2020/11/16 15:09 + * @desc : + */ +public interface TtsConfigApiService { + /** + * 查询语音Tts 的 + * + */ + @FormUrlEncoded + @POST("/yycp-tmcServer/tmcServer/car/reportTraffic/v1") + Observable inquireForTts(@FieldMap Map parames); +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigModleData.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigModleData.java new file mode 100644 index 0000000000..cc6aab6665 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigModleData.java @@ -0,0 +1,72 @@ +package com.mogo.module.service.ttsConfig; + +import android.util.Log; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.data.BaseData; +import com.mogo.commons.network.ParamsProvider; +import com.mogo.commons.network.SubscribeImpl; +import com.mogo.commons.network.Utils; +import com.mogo.module.service.network.RefreshCallback; +import com.mogo.module.service.network.RefreshModel; +import com.mogo.module.service.network.bean.TtsConfigEntity; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.network.IMogoNetwork; +import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.RequestOptions; + +import java.util.Map; + +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; + +import static com.mogo.commons.AbsMogoApplication.getApp; + +/** + * @author :zhuangyan + * @date : 2020/11/16 15:04 + * @desc : + */ +public class TtsConfigModleData { + private static final String TAG = "TrafficModelData"; + private final TtsConfigApiService mTtsConfigApiService; + + + public TtsConfigModleData() { + IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(getApp().getApplicationContext()); + mTtsConfigApiService = network.create(TtsConfigApiService.class, RefreshModel.getNetHost()); + } + /** + * 独立app根据后台配置 播放tts + * @param + * @param + * @param + */ + public void playTts(RefreshCallback ttsCallback) { + + final ParamsProvider.Builder builder = new ParamsProvider.Builder( getApp().getApplicationContext()); + Map parameters = builder.build(); + parameters.put("sn", Utils.getSn()); + Log.d("zytest","playTts获取语音配置的网络请求"); +// parameters.put("data", GsonUtil.jsonFromObject(uploadTrafficEntity)); + mTtsConfigApiService.inquireForTts(parameters) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create( getApp().getApplicationContext())) { + @Override + public void onError(Throwable e) { + super.onError(e); + + ttsCallback.onFail(); + } + + @Override + public void onSuccess(TtsConfigEntity o) { + super.onSuccess(o); + ttsCallback.onSuccess(o); + } + }); + + } + +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigProvider.java new file mode 100644 index 0000000000..e08e573f8e --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ttsConfig/TtsConfigProvider.java @@ -0,0 +1,37 @@ +package com.mogo.module.service.ttsConfig; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.alibaba.android.arouter.facade.template.IProvider; +import com.mogo.module.service.ServiceConst; + +/** + * @author :zhuangyan + * @date : 2020/11/16 15:01 + * @desc :进入页面的时候 根据配置 播放tts语音 + */ +@Route( path = ServiceConst.PATH_TTS_CONFIG ) +public class TtsConfigProvider implements IProvider { + private final String TAG = "TtsConfigProvider"; + + private TtsConfigModleData mTtsModleData; + + @Override + public void init(Context context) { + Log.d(TAG, "TtsConfigProvider provider init……"); + if (mTtsModleData==null) { + mTtsModleData=new TtsConfigModleData(); + } + mTtsModleData.playTts(new RefreshCallback() { + @Override + public void onSuccess(TtsConfigEntity o) { + } + + @Override + public void onFail() { + } + }); + } +} diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml index 1e13b077d7..54c81aa3d8 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml @@ -55,6 +55,23 @@ app:layout_constraintLeft_toRightOf="@+id/module_services_id_panel_item_distance_tag" tools:text="980M" /> + + 扩大到40公里半径 距离导航目的地 查看车友信息 + 电话 + 很抱歉,目的地%dKM内未找到车友 很抱歉,目的地%d公里内未找到车友 目的地车友 加载失败,请点击重试 diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java index 4962a7599e..5cc6cba1d2 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java @@ -155,6 +155,8 @@ public class MogoServicePaths { @Deprecated public static final String PATH_REFRESH_STRATEGY_API = "/refreshstrategy/api"; + + /** * 刷新策略控制 */ @@ -225,7 +227,7 @@ public class MogoServicePaths { * 授权服务 */ @Deprecated - public static final String PATH_AGREEMENT = "/agreement/showFragment"; + public static final String PATH_AGREEMENT = "/agreement/showFragment"; /** * 日志上传