diff --git a/main-extensions/mogo-module-main-launcher/src/androidTest/java/com/zhidao/mogo/module/main/launcher/ExampleInstrumentedTest.java b/main-extensions/mogo-module-main-launcher/src/androidTest/java/com/zhidao/mogo/module/main/launcher/ExampleInstrumentedTest.java
deleted file mode 100644
index 6bccfd240a..0000000000
--- a/main-extensions/mogo-module-main-launcher/src/androidTest/java/com/zhidao/mogo/module/main/launcher/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.zhidao.mogo.module.main.launcher;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see 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.zhidao.mogo.module.main.launcher.test", appContext.getPackageName());
- }
-}
\ No newline at end of file
diff --git a/main-extensions/mogo-module-main-launcher/src/test/java/com/zhidao/mogo/module/main/launcher/ExampleUnitTest.java b/main-extensions/mogo-module-main-launcher/src/test/java/com/zhidao/mogo/module/main/launcher/ExampleUnitTest.java
deleted file mode 100644
index 2004abd04d..0000000000
--- a/main-extensions/mogo-module-main-launcher/src/test/java/com/zhidao/mogo/module/main/launcher/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.zhidao.mogo.module.main.launcher;
-
-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/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index 0427b49c7f..6ff27ef9d5 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -67,7 +67,6 @@ import com.mogo.module.extensions.utils.EntranceViewHolder;
import com.mogo.module.extensions.utils.NoMapTopViewShaderHelper;
import com.mogo.module.extensions.utils.TopViewAnimHelper;
import com.mogo.module.extensions.utils.TopViewNoLinkageAnimHelper;
-import com.mogo.module.extensions.view.SpeedChartView;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.share.manager.ServiceApisManager;
import com.mogo.service.IMogoServiceApis;
@@ -126,7 +125,6 @@ public class EntranceFragment extends MvpFragment {
- Log.d(TAG,"长按显示状态工具栏");
- Intent intent = new Intent();
- intent.putExtra("oper", 52);
- MogoApisHandler.getInstance().getApis().getIntentManagerApi().invoke(MogoReceiver.ACTION_MOCK, intent);
- return true;
- });
- }
clTrafficLight = (ConstraintLayout) findViewById(R.id.cl_traffic_light);
tvYellow = (TextView) findViewById(R.id.tv_yellow);
tvRed = (TextView) findViewById(R.id.tv_red);
@@ -420,7 +404,6 @@ public class EntranceFragment extends MvpFragment 60 ? "#DB3137" : "#3E77F6"));
- mouduleArc.setValues(speed);
- flSpeed.setBackgroundResource(speed > 60 ? R.drawable.yi_biao_pan_bg_speeding : R.drawable.yi_biao_pan_bg_nor);
}
@Override
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index d91b38ebd2..9e5f2ceb3e 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -37,7 +37,7 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
-
1100px
- 460px
- 460px
- 320px
- 320px
- 20px
- 110px
- 40px
+
279px
119px
22px
diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
index 831531747c..0985d97ed6 100644
--- a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml
@@ -182,14 +182,7 @@
393px
700px
- 300px
- 300px
- 200px
- 200px
- 10px
- 80px
- 28px
190px
76px
diff --git a/modules/mogo-module-hmi/build.gradle b/modules/mogo-module-hmi/build.gradle
index d173ab6846..dad5a3017a 100644
--- a/modules/mogo-module-hmi/build.gradle
+++ b/modules/mogo-module-hmi/build.gradle
@@ -58,6 +58,7 @@ dependencies {
api rootProject.ext.dependencies.mogocommons
api rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
+ implementation rootProject.ext.dependencies.moduleservice
} else {
api project(":libraries:mogo-map")
api project(":libraries:mogo-map-api")
@@ -65,6 +66,7 @@ dependencies {
api project(":foudations:mogo-commons")
api project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
+ implementation project(':modules:mogo-module-service')
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/view/SpeedChartView.java b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedChartView.java
similarity index 94%
rename from modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/view/SpeedChartView.java
rename to modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedChartView.java
index ab85243ef1..746ad2b95e 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/view/SpeedChartView.java
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedChartView.java
@@ -1,8 +1,7 @@
-package com.mogo.module.extensions.view;
+package com.mogo.module.hmi.ui.widget;
import android.animation.ValueAnimator;
import android.content.Context;
-import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
@@ -10,12 +9,12 @@ import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Typeface;
import android.util.AttributeSet;
-import android.util.DisplayMetrics;
import android.view.View;
import androidx.annotation.Nullable;
-import com.mogo.module.extensions.R;
+import com.mogo.module.hmi.R;
+
/**
* created by wujifei on 2021/3/24 16:20
@@ -182,9 +181,4 @@ public class SpeedChartView extends View {
postInvalidate();
}
-
- private float dp2px(float dp) {
- DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
- return dp * metrics.density;
- }
}
diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedPanelView.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedPanelView.kt
new file mode 100644
index 0000000000..96b0d16693
--- /dev/null
+++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedPanelView.kt
@@ -0,0 +1,111 @@
+package com.mogo.module.hmi.ui.widget
+
+import android.content.Context
+import android.content.Intent
+import android.graphics.Color
+import android.location.Location
+import android.util.AttributeSet
+import android.util.Log
+import android.view.Gravity
+import android.view.View
+import android.widget.FrameLayout
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.commons.debug.DebugConfig
+import com.mogo.map.MogoLatLng
+import com.mogo.map.navi.IMogoCarLocationChangedListener2
+import com.mogo.module.common.MogoApisHandler
+import com.mogo.module.hmi.R
+import com.mogo.module.service.receiver.MogoReceiver
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.statusmanager.IMogoStatusChangedListener
+import com.mogo.service.statusmanager.StatusDescriptor
+
+/**
+ * @author xiaoyuzhou
+ * @date 2021/8/25 8:25 下午
+ */
+class SpeedPanelView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : FrameLayout(context, attrs, defStyleAttr),
+ IMogoCarLocationChangedListener2,
+ IMogoStatusChangedListener {
+ val TAG = "SpeedPanelView"
+ private var mMogoServiceApis: IMogoServiceApis =
+ ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
+ .navigation(context) as IMogoServiceApis
+
+ var mContext: Context
+ var mSpeedChartView: SpeedChartView
+
+ init {
+ setBackgroundResource(R.drawable.yi_biao_pan_bg_nor)
+ mContext = context
+ mSpeedChartView = SpeedChartView(context)
+
+ val layoutParams = LayoutParams(
+ resources.getDimension(R.dimen.module_ext_arcView_width).toInt(),
+ resources.getDimension(R.dimen.module_ext_arcView_height).toInt()
+ )
+ layoutParams.gravity = Gravity.CENTER
+ mSpeedChartView.layoutParams = layoutParams
+ addView(mSpeedChartView)
+
+ if (DebugConfig.isDebug()) {
+ mSpeedChartView.isLongClickable = true
+ mSpeedChartView.setOnLongClickListener { v ->
+ Log.d(TAG, "长按显示状态工具栏")
+ val intent = Intent()
+ intent.putExtra("oper", 52)
+ MogoApisHandler.getInstance().apis.intentManagerApi
+ .invoke(MogoReceiver.ACTION_MOCK, intent)
+ true
+ }
+ }
+
+ // 注册位置回调
+ mMogoServiceApis.registerCenterApi
+ .registerCarLocationChangedListener(TAG, this)
+ // 注册VR模式回调
+ mMogoServiceApis.statusManagerApi
+ .registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this)
+
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ // 解除注册
+ mMogoServiceApis.registerCenterApi
+ .unregisterMogoLocationListener(TAG)
+ mMogoServiceApis.statusManagerApi
+ .unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this)
+ }
+
+
+ override fun onCarLocationChanged(latLng: MogoLatLng?) {
+
+ }
+
+ override fun onCarLocationChanged2(latLng: Location) {
+ val speed = (latLng.speed * 3.6f).toInt()
+ mSpeedChartView.setArcColor(Color.parseColor(if (speed > 60) "#DB3137" else "#3E77F6"))
+ mSpeedChartView.setValues(speed)
+ setBackgroundResource(if (speed > 60) R.drawable.yi_biao_pan_bg_speeding else R.drawable.yi_biao_pan_bg_nor)
+ }
+
+ override fun onStatusChanged(descriptor: StatusDescriptor?, isTrue: Boolean) {
+ if (descriptor == StatusDescriptor.VR_MODE) {
+ try {
+ visibility = if (isTrue) {
+ View.VISIBLE
+ } else {
+ View.GONE
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/drawable/yi_biao_pan_bg_nor.xml b/modules/mogo-module-hmi/src/main/res/drawable/yi_biao_pan_bg_nor.xml
similarity index 53%
rename from modules/mogo-module-extensions/src/main/res/drawable/yi_biao_pan_bg_nor.xml
rename to modules/mogo-module-hmi/src/main/res/drawable/yi_biao_pan_bg_nor.xml
index 4bde0e73c1..06579a8582 100644
--- a/modules/mogo-module-extensions/src/main/res/drawable/yi_biao_pan_bg_nor.xml
+++ b/modules/mogo-module-hmi/src/main/res/drawable/yi_biao_pan_bg_nor.xml
@@ -4,14 +4,6 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 460px
+ 460px
+
+ 320px
+ 320px
+ 20px
+ 110px
+ 40px
+
\ No newline at end of file
diff --git a/modules/mogo-module-hmi/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-hmi/src/main/res/values-xhdpi/dimens.xml
new file mode 100644
index 0000000000..c7c9f95016
--- /dev/null
+++ b/modules/mogo-module-hmi/src/main/res/values-xhdpi/dimens.xml
@@ -0,0 +1,11 @@
+
+
+ 300px
+ 300px
+
+ 200px
+ 200px
+ 10px
+ 80px
+ 28px
+
\ No newline at end of file