mirror of
https://github.com/home-assistant/android
synced 2024-10-01 13:53:53 +00:00
Use unavailable and unknown states consistently when dealing with sensors and entities (#3821)
* Use unavailable and unknown states consistently when dealing with sensors and entities * Update more sensors * Remove unused import
This commit is contained in:
parent
201931b91e
commit
bb58a578dd
|
@ -17,6 +17,7 @@ import com.google.android.gms.location.SleepSegmentRequest
|
|||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.sensors.SensorReceiverBase
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import java.util.concurrent.TimeUnit
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -168,8 +169,8 @@ class ActivitySensorManager : BroadcastReceiver(), SensorManager {
|
|||
DetectedActivity.STILL -> "still"
|
||||
DetectedActivity.TILTING -> "tilting"
|
||||
DetectedActivity.WALKING -> "walking"
|
||||
DetectedActivity.UNKNOWN -> "unknown"
|
||||
else -> "unknown"
|
||||
DetectedActivity.UNKNOWN -> STATE_UNKNOWN
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -184,7 +185,7 @@ class ActivitySensorManager : BroadcastReceiver(), SensorManager {
|
|||
SleepSegmentEvent.STATUS_SUCCESSFUL -> "successful"
|
||||
SleepSegmentEvent.STATUS_MISSING_DATA -> "missing data"
|
||||
SleepSegmentEvent.STATUS_NOT_DETECTED -> "not detected"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.os.Build.VERSION.SDK_INT
|
|||
import android.util.Log
|
||||
import com.google.android.gms.location.LocationServices
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -132,7 +133,7 @@ class GeocodeSensorManager : SensorManager {
|
|||
onSensorUpdated(
|
||||
context,
|
||||
geocodedLocation,
|
||||
if (!prettyAddress.isNullOrEmpty()) prettyAddress else "Unknown",
|
||||
if (!prettyAddress.isNullOrEmpty()) prettyAddress else STATE_UNKNOWN,
|
||||
geocodedLocation.statelessIcon,
|
||||
attributes
|
||||
)
|
||||
|
|
|
@ -15,6 +15,7 @@ import io.homeassistant.companion.android.R
|
|||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
|
||||
import io.homeassistant.companion.android.common.data.websocket.impl.entities.AreaRegistryResponse
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
|
@ -47,7 +48,7 @@ object CameraControl : HaControl {
|
|||
control.setControlTemplate(
|
||||
ThumbnailTemplate(
|
||||
entity.entityId,
|
||||
entity.state != "unavailable" && image != null,
|
||||
entity.state != STATE_UNAVAILABLE && image != null,
|
||||
icon,
|
||||
context.getString(commonR.string.widget_camera_contentdescription)
|
||||
)
|
||||
|
|
|
@ -16,6 +16,8 @@ import androidx.lifecycle.DefaultLifecycleObserver
|
|||
import io.homeassistant.companion.android.BuildConfig
|
||||
import io.homeassistant.companion.android.common.R
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.vehicle.HaCarAppService
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
|
@ -173,7 +175,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
it,
|
||||
"unavailable",
|
||||
STATE_UNAVAILABLE,
|
||||
it.statelessIcon,
|
||||
mapOf()
|
||||
)
|
||||
|
@ -257,7 +259,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
fuelLevel,
|
||||
if (fuelStatus == "success") data.fuelPercent.value!! else "unknown",
|
||||
if (fuelStatus == "success") data.fuelPercent.value!! else STATE_UNKNOWN,
|
||||
fuelLevel.statelessIcon,
|
||||
mapOf(
|
||||
"status" to fuelStatus
|
||||
|
@ -270,7 +272,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
batteryLevel,
|
||||
if (batteryStatus == "success") data.batteryPercent.value!! else "unknown",
|
||||
if (batteryStatus == "success") data.batteryPercent.value!! else STATE_UNKNOWN,
|
||||
batteryLevel.statelessIcon,
|
||||
mapOf(
|
||||
"status" to batteryStatus
|
||||
|
@ -288,7 +290,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
carName,
|
||||
if (status == "success") data.name.value!! else "unknown",
|
||||
if (status == "success") data.name.value!! else STATE_UNKNOWN,
|
||||
carName.statelessIcon,
|
||||
mapOf(
|
||||
"car_manufacturer" to data.manufacturer.value,
|
||||
|
@ -309,7 +311,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
carStatus,
|
||||
if (status == "success") (data.evChargePortConnected.value == true) else "unknown",
|
||||
if (status == "success") (data.evChargePortConnected.value == true) else STATE_UNKNOWN,
|
||||
carStatus.statelessIcon,
|
||||
mapOf(
|
||||
"car_charge_port_open" to (data.evChargePortOpen.value == true),
|
||||
|
@ -329,7 +331,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
odometerValue,
|
||||
if (status == "success") data.odometerMeters.value!! else "unknown",
|
||||
if (status == "success") data.odometerMeters.value!! else STATE_UNKNOWN,
|
||||
odometerValue.statelessIcon,
|
||||
mapOf(
|
||||
"status" to status
|
||||
|
@ -348,7 +350,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
fuelType,
|
||||
if (fuelTypeStatus == "success") getFuelType(data.fuelTypes.value!!) else "unknown",
|
||||
if (fuelTypeStatus == "success") getFuelType(data.fuelTypes.value!!) else STATE_UNKNOWN,
|
||||
fuelType.statelessIcon,
|
||||
mapOf(
|
||||
"status" to fuelTypeStatus
|
||||
|
@ -360,7 +362,7 @@ class CarSensorManager :
|
|||
onSensorUpdated(
|
||||
context,
|
||||
evConnector,
|
||||
if (evConnectorTypeStatus == "success") getEvConnectorType(data.evConnectorTypes.value!!) else "unknown",
|
||||
if (evConnectorTypeStatus == "success") getEvConnectorType(data.evConnectorTypes.value!!) else STATE_UNKNOWN,
|
||||
evConnector.statelessIcon,
|
||||
mapOf(
|
||||
"status" to evConnectorTypeStatus
|
||||
|
@ -373,8 +375,8 @@ class CarSensorManager :
|
|||
private fun carValueStatus(value: Int): String? {
|
||||
return when (value) {
|
||||
CarValue.STATUS_SUCCESS -> "success"
|
||||
CarValue.STATUS_UNAVAILABLE -> "unavailable"
|
||||
CarValue.STATUS_UNKNOWN -> "unknown"
|
||||
CarValue.STATUS_UNAVAILABLE -> STATE_UNAVAILABLE
|
||||
CarValue.STATUS_UNKNOWN -> STATE_UNKNOWN
|
||||
CarValue.STATUS_UNIMPLEMENTED -> "unimplemented"
|
||||
else -> null
|
||||
}
|
||||
|
@ -395,9 +397,9 @@ class CarSensorManager :
|
|||
EnergyProfile.FUEL_TYPE_LNG -> "Liquified natural gas"
|
||||
EnergyProfile.FUEL_TYPE_LPG -> "Liquified petroleum gas"
|
||||
EnergyProfile.FUEL_TYPE_OTHER -> "Other"
|
||||
EnergyProfile.FUEL_TYPE_UNKNOWN -> "unknown"
|
||||
EnergyProfile.FUEL_TYPE_UNKNOWN -> STATE_UNKNOWN
|
||||
EnergyProfile.FUEL_TYPE_UNLEADED -> "Unleaded gasoline"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
return fuelTypeList.toString()
|
||||
|
@ -419,8 +421,8 @@ class CarSensorManager :
|
|||
EnergyProfile.EVCONNECTOR_TYPE_TESLA_HPWC -> "High Power Wall Charger of Tesla"
|
||||
EnergyProfile.EVCONNECTOR_TYPE_TESLA_ROADSTER -> "Connector of Tesla Roadster"
|
||||
EnergyProfile.EVCONNECTOR_TYPE_TESLA_SUPERCHARGER -> "Supercharger of Tesla"
|
||||
EnergyProfile.EVCONNECTOR_TYPE_UNKNOWN -> "unknown"
|
||||
else -> "unknown"
|
||||
EnergyProfile.EVCONNECTOR_TYPE_UNKNOWN -> STATE_UNKNOWN
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
return evConnectorList.toString()
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.util.Log
|
|||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class LastAppSensorManager : SensorManager {
|
||||
|
@ -64,7 +65,7 @@ class LastAppSensorManager : SensorManager {
|
|||
val current = System.currentTimeMillis()
|
||||
val lastApp = usageStats.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, current - 1000 * 1000, current).maxByOrNull { it.lastTimeUsed }?.packageName ?: "none"
|
||||
|
||||
var appLabel = "unknown"
|
||||
var appLabel = STATE_UNKNOWN
|
||||
|
||||
try {
|
||||
val pm = context.packageManager
|
||||
|
|
|
@ -17,6 +17,8 @@ import android.util.Log
|
|||
import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -266,7 +268,7 @@ class NotificationSensorManager : NotificationListenerService(), SensorManager {
|
|||
val mediaSessionManager = context.getSystemService<MediaSessionManager>()!!
|
||||
val mediaList = mediaSessionManager.getActiveSessions(ComponentName(context, NotificationSensorManager::class.java))
|
||||
val sessionCount = mediaList.size
|
||||
val primaryPlaybackState = if (sessionCount > 0) getPlaybackState(mediaList[0].playbackState?.state) else "Unavailable"
|
||||
val primaryPlaybackState = if (sessionCount > 0) getPlaybackState(mediaList[0].playbackState?.state) else STATE_UNAVAILABLE
|
||||
val attr: MutableMap<String, Any?> = mutableMapOf()
|
||||
if (mediaList.size > 0) {
|
||||
for (item in mediaList) {
|
||||
|
@ -306,7 +308,7 @@ class NotificationSensorManager : NotificationListenerService(), SensorManager {
|
|||
PlaybackState.STATE_SKIPPING_TO_NEXT -> "Skip to Next"
|
||||
PlaybackState.STATE_SKIPPING_TO_PREVIOUS -> "Skip to Previous"
|
||||
PlaybackState.STATE_SKIPPING_TO_QUEUE_ITEM -> "Skip to Queue Item"
|
||||
else -> "Unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package io.homeassistant.companion.android.common.sensors
|
|||
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class AndroidOsSensorManager : SensorManager {
|
||||
|
@ -67,10 +68,10 @@ class AndroidOsSensorManager : SensorManager {
|
|||
osSecurityPatch.id -> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
Build.VERSION.SECURITY_PATCH
|
||||
} else {
|
||||
"unknown"
|
||||
STATE_UNKNOWN
|
||||
}
|
||||
else -> {
|
||||
"unknown"
|
||||
STATE_UNKNOWN
|
||||
}
|
||||
},
|
||||
sensor.statelessIcon,
|
||||
|
|
|
@ -6,6 +6,7 @@ import android.media.AudioManager
|
|||
import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class AudioSensorManager : SensorManager {
|
||||
|
@ -187,7 +188,7 @@ class AudioSensorManager : SensorManager {
|
|||
AudioManager.RINGER_MODE_NORMAL -> "normal"
|
||||
AudioManager.RINGER_MODE_SILENT -> "silent"
|
||||
AudioManager.RINGER_MODE_VIBRATE -> "vibrate"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
|
||||
val icon = when (audioManager.ringerMode) {
|
||||
|
@ -216,7 +217,7 @@ class AudioSensorManager : SensorManager {
|
|||
AudioManager.MODE_IN_CALL -> "in_call"
|
||||
AudioManager.MODE_IN_COMMUNICATION -> "in_communication"
|
||||
AudioManager.MODE_CALL_SCREENING -> "call_screening"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
|
||||
val icon = when (audioManager.mode) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.os.BatteryManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import java.math.RoundingMode
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -314,7 +315,7 @@ class BatterySensorManager : SensorManager {
|
|||
BatteryManager.BATTERY_STATUS_CHARGING -> "charging"
|
||||
BatteryManager.BATTERY_STATUS_DISCHARGING -> "discharging"
|
||||
BatteryManager.BATTERY_STATUS_NOT_CHARGING -> "not_charging"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -326,7 +327,7 @@ class BatterySensorManager : SensorManager {
|
|||
BatteryManager.BATTERY_HEALTH_OVERHEAT -> "overheated"
|
||||
BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE -> "over_voltage"
|
||||
BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE -> "failed"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import io.homeassistant.companion.android.common.bluetooth.ble.KalmanFilter
|
|||
import io.homeassistant.companion.android.common.bluetooth.ble.MonitoringManager
|
||||
import io.homeassistant.companion.android.common.bluetooth.ble.TransmitterManager
|
||||
import io.homeassistant.companion.android.common.bluetooth.ble.name
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -353,7 +354,7 @@ class BluetoothSensorManager : SensorManager {
|
|||
TransmitterManager.stopTransmitting(bleTransmitterDevice)
|
||||
}
|
||||
|
||||
val lastState = AppDatabase.getInstance(context).sensorDao().get(bleTransmitter.id).firstOrNull()?.state ?: "unknown"
|
||||
val lastState = AppDatabase.getInstance(context).sensorDao().get(bleTransmitter.id).firstOrNull()?.state ?: STATE_UNKNOWN
|
||||
val state = if (isBtOn(context)) bleTransmitterDevice.state else "Bluetooth is turned off"
|
||||
val icon = if (bleTransmitterDevice.transmitting) "mdi:bluetooth" else "mdi:bluetooth-off"
|
||||
onSensorUpdated(
|
||||
|
|
|
@ -7,6 +7,7 @@ import android.os.Build
|
|||
import androidx.annotation.ChecksSdkIntAtLeast
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
|
@ -67,8 +68,8 @@ class DNDSensorManager : SensorManager {
|
|||
NotificationManager.INTERRUPTION_FILTER_ALL -> "off"
|
||||
NotificationManager.INTERRUPTION_FILTER_NONE -> "total_silence"
|
||||
NotificationManager.INTERRUPTION_FILTER_PRIORITY -> "priority_only"
|
||||
NotificationManager.INTERRUPTION_FILTER_UNKNOWN -> "unknown"
|
||||
else -> "unknown"
|
||||
NotificationManager.INTERRUPTION_FILTER_UNKNOWN -> STATE_UNKNOWN
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
|
||||
onSensorUpdated(
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
|||
import android.content.Context
|
||||
import android.os.SystemClock
|
||||
import android.util.Log
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -62,7 +63,7 @@ class LastRebootSensorManager : SensorManager {
|
|||
|
||||
var timeInMillis = 0L
|
||||
var local = ""
|
||||
var utc = "unavailable"
|
||||
var utc = STATE_UNAVAILABLE
|
||||
|
||||
val sensorDao = AppDatabase.getInstance(context).sensorDao()
|
||||
val fullSensor = sensorDao.getFull(lastRebootSensor.id).toSensorWithAttributes()
|
||||
|
|
|
@ -11,6 +11,8 @@ import android.os.Build
|
|||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -188,7 +190,7 @@ class NetworkSensorManager : SensorManager {
|
|||
}
|
||||
|
||||
var conInfo: WifiInfo? = null
|
||||
var ssid = "Unknown"
|
||||
var ssid = STATE_UNKNOWN
|
||||
var connected = false
|
||||
|
||||
if (checkPermission(context, wifiConnection.id)) {
|
||||
|
@ -272,7 +274,7 @@ class NetworkSensorManager : SensorManager {
|
|||
return
|
||||
}
|
||||
|
||||
var deviceIp = "Unknown"
|
||||
var deviceIp = STATE_UNKNOWN
|
||||
|
||||
if (checkPermission(context, wifiIp.id)) {
|
||||
val conInfo = getWifiConnectionInfo(context)
|
||||
|
@ -445,7 +447,7 @@ class NetworkSensorManager : SensorManager {
|
|||
return
|
||||
}
|
||||
|
||||
var ip = "unknown"
|
||||
var ip = STATE_UNKNOWN
|
||||
val client = OkHttpClient()
|
||||
val request = Request.Builder().url("https://api.ipify.org?format=json").build()
|
||||
|
||||
|
@ -485,7 +487,7 @@ class NetworkSensorManager : SensorManager {
|
|||
val activeNetwork = connectivityManager?.activeNetwork
|
||||
val capabilities = connectivityManager?.getNetworkCapabilities(activeNetwork)
|
||||
|
||||
var networkCapability = "unavailable"
|
||||
var networkCapability = STATE_UNAVAILABLE
|
||||
var metered = false
|
||||
if (capabilities != null) {
|
||||
networkCapability =
|
||||
|
@ -498,7 +500,7 @@ class NetworkSensorManager : SensorManager {
|
|||
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) -> "vpn"
|
||||
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) -> "wifi"
|
||||
(capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI_AWARE)) -> "wifi_aware"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
|
||||
metered = !capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
|
||||
|
|
|
@ -6,6 +6,8 @@ import android.content.pm.PackageManager
|
|||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||
|
@ -68,7 +70,7 @@ class NextAlarmManager : SensorManager {
|
|||
|
||||
var triggerTime = 0L
|
||||
var local = ""
|
||||
var utc = "unavailable"
|
||||
var utc = STATE_UNAVAILABLE
|
||||
var pendingIntent = ""
|
||||
|
||||
val sensorDao = AppDatabase.getInstance(context).sensorDao()
|
||||
|
@ -81,7 +83,7 @@ class NextAlarmManager : SensorManager {
|
|||
val alarmClockInfo = alarmManager.nextAlarmClock
|
||||
|
||||
if (alarmClockInfo != null) {
|
||||
pendingIntent = alarmClockInfo.showIntent?.creatorPackage ?: "Unknown"
|
||||
pendingIntent = alarmClockInfo.showIntent?.creatorPackage ?: STATE_UNKNOWN
|
||||
triggerTime = alarmClockInfo.triggerTime
|
||||
|
||||
Log.d(TAG, "Next alarm is scheduled by $pendingIntent with trigger time $triggerTime")
|
||||
|
|
|
@ -10,6 +10,8 @@ import android.telephony.SubscriptionManager
|
|||
import android.telephony.TelephonyManager
|
||||
import android.util.Log
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
class PhoneStateSensorManager : SensorManager {
|
||||
|
@ -78,7 +80,7 @@ class PhoneStateSensorManager : SensorManager {
|
|||
@SuppressLint("MissingPermission")
|
||||
private fun checkPhoneState(context: Context) {
|
||||
if (isEnabled(context, phoneState)) {
|
||||
var currentPhoneState = "unknown"
|
||||
var currentPhoneState = STATE_UNKNOWN
|
||||
|
||||
if (checkPermission(context, phoneState.id)) {
|
||||
val telephonyManager =
|
||||
|
@ -90,7 +92,7 @@ class PhoneStateSensorManager : SensorManager {
|
|||
TelephonyManager.CALL_STATE_IDLE -> "idle"
|
||||
TelephonyManager.CALL_STATE_RINGING -> "ringing"
|
||||
TelephonyManager.CALL_STATE_OFFHOOK -> "offhook"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,7 +126,7 @@ class PhoneStateSensorManager : SensorManager {
|
|||
return
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
|
||||
var displayName = "Unavailable"
|
||||
var displayName = STATE_UNAVAILABLE
|
||||
val attrs = mutableMapOf<String, Any>()
|
||||
|
||||
if (checkPermission(context, basicSimSensor.id)) {
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
package io.homeassistant.companion.android.common.util
|
||||
|
||||
const val STATE_UNAVAILABLE = "unavailable"
|
||||
const val STATE_UNKNOWN = "unknown"
|
|
@ -20,13 +20,13 @@ import androidx.wear.compose.material.Text
|
|||
import androidx.wear.compose.material.ToggleChip
|
||||
import androidx.wear.compose.material.ToggleChipDefaults
|
||||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.R
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.data.integration.EntityExt
|
||||
import io.homeassistant.companion.android.common.data.integration.domain
|
||||
import io.homeassistant.companion.android.common.data.integration.getIcon
|
||||
import io.homeassistant.companion.android.common.data.integration.isActive
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNAVAILABLE
|
||||
import io.homeassistant.companion.android.theme.wearColorPalette
|
||||
import io.homeassistant.companion.android.util.WearToggleChip
|
||||
import io.homeassistant.companion.android.util.onEntityClickedFeedback
|
||||
|
@ -59,7 +59,7 @@ fun EntityUi(
|
|||
.fillMaxWidth(),
|
||||
appIcon = {
|
||||
Image(
|
||||
asset = iconBitmap ?: CommunityMaterial.Icon.cmd_bookmark,
|
||||
asset = iconBitmap,
|
||||
colorFilter = ColorFilter.tint(wearColorPalette.onSurface)
|
||||
)
|
||||
},
|
||||
|
@ -87,7 +87,7 @@ fun EntityUi(
|
|||
}
|
||||
)
|
||||
},
|
||||
enabled = entity.state != "unavailable",
|
||||
enabled = entity.state != STATE_UNAVAILABLE,
|
||||
toggleControl = {
|
||||
Icon(
|
||||
imageVector = ToggleChipDefaults.switchIcon(isChecked),
|
||||
|
@ -106,7 +106,7 @@ fun EntityUi(
|
|||
.fillMaxWidth(),
|
||||
icon = {
|
||||
Image(
|
||||
asset = iconBitmap ?: CommunityMaterial.Icon.cmd_bookmark,
|
||||
asset = iconBitmap,
|
||||
colorFilter = ColorFilter.tint(wearColorPalette.onSurface)
|
||||
)
|
||||
},
|
||||
|
@ -134,7 +134,7 @@ fun EntityUi(
|
|||
}
|
||||
)
|
||||
},
|
||||
enabled = entity.state != "unavailable",
|
||||
enabled = entity.state != STATE_UNAVAILABLE,
|
||||
onClick = {
|
||||
onEntityClicked(entity.entityId, entity.state)
|
||||
onEntityClickedFeedback(isToastEnabled, isHapticEnabled, context, friendlyName, haptic)
|
||||
|
|
|
@ -35,6 +35,7 @@ import androidx.wear.compose.material.Text
|
|||
import com.mikepenz.iconics.compose.Image
|
||||
import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial
|
||||
import io.homeassistant.companion.android.common.data.integration.Entity
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.home.MainViewModel
|
||||
import io.homeassistant.companion.android.theme.WearAppTheme
|
||||
import io.homeassistant.companion.android.theme.wearColorPalette
|
||||
|
@ -107,7 +108,7 @@ fun MainView(
|
|||
)
|
||||
},
|
||||
onClick = {
|
||||
onEntityClicked(favoriteEntityID, "unknown")
|
||||
onEntityClicked(favoriteEntityID, STATE_UNKNOWN)
|
||||
onEntityClickedFeedback(isToastEnabled, isHapticEnabled, context, favoriteEntityID, haptic)
|
||||
},
|
||||
colors = ChipDefaults.secondaryChipColors()
|
||||
|
|
|
@ -20,6 +20,7 @@ import androidx.health.services.client.data.PassiveMonitoringCapabilities
|
|||
import androidx.health.services.client.data.UserActivityInfo
|
||||
import androidx.health.services.client.data.UserActivityState
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import kotlinx.coroutines.guava.await
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
@ -199,7 +200,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
UserActivityState.USER_ACTIVITY_ASLEEP -> "asleep"
|
||||
UserActivityState.USER_ACTIVITY_PASSIVE -> "passive"
|
||||
UserActivityState.USER_ACTIVITY_EXERCISE -> "exercise"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
},
|
||||
getActivityIcon(info),
|
||||
mapOf(
|
||||
|
|
|
@ -15,6 +15,7 @@ import android.hardware.SensorManager.SENSOR_STATUS_UNRELIABLE
|
|||
import android.util.Log
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.common.util.STATE_UNKNOWN
|
||||
import kotlin.math.roundToInt
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -135,7 +136,7 @@ class HeartRateSensorManager : SensorManager, SensorEventListener {
|
|||
SENSOR_STATUS_ACCURACY_LOW -> "low"
|
||||
SENSOR_STATUS_UNRELIABLE -> "unreliable"
|
||||
SENSOR_STATUS_NO_CONTACT -> "no_contact"
|
||||
else -> "unknown"
|
||||
else -> STATE_UNKNOWN
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue