From 0979e5fd79d721fdccae39c689593bc28ac76fa6 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 18:08:35 +0800 Subject: [PATCH] =?UTF-8?q?[M2]=20M2=20=E7=8A=B6=E6=80=81=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/M2StatusViewManager.java | 33 +++++++ .../passenger/ui/widget/M2BlueToothView.kt | 34 +++++++ .../passenger/ui/widget/M2StatusBarView.kt | 86 ++++++++++++++++++ .../drawable-nodpi/m2_blue_tooth_close.png | Bin 0 -> 900 bytes .../res/drawable-nodpi/m2_blue_tooth_open.png | Bin 0 -> 838 bytes .../res/drawable-nodpi/m2_status_bar_logo.png | Bin 0 -> 3771 bytes .../res/drawable/m2_power_seekbar_style.xml | 26 ++++++ .../res/layout/p_m2_driving_info_fragment.xml | 2 +- .../m2/res/layout/p_m2_view_blue_tooth.xml | 15 +++ .../m2/res/layout/p_m2_view_status_bar.xml | 72 +++++++++++++++ .../src/m2/res/values/colors.xml | 1 + 11 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_open.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_status_bar_logo.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java new file mode 100644 index 0000000000..8966090d91 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java @@ -0,0 +1,33 @@ +package com.mogo.och.bus.passenger.provider; + +import android.content.Context; +import android.view.View; + +import com.mogo.och.bus.passenger.ui.widget.M2StatusBarView; +import androidx.annotation.NonNull; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.constants.MogoServicePaths; +import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; + +/** + * @author congtaowang + * @since 2020-01-06 + *

+ * 根据优先级控制显示 window view. + */ +@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) +public class M2StatusViewManager implements IStatusViewLayout { + + + @NonNull + @Override + public View getStatusView(Context context) { + return new M2StatusBarView(context); + } + + @Override + public void init(Context context) { + + } +} diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt new file mode 100644 index 0000000000..2916611b3e --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt @@ -0,0 +1,34 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener +import com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.m2.p_m2_view_blue_tooth.view.* + +/** + * 魔戒蓝牙控件 + * 放置于StatusBar右侧位置 + * todo arrow + */ +class M2BlueToothView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : BlueToothView(context, attrs, defStyleAttr),IMoGoDevaToolsListener { + + init { + LayoutInflater.from(context).inflate(R.layout.p_m2_view_blue_tooth, this, true) + } + + override fun mofangStatus(status: Boolean) { + if (status) { + blueView.setImageResource(R.drawable.m2_blue_tooth_close) + } else { + blueView.setImageResource(R.drawable.m2_blue_tooth_open) + } + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt new file mode 100644 index 0000000000..8eb016875b --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt @@ -0,0 +1,86 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.graphics.Color +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.constraintlayout.widget.ConstraintLayout +import chassis.ChassisStatesOuterClass +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener +import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener +import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +import com.mogo.eagle.core.function.call.autopilot.CallerBatteryManagementSystemListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager +import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager +import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.m2.p_m2_view_status_bar.view.* +import me.jessyan.autosize.utils.AutoSizeUtils + +/** + * @author: wangmingjun + * @date: 2023/2/14 + */ +class M2StatusBarView @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : ConstraintLayout(context, attrs), IViewControlListener, IMoGoSkinModeChangeListener, + IMoGoBatteryManagementSystemListener { + + companion object { + const val TAG = "M2StatusBarView" + } + + init { + LayoutInflater.from(context).inflate(R.layout.p_m2_view_status_bar, this, true) + setBackgroundColor(Color.WHITE) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + post { + val params: ViewGroup.LayoutParams = getLayoutParams() + params.height = AutoSizeUtils.dp2px(context,47f) + layoutParams = params + } + //添加view控制 + CallerHmiViewControlListenerManager.addListener(TAG,this) + // 添加换肤监听 + CallerSkinModeListenerManager.addListener(TAG, this) + //电量 + CallerBatteryManagementSystemListenerManager.addListener(TAG,this) + + progress.progress = 50 + tv_power_cos.text = "50%" + } + + override fun onSkinModeChange(skinMode: Int) { + when (skinMode) { + 0 -> setStatusBarDarkOrLight(false) + 1 -> setStatusBarDarkOrLight(true) + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerHmiViewControlListenerManager.removeListener(TAG) + CallerSkinModeListenerManager.removeListener(TAG) + CallerDevaToolsManager.hideStatusBar() + } + + override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) { + val bmsSoc = states.bmsSoc + if(bmsSoc >1){ + progress.progress = bmsSoc.toInt() + tv_power_cos.text = "${bmsSoc.toInt()}%" + }else{ + val currenPower = (bmsSoc * 100).toInt() + progress.progress = currenPower + tv_power_cos.text = "$currenPower%" + } + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png new file mode 100644 index 0000000000000000000000000000000000000000..0c292d2cf325ad03f050017fb62bb4dd871cc394 GIT binary patch literal 900 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml new file mode 100644 index 0000000000..3ac0c761ba --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 8440be86dd..d158f9b8b0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -17,7 +17,7 @@ android:id="@+id/img_drive_bg" android:layout_width="@dimen/dp_290" android:layout_height="@dimen/dp_140" - android:layout_marginTop="@dimen/dp_24" + android:layout_marginTop="@dimen/dp_66" android:layout_marginLeft="@dimen/dp_24" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml new file mode 100644 index 0000000000..69ae14c394 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml new file mode 100644 index 0000000000..15a1c12b4f --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml index da9dd9c7d0..13bd4aff12 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml @@ -10,6 +10,7 @@ #6B7EA6 #2D3E5F #A5D8FF + #1B2546 #FFFFA28B #FFDA1100