diff --git a/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml b/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml index 88c228c4f3..23bf8fc8d3 100644 --- a/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml +++ b/OCH/bus/passenger/src/main/res/jinlv/layout/p_bus_view_status_bar.xml @@ -22,7 +22,7 @@ + if (o != n) { + UiThreadHandler.post { + updateView(n){ + viewWifiStateBg.setImageResource(it) } } } } - private var wifiManager: WifiManager? = null - private var wifiHandler: WifiHandler? = null + private var wifiName: String by Delegates.observable("") { _, o, n -> + if (o != n) { + UiThreadHandler.post { + if(n.contains("unknow")){ + viewStatusBarTag.text = "" + }else{ + viewStatusBarTag.text = n + } + } + } + } - @Volatile - private var level: Int = 0 + private val txtSize: Float init { + LayoutInflater.from(context).inflate(R.layout.view_wifi_state, this, true) + val a = context.obtainStyledAttributes(attrs, R.styleable.WifiStateView, defStyleAttr, 0) + txtSize = a.getDimension( + R.styleable.WifiStateView_wifi_size, + resources.getDimension(R.dimen.dp_35) + ) + a.recycle() + viewStatusBarTag.setTextSize(TypedValue.COMPLEX_UNIT_PX,AutoSizeUtils.dp2px(context,txtSize).toFloat()) wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager? wifiHandler = WifiHandler(this) @@ -67,6 +101,8 @@ class WifiStateView @JvmOverloads constructor( return } val wifiInfo = wifiManager!!.connectionInfo + wifiName = wifiInfo.ssid.replace("\"","") + Log.i("emArrow", "wifiName: $wifiName") level = WifiManager.calculateSignalLevel(wifiInfo.rssi, 5) wifiHandler?.sendEmptyMessage(level) } @@ -95,9 +131,25 @@ class WifiStateView @JvmOverloads constructor( override fun onSkinModeChange(skinMode: Int) { wifiHandler?.sendEmptyMessage(level) + UiThreadHandler.post { + when (skinMode) { + 0 -> setStatusBarDarkOrLight(false) + 1 -> setStatusBarDarkOrLight(true) + } + } } - fun updateView(wifiState: Int, resId: ((Int) -> Unit)) { + private fun setStatusBarDarkOrLight(light: Boolean) = if (light) { + viewStatusBarTag.setTextColor(resources.getColor(R.color.color_2C2E30)) + } else { + viewStatusBarTag.setTextColor(resources.getColor(R.color.color_FFFFFF)) + } + + fun updateLevel(wifiState: Int){ + level = wifiState + } + + private fun updateView(wifiState: Int, resId: ((Int) -> Unit)) { when (FunctionBuildConfig.skinMode) { 0 -> { when (wifiState) { @@ -109,6 +161,7 @@ class WifiStateView @JvmOverloads constructor( 4 -> resId.invoke(R.drawable.wifi_light_state_five) } } + 1 -> { when (wifiState) { -1 -> resId.invoke(R.drawable.wifi_dark_state_one) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml index c4847f676a..897357307c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_bar.xml @@ -18,20 +18,9 @@ android:textSize="@dimen/dp_45" android:textStyle="bold" /> - - diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_wifi_state.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_wifi_state.xml new file mode 100644 index 0000000000..f7fe62dd7c --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_wifi_state.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index b3f04dc3f8..751928af40 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -89,6 +89,10 @@ + + + +