From 8a89d48ecf5464bbb6cd069aa4661c4566bf9d2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 25 Aug 2021 21:27:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=BD=E7=A6=BB=E4=BC=98=E5=8C=96=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E5=8D=A1=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../launcher/ExampleInstrumentedTest.java | 26 ---- .../module/main/launcher/ExampleUnitTest.java | 17 --- .../extensions/entrance/EntranceFragment.java | 26 ---- .../res/layout/module_ext_layout_entrance.xml | 2 +- .../res/values-xhdpi-2560x1440/dimens.xml | 8 +- .../src/main/res/values-xhdpi/dimens.xml | 7 -- modules/mogo-module-hmi/build.gradle | 2 + .../module/hmi/ui/widget}/SpeedChartView.java | 12 +- .../module/hmi/ui/widget/SpeedPanelView.kt | 111 ++++++++++++++++++ .../main/res/drawable/yi_biao_pan_bg_nor.xml | 8 -- .../res/drawable/yi_biao_pan_bg_speeding.xml | 3 - .../src/main/res/layout/fragment_warning.xml | 9 ++ .../res/values-xhdpi-2560x1440/dimens.xml | 11 ++ .../src/main/res/values-xhdpi/dimens.xml | 11 ++ 14 files changed, 149 insertions(+), 104 deletions(-) delete mode 100644 main-extensions/mogo-module-main-launcher/src/androidTest/java/com/zhidao/mogo/module/main/launcher/ExampleInstrumentedTest.java delete mode 100644 main-extensions/mogo-module-main-launcher/src/test/java/com/zhidao/mogo/module/main/launcher/ExampleUnitTest.java rename modules/{mogo-module-extensions/src/main/java/com/mogo/module/extensions/view => mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget}/SpeedChartView.java (94%) create mode 100644 modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/SpeedPanelView.kt rename modules/{mogo-module-extensions => mogo-module-hmi}/src/main/res/drawable/yi_biao_pan_bg_nor.xml (53%) rename modules/{mogo-module-extensions => mogo-module-hmi}/src/main/res/drawable/yi_biao_pan_bg_speeding.xml (82%) create mode 100644 modules/mogo-module-hmi/src/main/res/values-xhdpi-2560x1440/dimens.xml create mode 100644 modules/mogo-module-hmi/src/main/res/values-xhdpi/dimens.xml 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