diff --git a/OCH/mogo-och-bus-passenger/src/m1/AndroidManifest.xml b/OCH/mogo-och-bus-passenger/src/m1/AndroidManifest.xml
new file mode 100644
index 0000000000..7856cbfee4
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/AndroidManifest.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1HomeActivity.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1HomeActivity.kt
new file mode 100644
index 0000000000..0b91b5d2cd
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/M1HomeActivity.kt
@@ -0,0 +1,12 @@
+package com.mogo.och.bus.passenger.ui
+
+import android.os.Bundle
+import com.mogo.eagle.core.function.main.MainLauncherActivity
+import com.mogo.och.bus.passenger.view.statusbar.StatusBarView
+
+class M1HomeActivity : MainLauncherActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ statusBar = StatusBarView(this)
+ super.onCreate(savedInstanceState)
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt
new file mode 100644
index 0000000000..77b0ed1057
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt
@@ -0,0 +1,33 @@
+package com.mogo.och.bus.passenger.view.statusbar
+
+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.m1.bus_p_m1_view_blue_tooth.view.*
+
+/**
+ * 魔戒蓝牙控件
+ * 放置于StatusBar右侧位置
+ */
+class M1BlueToothView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : BlueToothView(context, attrs, defStyleAttr),IMoGoDevaToolsListener {
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.bus_p_m1_view_blue_tooth, this, true)
+ }
+
+ override fun mofangStatus(status: Boolean) {
+ if (status) {
+ mofangView.setImageResource(R.drawable.bus_p_m1_blue_tooth_close)
+ } else {
+ mofangView.setImageResource(R.drawable.bus_p_m1_blue_tooth_open)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt
new file mode 100644
index 0000000000..f23a4356e5
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt
@@ -0,0 +1,84 @@
+package com.mogo.och.bus.passenger.view.statusbar
+
+import android.annotation.SuppressLint
+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.m1.bus_p_m1_view_status_bar.view.*
+import me.jessyan.autosize.utils.AutoSizeUtils
+
+class StatusBarView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener, IMoGoBatteryManagementSystemListener {
+
+ companion object {
+ const val TAG = "StatusBarView"
+ }
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.bus_p_m1_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)
+
+ updateStatusBarRightView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(this.context))
+ }
+
+ override fun onSkinModeChange(skinMode: Int) {
+ when (skinMode) {
+ 0 -> setStatusBarDarkOrLight(false)
+ 1 -> setStatusBarDarkOrLight(true)
+ }
+ }
+
+ override fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) {
+
+ }
+
+ @SuppressLint("SetTextI18n")
+ override fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int) {
+
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerHmiViewControlListenerManager.removeListener(TAG)
+ CallerSkinModeListenerManager.removeListener(TAG)
+ CallerDevaToolsManager.hideStatusBar()
+ }
+
+ override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) {
+ progress.progress = states.bmsSoc.toInt()
+ tv_power_cos.text = "${states.bmsSoc.toInt()}%"
+ }
+}
+
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_normal.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_normal.png
new file mode 100644
index 0000000000..e5a1b0df75
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_normal.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_press.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_press.png
new file mode 100644
index 0000000000..51e3d0de17
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_device_press.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png
index 064161dc38..bd172cf280 100644
Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_normal.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png
index 0020fb6eb9..6b5cbbeb75 100644
Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_information_press.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png
index e5a1b0df75..4febca6f0e 100644
Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_normal.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png
index 51e3d0de17..e4ca615283 100644
Binary files a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_function_soft_press.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_close.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_close.png
new file mode 100644
index 0000000000..e547bddbb2
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_close.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_open.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_open.png
new file mode 100644
index 0000000000..4d07f9ecf6
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_blue_tooth_open.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_status_bar_logo.png b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_status_bar_logo.png
new file mode 100644
index 0000000000..ad3bd7fda7
Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-nodpi/bus_p_m1_status_bar_logo.png differ
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable-v29/taxi_power_size_seekbar_style.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-v29/taxi_power_size_seekbar_style.xml
new file mode 100644
index 0000000000..8710c3ad41
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable-v29/taxi_power_size_seekbar_style.xml
@@ -0,0 +1,26 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml
index 3a40234a06..da31c45afc 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/bus_p_function_bottom_device_bg_selector.xml
@@ -1,8 +1,8 @@
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/drawable/taxi_power_size_seekbar_style.xml b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/taxi_power_size_seekbar_style.xml
new file mode 100644
index 0000000000..20b5c06d78
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/drawable/taxi_power_size_seekbar_style.xml
@@ -0,0 +1,26 @@
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml
index 64200dc4ea..0e87e7928c 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml
@@ -167,7 +167,7 @@
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintEnd_toStartOf="@+id/cb_bp_setting_soft"
app:layout_constraintBottom_toBottomOf="parent"
- android:layout_width="@dimen/dp_162"
+ android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_m1_view_status_bar.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_m1_view_status_bar.xml
new file mode 100644
index 0000000000..807d9df45c
--- /dev/null
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_m1_view_status_bar.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/values/color.xml b/OCH/mogo-och-bus-passenger/src/m1/res/values/color.xml
index 2e88ed6113..e44d470456 100644
--- a/OCH/mogo-och-bus-passenger/src/m1/res/values/color.xml
+++ b/OCH/mogo-och-bus-passenger/src/m1/res/values/color.xml
@@ -10,6 +10,10 @@
#96A5C2
#F5FBFF
#112B57
+ #1B2546
+ #A3BDF2
+ #56C59C
+ #56EFA0
#CCFFFFFF
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt
index 3ed347d792..06aca05155 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt
@@ -10,13 +10,12 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManage
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import kotlinx.android.synthetic.main.view_blue_tooth.view.*
-import kotlinx.android.synthetic.main.view_status_bar.view.*
/**
* 魔戒蓝牙控件
* 放置于StatusBar右侧位置
*/
-class BlueToothView @JvmOverloads constructor(
+open class BlueToothView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0