mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-23 17:34:28 +01:00
Check if client has been initialized when clicking back button
This commit is contained in:
@@ -92,7 +92,7 @@ internal class CGMService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: CGMRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
private var secured = false
|
||||
|
||||
@@ -127,12 +127,13 @@ internal class CGMService : NotificationService() {
|
||||
CGMServiceCommand.REQUEST_ALL_RECORDS -> requestAllRecords()
|
||||
CGMServiceCommand.REQUEST_LAST_RECORD -> requestLastRecord()
|
||||
CGMServiceCommand.REQUEST_FIRST_RECORD -> requestFirstRecord()
|
||||
CGMServiceCommand.DISCONNECT -> client.disconnect()
|
||||
CGMServiceCommand.DISCONNECT -> disconnect()
|
||||
}
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@CGMService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@CGMService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@CGMService.client = client
|
||||
|
||||
client.connectionStateWithStatus
|
||||
.onEach { repository.onConnectionStateChanged(it) }
|
||||
@@ -331,7 +332,7 @@ internal class CGMService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -66,7 +66,7 @@ internal class CSCService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: CSCRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
super.onStartCommand(intent, flags, startId)
|
||||
@@ -85,7 +85,8 @@ internal class CSCService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@CSCService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@CSCService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@CSCService.client = client
|
||||
|
||||
client.connectionStateWithStatus
|
||||
.onEach { repository.onConnectionStateChanged(it) }
|
||||
@@ -132,7 +133,7 @@ internal class CSCService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -68,7 +68,7 @@ internal class HRSService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: HRSRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
super.onStartCommand(intent, flags, startId)
|
||||
@@ -87,7 +87,8 @@ internal class HRSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@HRSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@HRSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@HRSService.client = client
|
||||
|
||||
client.waitForBonding()
|
||||
|
||||
@@ -139,7 +140,7 @@ internal class HRSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -66,7 +66,7 @@ internal class HTSService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: HTSRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
super.onStartCommand(intent, flags, startId)
|
||||
@@ -85,7 +85,8 @@ internal class HTSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@HTSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@HTSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@HTSService.client = client
|
||||
|
||||
client.connectionStateWithStatus
|
||||
.onEach { repository.onConnectionStateChanged(it) }
|
||||
@@ -131,7 +132,7 @@ internal class HTSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -81,8 +81,8 @@ internal class PRXService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: PRXRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private lateinit var server: ServerBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
private var server: ServerBleGatt? = null
|
||||
|
||||
private var alertLevelCharacteristic: ClientBleGattCharacteristic? = null
|
||||
|
||||
@@ -127,7 +127,8 @@ internal class PRXService : NotificationService() {
|
||||
characteristicConfigs = listOf(linkLossCharacteristic)
|
||||
)
|
||||
|
||||
server = ServerBleGatt.create(this@PRXService, prxServiceConfig, linkLossServiceConfig)
|
||||
val server = ServerBleGatt.create(this@PRXService, prxServiceConfig, linkLossServiceConfig)
|
||||
this@PRXService.server = server
|
||||
|
||||
//Order is important. We don't want to connect before services have been added to the server.
|
||||
startGattClient(device)
|
||||
@@ -156,12 +157,13 @@ internal class PRXService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(
|
||||
val client = ClientBleGatt.connect(
|
||||
this@PRXService,
|
||||
device,
|
||||
logger = { p, s -> repository.log(p, s) },
|
||||
options = BleGattConnectOptions(autoConnect = true)
|
||||
)
|
||||
this@PRXService.client = client
|
||||
|
||||
client.waitForBonding()
|
||||
|
||||
@@ -219,15 +221,15 @@ internal class PRXService : NotificationService() {
|
||||
|
||||
private fun stopIfDisconnected(connectionState: GattConnectionState, connectionStatus: BleGattConnectionStatus) {
|
||||
if (connectionState == GattConnectionState.STATE_DISCONNECTED && !connectionStatus.isLinkLoss) {
|
||||
server.stopServer()
|
||||
server?.stopServer()
|
||||
repository.disconnect()
|
||||
stopSelf()
|
||||
}
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
server.stopServer()
|
||||
client?.disconnect()
|
||||
server?.stopServer()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -66,7 +66,7 @@ internal class RSCSService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: RSCSRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
super.onStartCommand(intent, flags, startId)
|
||||
@@ -85,7 +85,8 @@ internal class RSCSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@RSCSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@RSCSService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@RSCSService.client = client
|
||||
|
||||
client.connectionStateWithStatus
|
||||
.onEach { repository.onConnectionStateChanged(it) }
|
||||
@@ -131,7 +132,7 @@ internal class RSCSService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
@@ -71,7 +71,7 @@ internal class UARTService : NotificationService() {
|
||||
@Inject
|
||||
lateinit var repository: UARTRepository
|
||||
|
||||
private lateinit var client: ClientBleGatt
|
||||
private var client: ClientBleGatt? = null
|
||||
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
super.onStartCommand(intent, flags, startId)
|
||||
@@ -90,7 +90,8 @@ internal class UARTService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||
client = ClientBleGatt.connect(this@UARTService, device, logger = { p, s -> repository.log(p, s) })
|
||||
val client = ClientBleGatt.connect(this@UARTService, device, logger = { p, s -> repository.log(p, s) })
|
||||
this@UARTService.client = client
|
||||
|
||||
if (!client.isConnected) {
|
||||
return@launch
|
||||
@@ -155,7 +156,7 @@ internal class UARTService : NotificationService() {
|
||||
}
|
||||
|
||||
private fun disconnect() {
|
||||
client.disconnect()
|
||||
client?.disconnect()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
||||
Reference in New Issue
Block a user