diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index e4d32ec638..12d823c3e1 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -267,7 +267,7 @@ public class DebugConfig { return sLoadGuideModule; } - private static String SP_GUIDE = "SP_GUIDE_2020_09_09"; + public static String SP_GUIDE = "SP_GUIDE_2020_09_09"; public static String getSpGuide() { return SP_GUIDE; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java index 6f766975cd..2070c445f7 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java @@ -16,9 +16,11 @@ import androidx.annotation.Nullable; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; +import com.mogo.commons.context.ContextHolderUtil; import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.R; +import com.mogo.service.datamanager.IMogoDataChangedListener; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.ViewUtils; import com.mogo.utils.glide.GlideApp; @@ -34,6 +36,17 @@ public class MyLocationUtil { private static boolean isLoadingIcon = false; private static boolean needEmphasizeMyLocation = false; + static { + MogoApisHandler.getInstance().getApis().getDataManagerApi() + .registerDataListener( "ADAS", data ->{ + if ( data == null ) { + emphasizeMyLocation(); + } else if( data instanceof String ){ + setMyLocationIconUrl( ContextHolderUtil.getContext(), ( ( String ) data )); + } + } ); + } + public static void emphasizeMyLocation(){ if (!isLoadingIcon) { MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().emphasizeMyLocation(); diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/SPConst.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/SPConst.java index 36ed5551d0..f20e587a51 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/SPConst.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/SPConst.java @@ -1,11 +1,13 @@ package com.mogo.module.common.utils; +import com.mogo.commons.debug.DebugConfig; + /** * 多模块之间SP状态公共类 */ public class SPConst { - private static String SP_GUIDE = "SP_GUIDE_2020_09_09"; + private static String SP_GUIDE = DebugConfig.SP_GUIDE; //用于多模块之间引导状态判断 public static String getSpGuide() { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListInfo.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListInfo.java deleted file mode 100644 index 109850fae3..0000000000 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListInfo.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.module.extensions.userinfo; - -import com.mogo.module.common.entity.OwnCarModelEntity; - -import java.util.List; - -public class CarModelListInfo { - private String sn; - /** - * 热心指数 eg: 1 1.5 2 2.5 - */ - private float enthusiasmIndex; - private List imageData; - - public String getSn() { - return sn; - } - - public void setSn(String sn) { - this.sn = sn; - } - - public float getEnthusiasmIndex() { - return enthusiasmIndex; - } - - public void setEnthusiasmIndex(float enthusiasmIndex) { - this.enthusiasmIndex = enthusiasmIndex; - } - - public List getImageData() { - return imageData; - } - - public void setImageData(List imageData) { - this.imageData = imageData; - } - - @Override - public String toString() { - return "CarModelListInfo{" + - "sn='" + sn + '\'' + - ", enthusiasmIndex=" + enthusiasmIndex + - ", imageData=" + imageData + - '}'; - } -} diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListResponse.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListResponse.java deleted file mode 100644 index ef5e78f3d6..0000000000 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/userinfo/CarModelListResponse.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.mogo.module.extensions.userinfo; - -import com.mogo.commons.data.BaseData; -import com.mogo.module.common.entity.OwnCarModelEntity; - -import java.util.List; - -/** - * 请求根据热心指数获取自车图标列表的响应类 - * - * @author tongchenfei - */ -public class CarModelListResponse extends BaseData { - private CarModelListInfo result; - - public CarModelListInfo getResult() { - return result; - } - - public void setResult(CarModelListInfo result) { - this.result = result; - } - - @Override - public String toString() { - return "CarModelListResponse{" + - "result=" + result + - ", code=" + code + - ", msg='" + msg + '\'' + - '}'; - } -} diff --git a/services/mogo-service-api/build.gradle b/services/mogo-service-api/build.gradle index 5b85a74290..074c7bcd16 100644 --- a/services/mogo-service-api/build.gradle +++ b/services/mogo-service-api/build.gradle @@ -45,9 +45,11 @@ dependencies { if (Boolean.valueOf(RELEASE)) { api rootProject.ext.dependencies.mogomapapi api rootProject.ext.dependencies.skinsupport + api rootProject.ext.dependencies.mogocommons } else { api project(":libraries:mogo-map-api") api project(":skin:mogo-skin-support") + api project(":foudations:mogo-commons") } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListInfo.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListInfo.java similarity index 91% rename from services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListInfo.java rename to services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListInfo.java index bfd3601652..850bd0b741 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListInfo.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListInfo.java @@ -1,6 +1,4 @@ -package com.mogo.service.impl.adas; - -import com.mogo.module.common.entity.OwnCarModelEntity; +package com.mogo.service.adas.entity; import java.util.List; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListResponse.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListResponse.java similarity index 94% rename from services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListResponse.java rename to services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListResponse.java index 8775e4bbd5..f912e13050 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelListResponse.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/CarModelListResponse.java @@ -1,4 +1,4 @@ -package com.mogo.service.impl.adas; +package com.mogo.service.adas.entity; import com.mogo.commons.data.BaseData; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/OwnCarModelEntity.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/OwnCarModelEntity.java similarity index 96% rename from modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/OwnCarModelEntity.java rename to services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/OwnCarModelEntity.java index 91cc8a7f46..fa04bb961d 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/OwnCarModelEntity.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/OwnCarModelEntity.java @@ -1,4 +1,4 @@ -package com.mogo.module.common.entity; +package com.mogo.service.adas.entity; /** * 自车模型实体,用于从服务端获取不同等级的自车模型信息以及将此信息传递给adas diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index ceb7918bc7..22268036f0 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -49,15 +49,12 @@ dependencies { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi - implementation rootProject.ext.dependencies.modulecommon - implementation rootProject.ext.dependencies.modulecommon } else { api project(":libraries:mogo-map") implementation project(":libraries:mogo-map-api") implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") implementation project(":services:mogo-service-api") - implementation project(":modules:mogo-module-common") } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelInfoNetApiServices.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelInfoNetApiServices.java index a23e8553bc..17f345bd21 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelInfoNetApiServices.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/CarModelInfoNetApiServices.java @@ -1,6 +1,7 @@ package com.mogo.service.impl.adas; import com.mogo.commons.debug.DebugConfig; +import com.mogo.service.adas.entity.CarModelListResponse; import java.util.Map; @@ -28,7 +29,7 @@ interface CarModelInfoNetApiServices { } @GET("yycp-userDataService/app/enthusiasm/getEnthusiasmInfo/v1") - Observable requestCarModelList(@QueryMap Map params); + Observable< CarModelListResponse > requestCarModelList( @QueryMap Map params); } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 091487d27e..bb1357df3d 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -13,9 +13,6 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; import com.mogo.map.uicontroller.EnumMapUI; -import com.mogo.module.common.MogoApisHandler; -import com.mogo.module.common.map.MyLocationUtil; -import com.mogo.module.common.utils.CarSeries; import com.mogo.service.MogoServicePaths; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.adas.IMogoAdasCarDataCallback; @@ -28,7 +25,10 @@ import com.mogo.service.adas.entity.ADASCarStateInfo; import com.mogo.service.adas.entity.ADASRecognizedResult; import com.mogo.service.adas.entity.ADASWarnMessage; import com.mogo.service.adas.entity.AdasOCHData; +import com.mogo.service.adas.entity.CarModelListResponse; +import com.mogo.service.datamanager.IMogoDataManager; import com.mogo.service.impl.singleton.SingletonsHolder; +import com.mogo.service.network.IMogoNetwork; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; @@ -64,8 +64,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import io.reactivex.schedulers.Schedulers; -import static com.mogo.module.common.utils.SPConst.getSpGuide; - /** * @author congtaowang * @since 2020-03-10 @@ -196,11 +194,11 @@ public class MogoADASController implements IMogoADASController { public void showADAS() { if ( DebugConfig.isNeedLoadGuideModule() ) { - if ( !SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getBoolean( getSpGuide(), false ) ) { + if ( !SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getBoolean( DebugConfig.getSpGuide(), false ) ) { return; } } - if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + if ( SingletonsHolder.get( IMogoStatusManager.class ).isVrMode() ) { return; } Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); @@ -252,7 +250,7 @@ public class MogoADASController implements IMogoADASController { needEmphasizeMyLocation = true; // 修改自车图标展示 SharedPrefsMgr.getInstance( context ).putString( "MY_LOCATION_CONFIG", carStyleUrl ); - MyLocationUtil.setMyLocationIconUrl( context, carStyleUrl ); + SingletonsHolder.get( IMogoDataManager.class ).syncData( "ADAS", carStyleUrl ); } @Override @@ -273,7 +271,7 @@ public class MogoADASController implements IMogoADASController { @Override public void clickSettingBack() { if ( needEmphasizeMyLocation ) { - MyLocationUtil.emphasizeMyLocation(); + SingletonsHolder.get( IMogoDataManager.class ).syncData( "ADAS", null ); } needEmphasizeMyLocation = false; @@ -348,10 +346,10 @@ public class MogoADASController implements IMogoADASController { } // 仅在 vr 模式下显示 adas 识别车辆 - if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + if ( !SingletonsHolder.get( IMogoStatusManager.class ).isVrMode() ) { return; } - if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isMainPageLaunched() ) { + if ( !SingletonsHolder.get( IMogoStatusManager.class ).isMainPageLaunched() ) { return; } handleAdasRecognizedData( ownerCarStateRectList ); @@ -375,7 +373,7 @@ public class MogoADASController implements IMogoADASController { private boolean useTestSn = false; private void invokeShowADASOperation() { - int delay = CarSeries.isF8xxSeries() ? 0 : 100; + int delay = 0; UiThreadHandler.postDelayed( () -> { @@ -386,7 +384,7 @@ public class MogoADASController implements IMogoADASController { return; } - if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + if ( SingletonsHolder.get( IMogoStatusManager.class ).isVrMode() ) { return; } @@ -541,7 +539,8 @@ public class MogoADASController implements IMogoADASController { params.put( "sn", Utils.getSn() ); // currentSn = useTestSn ? TEST_SN : Utils.getSn(); // params.put("sn", currentSn); - MogoApisHandler.getInstance().getApis().getNetworkApi().create( CarModelInfoNetApiServices.class, CarModelInfoNetApiServices.getBaseUrl() ). + + SingletonsHolder.get( IMogoNetwork.class ).create( CarModelInfoNetApiServices.class, CarModelInfoNetApiServices.getBaseUrl() ). requestCarModelList( params ). subscribeOn( Schedulers.io() ). observeOn( Schedulers.io() ). diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java index 9356ba3b4a..eb14cc7f9b 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/singleton/SingletonsHolder.java @@ -2,6 +2,7 @@ package com.mogo.service.impl.singleton; import com.alibaba.android.arouter.facade.template.IProvider; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.service.datamanager.IMogoDataManager; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.impl.fragmentmanager.MogoFragmentManager; import com.mogo.service.impl.map.MogoMapService; @@ -35,6 +36,7 @@ public class SingletonsHolder { sSingletons.put( IMogoNetwork.class, new MogoNetWorkService() ); sSingletons.put( IMogoMsgCenter.class, new MogoMsgCenter() ); sSingletons.put( IMogoStatusManager.class, new MogoStatusManager() ); + sSingletons.put( IMogoDataManager.class, ARouter.getInstance().navigation( IMogoDataManager.class ) ); sSingletons.put( IMogoRefreshStrategyController.class, ARouter.getInstance().navigation( IMogoRefreshStrategyController.class ) ); }