feat: statusBar ui

This commit is contained in:
yangxisong 2025-11-14 14:05:27 +08:00
parent 6b234f86e7
commit e5d17bc970
4 changed files with 28 additions and 13 deletions

View File

@ -6,8 +6,6 @@ import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.yuanxuan.rokid.databinding.ActivityMainBinding import com.yuanxuan.rokid.databinding.ActivityMainBinding
import com.yuanxuan.rokid.dependencies.AppDependencies import com.yuanxuan.rokid.dependencies.AppDependencies
@ -43,12 +41,9 @@ class MainActivity : AppCompatActivity() {
lifecycleScope.launch { lifecycleScope.launch {
AppDependencies.deviceServiceManager.wifiState.collect { AppDependencies.deviceServiceManager.wifiState.collect {
when (it) { when (it) {
is DeviceServiceManager.WifiState.Connected -> { is DeviceServiceManager.WifiState.Connected -> binding.wifiIv.setImageLevel(it.level)
binding.wifiIv.setImageLevel(it.level)
binding.wifiIv.isVisible = true
}
DeviceServiceManager.WifiState.Unconnected -> binding.wifiIv.isGone = true DeviceServiceManager.WifiState.Unconnected -> binding.wifiIv.setImageLevel(0)
} }
} }
} }

View File

@ -18,6 +18,7 @@ import com.rokid.dcg.sprite.service.ISystemFuncService
import com.rokid.dcg.sprite.service.ITTSService import com.rokid.dcg.sprite.service.ITTSService
import com.rokid.dcg.sprite.service.ServiceManager import com.rokid.dcg.sprite.service.ServiceManager
import com.rokid.dcg.sprite.syskey.SysKeyAction import com.rokid.dcg.sprite.syskey.SysKeyAction
import com.yuanxuan.rokid.toast.ToastUtils
import kotlinx.coroutines.CoroutineExceptionHandler import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@ -277,6 +278,7 @@ class DeviceServiceManager(val context: Application) : ConnectivityManager.Netwo
} }
SysKeyAction.SPRITE_BUTTON_CLICK -> { SysKeyAction.SPRITE_BUTTON_CLICK -> {
ToastUtils.showLong("SysKeyAction.SPRITE_BUTTON_CLICK")
Timber.d("点击拍照键 SPRITE_BUTTON_CLICK") Timber.d("点击拍照键 SPRITE_BUTTON_CLICK")
} }
@ -306,8 +308,11 @@ class DeviceServiceManager(val context: Application) : ConnectivityManager.Netwo
_wifiState.update { _wifiState.update {
val level = wifiManager.calculateSignalLevel(networkCapabilities.signalStrength) val level = wifiManager.calculateSignalLevel(networkCapabilities.signalStrength)
WifiState.Connected( WifiState.Connected(
// maxSignalLevel是4 level区间应该是 0-3 这里却返回了4 限制一下 /**
level = level.coerceAtMost(wifiManager.maxSignalLevel - 1) * maxSignalLevel 4 level区间应该是 0-3 这里却返回了4 限制一下
* 参考 [com.yuanxuan.rokid.R.drawable.wifi_level_list] 0 为wifi断开
*/
level = level.coerceAtMost(wifiManager.maxSignalLevel - 1) + 1
) )
} }
} }

View File

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M4.333,4.261C4.755,3.894 5.416,3.917 5.808,4.312L18.721,17.356C19.113,17.751 19.089,18.371 18.667,18.739C18.245,19.106 17.584,19.083 17.192,18.688L4.279,5.644C3.887,5.249 3.911,4.629 4.333,4.261Z"
android:fillColor="#000000"/>
<path
android:pathData="M11.633,17.797C12.338,17.797 12.91,18.368 12.91,19.073C12.91,19.778 12.338,20.35 11.633,20.351C10.928,20.351 10.356,19.778 10.356,19.073C10.356,18.368 10.928,17.797 11.633,17.797ZM11.855,13.297C13.131,13.324 14.338,13.583 15.422,14.023L16.833,15.448C16.812,15.744 16.674,16.035 16.404,16.236L16.351,16.276H16.338C16.012,16.486 15.6,16.503 15.255,16.324H15.254C15.023,16.203 14.779,16.095 14.528,15.997L11.855,13.297ZM12.654,15.525C12.321,15.484 11.981,15.462 11.633,15.462C10.401,15.462 9.245,15.731 8.262,16.198C7.903,16.369 7.479,16.333 7.156,16.093H7.144L7.088,16.045C6.494,15.537 6.623,14.59 7.325,14.252L7.81,14.036C8.643,13.694 9.551,13.462 10.507,13.357L12.654,15.525ZM8.176,16.018C8.098,16.055 8.015,16.079 7.932,16.093C7.974,16.086 8.016,16.078 8.056,16.065C8.097,16.053 8.137,16.037 8.176,16.019V16.018ZM16.375,15.998L16.285,16.076C16.317,16.052 16.348,16.026 16.375,15.999C16.403,15.972 16.427,15.943 16.45,15.914L16.375,15.998ZM7.029,15.667C7.058,15.718 7.093,15.766 7.134,15.811V15.811C7.114,15.788 7.094,15.764 7.077,15.74C7.059,15.716 7.044,15.691 7.029,15.666V15.667ZM8.378,14.034C8.34,14.048 8.302,14.063 8.263,14.077C8.324,14.055 8.385,14.033 8.446,14.013L8.378,14.034ZM11.633,8.546C14.628,8.546 17.394,9.392 19.598,10.81C20.231,11.217 20.256,12.134 19.656,12.581C19.299,12.848 18.816,12.867 18.439,12.626V12.625C17.092,11.757 15.476,11.143 13.708,10.87L11.409,8.549C11.483,8.548 11.558,8.546 11.633,8.546ZM8.301,11.129C7.216,11.408 6.206,11.82 5.3,12.34H5.299C4.904,12.566 4.411,12.516 4.066,12.22C3.503,11.739 3.58,10.84 4.225,10.471L4.625,10.25C5.244,9.921 5.899,9.634 6.584,9.394L8.301,11.129ZM5.2,12.166C5.12,12.212 5.035,12.242 4.949,12.261C4.992,12.252 5.035,12.24 5.077,12.225C5.119,12.209 5.161,12.189 5.201,12.166H5.2ZM12.154,10.723C12.041,10.718 11.927,10.714 11.813,10.713H11.633C10.892,10.713 10.167,10.771 9.466,10.885L7.662,9.062C8.438,8.854 9.245,8.707 10.077,8.624L12.154,10.723ZM11.633,3.8C15.864,3.8 19.745,5.067 22.741,7.171C23.342,7.592 23.355,8.478 22.767,8.921L22.714,8.961H22.701C22.34,9.193 21.871,9.193 21.513,8.943C18.873,7.094 15.416,5.967 11.634,5.967C10.747,5.967 9.878,6.031 9.034,6.149L7.187,4.283C8.606,3.969 10.096,3.8 11.633,3.8ZM3.127,5.666C3.221,5.912 3.367,6.145 3.568,6.348L4.587,7.378C4.009,7.625 3.452,7.901 2.921,8.204L2.437,8.493C2.04,8.739 1.528,8.692 1.175,8.389C0.618,7.91 0.696,7.035 1.317,6.65C1.893,6.292 2.498,5.963 3.127,5.666ZM7.834,6.359C7.064,6.521 6.318,6.73 5.602,6.982L4.278,5.645C4.166,5.532 4.09,5.401 4.045,5.263C4.695,4.997 5.367,4.763 6.059,4.566L7.834,6.359ZM19.045,5.403C19.014,5.391 18.983,5.378 18.952,5.365C18.907,5.348 18.861,5.332 18.816,5.314C18.892,5.344 18.969,5.373 19.045,5.403Z"
android:fillColor="#000000"/>
</vector>

View File

@ -1,15 +1,18 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android"> <level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item <item
android:drawable="@drawable/icon_wifi_1" android:drawable="@drawable/icon_wifi_unconnect"
android:maxLevel="0" /> android:maxLevel="0" />
<item <item
android:drawable="@drawable/icon_wifi_2" android:drawable="@drawable/icon_wifi_1"
android:maxLevel="1" /> android:maxLevel="1" />
<item <item
android:drawable="@drawable/icon_wifi_3" android:drawable="@drawable/icon_wifi_2"
android:maxLevel="2" /> android:maxLevel="2" />
<item <item
android:drawable="@drawable/icon_wifi_4" android:drawable="@drawable/icon_wifi_3"
android:maxLevel="3" /> android:maxLevel="3" />
<item
android:drawable="@drawable/icon_wifi_4"
android:maxLevel="4" />
</level-list> </level-list>