[6.7.0][状态栏改版] 代码提交

This commit is contained in:
renwj
2024-09-13 20:16:59 +08:00
parent 508174079f
commit e732629d19
50 changed files with 269 additions and 323 deletions

View File

@@ -24,7 +24,7 @@ class DemoModeView @JvmOverloads constructor(
init {
LayoutInflater.from(context).inflate(R.layout.view_demo_mode, this, true)
background = this.context.getDrawable(R.drawable.demo_mode)
background = this.context.getDrawable(R.drawable.icon_status_demo_close)
setOnClickListener {
HmiActionLog.hmiAction("SOP 演示模式开关", !FunctionBuildConfig.isDemoMode)
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
@@ -50,9 +50,9 @@ class DemoModeView @JvmOverloads constructor(
override fun updateFuncMode(tag: String, boolean: Boolean) {
if(tag == FUNC_MODE_DEMO){
background = if(FunctionBuildConfig.isDemoMode){
this.context.getDrawable(R.drawable.demo_mode_open)
this.context.getDrawable(R.drawable.icon_status_demo_open)
}else{
this.context.getDrawable(R.drawable.demo_mode)
this.context.getDrawable(R.drawable.icon_status_demo_close)
}
}
}

View File

@@ -25,7 +25,7 @@ class RainModeView @JvmOverloads constructor(
init {
LayoutInflater.from(context).inflate(R.layout.view_demo_mode, this, true)
background = this.context.getDrawable(R.drawable.rain_mode)
background = this.context.getDrawable(R.drawable.icon_status_yutian_close)
setOnClickListener {
HmiActionLog.hmiAction("SOP 雨天模式开关", !FunctionBuildConfig.isRainMode)
FunctionBuildConfig.isRainMode = !FunctionBuildConfig.isRainMode
@@ -48,9 +48,9 @@ class RainModeView @JvmOverloads constructor(
if(tag == FUNC_MODE_RAIN){
ThreadUtils.runOnUiThread {
background = if(FunctionBuildConfig.isRainMode){
this.context.getDrawable(R.drawable.rain_mode_open)
this.context.getDrawable(R.drawable.icon_status_yutian_open)
}else{
this.context.getDrawable(R.drawable.rain_mode)
this.context.getDrawable(R.drawable.icon_status_yutian_close)
}
}
}

View File

@@ -2,10 +2,13 @@ package com.mogo.eagle.core.function.hmi.ui.widget
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.LinearLayout
import androidx.core.content.ContextCompat
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -21,12 +24,10 @@ import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.scope
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import kotlinx.android.synthetic.main.view_status_bar.view.routeDownloadFailMark
import kotlinx.android.synthetic.main.view_status_bar.view.routeDownloadStatus
import kotlinx.android.synthetic.main.view_status_bar.view.routeDownloadStatusRoot
import kotlinx.android.synthetic.main.view_status_bar.view.ll_status_download
import kotlinx.android.synthetic.main.view_status_bar.view.route_download_status
import kotlinx.android.synthetic.main.view_status_bar.view.status_container
import kotlinx.android.synthetic.main.view_status_bar.view.viewProgressTv
import kotlinx.android.synthetic.main.view_status_bar.view.viewStatusBarLeft
@@ -34,6 +35,7 @@ import kotlinx.android.synthetic.main.view_status_bar.view.viewStatusBarRight
import kotlinx.android.synthetic.main.view_status_bar.view.viewTextClock
import kotlinx.coroutines.Runnable
import kotlinx.coroutines.launch
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.CopyOnWriteArrayList
import java.util.concurrent.atomic.AtomicLong
@@ -41,7 +43,7 @@ class StatusBarView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener,
) : FrameLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener,
IMoGoAutopilotStatusListener {
companion object {
@@ -49,8 +51,8 @@ class StatusBarView @JvmOverloads constructor(
}
init {
orientation = HORIZONTAL
LayoutInflater.from(context).inflate(R.layout.view_status_bar, this, true)
background = ColorDrawable(Color.parseColor("#A6000000")) // 黑色的65%
}
private val rightViewList = CopyOnWriteArrayList<String>()
@@ -60,12 +62,6 @@ class StatusBarView @JvmOverloads constructor(
override fun onAttachedToWindow() {
super.onAttachedToWindow()
post {
val params: ViewGroup.LayoutParams = getLayoutParams()
params.height = BarUtils.getStatusBarHeight()
layoutParams = params
}
//添加view控制
CallerHmiViewControlListenerManager.addListener(TAG, this)
// 添加换肤监听
@@ -76,44 +72,40 @@ class StatusBarView @JvmOverloads constructor(
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
updateStatusBarLeftView(true, FUNC_MODE_DEMO, DemoModeView(this.context))
updateStatusBarLeftView(true, FUNC_MODE_RAIN, RainModeView(this.context))
routeDownloadStatusRoot?.visibility = View.GONE
route_download_status?.visibility = View.GONE
CallerDevaToolsManager.registerRouteDownloadListener(TAG) { state ->
when (state) {
0 -> {
routeDownloadStatusRoot?.visibility = View.GONE
route_download_status?.visibility = View.GONE
}
1 -> {
routeDownloadStatusRoot?.visibility = View.VISIBLE
routeDownloadStatus?.background = ContextCompat.getDrawable(
route_download_status?.visibility = View.VISIBLE
route_download_status?.background = ContextCompat.getDrawable(
context,
R.drawable.bg_autopilot_route_download_start
R.drawable.icon_status_route_download_start
)
routeDownloadFailMark?.visibility = View.GONE
}
2 -> {
routeDownloadStatusRoot?.visibility = View.VISIBLE
routeDownloadStatus?.background = ContextCompat.getDrawable(
route_download_status?.visibility = View.VISIBLE
route_download_status?.background = ContextCompat.getDrawable(
context,
R.drawable.bg_autopilot_route_download_success
R.drawable.icon_status_route_download_complete
)
routeDownloadFailMark?.visibility = View.GONE
UiThreadHandler.postDelayed(Runnable {
routeDownloadStatusRoot?.visibility = View.GONE
route_download_status?.visibility = View.GONE
}, 3000)
}
3 -> {
routeDownloadStatusRoot?.visibility = View.VISIBLE
routeDownloadStatus?.background = ContextCompat.getDrawable(
route_download_status?.visibility = View.VISIBLE
route_download_status?.background = ContextCompat.getDrawable(
context,
R.drawable.bg_autopilot_route_download_failed
R.drawable.icon_status_route_download_failed
)
routeDownloadFailMark?.visibility = View.VISIBLE
}
}
}
}
}
@@ -131,12 +123,12 @@ class StatusBarView @JvmOverloads constructor(
super.onAutopilotRouteLineId(lineId)
if (lineId != this.lineId.get()) {
this.lineId.set(lineId)
routeDownloadStatusRoot?.scope?.launch {
if ((routeDownloadStatusRoot?.visibility == View.VISIBLE) && AppIdentityModeUtils.isDriver(
route_download_status?.scope?.launch {
if ((route_download_status?.visibility == View.VISIBLE) && AppIdentityModeUtils.isDriver(
FunctionBuildConfig.appIdentityMode
)
) {
routeDownloadStatusRoot?.visibility = View.GONE
route_download_status?.visibility = View.GONE
}
}
}
@@ -167,8 +159,10 @@ class StatusBarView @JvmOverloads constructor(
if (leftViewList.contains(tag)) {
return
}
val params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
params.marginStart = AutoSizeUtils.dp2px(context, 30.0f)
viewStatusBarLeft.addView(viewGroup, leftViewList.size, params)
leftViewList.add(0, tag)
viewStatusBarLeft.addView(viewGroup, 0)
} else {
leftViewList.forEachIndexed { index, s ->
if (s == tag) {
@@ -182,10 +176,10 @@ class StatusBarView @JvmOverloads constructor(
@SuppressLint("SetTextI18n")
override fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int) {
if (insert) {
viewProgressTv.visibility = VISIBLE
ll_status_download.visibility = VISIBLE
viewProgressTv.text = "$progress%"
} else {
viewProgressTv.visibility = GONE
ll_status_download.visibility = GONE
}
}

View File

@@ -8,6 +8,7 @@ import android.net.wifi.WifiManager
import android.os.Handler
import android.os.Message
import android.util.AttributeSet
import android.util.Log
import android.util.TypedValue
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
@@ -82,11 +83,12 @@ class WifiStateView @JvmOverloads constructor(
resources.getDimension(R.dimen.dp_35)
)
a.recycle()
viewStatusBarTag.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(context,txtSize).toFloat())
// viewStatusBarTag.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(context,txtSize).toFloat())
wifiManager =
context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager?
wifiHandler = WifiHandler(this)
val wifiInfo = wifiManager!!.connectionInfo
Log.d(TAG, "wifi-info : $wifiInfo, ssid->: ${wifiInfo.ssid}")
wifiName = wifiInfo.ssid.replace("\"","")
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

View File

@@ -3,7 +3,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="@dimen/dp_10"
android:orientation="horizontal">
<com.mogo.eagle.core.function.hmi.ui.widget.BatteryView

View File

@@ -6,11 +6,9 @@
tools:parentTag="android.widget.LinearLayout"
tools:orientation="horizontal"
tools:background="@color/black">
<ImageView
android:id="@+id/ivMoFangStatus"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_65"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ContentDescription" />
</merge>

View File

@@ -3,113 +3,115 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_72"
tools:parentTag="android.widget.LinearLayout">
<TextClock
android:id="@+id/viewTextClock"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_64"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_24"
android:format12Hour="HH:mm"
android:format24Hour="HH:mm"
android:gravity="center"
android:textColor="@color/color_2C2E30"
android:textSize="@dimen/dp_45"
android:textStyle="bold" />
<!--Wifi状态-->
<com.mogo.eagle.core.function.hmi.ui.widget.WifiStateView
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_54"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_18" />
<!--魔方连接状态-->
<com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_8" />
tools:background="#A6000000"
tools:parentTag="android.widget.FrameLayout">
<LinearLayout
android:id="@+id/viewStatusBarLeft"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="end|center"
android:orientation="horizontal"
android:showDividers="middle"
android:divider="@drawable/bg_divider_empty"
android:layout_marginStart="@dimen/dp_8"/>
<!--app下载进度-->
<TextView
android:id="@+id/viewProgressTv"
android:layout_width="@dimen/dp_96"
android:layout_height="@dimen/dp_50"
android:layout_gravity="center"
android:visibility="gone"
android:background="@drawable/app_download_bg"
android:layout_marginStart="@dimen/dp_15"
android:gravity="center"
android:drawableLeft="@drawable/icon_download_guide"
android:textColor="@color/background_debug"
android:textSize="@dimen/dp_20" />
<LinearLayout
android:id="@+id/routeDownloadStatusRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/dp_15"
android:visibility="gone"
tools:visibility="visible"
tools:background="#2F4266">
<View
android:id="@+id/routeDownloadStatus"
android:layout_width="@dimen/dp_70"
android:layout_height="@dimen/dp_10"
android:layout_gravity="center_vertical"
tools:visibility="visible"
tools:background="@drawable/bg_autopilot_route_download_failed"/>
<TextView
android:id="@+id/routeDownloadFailMark"
android:orientation="horizontal">
<TextClock
android:id="@+id/viewTextClock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:text="!"
android:textStyle="bold"
tools:visibility="visible"
android:visibility="gone"
android:layout_marginStart="@dimen/dp_10"
android:textSize="@dimen/dp_28"/>
</LinearLayout>
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_61"
android:format12Hour="HH:mm"
android:format24Hour="HH:mm"
android:textColor="#ffffff"
android:textSize="@dimen/dp_45"
android:textStyle="bold" />
<Space
android:layout_width="0dip"
android:layout_height="@dimen/dp_1"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/status_container"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_30"/>
<LinearLayout
android:id="@+id/viewStatusBarRight"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_44"
android:gravity="end|center"
android:orientation="horizontal">
<com.mogo.eagle.core.function.hmi.ui.widget.BatteryGroupView
<!--Wifi状态-->
<com.mogo.eagle.core.function.hmi.ui.widget.WifiStateView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_30" />
<!--魔方连接状态-->
<com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_30" />
<LinearLayout
android:id="@+id/viewStatusBarLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
/>
<!--app下载进度-->
<LinearLayout
android:id="@+id/ll_status_download"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:visibility="gone"
android:layout_marginStart="@dimen/dp_30">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/icon_download_guide"/>
<TextView
android:id="@+id/viewProgressTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/background_debug"
android:textSize="@dimen/dp_30"
tools:visibility="visible"
tools:text="80%" />
</LinearLayout>
<ImageView
android:id="@+id/route_download_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_30"
android:visibility="gone"
android:background="@drawable/icon_status_route_download_complete"
android:layout_gravity="center_vertical"/>
<Space
android:layout_width="0dip"
android:layout_height="@dimen/dp_1"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/status_container"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginEnd="@dimen/dp_30"/>
<LinearLayout
android:id="@+id/viewStatusBarRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_40"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<com.mogo.eagle.core.function.hmi.ui.widget.BatteryGroupView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/icon_status_bar_logo"
android:contentDescription="@null"/>
</merge>

View File

@@ -2,27 +2,33 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/viewStatusBarTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_27"
android:gravity="center_vertical"
android:maxLength="15"
android:textColor="@color/color_2C2E30"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:background="#A6000000"
tools:layout_height="@dimen/dp_72">
<ImageView
android:id="@+id/viewWifiStateBg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/viewStatusBarTag"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints" />
app:layout_constraintStart_toStartOf="parent"
tools:ignore="MissingConstraints"
tools:src="@drawable/wifi_light_state_five" />
<TextView
android:id="@+id/viewStatusBarTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLength="15"
android:textColor="#ffffff"
android:textSize="@dimen/dp_30"
android:textStyle="bold"
android:layout_marginStart="@dimen/dp_6"
app:layout_constraintStart_toEndOf="@+id/viewWifiStateBg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="京888888" />
</androidx.constraintlayout.widget.ConstraintLayout>