mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-19 07:24:22 +01:00
Fix crash when LinkLoss occurs before establishing successful connection
This commit is contained in:
@@ -29,7 +29,7 @@ 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 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>
|
||||
|
||||
@@ -46,7 +46,7 @@ class ConnectionObserverAdapter<T> : ConnectionObserver {
|
||||
Log.d(TAG, "onDeviceDisconnected(), reason: $reason")
|
||||
_status.value = when (reason) {
|
||||
ConnectionObserver.REASON_NOT_SUPPORTED -> MissingServiceResult(device)
|
||||
ConnectionObserver.REASON_LINK_LOSS -> LinkLossResult(device, getData()!!)
|
||||
ConnectionObserver.REASON_LINK_LOSS -> LinkLossResult(device, getData())
|
||||
ConnectionObserver.REASON_SUCCESS -> DisconnectedResult(device)
|
||||
else -> UnknownErrorResult(device)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package no.nordicsemi.android.prx.repository
|
||||
|
||||
import android.bluetooth.BluetoothDevice
|
||||
import android.content.Context
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -68,7 +67,8 @@ class PRXRepository @Inject internal constructor(
|
||||
}
|
||||
}
|
||||
(result as? LinkLossResult<PRXData>)?.let {
|
||||
alarmHandler.playAlarm(it.data.linkLossAlarmLevel)
|
||||
val alarmLevel = it.data?.linkLossAlarmLevel ?: AlarmLevel.HIGH
|
||||
alarmHandler.playAlarm(alarmLevel)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user