diff --git a/.idea/misc.xml b/.idea/misc.xml index cd77a1f062..21e99e2dc0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 3a95ccb761..7359d43664 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -123,23 +123,19 @@ public class MogoApplication extends AbsMogoApplication { private void preparePassportEnvironment( IMogoServiceApis apis, Runnable after ) { apis.getPassportManagerApi().requestTicket( new IMogoTicketCallback() { @Override - public void onSuccess( String ticket ) { + public void onTicketGot( String ticket ) { Logger.d( TAG, "ticket = %s", ticket ); - SpStorage.setTicket( ticket ); - if ( after != null ) { - after.run(); - } } @Override public void onError( int code, String msg ) { Logger.w( TAG, "code = %s, msg = %s", code, msg ); - if ( !TextUtils.isEmpty( Utils.getSn() ) ) { - if ( after != null ) { - after.run(); - } - } else { - prepareBaseService(1_000L); + } + + @Override + public void onLoginSuccess( String token, String sn ) { + if ( after != null ) { + after.run(); } } } ); diff --git a/config.gradle b/config.gradle index db13c622d0..f0a58756c4 100644 --- a/config.gradle +++ b/config.gradle @@ -101,8 +101,8 @@ targetSdkVersion : 22, moduleextensions : "com.mogo.module:module-extensions:${MOGO_MODULE_EXTENSIONS_VERSION}", carcall : "com.mogo.module.carchatting:module-carchatting:${CARCHATTING_VERSION}", carcallprovider : "com.mogo.module.carchatting:module-carchatting-provider:${CARCHATTINGPROVIDER_VERSION}", - guideshow : "com.mogo.module.guideshow:module-guideshow:${MOGO_MODULE_GUIDESHOW_VERSION}", - guideshowprovider : "com.mogo.module.guideshow:module-guideshow-provider:${MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION}", +// guideshow : "com.mogo.module.guideshow:module-guideshow:${MOGO_MODULE_GUIDESHOW_VERSION}", +// guideshowprovider : "com.mogo.module.guideshow:module-guideshow-provider:${MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION}", // 在线车辆 moduleonlinecar : "com.mogo.module:module-onlinecar:${MOGO_MODULE_ONLINECAR_VERSION}", // V2X diff --git a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java index 5090b53910..2a23051695 100644 --- a/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java +++ b/foudations/mogo-base-services-apk/src/main/java/com/mogo/base/services/passport/PassportManager.java @@ -53,7 +53,7 @@ class PassportManager implements IMogoPassportManager { Logger.d( TAG, "success" ); SpStorage.setTicket( ticket ); if ( callback != null ) { - callback.onSuccess( ticket ); + callback.onTicketGot( ticket ); } } diff --git a/foudations/mogo-base-services-sdk/build.gradle b/foudations/mogo-base-services-sdk/build.gradle index 8b6cd89281..f2bd559880 100644 --- a/foudations/mogo-base-services-sdk/build.gradle +++ b/foudations/mogo-base-services-sdk/build.gradle @@ -34,7 +34,7 @@ dependencies { // 长链 implementation 'com.zhidao.socket:built-in-socket:1.0.15' // passport - implementation 'com.zhidao.tcloginsdk:tclogin:1.0.9' + implementation 'com.zhidao.tcloginsdk:tclogin:1.1.0' annotationProcessor 'com.elegant.spi:compiler:1.0.3' diff --git a/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java b/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java index 5ff405fa41..8f77ef1ecb 100644 --- a/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java +++ b/foudations/mogo-base-services-sdk/src/main/java/com/mogo/base/services/passport/PassportManager.java @@ -11,8 +11,9 @@ import com.mogo.service.passport.IMogoTicketCallback; import com.mogo.utils.logger.Logger; import com.zhidao.accountsdk.manager.CarPadClientManagerImpl; import com.zhidao.accountsdk.manager.TicketInfoCallback; -import com.zhidao.accountsdk.network.NetEnvironManager; import com.zhidao.tcloginsdk.LoginManager; +import com.zhidao.tcloginsdk.model.TokenData; +import com.zhidao.tcloginsdk.network.LoginCallback; public /** @@ -29,13 +30,14 @@ class PassportManager implements IMogoPassportManager { private static volatile PassportManager sInstance; - private PassportManager(){} + private PassportManager() { + } @Keep - public static PassportManager getInstance(){ - if( sInstance == null ){ - synchronized( PassportManager.class ) { - if( sInstance == null ){ + public static PassportManager getInstance() { + if ( sInstance == null ) { + synchronized ( PassportManager.class ) { + if ( sInstance == null ) { sInstance = new PassportManager(); } } @@ -43,30 +45,46 @@ class PassportManager implements IMogoPassportManager { return sInstance; } - public synchronized void release(){ + public synchronized void release() { sInstance = null; } @Override public void requestTicket( final IMogoTicketCallback callback ) { - getTicket( new TicketInfoCallback() { + LoginManager.getInstance( mContext ).login( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE, DebugConfig.getProductFlavor(), new LoginCallback() { @Override - public void onSuccess( String ticket ) { - Logger.d( TAG, "success" ); - SpStorage.setTicket( ticket ); + public void onSuccess( TokenData.TokenResult result ) { if ( callback != null ) { - callback.onSuccess( ticket ); + callback.onLoginSuccess( result.token, result.sn ); } + getTicket( new TicketInfoCallback() { + @Override + public void onSuccess( String ticket ) { + Logger.d( TAG, "success" ); + SpStorage.setTicket( ticket ); + if ( callback != null ) { + callback.onTicketGot( ticket ); + } + } + + @Override + public void onFailure( int code ) { + Logger.d( TAG, "fail" ); + if ( callback != null ) { + callback.onError( code, "getTicket error." ); + } + } + } ); } @Override - public void onFailure( int code ) { - Logger.d( TAG, "fail" ); + public void onFailure( int code, String msg ) { if ( callback != null ) { - callback.onError( code, "error." ); + callback.onError( code, "login: " + msg ); } } } ); + } private void getTicket( TicketInfoCallback callback ) { @@ -96,6 +114,5 @@ class PassportManager implements IMogoPassportManager { mode = DebugConfig.NET_MODE_QA; } LoginManager.getInstance( context ).setNetEnviron( mode ); - LoginManager.getInstance( context ).login(DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE, DebugConfig.getProductFlavor()); } } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index c38e5425c7..360dbb622b 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -110,35 +110,6 @@ public class AbsMogoApplication extends Application { } -// private static void initAccountSdk() { -// int mode = DebugConfig.getNetMode(); -// if ( mode == DebugConfig.NET_MODE_DEMO ) { -// // 演示环境用 qa 的 -// mode = DebugConfig.NET_MODE_QA; -// } -// AccountClientManager.init( sApp, mode, NetEnvironManager.OS_2C, "os2.0-launcher" ); -// getTicket( new TicketInfoCallback() { -// @Override -// public void onSuccess( String ticket ) { -// SpStorage.setTicket( ticket ); -// Logger.w( TAG, "request ticket success" ); -// } -// -// @Override -// public void onFailure( int code, String msg ) { -// Logger.w( TAG, "request ticket error code = %d, msg = %s", code, msg ); -// } -// } ); -// } -// -// private static void getTicket( TicketInfoCallback callback ) { -// if ( DebugConfig.isLauncher() ) { -// AccountClientManager.getTicket( callback ); -// } else { -// AccountClientManager.getAppTicket( callback ); -// } -// } - private static void initNetConfig() { try { diff --git a/gradle.properties b/gradle.properties index 5c9f866ed9..4809a406b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -60,7 +60,7 @@ MOGO_MODULE_V2X_VERSION=1.2.1.20 ## 工程外部模块 # 探路 -MOGO_MODULE_TANLU_VERSION=1.3.1.5 +MOGO_MODULE_TANLU_VERSION=1.3.1.6 # 车聊聊 CARCHATTING_VERSION=1.4.6 # 车聊聊接口 @@ -78,7 +78,7 @@ MOGO_MODULE_PUSH_NOOP_VERSION=1.1.5.6 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 # 探路上报和分享模块 -TANLULIB_VERSION=1.3.1.5 +TANLULIB_VERSION=1.3.1.6 MOGO_MODULE_EVENT_PANEL_VERSION = 1.0.0-SNAPSHOT MOGO_MODULE_EVENT_PANEL_NOOP_VERSION = 1.0.0-SNAPSHOT #左侧面板模块 diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java index 9afad4c28c..72c5960fd4 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/DialogImpl.java @@ -2,7 +2,8 @@ package com.mogo.module.common.wm; import android.app.Dialog; -import android.content.Context; +import android.view.View; +import android.view.ViewGroup; import com.mogo.module.common.dialog.BaseFloatDialog; import com.mogo.utils.logger.Logger; @@ -12,12 +13,15 @@ import com.mogo.utils.logger.Logger; */ class DialogImpl implements IWindowManagerView { private Dialog dialog; + private View contentView; + @Override public void init(WindowManagerView.WMViewParams params) { Logger.d("DialogImpl", "init===="); dialog = new BaseFloatDialog(params.mContext); - Logger.d("DialogImpl","params view : " + params.mContentView); - dialog.setContentView(params.mContentView); + contentView = params.mContentView; + Logger.d("DialogImpl", "params view : " + contentView); + dialog.setContentView(contentView); } @Override @@ -32,6 +36,12 @@ class DialogImpl implements IWindowManagerView { @Override public void hide() { + /* + * 取得view的父组件,然后移除view + */ + if (contentView != null) { + ((ViewGroup) contentView.getParent()).removeView(contentView); + } dialog.dismiss(); } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java index 0110f42f1f..61c20a0d37 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java @@ -152,7 +152,7 @@ public class EventDispatchCenter implements * * @param callback */ - void setMapLoadedCallback( Runnable callback ){ + void setMapLoadedCallback( Runnable callback ) { this.mMapLoadedCallback = callback; } @@ -162,6 +162,21 @@ public class EventDispatchCenter implements mMapLoadedCallback.run(); mMapLoadedCallback = null; } + + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } + while ( iterator.hasNext() ) { + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onMapLoaded(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + } } @Override @@ -466,46 +481,46 @@ public class EventDispatchCenter implements } @Override - public void showCarLocationInfo(CarLocationInfo info) { + public void showCarLocationInfo( CarLocationInfo info ) { Iterator< IMogoObuDataChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getObuDataChangedListeners(); if ( iterator == null ) { return; } while ( iterator.hasNext() ) { - iterator.next().showCarLocationInfo(info); + iterator.next().showCarLocationInfo( info ); } } @Override - public void showOtherInfo(String info) { + public void showOtherInfo( String info ) { Iterator< IMogoObuDataChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getObuDataChangedListeners(); if ( iterator == null ) { return; } while ( iterator.hasNext() ) { - iterator.next().showOtherInfo(info); + iterator.next().showOtherInfo( info ); } } @Override - public void showTrafficLightInfo(TrafficLightInfo info) { + public void showTrafficLightInfo( TrafficLightInfo info ) { Iterator< IMogoObuDataChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getObuDataChangedListeners(); if ( iterator == null ) { return; } while ( iterator.hasNext() ) { - iterator.next().showTrafficLightInfo(info); + iterator.next().showTrafficLightInfo( info ); } } @Override - public void showCarEventInfo(CarEventInfo info) { + public void showCarEventInfo( CarEventInfo info ) { Iterator< IMogoObuDataChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getObuDataChangedListeners(); if ( iterator == null ) { return; } while ( iterator.hasNext() ) { - iterator.next().showCarEventInfo(info); + iterator.next().showCarEventInfo( info ); } } } diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi-1920x1000/share_real_time_traffic.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi-1920x1000/share_real_time_traffic.png index 709879f3e4..9504c2bc87 100644 Binary files a/modules/mogo-module-share/src/main/res/drawable-xhdpi-1920x1000/share_real_time_traffic.png and b/modules/mogo-module-share/src/main/res/drawable-xhdpi-1920x1000/share_real_time_traffic.png differ diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java index c8816bf2ca..05fa325662 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.IntentFilter; import android.os.Bundle; import android.provider.Settings; +import android.view.MotionEvent; import android.view.View; import androidx.annotation.NonNull; @@ -11,11 +12,14 @@ import androidx.fragment.app.Fragment; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNaviListener; +import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.common.entity.V2XMessageEntity; @@ -53,7 +57,8 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @Route(path = V2XConst.PATH_V2X_UI) public class V2XModuleProvider implements IMogoModuleProvider, - IMogoStatusChangedListener { + IMogoStatusChangedListener, + IMogoMapListener { private final String TAG = "V2XMocduleProvider"; private Context mContext; @@ -125,6 +130,9 @@ public class V2XModuleProvider implements handleAdas(); initData(); + + V2XServiceManager.getMogoRegisterCenter().registerMogoMapListener(V2XConst.MODULE_NAME, this); + // 注册广播接收场景弹窗使用的 SceneBroadcastReceiver localReceiver = new SceneBroadcastReceiver(); LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(context); @@ -145,16 +153,12 @@ public class V2XModuleProvider implements } private void initData() { - //初始化获得自车求助状态 - initCarForHelpStatus(); - try { // 查询ACC状态 SharedPrefsMgr.getInstance(V2XUtils.getApp()).putBoolean("descriptor_ACC_STATUS", isAccOn()); if (isAccOn()) { // 记录开机时间 FatigueDrivingUtils.refreshAccOnTime(); - initCarForHelpStatus(); // 刷新配置文件 refreshStrategyConfig(); } else { @@ -293,4 +297,40 @@ public class V2XModuleProvider implements } }); } + + @Override + public void onMapLoaded() { + //初始化获得自车求助状态 + initCarForHelpStatus(); + } + + @Override + public void onTouch(MotionEvent motionEvent) { + + } + + @Override + public void onPOIClick(MogoPoi poi) { + + } + + @Override + public void onMapClick(MogoLatLng latLng) { + + } + + @Override + public void onLockMap(boolean isLock) { + + } + + @Override + public void onMapModeChanged(EnumMapUI ui) { + + } + + @Override + public void onMapChanged(MogoLatLng latLng, float zoom, float tilt, float bearing) { + + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpButton.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpButton.java index 84d9191d17..5adcb00886 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpButton.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpButton.java @@ -50,15 +50,19 @@ public class V2XSeekHelpButton implements IV2XButton { @Override public void show() { registerVoice(); - tv = V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2); - tv.setText("取消\n求助"); - tv.setVisibility(View.VISIBLE); - tv.setBackgroundResource(R.drawable.bg_v2x_event_live_show); - tv.setOnClickListener(v -> { - //调用取消求助接口 - // TODO: 2020/5/18 回调,显示对话框 - doAction(); - }); + try { + tv = V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2); + tv.setText("取消\n求助"); + tv.setVisibility(View.VISIBLE); + tv.setBackgroundResource(R.drawable.bg_v2x_event_live_show); + tv.setOnClickListener(v -> { + //调用取消求助接口 + // TODO: 2020/5/18 回调,显示对话框 + doAction(); + }); + } catch (Exception e) { + e.printStackTrace(); + } } @Override diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java index 22ddf0dfd5..ccab292a65 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpDialog.java @@ -86,11 +86,9 @@ public class V2XSeekHelpDialog extends ConstraintLayout implements View.OnClickL try { Logger.d(TAG, "使用windowManager实现"); if (!isShown) { - if (windowManager == null) { - windowManager = new WindowManagerView.Builder( - V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext() - ).contentView(this).build(); - } + windowManager = new WindowManagerView.Builder( + V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2).getContext() + ).contentView(this).build(); windowManager.show(); isShown = true; AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("确定要解除求助状态吗"); diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index d835db36f1..9f0cc0016a 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -14,6 +14,7 @@ app:alignContent="flex_start" app:alignItems="center" app:flexDirection="row" + android:paddingStart="@dimen/dp_150" app:flexWrap="wrap" app:justifyContent="flex_start"> diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java index d53d29693b..59dad0341e 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java @@ -59,6 +59,7 @@ public interface IMogoModuleProvider extends IProvider { * * @return */ + @Deprecated IMogoMapListener getMapListener(); /** diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoTicketCallback.java b/services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoTicketCallback.java index 306e71c3bd..ace2fc6b05 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoTicketCallback.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/passport/IMogoTicketCallback.java @@ -9,7 +9,9 @@ public */ interface IMogoTicketCallback { - void onSuccess( String ticket ); + void onTicketGot( String ticket ); void onError( int code, String msg ); + + void onLoginSuccess(String token, String sn); }