Fix new Toolbar

This commit is contained in:
Sylwester Zieliński
2022-05-11 14:43:57 +02:00
parent f0257c2d3f
commit edcc5bf6bc
18 changed files with 38 additions and 32 deletions

View File

@@ -3,7 +3,7 @@ package no.nordicsemi.android.service
import android.annotation.SuppressLint
import android.bluetooth.BluetoothDevice
sealed class BleManagerResult <T> {
sealed interface BleManagerResult<T> {
fun isRunning(): Boolean {
return this is SuccessResult
@@ -18,15 +18,18 @@ sealed class BleManagerResult <T> {
}
}
class IdleResult<T> : BleManagerResult<T>()
class ConnectingResult<T> : BleManagerResult<T>()
data class SuccessResult<T>(val device: BluetoothDevice, val data: T) : BleManagerResult<T>() {
sealed class DeviceHolder(val device: BluetoothDevice) {
@SuppressLint("MissingPermission")
fun deviceName(): String = device.name ?: device.address
}
class LinkLossResult<T>(val data: T) : BleManagerResult<T>()
class DisconnectedResult<T> : BleManagerResult<T>()
class UnknownErrorResult<T> : BleManagerResult<T>()
class MissingServiceResult<T> : BleManagerResult<T>()
class IdleResult<T> : BleManagerResult<T>
class ConnectingResult<T>(device: BluetoothDevice) : DeviceHolder(device), BleManagerResult<T>
class SuccessResult<T>(device: BluetoothDevice, val data: T) : DeviceHolder(device), BleManagerResult<T>
class LinkLossResult<T>(device: BluetoothDevice, val data: T) : DeviceHolder(device), BleManagerResult<T>
class DisconnectedResult<T>(device: BluetoothDevice) : DeviceHolder(device), BleManagerResult<T>
class UnknownErrorResult<T>(device: BluetoothDevice) : DeviceHolder(device), BleManagerResult<T>
class MissingServiceResult<T>(device: BluetoothDevice) : DeviceHolder(device), BleManagerResult<T>

View File

@@ -10,7 +10,7 @@ class ConnectionObserverAdapter<T> : ConnectionObserver {
private val TAG = "BLE-CONNECTION"
private val _status = MutableStateFlow<BleManagerResult<T>>(ConnectingResult())
private val _status = MutableStateFlow<BleManagerResult<T>>(IdleResult())
val status = _status.asStateFlow()
private var lastValue: T? = null
@@ -21,6 +21,7 @@ class ConnectionObserverAdapter<T> : ConnectionObserver {
override fun onDeviceConnecting(device: BluetoothDevice) {
Log.d(TAG, "onDeviceConnecting()")
_status.value = ConnectingResult(device)
}
override fun onDeviceConnected(device: BluetoothDevice) {
@@ -29,7 +30,7 @@ class ConnectionObserverAdapter<T> : ConnectionObserver {
override fun onDeviceFailedToConnect(device: BluetoothDevice, reason: Int) {
Log.d(TAG, "onDeviceFailedToConnect(), reason: $reason")
_status.value = MissingServiceResult()
_status.value = MissingServiceResult(device)
}
override fun onDeviceReady(device: BluetoothDevice) {
@@ -44,10 +45,10 @@ class ConnectionObserverAdapter<T> : ConnectionObserver {
override fun onDeviceDisconnected(device: BluetoothDevice, reason: Int) {
Log.d(TAG, "onDeviceDisconnected(), reason: $reason")
_status.value = when (reason) {
ConnectionObserver.REASON_NOT_SUPPORTED -> MissingServiceResult()
ConnectionObserver.REASON_LINK_LOSS -> LinkLossResult(getData()!!)
ConnectionObserver.REASON_SUCCESS -> DisconnectedResult()
else -> UnknownErrorResult()
ConnectionObserver.REASON_NOT_SUPPORTED -> MissingServiceResult(device)
ConnectionObserver.REASON_LINK_LOSS -> LinkLossResult(device, getData()!!)
ConnectionObserver.REASON_SUCCESS -> DisconnectedResult(device)
else -> UnknownErrorResult(device)
}
}