mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-19 15:34:26 +01:00
Wrap write operations in try-catch
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
package no.nordicsemi.android.utils
|
||||||
|
|
||||||
|
suspend fun tryOrLog(block: suspend () -> Unit) {
|
||||||
|
try {
|
||||||
|
block()
|
||||||
|
} catch (t: Throwable) {
|
||||||
|
t.printStackTrace()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -70,6 +70,7 @@ import no.nordicsemi.android.kotlin.ble.profile.racp.RACPResponseCode
|
|||||||
import no.nordicsemi.android.service.DEVICE_DATA
|
import no.nordicsemi.android.service.DEVICE_DATA
|
||||||
import no.nordicsemi.android.service.NotificationService
|
import no.nordicsemi.android.service.NotificationService
|
||||||
import no.nordicsemi.android.utils.launchWithCatch
|
import no.nordicsemi.android.utils.launchWithCatch
|
||||||
|
import no.nordicsemi.android.utils.tryOrLog
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -224,7 +225,9 @@ internal class CGMService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (sessionStartTime == 0L) {
|
if (sessionStartTime == 0L) {
|
||||||
opsControlPointCharacteristic.write(CGMSpecificOpsControlPointDataParser.startSession(secured))
|
tryOrLog {
|
||||||
|
opsControlPointCharacteristic.write(CGMSpecificOpsControlPointDataParser.startSession(secured))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,13 +263,17 @@ internal class CGMService : NotificationService() {
|
|||||||
private suspend fun onNumberOfRecordsReceived(numberOfRecords: Int) {
|
private suspend fun onNumberOfRecordsReceived(numberOfRecords: Int) {
|
||||||
if (numberOfRecords > 0) {
|
if (numberOfRecords > 0) {
|
||||||
if (repository.hasRecords) {
|
if (repository.hasRecords) {
|
||||||
recordAccessControlPointCharacteristic.write(
|
tryOrLog {
|
||||||
RecordAccessControlPointInputParser.reportStoredRecordsGreaterThenOrEqualTo(repository.highestSequenceNumber)
|
recordAccessControlPointCharacteristic.write(
|
||||||
)
|
RecordAccessControlPointInputParser.reportStoredRecordsGreaterThenOrEqualTo(repository.highestSequenceNumber)
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
recordAccessControlPointCharacteristic.write(
|
tryOrLog {
|
||||||
RecordAccessControlPointInputParser.reportAllStoredRecords()
|
recordAccessControlPointCharacteristic.write(
|
||||||
)
|
RecordAccessControlPointInputParser.reportAllStoredRecords()
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
repository.onNewRequestStatus(RequestStatus.SUCCESS)
|
repository.onNewRequestStatus(RequestStatus.SUCCESS)
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ import no.nordicsemi.android.kotlin.ble.profile.racp.RACPResponseCode
|
|||||||
import no.nordicsemi.android.toolbox.scanner.ScannerDestinationId
|
import no.nordicsemi.android.toolbox.scanner.ScannerDestinationId
|
||||||
import no.nordicsemi.android.ui.view.NordicLoggerFactory
|
import no.nordicsemi.android.ui.view.NordicLoggerFactory
|
||||||
import no.nordicsemi.android.ui.view.StringConst
|
import no.nordicsemi.android.ui.view.StringConst
|
||||||
|
import no.nordicsemi.android.utils.tryOrLog
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -268,13 +269,17 @@ internal class GLSViewModel @Inject constructor(
|
|||||||
if (numberOfRecords > 0) {
|
if (numberOfRecords > 0) {
|
||||||
try {
|
try {
|
||||||
if (state.value.glsServiceData.records.isNotEmpty()) {
|
if (state.value.glsServiceData.records.isNotEmpty()) {
|
||||||
recordAccessControlPointCharacteristic.write(
|
tryOrLog {
|
||||||
RecordAccessControlPointInputParser.reportStoredRecordsGreaterThenOrEqualTo(highestSequenceNumber)
|
recordAccessControlPointCharacteristic.write(
|
||||||
)
|
RecordAccessControlPointInputParser.reportStoredRecordsGreaterThenOrEqualTo(highestSequenceNumber)
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
recordAccessControlPointCharacteristic.write(
|
tryOrLog {
|
||||||
RecordAccessControlPointInputParser.reportAllStoredRecords()
|
recordAccessControlPointCharacteristic.write(
|
||||||
)
|
RecordAccessControlPointInputParser.reportAllStoredRecords()
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e: GattOperationException) {
|
} catch (e: GattOperationException) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import no.nordicsemi.android.kotlin.ble.server.main.service.ServerBleGattService
|
|||||||
import no.nordicsemi.android.kotlin.ble.server.main.service.ServerBluetoothGattConnection
|
import no.nordicsemi.android.kotlin.ble.server.main.service.ServerBluetoothGattConnection
|
||||||
import no.nordicsemi.android.service.DEVICE_DATA
|
import no.nordicsemi.android.service.DEVICE_DATA
|
||||||
import no.nordicsemi.android.service.NotificationService
|
import no.nordicsemi.android.service.NotificationService
|
||||||
|
import no.nordicsemi.android.utils.tryOrLog
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@@ -200,7 +201,9 @@ internal class PRXService : NotificationService() {
|
|||||||
.catch { it.printStackTrace() }
|
.catch { it.printStackTrace() }
|
||||||
.launchIn(lifecycleScope)
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
linkLossCharacteristic.write(AlertLevelInputParser.parse(AlarmLevel.HIGH))
|
tryOrLog {
|
||||||
|
linkLossCharacteristic.write(AlertLevelInputParser.parse(AlarmLevel.HIGH))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun writeAlertLevel(alarmLevel: AlarmLevel) {
|
private suspend fun writeAlertLevel(alarmLevel: AlarmLevel) {
|
||||||
|
|||||||
Reference in New Issue
Block a user