diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 54b2fe0c31..45ac48420c 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -40,6 +40,8 @@ public class MogoApplication extends AbsMogoApplication { @Override public void onCreate() { + DebugConfig.setNetMode(BuildConfig.NET_ENV); + DebugConfig.setDebug(BuildConfig.DEBUG); super.onCreate(); // Crash 日志收集 final long start = System.currentTimeMillis(); @@ -77,7 +79,5 @@ public class MogoApplication extends AbsMogoApplication { protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(base); - DebugConfig.setNetMode(BuildConfig.NET_ENV); - DebugConfig.setDebug(BuildConfig.DEBUG); } } diff --git a/gradle.properties b/gradle.properties index 10b4aa2f49..a8ffc9718d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,24 +27,24 @@ PASSWORD=xintai2018 RELEASE=false # 模块版本 ## 工程内模块 -MOGO_MODULE_SHARE_VERSION=1.0.3-SNAPSHOT -MOGO_COMMONS_VERSION=1.0.3-SNAPSHOT -MOGO_UTILS_VERSION=1.0.3-SNAPSHOT -MAP_AMAP_VERSION=1.0.3-SNAPSHOT -MOGO_MAP_VERSION=1.0.3-SNAPSHOT -MOGO_MAP_API_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_COMMON_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_MAIN_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_MAP_VERSION=1.0.3-SNAPSHOT -MOGO_SERVICE_VERSION=1.0.3-SNAPSHOT -MOGO_SERVICE_API_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_APPS_VERSION=1.0.3-SNAPSHOT -MOGO_CONNECTION_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_NAVI_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_SERVICE_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_EXTENSIONS_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_SEARCH_VERSION=1.0.3-SNAPSHOT -MOGO_MODULE_BACK_VERSION=1.0.3-SNAPSHOT +MOGO_MODULE_SHARE_VERSION=1.0.3.1-SNAPSHOT +MOGO_COMMONS_VERSION=1.0.3.1-SNAPSHOT +MOGO_UTILS_VERSION=1.0.3.1-SNAPSHOT +MAP_AMAP_VERSION=1.0.3.1-SNAPSHOT +MOGO_MAP_VERSION=1.0.3.1-SNAPSHOT +MOGO_MAP_API_VERSION=1.0.3.1.1-SNAPSHOT +MOGO_MODULE_COMMON_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_MAIN_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_MAP_VERSION=1.0.3.1-SNAPSHOT +MOGO_SERVICE_VERSION=1.0.3.1-SNAPSHOT +MOGO_SERVICE_API_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_APPS_VERSION=1.0.3.1-SNAPSHOT +MOGO_CONNECTION_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_NAVI_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_SERVICE_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_EXTENSIONS_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_SEARCH_VERSION=1.0.3.1-SNAPSHOT +MOGO_MODULE_BACK_VERSION=1.0.3.1-SNAPSHOT MOGO_MODULE_AUTHORIZE_VERSION=1.0.0-SNAPSHOT MOGO_MODULE_GUIDE_VERSION=1.0.0-SNAPSHOT @@ -60,7 +60,7 @@ MOGO_MODULE_GUIDESHOW_VERSION=1.0.2-SNAPSHOT # 视频引导接口 MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F -MOGO_MODULE_ONLINECAR_VERSION=1.0.3-SNAPSHOT +MOGO_MODULE_ONLINECAR_VERSION=1.0.3.1-SNAPSHOT # v2x MOGO_MODULE_V2X_VERSION=1.0.3-SNAPSHOT # 媒体卡片 diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index 5385e50fbf..625b8bb4dd 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -41,6 +41,7 @@ public class NaviClient implements IMogoNavi { /** * 导航策略配置 */ + private MogoNaviConfig mMogoNaviConfig = new MogoNaviConfig(); private static volatile NaviClient sInstance; diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java index 6d694a51fa..1b6eef41bc 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java @@ -158,6 +158,7 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { @Override public void onStartNavi( int type ) { + Logger.d( TAG, "onStartNavi type = %s", type ); // 巡航 if ( type != NaviType.CRUISE ) { setStopped( false ); @@ -223,13 +224,9 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { super.onCalculateRouteSuccess( aMapCalcRouteResult ); Logger.i( TAG, "导航规划成功" ); setStopped( false ); - WorkThreadHandler.getInstance().post( ()->{ - mNaviOverlayHelper.showCalculatedPaths(()->{ - UiThreadHandler.post( ()->{ - MogoNaviListenerHandler.getInstance().onCalculateSuccess(); - AMapMessageManager.getInstance().postCalculateSuccess(); - } ); - }); + mNaviOverlayHelper.showCalculatedPaths( () -> { + AMapMessageManager.getInstance().postCalculateSuccess(); + MogoNaviListenerHandler.getInstance().onCalculateSuccess(); } ); } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java index ee13555bc3..d0472098d2 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviOverlayHelper.java @@ -170,6 +170,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { } public void showBounds() { + Logger.d( TAG, "showBounds" ); showPathsBound( getBounds(), null ); } @@ -187,11 +188,9 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { mBoundRect.right, mBoundRect.top, mBoundRect.bottom )); - UiThreadHandler.postDelayed( ()->{ - if ( after != null ) { - after.run(); - } - }, 2000 ); + if ( after != null ) { + after.run(); + } } private void checkAMapInstance() { @@ -218,6 +217,7 @@ public class NaviOverlayHelper implements OnCalculatePathItemClickInteraction { //wrapper.setStartBitmap( R.drawable.ic_navi_start ) // .setEndBitmap( R.drawable.ic_navi_target ); mAMapNavi.selectRouteId( item.getId() ); + Logger.d( TAG, "renderPathOverlay set default path" ); } wrapper.addToMap(); wrapper.setTransparency( i == 0 ? AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED : AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED ); 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 f722a9418e..54f42368d3 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,5 +1,7 @@ package com.mogo.module.apps; +import android.text.TextUtils; + import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; @@ -11,6 +13,8 @@ import com.mogo.module.apps.applaunch.CardAppLauncher; import com.mogo.module.apps.applaunch.GuideShowLauncher; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.AppsModel; +import com.mogo.module.apps.model.UnScannedApps; +import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.cardmanager.IMogoCardManager; @@ -20,7 +24,6 @@ import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,14 +43,17 @@ public class AppsPresenter extends Presenter { private IMogoAnalytics mAnalytics; private AppLaunchFilter mLauncher; + private IMogoServiceApis mApis; + private IMogoCardManager mCardManager; private IMogoStatusManager mMogoStatusManager; public AppsPresenter(AppsView view) { super(view); - mCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getContext()); + mApis = (IMogoServiceApis)ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(getContext()); + mCardManager = mApis.getCardManagerApi(); CardAppLauncher cardAppLauncher = new CardAppLauncher(this, mCardManager); - GuideShowLauncher guideShowLauncher = new GuideShowLauncher(); + GuideShowLauncher guideShowLauncher = new GuideShowLauncher(mApis.getMapServiceApi().getNavi( getContext() )); cardAppLauncher.setNext(guideShowLauncher); guideShowLauncher.setNext(new AppLauncher()); mLauncher = cardAppLauncher; @@ -63,8 +69,8 @@ public class AppsPresenter extends Presenter { } }); - mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext()); - mMogoStatusManager = (IMogoStatusManager) ARouter.getInstance().build(MogoServicePaths.PATH_STATUS_MANAGER).navigation(); + mAnalytics = mApis.getAnalyticsApi(); + mMogoStatusManager = mApis.getStatusManagerApi(); mMogoStatusManager.setAppListUIShow(TAG, true); } @@ -73,9 +79,10 @@ public class AppsPresenter extends Presenter { AppsModel.getInstance(getContext()).load(appInfoList -> { Logger.d(TAG, "apps: %s", appInfoList); + final Map> result = addOthersEntrances( appInfoList ); UiThreadHandler.post(() -> { if (mView != null) { - mView.renderApps(addGuideAppEntrance(appInfoList)); + mView.renderApps( result ); } }); }); @@ -83,7 +90,12 @@ public class AppsPresenter extends Presenter { }); } - private Map> addGuideAppEntrance(Map> appInfoMap) { + /** + * 新增入口 + * @param appInfoMap + * @return + */ + private Map> addOthersEntrances( Map> appInfoMap) { Map> result = new HashMap<>(); if ( appInfoMap != null && !appInfoMap.isEmpty() ) { @@ -99,18 +111,60 @@ public class AppsPresenter extends Presenter { } } - if (result.isEmpty()) { - result.put(0, new ArrayList<>()); - } else if (result.get(result.size() - 1) == null) { - result.put(result.size() - 1, new ArrayList<>()); - } else if (result.get(result.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) { - result.put(result.size(), new ArrayList<>()); + // 手动添加无法识别到的app + List apps = UnScannedApps.getUnScannedApps(); + if ( apps != null && !apps.isEmpty() ) { + for ( AppInfo app : apps ) { + if ( app == null ) { + continue; + } + Set keys = result.keySet(); + boolean addFlag = true; + for ( Integer key : keys ) { + List val = result.get( key ); + // 无法扫描到蓝牙电话app,这里手动添加 + for ( AppInfo appInfo : val ) { + if ( appInfo == null ) { + continue; + } + if ( TextUtils.equals( appInfo.getPackageName(), app.getPackageName() ) ) { + addFlag = false; + break; + } + } + if ( !addFlag ) { + break; + } + } + if ( addFlag ) { + growthCapacity(result); + result.get(result.size() - 1).add(app); + } + } } - // 添加逻辑 + 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)); return result; } + /** + * 扩容 + * @param target + */ + private void growthCapacity( Map> target ){ + if ( target == null ) { + return; + } + if (target.isEmpty()) { + target.put(0, new ArrayList<>()); + } else if (target.get(target.size() - 1) == null) { + target.put(target.size() - 1, new ArrayList<>()); + } else if (target.get(target.size() - 1).size() == AppsConst.TOTAL_SIZE_EACH_PAGE) { + target.put(target.size(), new ArrayList<>()); + } + } + public void launch(AppInfo appInfo) { if (appInfo == null) { return; diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java index 115ee5b844..88e5068c61 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/applaunch/GuideShowLauncher.java @@ -4,7 +4,7 @@ import android.app.Activity; import android.content.Context; import com.mogo.commons.voice.AIAssist; -import com.mogo.map.impl.amap.navi.NaviClient; +import com.mogo.map.navi.IMogoNavi; import com.mogo.module.apps.AppServiceHandler; import com.mogo.module.apps.R; import com.mogo.module.apps.model.AppInfo; @@ -17,10 +17,16 @@ public class GuideShowLauncher extends BaseAppLauncher { public static final String TAG = "GuideShowLauncher"; public static final String APP_INFO_NAME_GUIDE_SHOW = "新手引导"; + private IMogoNavi mNavi; + + public GuideShowLauncher( IMogoNavi navi ) { + this.mNavi = navi; + } + @Override public void launch(Context context, AppInfo appInfo) { if (appInfo != null && APP_INFO_NAME_GUIDE_SHOW.equals(appInfo.getName())) { - if (!NaviClient.getInstance(context).isNaviing()) { + if ( mNavi != null && !mNavi.isNaviing()) { AppServiceHandler.getMogoGuideShow().playGuideVideo((Activity) context, (s) -> { Logger.d(TAG, s); return Unit.INSTANCE; 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 39cdd6fad7..7837c2cd77 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 @@ -65,7 +65,7 @@ public enum AppEnum { AUX( "AUX", "com.nwd.auxin", R.drawable.module_apps_ic_aux ), //FM - FM( "FM", "com.nwd.radio", R.drawable.module_apps_ic_fm ), + FM( "FM收音机", "com.nwd.radio", R.drawable.module_apps_ic_fm ), // 新鲜事 FreshThings( "新鲜事", "com.zhidao.fresh.things", R.drawable.module_apps_ic_fresh_things ), @@ -77,7 +77,10 @@ public enum AppEnum { LocalVideo( "本地视频", "com.zhidao.video", R.drawable.module_apps_ic_local_video ), // 车辆信息 - CanBus( "车辆信息", "com.zd.canbus", R.drawable.module_apps_ic_canbus ), + CanBus( "车辆信息", "com.nwd.can.setting", R.drawable.module_apps_ic_canbus ), + + // 蓝牙电话 + BT_PHONE( "蓝牙电话", "com.nwd.android.phone", R.drawable.module_apps_ic_bt_phone ), ; private String mName; diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java index 1917fef3e4..1ec2093149 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/AppsModel.java @@ -122,7 +122,7 @@ public class AppsModel { private String getApplicationName( PackageManager packageManager, PackageInfo packageInfo ) { String name = packageManager.getApplicationLabel( packageInfo.applicationInfo ).toString(); - if ( name.startsWith( "com." ) || name.split( "." ).length > 3 ) { + if ( AppEnumHelper.isCustomizedApp( packageInfo.packageName ) ) { return AppEnumHelper.getTargetName( packageInfo.packageName ); } return name; 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 new file mode 100644 index 0000000000..7028085838 --- /dev/null +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/model/UnScannedApps.java @@ -0,0 +1,24 @@ +package com.mogo.module.apps.model; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author congtaowang + * @since 2020-04-02 + *

+ * 扫描不到的app + */ +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() ) ); + } + + public static List< AppInfo > getUnScannedApps() { + return sUnScannedApps; + } +} diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_bt_phone.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_bt_phone.png new file mode 100644 index 0000000000..65b23ed5dd Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_bt_phone.png differ diff --git a/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_bt_phone.png b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_bt_phone.png new file mode 100644 index 0000000000..a40e2586d7 Binary files /dev/null and b/modules/mogo-module-apps/src/main/res/drawable-xhdpi/module_apps_ic_bt_phone.png differ diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt index 3246b53116..b60fd886b2 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt @@ -18,13 +18,14 @@ open abstract class MogoAuthorizeManagerImpl : IMogoAuthorizeInvoke { private val baseController: IMogoAuthorizeController by lazy { IMogoAuthorizeController() } override fun needAuthorize(tag: String): Boolean { - return if (isDeviceOfD()) { - Logger.d(TAG, "needAuthorize update agreement in background") - baseController.updateAgreementVersion(tag.toAuthorizeType()) - needAuthorization(tag.toAuthorizeType()) - } else { - false - } +// return if (isDeviceOfD()) { +// Logger.d(TAG, "needAuthorize update agreement in background") +// baseController.updateAgreementVersion(tag.toAuthorizeType()) +// needAuthorization(tag.toAuthorizeType()) +// } else { +// false +// } + return false } override fun invokeAuthorizeContent(tag: String) { diff --git a/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml b/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml index d9b7c29f63..8399d8ee30 100644 --- a/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml +++ b/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="#000000"> + android:background="#CC000000">