diff --git a/app/build.gradle b/app/build.gradle index aad3e71d5e..cd753934aa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,8 +1,8 @@ -import java.text.SimpleDateFormat - apply plugin: 'com.android.application' +apply plugin: 'com.alibaba.arouter' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +import java.text.SimpleDateFormat android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -25,7 +25,7 @@ android { externalNativeBuild { ndk { // 设置支持的SO库架构 - abiFilters 'armeabi-v7a' + abiFilters 'armeabi-v7a','x86' } } } @@ -98,18 +98,21 @@ android { dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType','2' + buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false' } // e系列 e8xx { dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType','2' + buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' } // d系列 d8xx { dimension "product" // 使用同行者语音 buildConfigField 'int', 'AIType','1' + buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' } qa { dimension "env" @@ -282,4 +285,4 @@ def getGitCommit() { gitCommit } -apply plugin: 'arouterhook' \ No newline at end of file +//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 ddd2d059ba..ca92b2cb80 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -37,12 +37,7 @@ public class MogoApplication extends AbsMogoApplication { @Override public void onCreate() { - DebugConfig.setNetMode(BuildConfig.NET_ENV); - DebugConfig.setDebug(BuildConfig.DEBUG); - DebugConfig.setAIType(BuildConfig.AIType); - DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE); - DebugConfig.setUseCustomNavi(BuildConfig.USE_CUSTOM_NAVI); - DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER); + initDebugConfig(); super.onCreate(); // Crash 日志收集 final long start = System.currentTimeMillis(); @@ -78,6 +73,16 @@ public class MogoApplication extends AbsMogoApplication { Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms"); } + private void initDebugConfig(){ + DebugConfig.setNetMode(BuildConfig.NET_ENV); + DebugConfig.setDebug(BuildConfig.DEBUG); + DebugConfig.setAIType(BuildConfig.AIType); + DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE); + DebugConfig.setUseCustomNavi(BuildConfig.USE_CUSTOM_NAVI); + DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER); + DebugConfig.setActiveAIAssistFlag( BuildConfig.AI_ASSIST_ACTIVE_STAUTS ); + } + @Override protected void init() { super.init(); diff --git a/build.gradle b/build.gradle index 1ff312c0fb..2ff4df7631 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ buildscript { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "com.alibaba:arouter-register:1.0.2" classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4' - classpath "com.mogo.module.pluginhook:module-pluginhook:${HOOKPLUGIN_VERSION}" +// classpath "com.mogo.module.pluginhook:module-pluginhook:${HOOKPLUGIN_VERSION}" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/config.gradle b/config.gradle index d79002527d..ea2f5501c3 100644 --- a/config.gradle +++ b/config.gradle @@ -17,7 +17,7 @@ ext { androidxappcompat : "androidx.appcompat:appcompat:1.0.2", androidxccorektx : "androidx.core:core-ktx:1.2.0", androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:1.1.3", - boostmultidex : "com.mogo.module.boostmultidex:module-boostmultidex:${BOOST_MULTIDEX_VERSION}", + boostmultidex : "com.bytedance.boost_multidex:boost_multidex:1.0.1", androidxviewpager2 : "androidx.viewpager2:viewpager2:1.0.0", androidxrecyclerview : "androidx.recyclerview:recyclerview:1.1.0", androidxcardview : "androidx.cardview:cardview:1.0.0", 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 f8c85cf2c1..8d152859ba 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 @@ -151,4 +151,17 @@ public class DebugConfig { public static void setRequestOnlineCarData( boolean sRequestOnlineCarData ) { DebugConfig.sRequestOnlineCarData = sRequestOnlineCarData; } + + /** + * 是否支持临时激活小智 + */ + private static boolean sActiveAIAssistFlag = true; + + public static boolean isActiveAIAssistFlag() { + return sActiveAIAssistFlag; + } + + public static void setActiveAIAssistFlag( boolean sActiveAIAssistFlag ) { + DebugConfig.sActiveAIAssistFlag = sActiveAIAssistFlag; + } } diff --git a/gradle.properties b/gradle.properties index c544822aac..b992330466 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ MOGO_SERVICE_API_VERSION=1.2.1.9 MOGO_CONNECTION_VERSION=1.2.1.9 MOGO_MODULE_APPS_VERSION=1.2.1.9 MOGO_MODULE_NAVI_VERSION=1.2.1.9 -MOGO_MODULE_SHARE_VERSION=1.2.1.9 +MOGO_MODULE_SHARE_VERSION=1.2.1.18 MOGO_MODULE_COMMON_VERSION=1.2.1.9 MOGO_MODULE_MAIN_VERSION=1.2.1.9 MOGO_MODULE_MAP_VERSION=1.2.1.9 @@ -71,7 +71,7 @@ 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.36 +MOGO_MODULE_V2X_VERSION=1.1.47 # 推送 MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 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 1d0437d956..0043bcab25 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 @@ -6,6 +6,7 @@ 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.Arrays; import java.util.HashMap; @@ -29,6 +30,9 @@ public class AppFilterImpl implements AppFilter { final String[] values = context.getResources().getStringArray( R.array.module_apps_array_filter_packages ); if ( values != null ) { mFilterPackages = Arrays.asList( values ); + if ( CarSeries.getSeries() != CarSeries.CAR_SERIES_F80X ) { + mFilterPackages.add( "com.android.settings" ); + } } } 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 942568fc7f..87d43203e1 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 @@ -80,6 +80,11 @@ public class AppsPresenter extends Presenter< AppsView > { Logger.d( TAG, "apps: %s", appInfoList ); final Map< Integer, List< AppInfo > > result = addOthersEntrances( appInfoList ); + try { + filterSamePackage( result ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } UiThreadHandler.post( () -> { if ( mView != null ) { mView.renderApps( result ); @@ -143,7 +148,7 @@ public class AppsPresenter extends Presenter< AppsView > { } } } -// growthCapacity( result ); +// 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() ) { @@ -154,6 +159,30 @@ public class AppsPresenter extends Presenter< AppsView > { return result; } + private void filterSamePackage( Map< Integer, List< AppInfo > > appInfoMap ) { + if ( appInfoMap == null || appInfoMap.isEmpty() ) { + return; + } + for ( Map.Entry< Integer, List< AppInfo > > integerListEntry : appInfoMap.entrySet() ) { + if ( integerListEntry == null ) { + continue; + } + List< AppInfo > oldList = integerListEntry.getValue(); + if ( oldList == null + || oldList.size() > AppsConst.TOTAL_SIZE_EACH_PAGE ) { + return; + } + List< AppInfo > appInfos = new ArrayList<>(); + for ( AppInfo appInfo : oldList ) { + if ( appInfos.contains( appInfo ) ) { + continue; + } + appInfos.add( appInfo ); + } + integerListEntry.setValue( appInfos ); + } + } + /** * 扩容 * 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 d9fddafb98..dae51ba27d 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 @@ -1,6 +1,9 @@ package com.mogo.module.apps.model; import android.graphics.drawable.Drawable; +import android.text.TextUtils; + +import java.util.Objects; /** * @author congtaowang @@ -29,7 +32,7 @@ public class AppInfo { } public AppInfo( String mName, String mPackageName, String mVersionName, int mVersionCode, Drawable mIcon, int mIconResId ) { - this(mName, mPackageName, mVersionName, mVersionCode, mIcon, mIconResId, 0); + this( mName, mPackageName, mVersionName, mVersionCode, mIcon, mIconResId, 0 ); } public int getIconResId() { @@ -60,6 +63,19 @@ public class AppInfo { return mTrackType; } + @Override + public boolean equals( Object o ) { + if ( this == o ) return true; + if ( o == null || getClass() != o.getClass() ) return false; + AppInfo appInfo = ( AppInfo ) o; + return TextUtils.equals( mPackageName, appInfo.mPackageName ); + } + + @Override + public int hashCode() { + return Objects.hash( mPackageName ); + } + @Override public String toString() { return "AppInfo{" + 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 7235c69ed9..61c55a981d 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 @@ -56,6 +56,7 @@ public class AppsModel { if ( mPagedApps != null ) { mPagedApps.clear(); } + mPagedApps = null; mContext = null; mAppFilter = null; sInstance = null; diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java index 393f3d9a6f..8be87989e0 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java @@ -30,7 +30,7 @@ class OnAiAssistClickListener implements View.OnClickListener { @Override public void onClick( View v ) { - if ( Devices.isBind() ) { + if ( Devices.isBind() || !DebugConfig.isActiveAIAssistFlag() ) { AIAssist.startAssistant( v.getContext() ); trackNavigatorClickEvent( 5 ); } else { 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 bf172403d9..822303fed7 100644 --- a/modules/mogo-module-apps/src/main/res/values/strings.xml +++ b/modules/mogo-module-apps/src/main/res/values/strings.xml @@ -13,7 +13,6 @@ com.android.browser com.android.providers.downloads.ui com.zhidao.guide.lock - com.android.settings com.android.calculator2 com.nwd.guidebookskin com.iflytek.inputmethod.pad diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java index e8675cdfc9..71bcd12274 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CarSeries.java @@ -1,5 +1,7 @@ package com.mogo.module.common.utils; +import android.text.TextUtils; + import java.lang.reflect.Method; /** @@ -21,6 +23,7 @@ public class CarSeries { public static final int CAR_SERIES_E84XCD = 51; public static final int CAR_SERIES_E85X = 50; public static final int CAR_SERIES_E85XCD = 51; + public static final int CAR_SERIES_E85XJD = 51; public static int CAR_SERIES = 0; @@ -33,6 +36,10 @@ public class CarSeries { return CAR_SERIES; } String device = get( "ro.fota.device" ); + if ( TextUtils.isEmpty( device ) ) { + return CAR_SERIES_F80X; + } + if ( "FG166".equals( device ) ) { CAR_SERIES = CAR_SERIES_C80X; } else if ( "D801-802".equals( device ) ) { @@ -58,6 +65,10 @@ public class CarSeries { CAR_SERIES = CAR_SERIES_E85X; } else if ( "E85XCD".equals( device ) ) { CAR_SERIES = CAR_SERIES_E85XCD; + } else if ( "E85XJD".equals( device ) ) { + CAR_SERIES = CAR_SERIES_E85XJD; + } else if ( device.startsWith( "E85" ) ) { + CAR_SERIES = CAR_SERIES_E85XJD; } else { CAR_SERIES = CAR_SERIES_F80X; } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java index 85faab6b7a..192cdfe588 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java @@ -67,7 +67,7 @@ public abstract class BaseNaviInfoView { protected String getFormatSurplusTime( int seconds ) { if ( seconds > 60 * 60 ) { - mFormatSurplusDistanceUnit = "h"; + mFormatSurplusTimeUnit = "h"; return String.format( "%.1f", ( ( float ) seconds ) / ( 60 * 60 ) ); } diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml index 3ba8e4a5cf..7651639cf3 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker.xml @@ -17,11 +17,11 @@ + tools:src="@drawable/icon_map_marker_road_block_up2" /> diff --git a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml index 028892962e..444e398c97 100644 --- a/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml +++ b/modules/mogo-module-service/src/main/res/layout/view_map_marker_info.xml @@ -32,8 +32,8 @@ 8dp 100px 117px - 50px - 50px + 60px + 60px 8px diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index 03b1e6650a..6faf47f1e0 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -4,8 +4,8 @@ 4dp 56px 65px - 27px - 27px + 35px + 35px 4px 550px diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java index fabec3de0d..813a7e9252 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java @@ -295,7 +295,7 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo private void trackVoiceWithType(String type){ Map properties = new HashMap<>(); properties.put("type",type); - properties.put("from","2"); + properties.put("from","1"); AnalyticsUtils.track("v2x_share_type",properties); } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java index 30154abf9e..0a2e936abb 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java @@ -144,6 +144,7 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL // 事故 Logger.d(TAG,"点击事故"); sendShareReceiver(ShareConstants.TYPE_ACCIDENT); + trackWithType(ShareConstants.TYPE_ACCIDENT); dismiss(); } else if (id == R.id.tvConstruction) { // 道路施工 @@ -155,6 +156,7 @@ public class LaucherShareDialog extends BaseFloatDialog implements View.OnClickL // 实时路况 Logger.d(TAG,"点击实时路况"); sendShareReceiver(ShareConstants.TYPE_REAL_TIME_TRAFFIC); + trackWithType(ShareConstants.TYPE_REAL_TIME_TRAFFIC); dismiss(); } else if (id == R.id.tvStagnantWater) { // 道路积水