diff --git a/.idea/dictionaries/admin.xml b/.idea/dictionaries/admin.xml new file mode 100644 index 0000000000..b918087fdd --- /dev/null +++ b/.idea/dictionaries/admin.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file 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/build.gradle b/app/build.gradle index 72ac88748b..daa2a53d52 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -72,6 +72,9 @@ android { em4 { manifest.srcFile 'src/em4/AndroidManifest.xml' } + f8xxLauncherOnlineRelease{ + manifest.srcFile 'src/f8xxLauncherOnlineRelease/AndroidManifest.xml' + } } flavorDimensions "product", "basic", "env" @@ -80,7 +83,6 @@ android { //独立app independent{ dimension "basic" - applicationId rootProject.ext.android.independentApplicationId // 是否启动位置服务 buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'false' // 是否使用高德sdk自定义导航 @@ -92,7 +94,6 @@ android { // launcher app launcher{ dimension "basic" - applicationId rootProject.ext.android.launcherApplicationId // 是否启动位置服务 buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'true' // 是否使用高德sdk自定义导航 @@ -103,6 +104,7 @@ android { } // f系列-分体机全系列,未细分 f8xx{ + applicationId rootProject.ext.android.fLauncherApplicationId dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType','2' @@ -110,9 +112,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue] } // e系列,采用Launcher方案 e8xx { + applicationId rootProject.ext.android.launcherApplicationId dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType','2' @@ -120,9 +124,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonLauncherAmapApiValue] } // 同上 em4 { + applicationId rootProject.ext.android.launcherApplicationId dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType','2' @@ -130,9 +136,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonLauncherAmapApiValue] } // e系列-2+32,对标D系列2+32,采用独立app的形式 em3 { + applicationId rootProject.ext.android.independentApplicationId dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType', '2' @@ -140,9 +148,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue] } // e系列-1+16,对标D系列1+16,采用独立app形式 em1 { + applicationId rootProject.ext.android.independentApplicationId dimension "product" // 使用思必驰语音 buildConfigField 'int', 'AIType', '2' @@ -150,9 +160,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue] } // d系列 d8xx { + applicationId rootProject.ext.android.independentApplicationId dimension "product" // 使用同行者语音 buildConfigField 'int', 'AIType','1' @@ -160,9 +172,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue] } // d系列 1+16 版本 d82x{ + applicationId rootProject.ext.android.independentApplicationId dimension "product" // 使用同行者语音 buildConfigField 'int', 'AIType','1' @@ -170,9 +184,11 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.commonIndependentAmapApiValue] } // 比亚迪 bydauto{ + applicationId rootProject.ext.android.bydautoIndependentApplicationId dimension "product" // 不使用语音 buildConfigField 'int', 'AIType','0' @@ -180,6 +196,7 @@ android { // 车机类型,主要用于区分自研车机还是别人家的车机,其他车机,比亚迪定为1 buildConfigField 'int', 'CAR_MACHINE_TYPE', '1' buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.bydautoIndependentApiValue] } qa { dimension "env" diff --git a/app/src/f8xxLauncherOnlineRelease/AndroidManifest.xml b/app/src/f8xxLauncherOnlineRelease/AndroidManifest.xml new file mode 100644 index 0000000000..d755054676 --- /dev/null +++ b/app/src/f8xxLauncherOnlineRelease/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/app/src/independent/AndroidManifest.xml b/app/src/independent/AndroidManifest.xml index 57d7908a59..69211733d6 100644 --- a/app/src/independent/AndroidManifest.xml +++ b/app/src/independent/AndroidManifest.xml @@ -12,10 +12,10 @@ android:theme="@style/AppTheme.App" tools:replace="android:label"> - + + + + diff --git a/app/src/launcher/AndroidManifest.xml b/app/src/launcher/AndroidManifest.xml index fa7c043148..cdf501d602 100644 --- a/app/src/launcher/AndroidManifest.xml +++ b/app/src/launcher/AndroidManifest.xml @@ -18,10 +18,10 @@ - + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ccf3dd8248..21e549a0e5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,6 +13,9 @@ android:supportsRtl="true" android:theme="@style/AppTheme.App" tools:replace="android:label"> + Testing documentation - */ -@RunWith( AndroidJUnit4.class ) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - assertEquals( "com.mogo.base.services.apk.test", appContext.getPackageName() ); - } -} \ No newline at end of file diff --git a/foudations/mogo-base-services-apk/src/test/java/com/mogo/base/services/apk/ExampleUnitTest.java b/foudations/mogo-base-services-apk/src/test/java/com/mogo/base/services/apk/ExampleUnitTest.java deleted file mode 100644 index 7b81601a73..0000000000 --- a/foudations/mogo-base-services-apk/src/test/java/com/mogo/base/services/apk/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.base.services.apk; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() { - assertEquals( 4, 2 + 2 ); - } -} \ No newline at end of file diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/AppUtils.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/AppUtils.java index d5900526a1..0218167b23 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/AppUtils.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/AppUtils.java @@ -57,4 +57,34 @@ public class AppUtils { return null; } } + + public static boolean isAppForeground( Context context ) { + if ( context != null ) { + ActivityManager activityManager = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE ); + List< ActivityManager.RunningAppProcessInfo > processes = activityManager.getRunningAppProcesses(); + for ( ActivityManager.RunningAppProcessInfo processInfo : processes ) { + if ( processInfo.processName.equals( context.getPackageName() ) ) { + if ( processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND ) { + return true; + } + } + } + } + return false; + } + + public static boolean isAppForeground( Context context, String pkg ) { + if ( context != null ) { + ActivityManager activityManager = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE ); + List< ActivityManager.RunningAppProcessInfo > processes = activityManager.getRunningAppProcesses(); + for ( ActivityManager.RunningAppProcessInfo processInfo : processes ) { + if ( processInfo.processName.equals( pkg ) ) { + if ( processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND ) { + return true; + } + } + } + } + return false; + } } diff --git a/libraries/tanlulib/src/test/java/com/zhidao/roadcondition/ExampleUnitTest.kt b/libraries/tanlulib/src/test/java/com/zhidao/roadcondition/ExampleUnitTest.kt index a2c91715fe..e69de29bb2 100644 --- a/libraries/tanlulib/src/test/java/com/zhidao/roadcondition/ExampleUnitTest.kt +++ b/libraries/tanlulib/src/test/java/com/zhidao/roadcondition/ExampleUnitTest.kt @@ -1,17 +0,0 @@ -package com.zhidao.roadcondition - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} 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 10a1675519..6ab6da70d9 100644 --- a/modules/mogo-module-apps/src/main/res/values/strings.xml +++ b/modules/mogo-module-apps/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ 为了您的安全,导航中不可播放视频 com.mogo.launcher + com.mogo.launcher.f com.mogo.launcher.app com.zhidao.launcher com.nwd.android.toolsmanager @@ -28,6 +29,7 @@ com.mogo.launcher + com.mogo.launcher.f com.mogo.launcher.app com.zhidao.launcher com.nwd.android.toolsmanager diff --git a/modules/mogo-module-authorize/src/androidTest/java/com/mogo/module/authorize/ExampleInstrumentedTest.kt b/modules/mogo-module-authorize/src/androidTest/java/com/mogo/module/authorize/ExampleInstrumentedTest.kt deleted file mode 100644 index d5b381bd09..0000000000 --- a/modules/mogo-module-authorize/src/androidTest/java/com/mogo/module/authorize/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.module.authorize - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.mogo.module.authorize.test", appContext.packageName) - } -} diff --git a/modules/mogo-module-authorize/src/test/java/com/mogo/module/authorize/ExampleUnitTest.kt b/modules/mogo-module-authorize/src/test/java/com/mogo/module/authorize/ExampleUnitTest.kt deleted file mode 100644 index f2b7332da6..0000000000 --- a/modules/mogo-module-authorize/src/test/java/com/mogo/module/authorize/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.mogo.module.authorize - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java index e92e84e107..db17ed40fc 100644 --- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java @@ -45,8 +45,10 @@ public class BackToMainHomeManager { return; } - mApis.getIntentManagerApi().invoke( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, new Intent() ); - + Intent intent2 = new Intent( ); + // 是否发自系统消息 + intent2.putExtra( "isHomeKeyDown", false ); + mApis.getIntentManagerApi().invoke( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, intent2 ); Logger.d( TAG, "返回桌面" ); Intent intent = new Intent(); 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 72c5960fd4..a7bcb305c1 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 @@ -29,6 +29,11 @@ class DialogImpl implements IWindowManagerView { return dialog.isShowing(); } + @Override + public void handleTouchEvent(OnViewClickListener listener) { + // do nothings. + } + @Override public void show() { dialog.show(); diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java index d610cea67a..14891ed7d6 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/IWindowManagerView.java @@ -1,18 +1,27 @@ package com.mogo.module.common.wm; +import android.view.View; + interface IWindowManagerView { /** * 初始化 + * * @param params contentView包装类 */ - void init(WindowManagerView.WMViewParams params); + void init( WindowManagerView.WMViewParams params ); /** * 是否显示 + * * @return true - 显示中 */ boolean isShowing(); + /** + * 支持手势拖动,该操作只支持触发点击操作 + */ + void handleTouchEvent(OnViewClickListener listener); + /** * 显示 */ @@ -22,4 +31,8 @@ interface IWindowManagerView { * 隐藏 */ void hide(); + + interface OnViewClickListener { + void onClick( View view ); + } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java index f9b34a59be..d4314d4106 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerImpl.java @@ -3,12 +3,9 @@ package com.mogo.module.common.wm; import android.content.Context; import android.graphics.PixelFormat; import android.os.Build; -import android.view.Gravity; +import android.view.MotionEvent; import android.view.WindowManager; -import com.mogo.module.common.utils.CarSeries; -import com.mogo.utils.WindowUtils; - /** * 采用windowManager实现接口 */ @@ -19,10 +16,13 @@ class WindowManagerImpl implements IWindowManagerView { private WindowManagerView.WMViewParams mParams; private boolean isShowing; + private float mLastX, mLastY; + private int mOldOffsetX, mOldOffsetY; + @Override - public void init(WindowManagerView.WMViewParams params) { + public void init( WindowManagerView.WMViewParams params ) { mParams = params; - mWindowManager = (WindowManager) mParams.mContext.getApplicationContext().getSystemService( Context.WINDOW_SERVICE ); + mWindowManager = ( WindowManager ) mParams.mContext.getApplicationContext().getSystemService( Context.WINDOW_SERVICE ); mLayoutParams = new WindowManager.LayoutParams(); if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ) { mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; @@ -30,13 +30,13 @@ class WindowManagerImpl implements IWindowManagerView { mLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; } mLayoutParams.format = PixelFormat.TRANSLUCENT; - mLayoutParams.gravity = Gravity.CENTER; + mLayoutParams.gravity = mParams.mGravity; mLayoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; mLayoutParams.width = mParams.mWidth; mLayoutParams.height = mParams.mHeight; - mLayoutParams.x = mParams.mX; - mLayoutParams.y = mParams.mY; + mOldOffsetX = mLayoutParams.x = mParams.mX; + mOldOffsetY = mLayoutParams.y = mParams.mY; mLayoutParams.dimAmount = 0.5f; } @@ -45,20 +45,47 @@ class WindowManagerImpl implements IWindowManagerView { return isShowing; } + @Override + public void handleTouchEvent(OnViewClickListener listener) { + mParams.mContentView.setOnTouchListener( ( v, event ) -> { + final int action = event.getAction(); + float x = event.getX(); + float y = event.getY(); + if ( action == MotionEvent.ACTION_DOWN ) { + mLastX = x; + mLastY = y; + } else if ( action == MotionEvent.ACTION_MOVE ) { + mLayoutParams.x += ( int ) ( x - mLastX ) / 3; // 减小偏移量,防止过度抖动 + mLayoutParams.y += ( int ) ( y - mLastY ) / 3; // 减小偏移量,防止过度抖动 + mWindowManager.updateViewLayout( mParams.mContentView, mLayoutParams ); + } else if ( action == MotionEvent.ACTION_UP ) { + int newOffsetX = mLayoutParams.x; + int newOffsetY = mLayoutParams.y; + // 只要按钮一动位置不是很大,就认为是点击事件 + if ( Math.abs( mOldOffsetX - newOffsetX ) <= 20 + && Math.abs( mOldOffsetY - newOffsetY ) <= 20 ) { + listener.onClick( mParams.mContentView ); + } + mOldOffsetX = newOffsetX; + mOldOffsetY = newOffsetY; + } + return true; + } ); + } + @Override public void show() { - if(!isShowing){ + if ( !isShowing ) { isShowing = true; - mWindowManager.addView(mParams.mContentView,mLayoutParams); + mWindowManager.addView( mParams.mContentView, mLayoutParams ); } } @Override public void hide() { - if (isShowing && mParams != null) { - mWindowManager.removeView(mParams.mContentView); + if ( isShowing && mParams != null ) { + mWindowManager.removeView( mParams.mContentView ); isShowing = false; } - } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java index d0d2cfa4d4..db2b244273 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/wm/WindowManagerView.java @@ -33,6 +33,10 @@ public class WindowManagerView { return mParams.mContentView.findViewById( id ); } + public void attachTouchEvent( IWindowManagerView.OnViewClickListener listener ) { + mManagerView.handleTouchEvent(listener); + } + public void show() { mManagerView.show(); } @@ -72,6 +76,11 @@ public class WindowManagerView { return this; } + public Builder gravity( int gravity ) { + mParams.mGravity = gravity; + return this; + } + /** * 默认dialog实现 * @@ -105,5 +114,6 @@ public class WindowManagerView { public int mHeight; public int mX; public int mY; + public int mGravity; } } diff --git a/modules/mogo-module-left-panel/src/androidTest/java/com/zhidao/mogo/module/left/panel/ExampleInstrumentedTest.kt b/modules/mogo-module-left-panel/src/androidTest/java/com/zhidao/mogo/module/left/panel/ExampleInstrumentedTest.kt deleted file mode 100644 index dc1ab9fba3..0000000000 --- a/modules/mogo-module-left-panel/src/androidTest/java/com/zhidao/mogo/module/left/panel/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.mogo.module.left.panel - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.zhidao.mogo.module.left.panel.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/modules/mogo-module-left-panel/src/test/java/com/zhidao/mogo/module/left/panel/ExampleUnitTest.kt b/modules/mogo-module-left-panel/src/test/java/com/zhidao/mogo/module/left/panel/ExampleUnitTest.kt deleted file mode 100644 index fa3e2c384a..0000000000 --- a/modules/mogo-module-left-panel/src/test/java/com/zhidao/mogo/module/left/panel/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.zhidao.mogo.module.left.panel - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file 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 a0952f38de..e0af518958 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 @@ -308,7 +308,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public void onIntentReceived( String intentStr, Intent intent ) { if ( TextUtils.equals( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, intentStr ) ) { - mIsHomeKeyDown = true; + mIsHomeKeyDown = intent.getBooleanExtra( "isHomeKeyDown", true ); } } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastReceiver.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java similarity index 86% rename from modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastReceiver.java rename to modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java index 242bbbce63..4ddc0f947f 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastReceiver.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/AutoNaviBroadcastIntentHandler.java @@ -1,14 +1,12 @@ package com.mogo.module.map; -import android.content.BroadcastReceiver; -import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.text.TextUtils; -import com.mogo.commons.AbsMogoApplication; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.uicontroller.EnumMapUI; +import com.mogo.service.intent.IMogoIntentListener; +import com.mogo.service.intent.IMogoIntentManager; import com.mogo.utils.logger.Logger; public @@ -18,21 +16,19 @@ public * * 接收高德地图车机版广播 */ -class AutoNaviBroadcastReceiver extends BroadcastReceiver { +class AutoNaviBroadcastIntentHandler implements IMogoIntentListener { public static final String TAG = "AutoNaviBroadcastReceiver"; public static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"; - public void register() { - IntentFilter inputFilter = new IntentFilter(); - inputFilter.addAction( AUTONAVI_STANDARD_BROADCAST_RECV ); - AbsMogoApplication.getApp().registerReceiver( this, inputFilter ); + public void register( IMogoIntentManager manager ) { + manager.registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, this ); } - public void unregister() { + public void unregister(IMogoIntentManager manager ) { mCallback = null; - AbsMogoApplication.getApp().unregisterReceiver( this ); + manager.unregisterIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, this ); } private OnMapControlCallback mCallback; @@ -42,7 +38,7 @@ class AutoNaviBroadcastReceiver extends BroadcastReceiver { } @Override - public void onReceive( Context context, Intent intent ) { + public void onIntentReceived( String intentStr, Intent intent ) { String action = intent.getAction(); int keyType = intent.getIntExtra( "KEY_TYPE", 0 ); @@ -122,6 +118,5 @@ class AutoNaviBroadcastReceiver extends BroadcastReceiver { .avoidSpeed( prefer == 3 ); mCallback.onReCalculatePath( config ); } - mCallback.onEnd( intent ); } } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index f72c5dea25..a45306c822 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -32,6 +32,7 @@ import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.module.IMogoSearchManager; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.strategy.IMogoRefreshStrategyController; +import com.mogo.utils.AppUtils; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; @@ -73,23 +74,11 @@ public class MapPresenter extends Presenter< MapView > implements mView.getUIController().recoverLockMode(); } }; - private AutoNaviBroadcastReceiver mAutoNaviReceiver; + private AutoNaviBroadcastIntentHandler mAutoNaviReceiver; private MapControlCommandHandler mCustomVoiceCommandHandler; public MapPresenter( MapView view ) { super( view ); - initBroadcast(); - mCustomVoiceCommandHandler = new MapControlCommandHandler(); - mCustomVoiceCommandHandler.setCallback( this ); - } - - /** - * opera type为0:0 实时路况开;1实时路况关 type为1:0 放大地图; 1缩小地图 type为2:0切换2d车上; 1切换2d北上;2切换3d车上支持 - */ - private void initBroadcast() { - mAutoNaviReceiver = new AutoNaviBroadcastReceiver(); - mAutoNaviReceiver.setCallback( this ); - mAutoNaviReceiver.register(); } @Override @@ -158,11 +147,10 @@ public class MapPresenter extends Presenter< MapView > implements if ( CustomNaviInterrupter.getInstance().interrupt() ) { // 导航过程中语音指令退出导航,会出现 activity 不走 onResume 的情况 UiThreadHandler.postDelayed( () -> { - if ( isForeground( getContext() ) && !hasOthersActivity() && !mStatusManager.isMainPageOnResume() ) { + if ( AppUtils.isAppForeground( getContext() ) && !hasOthersActivity() && !mStatusManager.isMainPageOnResume() ) { mLauncher.backToLauncher( getContext() ); } }, 500L ); - onEnd( intent ); return; } mMogoMapService.getNavi( getContext() ).stopNavi(); @@ -176,26 +164,6 @@ public class MapPresenter extends Presenter< MapView > implements mMogoMapService.getNavi( getContext() ).reCalculateRoute( config ); } - @Override - public void onEnd( Intent intent ) { - mMogoIntentManager.invoke( AutoNaviBroadcastReceiver.AUTONAVI_STANDARD_BROADCAST_RECV, intent ); - } - - private boolean isForeground( Context context ) { - if ( context != null ) { - ActivityManager activityManager = ( ActivityManager ) context.getSystemService( Context.ACTIVITY_SERVICE ); - List< ActivityManager.RunningAppProcessInfo > processes = activityManager.getRunningAppProcesses(); - for ( ActivityManager.RunningAppProcessInfo processInfo : processes ) { - if ( processInfo.processName.equals( context.getPackageName() ) ) { - if ( processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND ) { - return true; - } - } - } - } - return false; - } - private boolean hasOthersActivity() { ActivityManager am = ( ActivityManager ) getContext().getSystemService( Context.ACTIVITY_SERVICE ); List< ActivityManager.RunningTaskInfo > list = am.getRunningTasks( 1 ); @@ -298,6 +266,16 @@ public class MapPresenter extends Presenter< MapView > implements for ( String cmd : VoiceConstants.sUnUnRegisterCmds ) { mMogoIntentManager.registerIntentListener( cmd, this ); } + + initBroadcast(); + mCustomVoiceCommandHandler = new MapControlCommandHandler(); + mCustomVoiceCommandHandler.setCallback( this ); + } + + private void initBroadcast() { + mAutoNaviReceiver = new AutoNaviBroadcastIntentHandler(); + mAutoNaviReceiver.setCallback( this ); + mAutoNaviReceiver.register( mMogoIntentManager ); } @Override @@ -309,7 +287,6 @@ public class MapPresenter extends Presenter< MapView > implements @Override public void onPause( @NonNull LifecycleOwner owner ) { super.onPause( owner ); - unregisterVoiceCmd(); } @@ -317,7 +294,7 @@ public class MapPresenter extends Presenter< MapView > implements public void onDestroy( @NonNull LifecycleOwner owner ) { super.onDestroy( owner ); if ( mAutoNaviReceiver != null ) { - mAutoNaviReceiver.unregister(); + mAutoNaviReceiver.unregister( mMogoIntentManager ); } } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/OnMapControlCallback.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/OnMapControlCallback.java index d0d074da5e..cd6263370d 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/OnMapControlCallback.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/OnMapControlCallback.java @@ -31,9 +31,6 @@ public interface OnMapControlCallback { // 重新规划路线 void onReCalculatePath( MogoNaviConfig config ); - // 结束 - void onEnd( Intent intent ); - // 查看全程 void onDisplayOverview(); 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 ed58cdd98f..1eb74077a3 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 @@ -32,6 +32,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.service.intent.AutoNaviIntentHandler; import com.mogo.module.service.intent.IntentHandlerFactory; import com.mogo.module.service.marker.MapMarkerManager; import com.mogo.module.service.network.RefreshCallback; @@ -274,7 +275,7 @@ public class MogoServices implements IMogoMapListener, private boolean mIsFirstAccOn = true; - private IMogoStatusChangedListener statusChangedListener = new StatusChangedAdapter(){ + private IMogoStatusChangedListener statusChangedListener = new StatusChangedAdapter() { @Override public void onUserInteracted( boolean userInteracted ) { if ( userInteracted ) { @@ -303,9 +304,11 @@ public class MogoServices implements IMogoMapListener, restartAutoRefreshAtTime( 2_000L ); } mIsMainPageFirstResume = false; + AutoNaviIntentHandler.getInstance().closeEntrance(); } else { unregisterInternalUnWakeupWords(); stopAutoRefreshStrategy(); + AutoNaviIntentHandler.getInstance().syncAutoNaviForgroundStatus( mContext ); } } @@ -382,6 +385,8 @@ public class MogoServices implements IMogoMapListener, mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_USER_ONLINE, this ); mIntentManager.registerIntentListener( ServiceConst.COMMAND_ZHIDAO_NEARBY_FRIEND_BYLOCATION, this ); mIntentManager.registerIntentListener( ServiceConst.COMMAND_BACK, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_AUTO_NAVI_SEND, this ); mADASController = MarkerServiceHandler.getADASController(); mLauncher = MarkerServiceHandler.getLauncher(); @@ -395,6 +400,9 @@ public class MogoServices implements IMogoMapListener, if ( DebugConfig.isLaunchLocationService() ) { initLocationServiceProcess( context ); } + + AutoNaviIntentHandler.getInstance().syncAutoNaviForgroundStatus( mContext ); + } private void initLocationServiceProcess( Context context ) { @@ -473,6 +481,8 @@ public class MogoServices implements IMogoMapListener, filter.addAction( MogoReceiver.ACTION_VOICE_READY ); filter.addAction( MogoReceiver.ACTION_MOCK ); filter.addAction( Intent.ACTION_CLOSE_SYSTEM_DIALOGS ); + filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER ); + filter.addAction( MogoReceiver.ACTION_AUTO_NAVI_SEND ); try { context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); Logger.i( TAG, "register voice receiver." ); @@ -914,4 +924,14 @@ public class MogoServices implements IMogoMapListener, AIAssist.getInstance( mContext ).registerUnWakeupCommand( ServiceConst.CMD_BACK, ServiceConst.CMD_BACK_WORDS, this ); } } + + @Override + public void onStartNavi() { + AutoNaviIntentHandler.getInstance().preShowEntrance( mContext ); + } + + @Override + public void onStopNavi() { + AutoNaviIntentHandler.getInstance().closeEntrance(); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AutoNaviIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AutoNaviIntentHandler.java new file mode 100644 index 0000000000..67be36f424 --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AutoNaviIntentHandler.java @@ -0,0 +1,144 @@ +package com.mogo.module.service.intent; + +import android.content.Context; +import android.content.Intent; +import android.view.Gravity; +import android.view.WindowManager; + +import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.debug.DebugConfig; +import com.mogo.module.common.wm.WindowManagerView; +import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.R; +import com.mogo.utils.LaunchUtils; +import com.mogo.utils.ResourcesHelper; +import com.mogo.utils.logger.Logger; + +public +/** + * @author congtaowang + * @since 2020/6/5 + *

+ * 描述 + */ +class AutoNaviIntentHandler implements IntentHandler { + + private static final String TAG = "AutoNaviIntentHandler"; + + private static volatile AutoNaviIntentHandler sInstance; + + private AutoNaviIntentHandler() { + } + + public static AutoNaviIntentHandler getInstance() { + if ( sInstance == null ) { + synchronized ( AutoNaviIntentHandler.class ) { + if ( sInstance == null ) { + sInstance = new AutoNaviIntentHandler(); + } + } + } + return sInstance; + } + + private WindowManagerView mWindowManagerView; + + public synchronized void release() { + sInstance = null; + } + + @Override + public void handle( Context context, Intent intent ) { + int keyType = intent.getIntExtra( "KEY_TYPE", 0 ); + switch ( keyType ) { + case 10021: + closeEntrance(); + MarkerServiceHandler.getADASController().showADAS(); + break; + case 20009: + MarkerServiceHandler.getADASController().closeADAS(); + break; + case 10019: + int extraState = intent.getIntExtra( "EXTRA_STATE", -1 ); + switch ( extraState ) { + case 3: + syncAutoNaviNavingStatus( context ); + break; + case 4: + closeEntrance(); + break; + case 8: + showEntrance( context ); + break; + case 9: + closeEntrance(); + break; + } + break; + } + } + + /** + * 通过查询高德地图状态后再显示 + * + * @param context + */ + public void preShowEntrance( Context context ) { + syncAutoNaviForgroundStatus( context ); + } + + private void showEntrance( Context context ) { + if ( mWindowManagerView == null ) { + mWindowManagerView = new WindowManagerView.Builder( AbsMogoApplication.getApp() ) + .contentView( R.layout.module_service_app_entrance ) + .size( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT ) + .gravity( Gravity.LEFT | Gravity.TOP ) + .position( ResourcesHelper.getDimensionPixelSize( context, R.dimen.module_services_app_entrance_x ), ResourcesHelper.getDimensionPixelSize( AbsMogoApplication.getApp(), R.dimen.module_services_app_entrance_y ) ) + .showInWindowManager(); + mWindowManagerView.attachTouchEvent( view -> { + try { + if ( DebugConfig.isLauncher() ) { + MarkerServiceHandler.getLauncher().backToLauncher( context ); + } else { + LaunchUtils.launchByPkg( context, "com.mogo.launcher.app" ); + } + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } ); + } + try { + mWindowManagerView.show(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + + public void closeEntrance() { + if ( mWindowManagerView == null ) { + return; + } + try { + mWindowManagerView.dismiss(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + + public void syncAutoNaviForgroundStatus( Context context ) { + Intent intent = new Intent(); + intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" ); + intent.putExtra( "KEY_TYPE", 12404 ); + intent.putExtra( "EXTRA_REQUEST_AUTO_STATE", 0 ); + context.sendBroadcast( intent ); + } + + public void syncAutoNaviNavingStatus( Context context ) { + Intent intent = new Intent(); + intent.setAction( "AUTONAVI_STANDARD_BROADCAST_RECV" ); + intent.putExtra( "KEY_TYPE", 12404 ); + intent.putExtra( "EXTRA_REQUEST_AUTO_STATE", 1 ); + context.sendBroadcast( intent ); + } +} + diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java index ea84b182e2..c9887ac462 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java @@ -37,6 +37,8 @@ public class IntentHandlerFactory { mHandlers.put( MogoReceiver.ACTIION_ADAS, ADASStatusIntentHandler.getInstance() ); mHandlers.put( MogoReceiver.ACTION_VOICE_READY, new AIAssistIntentHandler() ); mHandlers.put( ServiceConst.COMMAND_BACK, WholeVoiceCommandIntentHandler.getInstance() ); + mHandlers.put( MogoReceiver.ACTION_AUTO_NAVI_RECEIVER, AutoNaviIntentHandler.getInstance() ); + mHandlers.put( MogoReceiver.ACTION_AUTO_NAVI_SEND, AutoNaviIntentHandler.getInstance() ); } private static final class InstanceHolder { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java index 42f9bef659..411d36b927 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java @@ -53,6 +53,11 @@ public class MogoReceiver extends BroadcastReceiver { public static final String ACTION_MOCK = "com.mogo.mock"; + // 接受其他app发给高德的广播 + public static final String ACTION_AUTO_NAVI_RECEIVER = "AUTONAVI_STANDARD_BROADCAST_RECV"; + // 接受高德发过来的广播 + public static final String ACTION_AUTO_NAVI_SEND = "AUTONAVI_STANDARD_BROADCAST_SEND"; + private IMogoIntentManager mMogoIntentManager; public MogoReceiver(Context context) { diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_app_entrance_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_app_entrance_bkg.xml new file mode 100644 index 0000000000..31b2c574f5 --- /dev/null +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_app_entrance_bkg.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/module_service_app_entrance.xml b/modules/mogo-module-service/src/main/res/layout/module_service_app_entrance.xml new file mode 100644 index 0000000000..0c8bb8cadd --- /dev/null +++ b/modules/mogo-module-service/src/main/res/layout/module_service_app_entrance.xml @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..871507f1ab --- /dev/null +++ b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,33 @@ + + + 16dp + 2dp + 56px + 65px + 35px + 35px + 4px + + 550px + 208px + 100px + 100px + 100px + 10px + 54px + 44px + 44px + 14px + 12px + 64px + 6.5px + 10px + 20px + 15px + 2px + 112px + 929px + 10px + 15px + 71px + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml new file mode 100644 index 0000000000..871507f1ab --- /dev/null +++ b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml @@ -0,0 +1,33 @@ + + + 16dp + 2dp + 56px + 65px + 35px + 35px + 4px + + 550px + 208px + 100px + 100px + 100px + 10px + 54px + 44px + 44px + 14px + 12px + 64px + 6.5px + 10px + 20px + 15px + 2px + 112px + 929px + 10px + 15px + 71px + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml new file mode 100644 index 0000000000..1e58e34c84 --- /dev/null +++ b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -0,0 +1,33 @@ + + + 20dp + 4dp + 100px + 117px + 60px + 60px + 8px + + + 1000px + 390px + 200px + 200px + 10px + 10px + 100px + 80px + 80px + 24px + 20px + 120px + 20px + 40px + 30px + 4px + 48px + 1000px + 10px + 15px + 71px + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml index 341706179d..1e58e34c84 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml @@ -22,4 +22,12 @@ 20px 120px 20px + 40px + 30px + 4px + 48px + 1000px + 10px + 15px + 71px \ No newline at end of file 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 fd1066746d..1e58e34c84 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -1,25 +1,33 @@ - 16dp - 2dp - 56px - 65px - 35px - 35px - 4px + 20dp + 4dp + 100px + 117px + 60px + 60px + 8px - 550px - 208px - 100px - 100px - 100px + + 1000px + 390px + 200px + 200px + 10px 10px - 54px - 44px - 44px - 14px - 12px - 64px - 6.5px - 10px + 100px + 80px + 80px + 24px + 20px + 120px + 20px + 40px + 30px + 4px + 48px + 1000px + 10px + 15px + 71px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/strings.xml b/modules/mogo-module-service/src/main/res/values/strings.xml index 27efab9b88..e25a4adb00 100644 --- a/modules/mogo-module-service/src/main/res/values/strings.xml +++ b/modules/mogo-module-service/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ mogo-module-service + 辅助\n驾驶 diff --git a/modules/mogo-module-splash-noop/src/androidTest/java/com/zhidao/mogo/module/splash/ExampleInstrumentedTest.kt b/modules/mogo-module-splash-noop/src/androidTest/java/com/zhidao/mogo/module/splash/ExampleInstrumentedTest.kt deleted file mode 100644 index b0d35cfd07..0000000000 --- a/modules/mogo-module-splash-noop/src/androidTest/java/com/zhidao/mogo/module/splash/ExampleInstrumentedTest.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.mogo.module.splash - -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.ext.junit.runners.AndroidJUnit4 - -import org.junit.Test -import org.junit.runner.RunWith - -import org.junit.Assert.* - -/** - * Instrumented test, which will execute on an Android device. - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -@RunWith(AndroidJUnit4::class) -class ExampleInstrumentedTest { - @Test - fun useAppContext() { - // Context of the app under test. - val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("com.zhidao.mogo.module.byd.test", appContext.packageName) - } -} \ No newline at end of file diff --git a/modules/mogo-module-splash-noop/src/test/java/com/zhidao/mogo/module/splash/ExampleUnitTest.kt b/modules/mogo-module-splash-noop/src/test/java/com/zhidao/mogo/module/splash/ExampleUnitTest.kt deleted file mode 100644 index 35aae2dff8..0000000000 --- a/modules/mogo-module-splash-noop/src/test/java/com/zhidao/mogo/module/splash/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.zhidao.mogo.module.splash - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * See [testing documentation](http://d.android.com/tools/testing). - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, 2 + 2) - } -} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_enthusiasm_second.png b/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_enthusiasm_second.png index 93388e1ef0..0eb58cb3e0 100644 Binary files a/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_enthusiasm_second.png and b/modules/mogo-module-v2x/src/main/res/drawable-ldpi/icon_enthusiasm_second.png differ