diff --git a/.idea/misc.xml b/.idea/misc.xml index 21e99e2dc0..cd77a1f062 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 7e8007defa..29512bd868 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -25,7 +25,7 @@ android { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters 'armeabi-v7a' + abiFilters "armeabi-v7a" } } } @@ -192,8 +192,6 @@ dependencies { implementation rootProject.ext.dependencies.guideshowprovider implementation rootProject.ext.dependencies.guideshow - implementation rootProject.ext.dependencies.moduleadcard - implementation rootProject.ext.dependencies.moduleV2x implementation rootProject.ext.dependencies.moduletanlu, { exclude group: 'com.mogo.module', module: 'module-share' @@ -290,4 +288,28 @@ def getGitCommit() { gitCommit } +afterEvaluate { + it.getTasks().iterator().forEachRemaining { + def nameLowCase = it.name + + if (nameLowCase.startsWith("assemble") + && nameLowCase.contains("Independent") + && (nameLowCase.endsWith("Debug") || nameLowCase.endsWith("Release"))) { + it.group = "assembleIndependent" + } else if (nameLowCase.startsWith("assemble") + && nameLowCase.contains("Launcher") + && (nameLowCase.endsWith("Debug") || nameLowCase.endsWith("Release"))) { + it.group = "assembleLauncher" + } else if (nameLowCase.startsWith("install") + && nameLowCase.contains("Independent") + && (nameLowCase.endsWith("Debug") || nameLowCase.endsWith("Release"))) { + it.group = "installIndependent" + } else if (nameLowCase.startsWith("install") + && nameLowCase.contains("Launcher") + && (nameLowCase.endsWith("Debug") || nameLowCase.endsWith("Release"))) { + it.group = "installLauncher" + } + } +} + //apply plugin: 'arouterhook' \ 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 bdb64675f9..369ec564f2 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -9,7 +9,6 @@ import com.auto.zhidao.logsdk.CrashSystem; import com.bytedance.boost_multidex.BoostMultiDex; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; -import com.mogo.module.adcard.AdCardConstants; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.carchatting.card.CallChatConstant; import com.mogo.module.common.MogoModule; @@ -48,11 +47,9 @@ public class MogoApplication extends AbsMogoApplication { crashSystem.setDebug(BuildConfig.DEBUG); Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF); -// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME)); MogoModulePaths.addModule(new MogoModule(AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME)); //运营位卡片,需要默认显示,放在第一个加载 -// MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME)); if (DebugConfig.isLauncher()) { MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE)); } @@ -63,7 +60,6 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule(new MogoModule(ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY)); MogoModulePaths.addBaseModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI)); - // 暂时去掉推送 MogoModulePaths.addModule(new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME)); if (!DebugConfig.isLauncher()) { diff --git a/config.gradle b/config.gradle index 2b5b3af387..c85e51e62a 100644 --- a/config.gradle +++ b/config.gradle @@ -123,7 +123,7 @@ ext { mogomoduleauth : "com.mogo.module:module-authorize:${MOGO_MODULE_AUTHORIZE_VERSION}", mogomoduleguide : "com.mogo.module:module-guide:${MOGO_MODULE_GUIDE_VERSION}", // 长链 - socketsdk : 'com.zhidao.socketsdk:socketsdk:2.1.1', + socketsdk : 'com.zhidao.socketsdk:socketsdk:2.1.4', socketsdkconnsvrprotoco : 'com.zhidao.ptech:connsvr-protoco:0.1.23', socketsdkprotobufjava : 'com.google.protobuf:protobuf-java:3.5.1', diff --git a/foudations/mogo-connection/src/main/java/com/mogo/connection/socket/SocketManager.java b/foudations/mogo-connection/src/main/java/com/mogo/connection/socket/SocketManager.java index 2faf7b6bed..735eefdd9e 100644 --- a/foudations/mogo-connection/src/main/java/com/mogo/connection/socket/SocketManager.java +++ b/foudations/mogo-connection/src/main/java/com/mogo/connection/socket/SocketManager.java @@ -86,6 +86,10 @@ public class SocketManager implements IMogoSocketManager, OnSocketReceiveCallbac } @Override + public void onMessageReceived( byte[] content ) { + onMessageReceived( content, 0); + } + public void onMessageReceived( byte[] content, long msgId ) { try { MogoConnsvr.Payload payload = MogoConnsvr.Payload.parseFrom( content ); diff --git a/gradle.properties b/gradle.properties index 7f08b3a6fb..7ba83bc94d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -59,9 +59,9 @@ MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.9 ## 工程外部模块 # 探路 -MOGO_MODULE_TANLU_VERSION=1.2.1.13 +MOGO_MODULE_TANLU_VERSION=1.2.1.15 # 车聊聊 -CARCHATTING_VERSION=1.2.0 +CARCHATTING_VERSION=1.4.6 # 车聊聊接口 CARCHATTINGPROVIDER_VERSION=1.2.0 # 视频引导 @@ -71,15 +71,15 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.2 # v2x -MOGO_MODULE_V2X_VERSION=1.1.53 +MOGO_MODULE_V2X_VERSION=1.1.533 # 推送 -MOGO_MODULE_PUSH_VERSION=1.1.5.5 +MOGO_MODULE_PUSH_VERSION=1.1.5.7 MOGO_MODULE_PUSH_BASE_VERSION=1.1.5.5 -MOGO_MODULE_PUSH_NOOP_VERSION=1.1.5.5 +MOGO_MODULE_PUSH_NOOP_VERSION=1.1.5.6 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 # 探路上报和分享模块 -TANLULIB_VERSION=1.2.1.13 +TANLULIB_VERSION=1.2.1.15 # Boost分包 BOOST_MULTIDEX_VERSION=1.0.0 diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 67a09c93a9..b02cbfaee4 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -127,8 +127,8 @@ public class AMapNaviViewWrapper implements IMogoMapView, options.setTrafficLayerEnabled( false ); // 设置导航界面是否显示路线全览按钮。 options.setRouteListButtonShow( false ); - // 设置导航状态下屏幕是否一直开启。 - options.setScreenAlwaysBright( true ); + // 设置屏幕是否常亮,默认开启 + options.setScreenAlwaysBright( false ); // 设置交通播报是否打开(只适用于驾车导航,需要联网)。 options.setTrafficInfoUpdateEnabled( true ); // 设置摄像头播报是否打开(只适用于驾车导航)。 diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java index beb26f4b71..78e4320bbd 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppFilterImpl.java @@ -4,15 +4,11 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; -import com.mogo.module.apps.model.AppEnum; -import com.mogo.module.apps.model.AppEnumHelper; import com.mogo.module.common.utils.CarSeries; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; import java.util.List; -import java.util.Map; /** * @author congtaowang diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index 5c7b08890a..ab5af1e04c 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -10,12 +10,14 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.MvpFragment; import com.mogo.module.apps.adapter.AppIndicatorAdapter; import com.mogo.module.apps.anim.AnimWrapper; import com.mogo.module.apps.applaunch.AppLauncher; import com.mogo.module.apps.applaunch.BaseAppLauncher; import com.mogo.module.apps.applaunch.InternalFunctionLauncher; +import com.mogo.module.apps.model.AppEnum; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.NavigatorApps; import com.mogo.module.apps.view.OnAiAssistClickListener; @@ -128,7 +130,15 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi properties.put( "appname", appLabel ); } if ( !TextUtils.equals( "全部应用", app.getName() ) ) { - properties.put( "appversion", CommonUtils.getVersionName( getContext(), app.getPackageName() ) ); + if ( TextUtils.equals( "com.zhidao.music", app.getPackageName() ) ) { + if ( AppUtils.isAppInstalled( AbsMogoApplication.getApp(), AppEnum.KwMusic.getPkg() ) ) { + properties.put( "appversion", CommonUtils.getVersionName( getContext(), AppEnum.KwMusic.getPkg() ) ); + } else if ( AppUtils.isAppInstalled( AbsMogoApplication.getApp(), AppEnum.QQMusic.getPkg() ) ) { + properties.put( "appversion", CommonUtils.getVersionName( getContext(), AppEnum.QQMusic.getPkg() ) ); + } + } else { + properties.put( "appversion", CommonUtils.getVersionName( getContext(), app.getPackageName() ) ); + } } else { properties.put( "appversion", CommonUtils.getVersionName( getContext() ) ); } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java index 34a738ac9e..fbaae3255b 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsListActivity.java @@ -1,6 +1,7 @@ package com.mogo.module.apps; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Build; @@ -30,7 +31,7 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent private BottomSheetBehavior mBottomSheetBehavior; private IMogoFragmentManager mMogoFragmentManager; - public static void start( Activity context ) { + public static void start( Context context ) { Intent starter = new Intent( context, AppsListActivity.class ); context.startActivity( starter ); } @@ -46,6 +47,24 @@ public class AppsListActivity extends MvpActivity< AppsListView, AppsListPresent AppServiceHandler.getApis().getStatusManagerApi().setAppListUIShow( TAG, true ); } + @Override + protected void onStart() { + super.onStart(); + try { + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); + } catch ( Exception e ) { + } + } + + @Override + protected void onRestart() { + super.onRestart(); + try { + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); + } catch ( Exception e ) { + } + } + @Override protected int getLayoutId() { return R.layout.module_apps_activity_list; diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java index f7e95d2ddc..916b265020 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java @@ -1,17 +1,15 @@ package com.mogo.module.apps; -import android.text.TextUtils; - import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; import com.alibaba.android.arouter.launcher.ARouter; -import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.Presenter; import com.mogo.module.apps.applaunch.AppLaunchFilter; import com.mogo.module.apps.applaunch.AppLauncher; import com.mogo.module.apps.applaunch.CardAppLauncher; import com.mogo.module.apps.applaunch.GuideShowLauncher; +import com.mogo.module.apps.applaunch.InternalFunctionLauncher; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.AppsModel; import com.mogo.module.apps.model.UnScannedApps; @@ -24,7 +22,6 @@ import com.mogo.utils.ThreadPoolService; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; -import java.sql.ClientInfoStatus; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -54,11 +51,13 @@ public class AppsPresenter extends Presenter< AppsView > { super( view ); mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); mCardManager = mApis.getCardManagerApi(); + InternalFunctionLauncher internalFunctionLauncher = new InternalFunctionLauncher( getContext() ); CardAppLauncher cardAppLauncher = new CardAppLauncher( this, mCardManager ); GuideShowLauncher guideShowLauncher = new GuideShowLauncher( mApis.getMapServiceApi().getNavi( getContext() ) ); + internalFunctionLauncher.setNext( cardAppLauncher ); cardAppLauncher.setNext( guideShowLauncher ); guideShowLauncher.setNext( new AppLauncher() ); - mLauncher = cardAppLauncher; + mLauncher = internalFunctionLauncher; } @Override @@ -130,7 +129,7 @@ public class AppsPresenter extends Presenter< AppsView > { if ( appInfo == null ) { continue; } - if ( TextUtils.equals( appInfo.getPackageName(), app.getPackageName() ) ) { + if ( appInfo.equals( app ) ) { addFlag = false; break; } @@ -145,14 +144,6 @@ public class AppsPresenter extends Presenter< AppsView > { } } } -// growthCapacity( result ) -// // 添加介绍入口 -// result.get( result.size() - 1 ).add( new AppInfo( GuideShowLauncher.APP_INFO_NAME_GUIDE_SHOW, getContext().getPackageName(), null, 0, null, R.drawable.module_apps_ic_guide_show ) ); - if ( DebugConfig.isDebug() ) { - // 添加测试入口 - growthCapacity( result ); - result.get( result.size() - 1 ).add( new AppInfo( "包管理程序", "com.mogo.packages.manager", null, 0, null, -1 ) ); - } return result; } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLaunchFilter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLaunchFilter.java index a934c9895a..3bab4c03e6 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLaunchFilter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLaunchFilter.java @@ -14,5 +14,7 @@ public interface AppLaunchFilter { void launch( Context context, AppInfo appInfo ); + void launch( Context context, String pkg ); + void destroy(); } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java index 73c6989b9e..f148156e82 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/AppLauncher.java @@ -21,15 +21,7 @@ public class AppLauncher extends BaseAppLauncher { @Override public void launch( Context context, AppInfo appInfo ) { - try { - if ( LaunchUtils.getLaunchIntentForPackage( context, appInfo.getPackageName() ) != null ) { - AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); - } - LaunchUtils.launchByPkg( context, appInfo.getPackageName() ); - } catch ( Exception e ) { - Logger.e( TAG, e, "error." ); - TipToast.shortTip( R.string.module_apps_str_no_app ); - } + launch( context, appInfo.getPackageName() ); } @Override diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/BaseAppLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/BaseAppLauncher.java index 7b6cadd640..2b27fb3566 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/BaseAppLauncher.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/BaseAppLauncher.java @@ -1,5 +1,13 @@ package com.mogo.module.apps.applaunch; +import android.content.Context; + +import com.mogo.module.apps.AppServiceHandler; +import com.mogo.module.apps.R; +import com.mogo.utils.LaunchUtils; +import com.mogo.utils.TipToast; +import com.mogo.utils.logger.Logger; + /** * @author congtaowang * @since 2020-02-09 @@ -8,6 +16,8 @@ package com.mogo.module.apps.applaunch; */ public abstract class BaseAppLauncher implements AppLaunchFilter { + private static final String TAG = "BaseAppLauncher"; + private AppLaunchFilter mNext; public AppLaunchFilter getNext() { @@ -17,4 +27,17 @@ public abstract class BaseAppLauncher implements AppLaunchFilter { public void setNext( AppLaunchFilter next ) { this.mNext = next; } + + @Override + public void launch( Context context, String pkg ) { + try { + if ( LaunchUtils.getLaunchIntentForPackage( context, pkg ) != null ) { + AppServiceHandler.getApis().getAdasControllerApi().closeADAS(); + } + LaunchUtils.launchByPkg( context, pkg ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + TipToast.shortTip( R.string.module_apps_str_no_app ); + } + } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java index baee9e5b69..75af6c4455 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/InternalFunctionLauncher.java @@ -1,27 +1,34 @@ package com.mogo.module.apps.applaunch; -import android.app.Activity; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.text.TextUtils; +import com.mogo.commons.AbsMogoApplication; import com.mogo.module.apps.AppServiceHandler; import com.mogo.module.apps.AppsListActivity; +import com.mogo.module.apps.R; +import com.mogo.module.apps.model.AppEnum; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.common.map.CustomNaviInterrupter; +import com.mogo.utils.AppUtils; import com.mogo.utils.LaunchUtils; +import com.mogo.utils.TipToast; +import com.mogo.utils.logger.Logger; /** * @author congtaowang * @since 2020-05-14 *

- * 描述 + * 处理一些特殊的跳转 */ public class InternalFunctionLauncher extends BaseAppLauncher { - private Activity mActivity; + private Context mContext; - public InternalFunctionLauncher( Activity activity ) { - this.mActivity = activity; + public InternalFunctionLauncher( Context activity ) { + this.mContext = activity; } @Override @@ -30,7 +37,7 @@ public class InternalFunctionLauncher extends BaseAppLauncher { case "com.autonavi.amapauto": if ( CustomNaviInterrupter.getInstance().interrupt() ) { try { - LaunchUtils.launchByPkg( context, "com.autonavi.amapauto" ); + launch( context, AppEnum.AUTO_NAVI.getPkg() ); } catch ( Exception e ) { e.printStackTrace(); } @@ -39,7 +46,31 @@ public class InternalFunctionLauncher extends BaseAppLauncher { } break; case "com.mogo.launcher.applist": - AppsListActivity.start( mActivity ); + AppsListActivity.start( mContext ); + break; + case "com.zhidao.bluetooth": + if ( TextUtils.equals( "蓝牙音乐", appInfo.getName() ) ) { + startActivity( context, appInfo, "com.zhidao.bluetooth.ui.MusicActivity" ); + } else if ( TextUtils.equals( "蓝牙电话", appInfo.getName() ) ) { + startActivity( context, appInfo, "com.zhidao.bluetooth.ui.MainActivity" ); + } + break; + case "com.zhidao.music": + if ( AppUtils.isAppInstalled( AbsMogoApplication.getApp(), AppEnum.KwMusic.getPkg() ) ) { + try { + launch( context, AppEnum.KwMusic.getPkg() ); + } catch ( Exception e ) { + e.printStackTrace(); + } + } else if ( AppUtils.isAppInstalled( AbsMogoApplication.getApp(), AppEnum.QQMusic.getPkg() ) ) { + try { + launch( context, AppEnum.QQMusic.getPkg() ); + } catch ( Exception e ) { + e.printStackTrace(); + } + } else { + TipToast.shortTip( R.string.module_apps_str_no_app ); + } break; default: if ( getNext() != null ) { @@ -48,6 +79,26 @@ public class InternalFunctionLauncher extends BaseAppLauncher { } } + private void startActivity( Context context, AppInfo target, String page ) { + if ( context == null || target == null ) { + return; + } + if ( TextUtils.isEmpty( page ) ) { + if ( getNext() != null ) { + getNext().launch( context, target ); + return; + } + } + try { + Intent intent = new Intent(); + intent.setComponent( new ComponentName( target.getPackageName(), page ) ); + intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); + context.startActivity( intent ); + } catch ( Exception e ) { + TipToast.shortTip( "APP未安装" ); + } + } + @Override public void destroy() { if ( getNext() != null ) { diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java index d17eee4a88..f6d9fa7c18 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppEnum.java @@ -86,7 +86,8 @@ public enum AppEnum { CanBus( "车辆信息", "com.nwd.can.setting", R.drawable.module_apps_ic_canbus ), // 蓝牙电话 - BT_PHONE( "蓝牙电话", "com.nwd.android.phone", R.drawable.module_apps_ic_bt_phone ), + BT_PHONE_NWD( "蓝牙电话", "com.nwd.android.phone", R.drawable.module_apps_ic_bt_phone ), + BT_PHONE( "蓝牙电话", "com.zhidao.bluetooth", R.drawable.module_apps_ic_bt_phone ), // 本地音乐 LOCAL_MUSIC( "本地音乐", "com.nwd.android.music.ui", R.drawable.module_apps_ic_local_music ), @@ -95,7 +96,8 @@ public enum AppEnum { WEATHER( "天气", "com.zhidao.weather", R.drawable.module_apps_ic_weather ), // 蓝牙音乐 - BT_MUSIC( "蓝牙音乐", "com.nwd.bt.music", R.drawable.module_apps_ic_bt_music ), + BT_MUSIC_NWD( "蓝牙音乐", "com.nwd.bt.music", R.drawable.module_apps_ic_bt_music ), + BT_MUSIC( "蓝牙音乐", "com.zhidao.bluetooth", R.drawable.module_apps_ic_bt_music ), // 高德地图 AUTO_NAVI( "高德地图", "com.autonavi.amapauto", R.drawable.module_apps_ic_auto_navi ), diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppInfo.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppInfo.java index dae51ba27d..62b2c34105 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppInfo.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppInfo.java @@ -68,7 +68,8 @@ public class AppInfo { if ( this == o ) return true; if ( o == null || getClass() != o.getClass() ) return false; AppInfo appInfo = ( AppInfo ) o; - return TextUtils.equals( mPackageName, appInfo.mPackageName ); + return TextUtils.equals( mPackageName, appInfo.mPackageName ) + && TextUtils.equals( mName, appInfo.mName ); } @Override diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java index be2b7b2fc1..12c4c92d54 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/NavigatorApps.java @@ -16,7 +16,7 @@ public class NavigatorApps { private static AppInfo app = new AppInfo( "高德地图", "com.autonavi.amapauto", "", 0, null, R.drawable.module_apps_ic_navigator_navi, 1 ); private static AppInfo app_ = new AppInfo( "高德地图", "com.autonavi.amapauto", "", 0, null, R.drawable.module_apps_ic_navigator_navi_disable, 1 ); // private static AppInfo app2 = new AppInfo( "音乐", "com.tencent.wecarflow", "", 0, null, R.drawable.module_apps_ic_navigator_media, 2 ); - private static AppInfo app2 = new AppInfo( "酷我音乐", "cn.kuwo.kwmusiccar", "", 0, null, R.drawable.module_apps_ic_navigator_media, 2 ); + private static AppInfo app2 = new AppInfo( "音乐", "com.zhidao.music", "", 0, null, R.drawable.module_apps_ic_navigator_media, 2 ); private static AppInfo app3 = new AppInfo( "车聊聊", "com.zhidao.imdemo", "", 0, null, R.drawable.module_apps_ic_navigator_im, 6 ); private static AppInfo app4 = new AppInfo( "全部应用", "com.mogo.launcher.applist", "", 0, null, R.drawable.module_apps_ic_navigator_applist, 4 ); diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/UnScannedApps.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/UnScannedApps.java index 7028085838..b55d9adb37 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/UnScannedApps.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/UnScannedApps.java @@ -1,5 +1,7 @@ package com.mogo.module.apps.model; +import com.mogo.module.common.utils.CarSeries; + import java.util.ArrayList; import java.util.List; @@ -14,11 +16,17 @@ public class UnScannedApps { private static List< AppInfo > sUnScannedApps = new ArrayList<>(); static { - sUnScannedApps.add( new AppInfo( AppEnum.BT_PHONE.getName(), AppEnum.BT_PHONE.getPkg(), null, 0, null, AppEnum.BT_PHONE.getIconResId() ) ); - sUnScannedApps.add( new AppInfo( AppEnum.CanBus.getName(), AppEnum.CanBus.getPkg(), null, 0, null, AppEnum.CanBus.getIconResId() ) ); + if ( CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X ) { + sUnScannedApps.add( new AppInfo( AppEnum.BT_PHONE.getName(), AppEnum.BT_PHONE.getPkg(), null, 0, null, AppEnum.BT_PHONE.getIconResId() ) ); + sUnScannedApps.add( new AppInfo( AppEnum.BT_MUSIC.getName(), AppEnum.BT_MUSIC.getPkg(), null, 0, null, AppEnum.BT_PHONE.getIconResId() ) ); + } else { + sUnScannedApps.add( new AppInfo( AppEnum.BT_PHONE_NWD.getName(), AppEnum.BT_PHONE_NWD.getPkg(), null, 0, null, AppEnum.BT_PHONE_NWD.getIconResId() ) ); + sUnScannedApps.add( new AppInfo( AppEnum.CanBus.getName(), AppEnum.CanBus.getPkg(), null, 0, null, AppEnum.CanBus.getIconResId() ) ); + } } public static List< AppInfo > getUnScannedApps() { return sUnScannedApps; } + } diff --git a/modules/mogo-module-apps/src/main/res/values/strings.xml b/modules/mogo-module-apps/src/main/res/values/strings.xml index 93d46e9929..10a1675519 100644 --- a/modules/mogo-module-apps/src/main/res/values/strings.xml +++ b/modules/mogo-module-apps/src/main/res/values/strings.xml @@ -18,6 +18,13 @@ com.iflytek.inputmethod.pad com.nwd.tools.reboot com.android.car.setting + com.zhidao.bootmanager + com.zhidao.services + com.android.settings + com.android.documentsui + com.android.messaging + com.android.contacts + com.android.dialer com.mogo.launcher diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 289284bae5..e2107ca415 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -25,6 +25,7 @@ import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; +import com.mogo.module.common.utils.CarSeries; import com.mogo.module.main.cards.MogoModulesHandler; import com.mogo.module.main.cards.MogoModulesManager; import com.mogo.module.main.service.MogoMainService; @@ -235,12 +236,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme super.onPause(); mMogoStatusManager.setMainPageResumeStatus( TAG, false ); mMogoStatusManager.setMainPageLaunchedStatus( TAG, false ); - if ( !mIsHomeKeyDown ) { + if ( shouldCloseADASPanel() ) { mServiceApis.getAdasControllerApi().closeADAS(); } mIsHomeKeyDown = false; } + private boolean shouldCloseADASPanel(){ + // m4 系列因为按home键会造成页面pause后resume,造成adas panel 闪烁 + // f 系列加上上滑返回桌面后会走 mIsHomeKeyDown = true,但是不会造成页面pause + // 独立 app 任何情况下都需要隐藏 adas + return !mIsHomeKeyDown + || CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X + || !DebugConfig.isLauncher(); + } + @Override protected void onStop() { super.onStop(); diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java index a45a42bb6d..60810062c4 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java @@ -14,7 +14,6 @@ import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; -import com.mogo.utils.logger.Logger; import cn.kuwo.autosdk.api.KWAPI; import cn.kuwo.autosdk.api.OnGetSongImgUrlListener; @@ -43,14 +42,14 @@ public class KwPresenter extends BaseMediaPresenter { kwapi = KWAPI.createKWAPI(context, "auto"); kwapi.registerConnectedListener(b -> { - Logger.d(TAG, "onConnected: " + b); + Log.d(TAG, "onConnected: " + b); Log.d(TAG, "onConnected: " + b); isBind = b; if (!isBind) { mView.onMusicStopped(); }else{ PlayerStatus currentState = kwapi.getPlayerStatus(); - Logger.d(TAG, "check current status: " + currentState); + Log.d(TAG, "check current status: " + currentState); Log.d(TAG, "check current status: " + currentState); if(currentState == PlayerStatus.BUFFERING||currentState == PlayerStatus.PLAYING){ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); @@ -62,13 +61,16 @@ public class KwPresenter extends BaseMediaPresenter { }); kwapi.registerExitListener(() -> { - Logger.d(TAG, "onExit==="); + Log.d(TAG, "onExit==="); Log.d(TAG, "onExit==="); mView.onAppExit(); }); kwapi.registerPlayerStatusListener((playerStatus, music) -> { - Logger.d(TAG, "onPlayerStatusListener: " + playerStatus + " music: " + music.name); + if ( music == null ) { + return; + } + Log.d(TAG, "onPlayerStatusListener: " + playerStatus + " music: " + music.name); switch (playerStatus) { case BUFFERING: if (currentMedia.getMediaName() == null || !currentMedia.getMediaName().equals(music.name)) { @@ -113,7 +115,7 @@ public class KwPresenter extends BaseMediaPresenter { @Override public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { if (isTrue) { - Logger.d(TAG, "onResume, isBind: " + isBind); + Log.d(TAG, "onResume, isBind: " + isBind); Log.d(TAG, "onResume, isBind: " + isBind); // 需要在resume时候判断绑定关系是否正常 if (!isBind) { @@ -125,14 +127,14 @@ public class KwPresenter extends BaseMediaPresenter { // 当前处于绑定状态,且有音乐信息,需判断是否正在播放,进行界面刷新 Log.d(TAG, "step1==" + currentMusic.name); if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { - Logger.d(TAG, "当前可能正在播放音乐,需要更新=1=" + currentMusic.name); + Log.d(TAG, "当前可能正在播放音乐,需要更新=1=" + currentMusic.name); currentMedia.setMediaName(currentMusic.name); currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); mView.onMediaInfoChanged(currentMedia); mView.onMusicPlaying(); kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); } else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { - Logger.d(TAG, "当前可能正在播放音乐,需要更新=3=" + currentMusic.name); + Log.d(TAG, "当前可能正在播放音乐,需要更新=3=" + currentMusic.name); currentMedia.setMediaName(currentMusic.name); currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); mView.onMediaInfoChanged(currentMedia); @@ -142,14 +144,14 @@ public class KwPresenter extends BaseMediaPresenter { Log.d(TAG, "step2==media: " + currentMedia.getMediaName() + " " + "musicName: " + currentMusic.name + " status: " + kwapi.getPlayerStatus()); if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { - Logger.d(TAG, "当前可能正在播放音乐,需要更新=2=" + currentMusic.name); + Log.d(TAG, "当前可能正在播放音乐,需要更新=2=" + currentMusic.name); currentMedia.setMediaName(currentMusic.name); currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); mView.onMediaInfoChanged(currentMedia); mView.onMusicPlaying(); kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); }else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { - Logger.d(TAG, "当前可能正在播放音乐,需要更新=4=" + currentMusic.name); + Log.d(TAG, "当前可能正在播放音乐,需要更新=4=" + currentMusic.name); currentMedia.setMediaName(currentMusic.name); currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); mView.onMediaInfoChanged(currentMedia); @@ -237,16 +239,18 @@ public class KwPresenter extends BaseMediaPresenter { private OnGetSongImgUrlListener onGetSongImgUrlListener = new OnGetSongImgUrlListener() { @Override public void onGetSongImgUrlSucessed(Music music, String s) { - currentMedia.setMediaName(music.name); - currentMedia.setMediaImg(s); - Logger.d(TAG, - "onGetSongImgUrlSucessed: " + currentMedia); - handler.post(() -> mView.onMediaInfoChanged(currentMedia)); + if(currentMedia.getPlayState() == MusicConstant.PLAY_STATE_PLAYING) { + currentMedia.setMediaName(music.name); + currentMedia.setMediaImg(s); + Log.d(TAG, + "onGetSongImgUrlSucessed: " + currentMedia); + handler.post(() -> mView.onMediaInfoChanged(currentMedia)); + } } @Override public void onGetSongImgUrlFailed(Music music, int i) { - Logger.e(TAG, "onGetSongImgUrlFailed: " + i); + Log.e(TAG, "onGetSongImgUrlFailed: " + i); } }; diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java index 5a8ab8bafc..bfc00ab218 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java @@ -1,6 +1,7 @@ package com.mogo.module.media.window; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; @@ -10,6 +11,7 @@ import android.widget.TextView; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.module.media.MediaConstants; import com.mogo.module.media.R; import com.mogo.module.media.ServiceMediaHandler; import com.mogo.module.media.constants.MusicConstant; @@ -21,6 +23,8 @@ import com.mogo.module.media.view.IMusicView; import com.mogo.module.media.widget.AnimCircleImageView; import com.mogo.module.media.widget.NoScrollSeekBar; import com.mogo.module.media.widget.ScrollingTextView; +import com.mogo.service.statusmanager.IMogoStatusChangedListener; +import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.WindowUtils; import com.mogo.utils.glide.GlideApp; import com.mogo.utils.logger.Logger; @@ -69,11 +73,20 @@ public class MediaWindow2 implements IMusicView { }); } + ServiceMediaHandler.getIMogoStatusManager().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS, (descriptor, isTrue) -> { + if (descriptor == StatusDescriptor.ACC_STATUS&&!isTrue) { + ServiceMediaHandler.getMogoWindowManager().removeView(mWindowView); + mHasAddWindow = false; + } + }); + isFirstPlay = true; } private void addWindowView() { + Log.d(TAG, "addWindowView===" + mHasAddWindow); if (ServiceMediaHandler.getMogoWindowManager() == null) { + Log.d(TAG, "addWindowView return"); return; } @@ -99,6 +112,7 @@ public class MediaWindow2 implements IMusicView { int statusBarHeight = WindowUtils.getStatusBarHeight(mContext); Logger.d(TAG, "yPos: " + yPos + " xPos: " + xPos + " statusBarHeight: " + statusBarHeight); + Log.d(TAG, "addMediaWindoView"); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams((int) mContext.getResources().getDimension(R.dimen.module_media_pop_window_width), (int) mContext.getResources().getDimension(R.dimen.module_media_pop_window_height)); params.leftMargin = xPos; @@ -202,6 +216,7 @@ public class MediaWindow2 implements IMusicView { @Override public void onMusicPlaying() { Logger.d(TAG, "onMusicPlaying===" + mMediaInfoData); + Log.d(TAG, "onMusicPlaying===" + mMediaInfoData); isFirstPlay = false; updateWindowUI(false); if (mWindowPlayPause != null) { @@ -216,6 +231,7 @@ public class MediaWindow2 implements IMusicView { @Override public void onMusicPause() { Logger.d(TAG, "onMusicPause: ===" + mMediaInfoData); + Log.d(TAG, "onMusicPause: ===" + mMediaInfoData); if (mWindowPlayPause != null) { mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause); } @@ -228,6 +244,7 @@ public class MediaWindow2 implements IMusicView { @Override public void onMusicStopped() { Logger.d(TAG, "onMusicStopped===" + mMediaInfoData); + Log.d(TAG, "onMusicStopped===" + mMediaInfoData); if (mWindowPlayPause != null) { mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause); } @@ -242,6 +259,7 @@ public class MediaWindow2 implements IMusicView { @Override public void onMediaInfoChanged(MediaInfoData mediaInfoData) { Logger.d(TAG, "onMediaInfoChanged: " + mediaInfoData); + Log.d(TAG, "onMediaInfoChanged:" + mediaInfoData); mMediaInfoData = mediaInfoData; addWindowView(); updateWindowUI(); @@ -271,6 +289,8 @@ public class MediaWindow2 implements IMusicView { @Override public void onAppExit() { - mWindowView.setVisibility(View.GONE); + if ( mWindowView != null ) { + mWindowView.setVisibility(View.GONE); + } } } diff --git a/modules/mogo-module-search/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-search/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..1d9cb352ae --- /dev/null +++ b/modules/mogo-module-search/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,66 @@ + + + + + 32px + 32px + 640px + 64px + 42px + 12px + 10px + 30px + 22px + 142px + 4px + 22px + 55.5px + 304px + 64px + 16px + 18px + 38px + 75px + 40px + 410px + 640px + 16px + 20px + 30px + 20px + 28px + 144px + 126px + 96px + 42px + 38px + 28px + 23px + 96px + 69px + 192px + 64px + 24px + 446px + 83px + 56px + 100px + 18px + 111px + 16px + 20px + 12px + 12px + 2px + 2px + 22px + 3px + 16px + 16px + 2px + 32px + 34px + 16px + 20px + + \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/values/dimens.xml b/modules/mogo-module-search/src/main/res/values/dimens.xml index 9fdda433f9..be69e1ecf7 100644 --- a/modules/mogo-module-search/src/main/res/values/dimens.xml +++ b/modules/mogo-module-search/src/main/res/values/dimens.xml @@ -1,66 +1,67 @@ - + @dimen/sp_32 + @dimen/dp_60 @dimen/sp_40 - 32px - 32px - 640px - 64px - 42px - 12px - 10px - 30px - 22px - 142px - 4px - 22px - 55.5px - 304px - 64px - 16px - 18px - 38px + 25sp + @dimen/dp_60 + @dimen/dp_40 + 600dp + @dimen/dp_120 + @dimen/dp_80 + @dimen/dp_24 + @dimen/dp_20 + @dimen/dp_50 + 40px + 266px + 8px + 40px + 104px + 568px + 120px + 32px + 75px + 72px 75px - 40px - 410px - 640px - 16px - 20px - 30px - 20px - 28px - 144px - 126px - 96px - 42px - 38px - 28px - 23px - 96px - 69px - 192px - 64px - 24px - 446px - 83px - 56px - 100px - 18px - 111px - 16px - 20px - 12px - 12px - 2px - 2px - 22px - 3px - 16px - 16px - 2px - 32px - 34px - 16px - 20px + 778px + 1200px + 32px + 40px + 60px + 37px + 268px + 236px + 180px + 80px + 70px + 25sp + 42px + 160px + 150px + 180dp + 120px + 45px + 838px + 142px + 104px + 154px + 32px + 212px + 26px + 40px + 20px + 20px + 3px + 3px + 48px + 14px + 36px + 30px + 3px + 60px + 40px + 32px + 40px + \ No newline at end of file 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 2f7d47750a..e606546990 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 @@ -716,8 +716,12 @@ public class MogoServices implements IMogoMapListener, case ACC_STATUS: if ( isTrue ) { mADASController.showADAS(); + refreshStrategy(); + MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).stop(); + } else { try { MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers(); + MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( mContext ).start(); } catch ( Exception e ) { Logger.e( TAG, e, "error." ); }