mirror of
https://github.com/home-assistant/android
synced 2024-10-06 16:19:38 +00:00
Remove unused setters (#3002)
This commit is contained in:
parent
c7db22163e
commit
3f9b01affa
|
@ -4,33 +4,34 @@ import android.content.Context
|
||||||
import io.homeassistant.companion.android.sensors.BluetoothSensorManager
|
import io.homeassistant.companion.android.sensors.BluetoothSensorManager
|
||||||
import io.homeassistant.companion.android.sensors.SensorWorker
|
import io.homeassistant.companion.android.sensors.SensorWorker
|
||||||
import org.altbeacon.beacon.Beacon
|
import org.altbeacon.beacon.Beacon
|
||||||
|
import kotlin.math.abs
|
||||||
import kotlin.math.round
|
import kotlin.math.round
|
||||||
|
|
||||||
const val MAX_SKIPPED_UPDATED = 10
|
const val MAX_SKIPPED_UPDATED = 10
|
||||||
|
|
||||||
data class IBeacon(
|
data class IBeacon(
|
||||||
var uuid: String,
|
override val uuid: String,
|
||||||
var major: String,
|
override val major: String,
|
||||||
var minor: String,
|
override val minor: String,
|
||||||
var distance: Double,
|
val distance: Double,
|
||||||
var rssi: Double,
|
val rssi: Double,
|
||||||
var skippedUpdated: Int,
|
var skippedUpdated: Int,
|
||||||
)
|
) : IBeaconNameFormat
|
||||||
|
|
||||||
class IBeaconMonitor {
|
class IBeaconMonitor {
|
||||||
lateinit var sensorManager: BluetoothSensorManager
|
lateinit var sensorManager: BluetoothSensorManager
|
||||||
var beacons: List<IBeacon> = listOf()
|
var beacons: List<IBeacon> = listOf()
|
||||||
|
|
||||||
fun sort(tmp: Collection<IBeacon>): Collection<IBeacon> {
|
private fun sort(tmp: Collection<IBeacon>): Collection<IBeacon> {
|
||||||
return tmp.sortedBy { it.distance }
|
return tmp.sortedBy { it.distance }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setBeacons(context: Context, newBeacons: Collection<Beacon>) {
|
fun setBeacons(context: Context, newBeacons: Collection<Beacon>) {
|
||||||
var requireUpdate = false
|
var requireUpdate = false
|
||||||
var tmp: Map<String, IBeacon> = linkedMapOf()
|
val tmp = mutableMapOf<String, IBeacon>()
|
||||||
for (existingBeacon in beacons) {
|
for (existingBeacon in beacons) {
|
||||||
existingBeacon.skippedUpdated++
|
existingBeacon.skippedUpdated++
|
||||||
tmp += Pair(name(existingBeacon.uuid, existingBeacon.major, existingBeacon.minor), existingBeacon)
|
tmp += existingBeacon.name to existingBeacon
|
||||||
}
|
}
|
||||||
for (newBeacon in newBeacons) {
|
for (newBeacon in newBeacons) {
|
||||||
val uuid = newBeacon.id1.toString()
|
val uuid = newBeacon.id1.toString()
|
||||||
|
@ -38,10 +39,12 @@ class IBeaconMonitor {
|
||||||
val minor = newBeacon.id3.toString()
|
val minor = newBeacon.id3.toString()
|
||||||
val distance = round(newBeacon.distance * 100) / 100
|
val distance = round(newBeacon.distance * 100) / 100
|
||||||
val rssi = newBeacon.runningAverageRssi
|
val rssi = newBeacon.runningAverageRssi
|
||||||
if (!tmp.contains(name(uuid, major, minor))) { // we found a new beacon
|
|
||||||
|
val beacon = IBeacon(uuid, major, minor, distance, rssi, 0)
|
||||||
|
if (beacon.name !in tmp) { // we found a new beacon
|
||||||
requireUpdate = true
|
requireUpdate = true
|
||||||
}
|
}
|
||||||
tmp += Pair(name(uuid, major, minor), IBeacon(uuid, major, minor, distance, rssi, 0))
|
tmp += beacon.name to beacon
|
||||||
}
|
}
|
||||||
val sorted = sort(tmp.values).toMutableList()
|
val sorted = sort(tmp.values).toMutableList()
|
||||||
if (requireUpdate) {
|
if (requireUpdate) {
|
||||||
|
@ -58,13 +61,13 @@ class IBeaconMonitor {
|
||||||
sendUpdate(context, sorted)
|
sendUpdate(context, sorted)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
beacons.forEachIndexed foreach@{ i, existingBeacon ->
|
for ((i, existingBeacon) in beacons.withIndex()) {
|
||||||
if (i < sorted.size) {
|
if (i < sorted.size) {
|
||||||
if (name(sorted[i].uuid, sorted[i].major, sorted[i].minor) != name(existingBeacon.uuid, existingBeacon.major, existingBeacon.minor) || // the distance order switched
|
if (sorted[i].name != existingBeacon.name || // the distance order switched
|
||||||
kotlin.math.abs(sorted[i].distance - existingBeacon.distance) > 0.5 // the distance difference is greater than 0.5m
|
abs(sorted[i].distance - existingBeacon.distance) > 0.5 // the distance difference is greater than 0.5m
|
||||||
) {
|
) {
|
||||||
requireUpdate = true
|
requireUpdate = true
|
||||||
return@foreach
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package io.homeassistant.companion.android.bluetooth.ble
|
package io.homeassistant.companion.android.bluetooth.ble
|
||||||
|
|
||||||
fun <T> name(uuid: T, major: T, minor: T): String {
|
interface IBeaconNameFormat {
|
||||||
return "${uuid}_${major}_$minor"
|
val uuid: String
|
||||||
|
val major: String
|
||||||
|
val minor: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val IBeaconNameFormat.name get() = "${uuid}_${major}_$minor"
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package io.homeassistant.companion.android.bluetooth.ble
|
package io.homeassistant.companion.android.bluetooth.ble
|
||||||
|
|
||||||
data class IBeaconTransmitter(
|
data class IBeaconTransmitter(
|
||||||
var uuid: String,
|
override var uuid: String,
|
||||||
var major: String,
|
override var major: String,
|
||||||
var minor: String,
|
override var minor: String,
|
||||||
var transmitting: Boolean = false,
|
var transmitting: Boolean = false,
|
||||||
var transmitRequested: Boolean = false,
|
var transmitRequested: Boolean = false,
|
||||||
var state: String,
|
var state: String,
|
||||||
|
@ -13,4 +13,4 @@ data class IBeaconTransmitter(
|
||||||
var restartRequired: Boolean = false,
|
var restartRequired: Boolean = false,
|
||||||
val manufacturer: Int = 0x004c,
|
val manufacturer: Int = 0x004c,
|
||||||
val beaconLayout: String = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
|
val beaconLayout: String = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
|
||||||
)
|
) : IBeaconNameFormat
|
||||||
|
|
|
@ -18,7 +18,6 @@ import io.homeassistant.companion.android.database.AppDatabase
|
||||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||||
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
import io.homeassistant.companion.android.database.sensor.SensorSettingType
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
import kotlin.collections.ArrayList
|
|
||||||
import io.homeassistant.companion.android.common.R as commonR
|
import io.homeassistant.companion.android.common.R as commonR
|
||||||
|
|
||||||
class BluetoothSensorManager : SensorManager {
|
class BluetoothSensorManager : SensorManager {
|
||||||
|
@ -345,7 +344,7 @@ class BluetoothSensorManager : SensorManager {
|
||||||
if (state != "") state else lastState,
|
if (state != "") state else lastState,
|
||||||
icon,
|
icon,
|
||||||
mapOf(
|
mapOf(
|
||||||
"id" to name(bleTransmitterDevice.uuid, bleTransmitterDevice.major, bleTransmitterDevice.minor),
|
"id" to bleTransmitterDevice.name,
|
||||||
"Transmitting power" to bleTransmitterDevice.transmitPowerSetting,
|
"Transmitting power" to bleTransmitterDevice.transmitPowerSetting,
|
||||||
"Advertise mode" to bleTransmitterDevice.advertiseModeSetting,
|
"Advertise mode" to bleTransmitterDevice.advertiseModeSetting,
|
||||||
"Measured power" to bleTransmitterDevice.measuredPowerSetting,
|
"Measured power" to bleTransmitterDevice.measuredPowerSetting,
|
||||||
|
@ -366,7 +365,7 @@ class BluetoothSensorManager : SensorManager {
|
||||||
val attr = mutableMapOf<String, Any?>()
|
val attr = mutableMapOf<String, Any?>()
|
||||||
if (BluetoothUtils.isOn(context) && monitoringManager.isMonitoring()) {
|
if (BluetoothUtils.isOn(context) && monitoringManager.isMonitoring()) {
|
||||||
for (beacon: IBeacon in beaconMonitoringDevice.beacons) {
|
for (beacon: IBeacon in beaconMonitoringDevice.beacons) {
|
||||||
attr += Pair(name(beacon.uuid, beacon.major, beacon.minor), beacon.distance)
|
attr += beacon.name to beacon.distance
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ package io.homeassistant.companion.android.settings.sensor
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateListOf
|
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
|
@ -28,7 +27,8 @@ class SensorSettingsViewModel @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private var sensorsList = emptyList<Sensor>()
|
private var sensorsList = emptyList<Sensor>()
|
||||||
var sensors = mutableStateListOf<Sensor>()
|
var sensors by mutableStateOf<Map<String, Sensor>>(emptyMap())
|
||||||
|
private set
|
||||||
|
|
||||||
var searchQuery: String? = null
|
var searchQuery: String? = null
|
||||||
var sensorFilter by mutableStateOf(SensorFilter.ALL)
|
var sensorFilter by mutableStateOf(SensorFilter.ALL)
|
||||||
|
@ -55,10 +55,9 @@ class SensorSettingsViewModel @Inject constructor(
|
||||||
|
|
||||||
private fun filterSensorsList() {
|
private fun filterSensorsList() {
|
||||||
val app = getApplication<Application>()
|
val app = getApplication<Application>()
|
||||||
sensors.clear()
|
sensors = SensorReceiver.MANAGERS
|
||||||
|
.filter { it.hasSensor(app.applicationContext) }
|
||||||
SensorReceiver.MANAGERS.filter { it.hasSensor(app.applicationContext) }.forEach { manager ->
|
.flatMap { manager ->
|
||||||
sensors.addAll(
|
|
||||||
manager.getAvailableSensors(app.applicationContext)
|
manager.getAvailableSensors(app.applicationContext)
|
||||||
.filter { sensor ->
|
.filter { sensor ->
|
||||||
(
|
(
|
||||||
|
@ -75,7 +74,7 @@ class SensorSettingsViewModel @Inject constructor(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
.mapNotNull { sensor -> sensorsList.firstOrNull { it.id == sensor.id } }
|
.mapNotNull { sensor -> sensorsList.firstOrNull { it.id == sensor.id } }
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
.associateBy { it.id }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ fun SensorListView(
|
||||||
val listEntries = managers.associateWith { manager ->
|
val listEntries = managers.associateWith { manager ->
|
||||||
manager.getAvailableSensors(context)
|
manager.getAvailableSensors(context)
|
||||||
.filter { basicSensor ->
|
.filter { basicSensor ->
|
||||||
viewModel.sensors.any { basicSensor.id == it.id }
|
basicSensor.id in viewModel.sensors
|
||||||
}
|
}
|
||||||
.sortedBy { context.getString(it.name) }
|
.sortedBy { context.getString(it.name) }
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ fun SensorListView(
|
||||||
) { basicSensor ->
|
) { basicSensor ->
|
||||||
SensorRow(
|
SensorRow(
|
||||||
basicSensor = basicSensor,
|
basicSensor = basicSensor,
|
||||||
dbSensor = viewModel.sensors.firstOrNull { it.id == basicSensor.id },
|
dbSensor = viewModel.sensors[basicSensor.id],
|
||||||
onSensorClicked = onSensorClicked
|
onSensorClicked = onSensorClicked
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package io.homeassistant.companion.android.common.data.integration.impl.entities
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
|
|
||||||
data class CheckRateLimits(
|
data class CheckRateLimits(
|
||||||
var target: String,
|
val target: String,
|
||||||
@JsonProperty("rateLimits")
|
@JsonProperty("rateLimits")
|
||||||
var rateLimits: RateLimitResponse
|
val rateLimits: RateLimitResponse
|
||||||
)
|
)
|
||||||
|
|
|
@ -3,12 +3,12 @@ package io.homeassistant.companion.android.common.data.integration.impl.entities
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
|
|
||||||
data class RateLimitResponse(
|
data class RateLimitResponse(
|
||||||
var attempts: Int,
|
val attempts: Int,
|
||||||
var successful: Int,
|
val successful: Int,
|
||||||
var errors: Int,
|
val errors: Int,
|
||||||
var total: Int,
|
val total: Int,
|
||||||
var maximum: Int,
|
val maximum: Int,
|
||||||
var remaining: Int,
|
val remaining: Int,
|
||||||
@JsonProperty("resetsAt")
|
@JsonProperty("resetsAt")
|
||||||
var resetsAt: String
|
val resetsAt: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,14 +6,14 @@ import com.fasterxml.jackson.annotation.JsonInclude
|
||||||
data class RegisterDeviceRequest(
|
data class RegisterDeviceRequest(
|
||||||
var appId: String?,
|
var appId: String?,
|
||||||
var appName: String?,
|
var appName: String?,
|
||||||
var appVersion: String?,
|
val appVersion: String?,
|
||||||
var deviceName: String?,
|
val deviceName: String?,
|
||||||
var manufacturer: String?,
|
val manufacturer: String?,
|
||||||
var model: String?,
|
val model: String?,
|
||||||
var osName: String?,
|
var osName: String?,
|
||||||
var osVersion: String?,
|
val osVersion: String?,
|
||||||
var supportsEncryption: Boolean?,
|
var supportsEncryption: Boolean?,
|
||||||
var appData: Map<String, Any>?,
|
val appData: Map<String, Any>?,
|
||||||
// Added in HA 0.104.0
|
// Added in HA 0.104.0
|
||||||
var deviceId: String?
|
var deviceId: String?
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package io.homeassistant.companion.android.common.data.integration.impl.entities
|
package io.homeassistant.companion.android.common.data.integration.impl.entities
|
||||||
|
|
||||||
data class RegisterDeviceResponse(
|
data class RegisterDeviceResponse(
|
||||||
var cloudhookUrl: String?,
|
val cloudhookUrl: String?,
|
||||||
var remoteUiUrl: String?,
|
val remoteUiUrl: String?,
|
||||||
var secret: String?,
|
val secret: String?,
|
||||||
var webhookId: String
|
val webhookId: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -12,7 +12,7 @@ data class GetConfigResponse(
|
||||||
val timeZone: String,
|
val timeZone: String,
|
||||||
val components: List<String>,
|
val components: List<String>,
|
||||||
val version: String,
|
val version: String,
|
||||||
var cloudhookUrl: String?, // only when using webhook
|
val cloudhookUrl: String?, // only when using webhook
|
||||||
var remoteUiUrl: String?, // only when using webhook
|
val remoteUiUrl: String?, // only when using webhook
|
||||||
val entities: Map<String, Map<String, Any>>? // only on core >= 2022.6 when using webhook
|
val entities: Map<String, Map<String, Any>>? // only on core >= 2022.6 when using webhook
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,11 +7,11 @@ import androidx.room.PrimaryKey
|
||||||
@Entity(tableName = "Authentication_List")
|
@Entity(tableName = "Authentication_List")
|
||||||
data class Authentication(
|
data class Authentication(
|
||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
var host: String,
|
val host: String,
|
||||||
|
|
||||||
@ColumnInfo(name = "Username")
|
@ColumnInfo(name = "Username")
|
||||||
val username: String,
|
val username: String,
|
||||||
|
|
||||||
@ColumnInfo(name = "Password")
|
@ColumnInfo(name = "Password")
|
||||||
var password: String
|
val password: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,9 +8,6 @@ import androidx.room.Query
|
||||||
@Dao
|
@Dao
|
||||||
interface NotificationDao {
|
interface NotificationDao {
|
||||||
|
|
||||||
@Query("SELECT * FROM notification_history WHERE id = :id")
|
|
||||||
fun get(id: Int): NotificationItem?
|
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
fun add(notification: NotificationItem)
|
fun add(notification: NotificationItem)
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ data class Attribute(
|
||||||
@ColumnInfo(name = "name")
|
@ColumnInfo(name = "name")
|
||||||
val name: String,
|
val name: String,
|
||||||
@ColumnInfo(name = "value")
|
@ColumnInfo(name = "value")
|
||||||
var value: String,
|
val value: String,
|
||||||
@ColumnInfo(name = "value_type")
|
@ColumnInfo(name = "value_type")
|
||||||
var valueType: String
|
val valueType: String
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,36 +8,35 @@ import androidx.room.PrimaryKey
|
||||||
data class Sensor(
|
data class Sensor(
|
||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
@ColumnInfo(name = "id")
|
@ColumnInfo(name = "id")
|
||||||
var id: String,
|
val id: String,
|
||||||
@ColumnInfo(name = "enabled")
|
@ColumnInfo(name = "enabled")
|
||||||
var enabled: Boolean,
|
var enabled: Boolean,
|
||||||
@ColumnInfo(name = "registered", defaultValue = "NULL")
|
@ColumnInfo(name = "registered", defaultValue = "NULL")
|
||||||
var registered: Boolean? = null,
|
var registered: Boolean? = null,
|
||||||
@ColumnInfo(name = "state")
|
@ColumnInfo(name = "state")
|
||||||
var state: String,
|
val state: String,
|
||||||
@ColumnInfo(name = "last_sent_state", defaultValue = "NULL")
|
@ColumnInfo(name = "last_sent_state", defaultValue = "NULL")
|
||||||
var lastSentState: String? = null,
|
var lastSentState: String? = null,
|
||||||
@ColumnInfo(name = "last_sent_icon", defaultValue = "NULL")
|
@ColumnInfo(name = "last_sent_icon", defaultValue = "NULL")
|
||||||
var lastSentIcon: String? = null,
|
var lastSentIcon: String? = null,
|
||||||
@ColumnInfo(name = "state_type")
|
@ColumnInfo(name = "state_type")
|
||||||
var stateType: String = "",
|
val stateType: String = "",
|
||||||
@ColumnInfo(name = "type")
|
@ColumnInfo(name = "type")
|
||||||
var type: String = "",
|
val type: String = "",
|
||||||
@ColumnInfo(name = "icon")
|
@ColumnInfo(name = "icon")
|
||||||
var icon: String = "",
|
val icon: String = "",
|
||||||
@ColumnInfo(name = "name")
|
@ColumnInfo(name = "name")
|
||||||
var name: String = "",
|
val name: String = "",
|
||||||
@ColumnInfo(name = "device_class")
|
@ColumnInfo(name = "device_class")
|
||||||
var deviceClass: String? = null,
|
val deviceClass: String? = null,
|
||||||
@ColumnInfo(name = "unit_of_measurement")
|
@ColumnInfo(name = "unit_of_measurement")
|
||||||
var unitOfMeasurement: String? = null,
|
val unitOfMeasurement: String? = null,
|
||||||
@ColumnInfo(name = "state_class")
|
@ColumnInfo(name = "state_class")
|
||||||
var stateClass: String? = null,
|
val stateClass: String? = null,
|
||||||
@ColumnInfo(name = "entity_category")
|
@ColumnInfo(name = "entity_category")
|
||||||
var entityCategory: String? = null,
|
val entityCategory: String? = null,
|
||||||
@ColumnInfo(name = "core_registration")
|
@ColumnInfo(name = "core_registration")
|
||||||
var coreRegistration: String? = null,
|
var coreRegistration: String? = null,
|
||||||
@ColumnInfo(name = "app_registration")
|
@ColumnInfo(name = "app_registration")
|
||||||
var appRegistration: String? = null
|
var appRegistration: String? = null
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,7 +19,7 @@ data class SensorWithAttributes(
|
||||||
) {
|
) {
|
||||||
fun toSensorRegistration(basicSensor: SensorManager.BasicSensor): SensorRegistration<Any> {
|
fun toSensorRegistration(basicSensor: SensorManager.BasicSensor): SensorRegistration<Any> {
|
||||||
var objectMapper: ObjectMapper? = null
|
var objectMapper: ObjectMapper? = null
|
||||||
val attributes = attributes.map {
|
val attributes = attributes.associate {
|
||||||
val attributeValue = when (it.valueType) {
|
val attributeValue = when (it.valueType) {
|
||||||
"listboolean", "listfloat", "listlong", "listint", "liststring" -> {
|
"listboolean", "listfloat", "listlong", "listint", "liststring" -> {
|
||||||
if (objectMapper == null) objectMapper = jacksonObjectMapper()
|
if (objectMapper == null) objectMapper = jacksonObjectMapper()
|
||||||
|
@ -41,7 +41,7 @@ data class SensorWithAttributes(
|
||||||
else -> throw IllegalArgumentException("Attribute: ${it.name} is of unknown type: ${it.valueType}")
|
else -> throw IllegalArgumentException("Attribute: ${it.name} is of unknown type: ${it.valueType}")
|
||||||
}
|
}
|
||||||
it.name to attributeValue
|
it.name to attributeValue
|
||||||
}.toMap()
|
}
|
||||||
val state = when (sensor.stateType) {
|
val state = when (sensor.stateType) {
|
||||||
"" -> ""
|
"" -> ""
|
||||||
"boolean" -> sensor.state.toBoolean()
|
"boolean" -> sensor.state.toBoolean()
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package io.homeassistant.companion.android.data
|
package io.homeassistant.companion.android.data
|
||||||
|
|
||||||
data class SimplifiedEntity(
|
data class SimplifiedEntity(
|
||||||
var entityId: String,
|
val entityId: String,
|
||||||
var friendlyName: String = entityId,
|
val friendlyName: String = entityId,
|
||||||
var icon: String = ""
|
val icon: String = ""
|
||||||
) {
|
) {
|
||||||
constructor(entityString: String) : this(
|
constructor(entityString: String) : this(
|
||||||
entityString.split(",")[0],
|
entityString.split(",")[0],
|
||||||
|
|
Loading…
Reference in a new issue