mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-19 07:24:22 +01:00
Fix new Toolbar
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user