mirror of
https://github.com/home-assistant/android
synced 2024-10-15 20:43:06 +00:00
BLE Transmit fix blank state and check device supports advertising (#2500)
* Check if device supports BLE transmitter * Always send a state instead of blank string * Add attribute if transmitter is supported instead of sensor availability
This commit is contained in:
parent
66c57d5768
commit
b504492f40
|
@ -6,6 +6,7 @@ import android.os.Build
|
|||
import io.homeassistant.companion.android.bluetooth.ble.IBeaconTransmitter
|
||||
import io.homeassistant.companion.android.bluetooth.ble.TransmitterManager
|
||||
import io.homeassistant.companion.android.common.bluetooth.BluetoothUtils
|
||||
import io.homeassistant.companion.android.common.bluetooth.BluetoothUtils.supportsTransmitter
|
||||
import io.homeassistant.companion.android.common.sensors.SensorManager
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
import io.homeassistant.companion.android.database.sensor.SensorSetting
|
||||
|
@ -242,18 +243,20 @@ class BluetoothSensorManager : SensorManager {
|
|||
TransmitterManager.stopTransmitting(bleTransmitterDevice)
|
||||
}
|
||||
|
||||
val lastState = AppDatabase.getInstance(context).sensorDao().get(bleTransmitter.id)?.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(
|
||||
context,
|
||||
bleTransmitter,
|
||||
state,
|
||||
if (state != "") state else lastState,
|
||||
icon,
|
||||
mapOf(
|
||||
"id" to bleTransmitterDevice.uuid + "-" + bleTransmitterDevice.major + "-" + bleTransmitterDevice.minor,
|
||||
"Transmitting power" to bleTransmitterDevice.transmitPowerSetting,
|
||||
"Advertise mode" to bleTransmitterDevice.advertiseModeSetting,
|
||||
"Measured power" to bleTransmitterDevice.measuredPowerSetting
|
||||
"Measured power" to bleTransmitterDevice.measuredPowerSetting,
|
||||
"Supports transmitter" to supportsTransmitter(context)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
|
@ -65,4 +65,11 @@ object BluetoothUtils {
|
|||
throw IllegalStateException(e)
|
||||
}
|
||||
}
|
||||
fun supportsTransmitter(context: Context): Boolean {
|
||||
val bluetoothManager =
|
||||
context.applicationContext.getSystemService<BluetoothManager>()!!
|
||||
val adapter = bluetoothManager.adapter
|
||||
|
||||
return adapter?.isMultipleAdvertisementSupported ?: false
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue