mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-19 15:34:26 +01:00
Fix logger
This commit is contained in:
@@ -43,6 +43,7 @@ import kotlinx.coroutines.flow.onEach
|
|||||||
import no.nordicsemi.android.analytics.AppAnalytics
|
import no.nordicsemi.android.analytics.AppAnalytics
|
||||||
import no.nordicsemi.android.analytics.ProfileOpenEvent
|
import no.nordicsemi.android.analytics.ProfileOpenEvent
|
||||||
import no.nordicsemi.android.cgms.repository.CGMRepository
|
import no.nordicsemi.android.cgms.repository.CGMRepository
|
||||||
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicLogger
|
||||||
import no.nordicsemi.android.common.navigation.DestinationId
|
import no.nordicsemi.android.common.navigation.DestinationId
|
||||||
import no.nordicsemi.android.common.navigation.Navigator
|
import no.nordicsemi.android.common.navigation.Navigator
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package no.nordicsemi.android.service
|
||||||
|
|
||||||
|
class OpenLoggerEvent
|
||||||
@@ -52,7 +52,7 @@ import no.nordicsemi.android.bps.view.BPSViewEvent
|
|||||||
import no.nordicsemi.android.bps.view.BPSViewState
|
import no.nordicsemi.android.bps.view.BPSViewState
|
||||||
import no.nordicsemi.android.bps.view.DisconnectEvent
|
import no.nordicsemi.android.bps.view.DisconnectEvent
|
||||||
import no.nordicsemi.android.bps.view.OpenLoggerEvent
|
import no.nordicsemi.android.bps.view.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.common.navigation.NavigationResult
|
import no.nordicsemi.android.common.navigation.NavigationResult
|
||||||
import no.nordicsemi.android.common.navigation.Navigator
|
import no.nordicsemi.android.common.navigation.Navigator
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
@@ -61,10 +61,10 @@ import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
|||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.battery.BatteryLevelParser
|
import no.nordicsemi.android.kotlin.ble.profile.battery.BatteryLevelParser
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.bps.data.BloodPressureMeasurementData
|
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.bps.BloodPressureMeasurementParser
|
import no.nordicsemi.android.kotlin.ble.profile.bps.BloodPressureMeasurementParser
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.bps.data.IntermediateCuffPressureData
|
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.bps.IntermediateCuffPressureParser
|
import no.nordicsemi.android.kotlin.ble.profile.bps.IntermediateCuffPressureParser
|
||||||
|
import no.nordicsemi.android.kotlin.ble.profile.bps.data.BloodPressureMeasurementData
|
||||||
|
import no.nordicsemi.android.kotlin.ble.profile.bps.data.IntermediateCuffPressureData
|
||||||
import no.nordicsemi.android.toolbox.scanner.ScannerDestinationId
|
import no.nordicsemi.android.toolbox.scanner.ScannerDestinationId
|
||||||
import no.nordicsemi.android.ui.view.StringConst
|
import no.nordicsemi.android.ui.view.StringConst
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -91,6 +91,7 @@ internal class BPSViewModel @Inject constructor(
|
|||||||
val state = _state.asStateFlow()
|
val state = _state.asStateFlow()
|
||||||
|
|
||||||
private lateinit var client: BleGattClient
|
private lateinit var client: BleGattClient
|
||||||
|
private lateinit var logger: NordicBlekLogger
|
||||||
|
|
||||||
init {
|
init {
|
||||||
navigationManager.navigateTo(ScannerDestinationId, ParcelUuid(BPS_SERVICE_UUID))
|
navigationManager.navigateTo(ScannerDestinationId, ParcelUuid(BPS_SERVICE_UUID))
|
||||||
@@ -110,14 +111,14 @@ internal class BPSViewModel @Inject constructor(
|
|||||||
fun onEvent(event: BPSViewEvent) {
|
fun onEvent(event: BPSViewEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
DisconnectEvent -> navigationManager.navigateUp()
|
DisconnectEvent -> navigationManager.navigateUp()
|
||||||
OpenLoggerEvent -> TODO()
|
OpenLoggerEvent -> logger.launch()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = viewModelScope.launch {
|
private fun startGattClient(device: ServerDevice) = viewModelScope.launch {
|
||||||
_state.value = _state.value.copy(deviceName = device.name)
|
_state.value = _state.value.copy(deviceName = device.name)
|
||||||
|
|
||||||
val logger = NordicLogger(context, stringConst.APP_NAME, "BPS", device.address)
|
logger = NordicBlekLogger(context, stringConst.APP_NAME, "BPS", device.address)
|
||||||
|
|
||||||
client = device.connect(context, logger = logger)
|
client = device.connect(context, logger = logger)
|
||||||
|
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
|||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus
|
import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -64,6 +65,9 @@ class CGMRepository @Inject constructor(
|
|||||||
private val _command = simpleSharedFlow<CGMServiceCommand>()
|
private val _command = simpleSharedFlow<CGMServiceCommand>()
|
||||||
internal val command = _command.asSharedFlow()
|
internal val command = _command.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
val hasRecords = data.value.records.isNotEmpty()
|
val hasRecords = data.value.records.isNotEmpty()
|
||||||
val highestSequenceNumber = data.value.records.maxOfOrNull { it.sequenceNumber } ?: -1
|
val highestSequenceNumber = data.value.records.maxOfOrNull { it.sequenceNumber } ?: -1
|
||||||
@@ -94,7 +98,7 @@ class CGMRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
TODO()
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun clear() {
|
fun clear() {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import kotlinx.coroutines.launch
|
|||||||
import no.nordicsemi.android.ble.common.data.cgm.CGMSpecificOpsControlPointData
|
import no.nordicsemi.android.ble.common.data.cgm.CGMSpecificOpsControlPointData
|
||||||
import no.nordicsemi.android.cgms.data.CGMRecordWithSequenceNumber
|
import no.nordicsemi.android.cgms.data.CGMRecordWithSequenceNumber
|
||||||
import no.nordicsemi.android.cgms.data.CGMServiceCommand
|
import no.nordicsemi.android.cgms.data.CGMServiceCommand
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
||||||
@@ -131,10 +131,14 @@ internal class CGMService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@CGMService, stringConst.APP_NAME, "CGM", device.address)
|
val logger = NordicBlekLogger(this@CGMService, stringConst.APP_NAME, "CGM", device.address)
|
||||||
|
|
||||||
client = device.connect(this@CGMService, logger = logger)
|
client = device.connect(this@CGMService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import no.nordicsemi.android.common.core.simpleSharedFlow
|
import no.nordicsemi.android.common.core.simpleSharedFlow
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.csc.data.CSCServiceData
|
import no.nordicsemi.android.csc.data.CSCServiceData
|
||||||
import no.nordicsemi.android.csc.data.SpeedUnit
|
import no.nordicsemi.android.csc.data.SpeedUnit
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
@@ -47,6 +47,7 @@ import no.nordicsemi.android.kotlin.ble.profile.csc.data.CSCData
|
|||||||
import no.nordicsemi.android.kotlin.ble.profile.csc.data.WheelSize
|
import no.nordicsemi.android.kotlin.ble.profile.csc.data.WheelSize
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.csc.data.WheelSizes
|
import no.nordicsemi.android.kotlin.ble.profile.csc.data.WheelSizes
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -57,8 +58,6 @@ class CSCRepository @Inject constructor(
|
|||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val serviceManager: ServiceManager,
|
private val serviceManager: ServiceManager,
|
||||||
) {
|
) {
|
||||||
private var logger: NordicLogger? = null
|
|
||||||
|
|
||||||
private val _wheelSize = MutableStateFlow(WheelSizes.default)
|
private val _wheelSize = MutableStateFlow(WheelSizes.default)
|
||||||
internal val wheelSize = _wheelSize.asStateFlow()
|
internal val wheelSize = _wheelSize.asStateFlow()
|
||||||
|
|
||||||
@@ -68,6 +67,9 @@ class CSCRepository @Inject constructor(
|
|||||||
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
||||||
internal val stopEvent = _stopEvent.asSharedFlow()
|
internal val stopEvent = _stopEvent.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
|
|
||||||
fun launch(device: ServerDevice) {
|
fun launch(device: ServerDevice) {
|
||||||
@@ -99,11 +101,10 @@ class CSCRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
NordicLogger.launch(context, logger)
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
logger = null
|
|
||||||
_stopEvent.tryEmit(DisconnectAndStopEvent())
|
_stopEvent.tryEmit(DisconnectAndStopEvent())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
@@ -87,10 +87,14 @@ internal class CSCService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@CSCService, stringConst.APP_NAME, "CSC", device.address)
|
val logger = NordicBlekLogger(this@CSCService, stringConst.APP_NAME, "CSC", device.address)
|
||||||
|
|
||||||
client = device.connect(this@CSCService, logger = logger)
|
client = device.connect(this@CSCService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import kotlinx.coroutines.launch
|
|||||||
import no.nordicsemi.android.analytics.AppAnalytics
|
import no.nordicsemi.android.analytics.AppAnalytics
|
||||||
import no.nordicsemi.android.analytics.Profile
|
import no.nordicsemi.android.analytics.Profile
|
||||||
import no.nordicsemi.android.analytics.ProfileConnectedEvent
|
import no.nordicsemi.android.analytics.ProfileConnectedEvent
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.common.navigation.NavigationResult
|
import no.nordicsemi.android.common.navigation.NavigationResult
|
||||||
import no.nordicsemi.android.common.navigation.Navigator
|
import no.nordicsemi.android.common.navigation.Navigator
|
||||||
import no.nordicsemi.android.gls.GlsDetailsDestinationId
|
import no.nordicsemi.android.gls.GlsDetailsDestinationId
|
||||||
@@ -103,6 +103,7 @@ internal class GLSViewModel @Inject constructor(
|
|||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
|
|
||||||
private lateinit var client: BleGattClient
|
private lateinit var client: BleGattClient
|
||||||
|
private lateinit var logger: NordicBlekLogger
|
||||||
|
|
||||||
private lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic
|
private lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic
|
||||||
private lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic
|
private lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic
|
||||||
@@ -130,7 +131,7 @@ internal class GLSViewModel @Inject constructor(
|
|||||||
|
|
||||||
fun onEvent(event: GLSScreenViewEvent) {
|
fun onEvent(event: GLSScreenViewEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
OpenLoggerEvent -> TODO()
|
OpenLoggerEvent -> logger.launch()
|
||||||
DisconnectEvent -> navigationManager.navigateUp()
|
DisconnectEvent -> navigationManager.navigateUp()
|
||||||
is OnWorkingModeSelected -> onEvent(event)
|
is OnWorkingModeSelected -> onEvent(event)
|
||||||
is OnGLSRecordClick -> navigateToDetails(event.record)
|
is OnGLSRecordClick -> navigateToDetails(event.record)
|
||||||
@@ -156,7 +157,7 @@ internal class GLSViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = viewModelScope.launch {
|
private fun startGattClient(device: ServerDevice) = viewModelScope.launch {
|
||||||
val logger = NordicLogger(context, stringConst.APP_NAME, "BPS", device.address)
|
logger = NordicBlekLogger(context, stringConst.APP_NAME, "BPS", device.address)
|
||||||
|
|
||||||
client = device.connect(context, logger = logger)
|
client = device.connect(context, logger = logger)
|
||||||
|
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2022, Nordic Semiconductor
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without modification, are
|
|
||||||
* permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice, this list of
|
|
||||||
* conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
||||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
|
||||||
* provided with the distribution.
|
|
||||||
*
|
|
||||||
* 3. Neither the name of the copyright holder nor the names of its contributors may be
|
|
||||||
* used to endorse or promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
||||||
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
||||||
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
||||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package no.nordicsemi.android.gls.repository
|
|
||||||
|
|
||||||
import dagger.hilt.android.scopes.ViewModelScoped
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@ViewModelScoped
|
|
||||||
internal class GLSRepository @Inject constructor(
|
|
||||||
|
|
||||||
) {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -38,12 +38,13 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import no.nordicsemi.android.common.core.simpleSharedFlow
|
import no.nordicsemi.android.common.core.simpleSharedFlow
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.hrs.data.HRSServiceData
|
import no.nordicsemi.android.hrs.data.HRSServiceData
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.hrs.data.HRSData
|
import no.nordicsemi.android.kotlin.ble.profile.hrs.data.HRSData
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -54,7 +55,7 @@ class HRSRepository @Inject constructor(
|
|||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val serviceManager: ServiceManager
|
private val serviceManager: ServiceManager
|
||||||
) {
|
) {
|
||||||
private var logger: NordicLogger? = null
|
private var logger: NordicBlekLogger? = null
|
||||||
|
|
||||||
private val _data = MutableStateFlow(HRSServiceData())
|
private val _data = MutableStateFlow(HRSServiceData())
|
||||||
internal val data = _data.asStateFlow()
|
internal val data = _data.asStateFlow()
|
||||||
@@ -62,6 +63,9 @@ class HRSRepository @Inject constructor(
|
|||||||
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
||||||
internal val stopEvent = _stopEvent.asSharedFlow()
|
internal val stopEvent = _stopEvent.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
|
|
||||||
fun launch(device: ServerDevice) {
|
fun launch(device: ServerDevice) {
|
||||||
@@ -93,7 +97,7 @@ class HRSRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
NordicLogger.launch(context, logger)
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
@@ -89,10 +89,14 @@ internal class HRSService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@HRSService, stringConst.APP_NAME, "CSC", device.address)
|
val logger = NordicBlekLogger(this@HRSService, stringConst.APP_NAME, "CSC", device.address)
|
||||||
|
|
||||||
client = device.connect(this@HRSService, logger = logger)
|
client = device.connect(this@HRSService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
@@ -38,13 +38,14 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import no.nordicsemi.android.common.core.simpleSharedFlow
|
import no.nordicsemi.android.common.core.simpleSharedFlow
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.hts.data.HTSServiceData
|
import no.nordicsemi.android.hts.data.HTSServiceData
|
||||||
import no.nordicsemi.android.hts.view.TemperatureUnit
|
import no.nordicsemi.android.hts.view.TemperatureUnit
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.hts.data.HTSData
|
import no.nordicsemi.android.kotlin.ble.profile.hts.data.HTSData
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -55,7 +56,7 @@ class HTSRepository @Inject constructor(
|
|||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val serviceManager: ServiceManager
|
private val serviceManager: ServiceManager
|
||||||
) {
|
) {
|
||||||
private var logger: NordicLogger? = null
|
private var logger: NordicBlekLogger? = null
|
||||||
|
|
||||||
private val _data = MutableStateFlow(HTSServiceData())
|
private val _data = MutableStateFlow(HTSServiceData())
|
||||||
internal val data = _data.asStateFlow()
|
internal val data = _data.asStateFlow()
|
||||||
@@ -63,6 +64,9 @@ class HTSRepository @Inject constructor(
|
|||||||
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
||||||
internal val stopEvent = _stopEvent.asSharedFlow()
|
internal val stopEvent = _stopEvent.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
|
|
||||||
fun launch(device: ServerDevice) {
|
fun launch(device: ServerDevice) {
|
||||||
@@ -90,7 +94,7 @@ class HTSRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
NordicLogger.launch(context, logger)
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
@@ -87,10 +87,14 @@ internal class HTSService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@HTSService, stringConst.APP_NAME, "HTS", device.address)
|
val logger = NordicBlekLogger(this@HTSService, stringConst.APP_NAME, "HTS", device.address)
|
||||||
|
|
||||||
client = device.connect(this@HTSService, logger = logger)
|
client = device.connect(this@HTSService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
|||||||
import no.nordicsemi.android.kotlin.ble.profile.prx.AlarmLevel
|
import no.nordicsemi.android.kotlin.ble.profile.prx.AlarmLevel
|
||||||
import no.nordicsemi.android.prx.data.PRXServiceData
|
import no.nordicsemi.android.prx.data.PRXServiceData
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -61,6 +62,9 @@ class PRXRepository @Inject internal constructor(
|
|||||||
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
||||||
internal val stopEvent = _stopEvent.asSharedFlow()
|
internal val stopEvent = _stopEvent.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
private val _remoteAlarmLevel = simpleSharedFlow<AlarmLevel>()
|
private val _remoteAlarmLevel = simpleSharedFlow<AlarmLevel>()
|
||||||
internal val remoteAlarmLevel = _remoteAlarmLevel.asSharedFlow()
|
internal val remoteAlarmLevel = _remoteAlarmLevel.asSharedFlow()
|
||||||
|
|
||||||
@@ -99,7 +103,7 @@ class PRXRepository @Inject internal constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
TODO()
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
|
|||||||
@@ -40,13 +40,12 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.BleGattConnectOptions
|
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.BleGattConnectionStatus
|
import no.nordicsemi.android.kotlin.ble.core.data.BleGattConnectionStatus
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.BleGattPermission
|
import no.nordicsemi.android.kotlin.ble.core.data.BleGattPermission
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty
|
import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty
|
||||||
@@ -162,10 +161,14 @@ internal class PRXService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@PRXService, stringConst.APP_NAME, "PRX", device.address)
|
val logger = NordicBlekLogger(this@PRXService, stringConst.APP_NAME, "PRX", device.address)
|
||||||
|
|
||||||
client = device.connect(this@PRXService, logger = logger)
|
client = device.connect(this@PRXService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionStateWithStatus
|
client.connectionStateWithStatus
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
|
|||||||
@@ -38,12 +38,13 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import no.nordicsemi.android.common.core.simpleSharedFlow
|
import no.nordicsemi.android.common.core.simpleSharedFlow
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.rscs.data.RSCSData
|
import no.nordicsemi.android.kotlin.ble.profile.rscs.data.RSCSData
|
||||||
import no.nordicsemi.android.rscs.data.RSCSServiceData
|
import no.nordicsemi.android.rscs.data.RSCSServiceData
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
@@ -54,7 +55,7 @@ class RSCSRepository @Inject constructor(
|
|||||||
private val context: Context,
|
private val context: Context,
|
||||||
private val serviceManager: ServiceManager
|
private val serviceManager: ServiceManager
|
||||||
) {
|
) {
|
||||||
private var logger: NordicLogger? = null
|
private var logger: NordicBlekLogger? = null
|
||||||
|
|
||||||
private val _data = MutableStateFlow(RSCSServiceData())
|
private val _data = MutableStateFlow(RSCSServiceData())
|
||||||
internal val data = _data.asStateFlow()
|
internal val data = _data.asStateFlow()
|
||||||
@@ -62,6 +63,9 @@ class RSCSRepository @Inject constructor(
|
|||||||
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
|
||||||
internal val stopEvent = _stopEvent.asSharedFlow()
|
internal val stopEvent = _stopEvent.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
|
|
||||||
fun launch(device: ServerDevice) {
|
fun launch(device: ServerDevice) {
|
||||||
@@ -85,7 +89,7 @@ class RSCSRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
NordicLogger.launch(context, logger)
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
@@ -87,10 +87,14 @@ internal class RSCSService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@RSCSService, stringConst.APP_NAME, "RSCS", device.address)
|
val logger = NordicBlekLogger(this@RSCSService, stringConst.APP_NAME, "RSCS", device.address)
|
||||||
|
|
||||||
client = device.connect(this@RSCSService, logger = logger)
|
client = device.connect(this@RSCSService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
@@ -38,10 +38,11 @@ import kotlinx.coroutines.flow.asSharedFlow
|
|||||||
import kotlinx.coroutines.flow.asStateFlow
|
import kotlinx.coroutines.flow.asStateFlow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import no.nordicsemi.android.common.core.simpleSharedFlow
|
import no.nordicsemi.android.common.core.simpleSharedFlow
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
import no.nordicsemi.android.service.DisconnectAndStopEvent
|
||||||
|
import no.nordicsemi.android.service.OpenLoggerEvent
|
||||||
import no.nordicsemi.android.service.ServiceManager
|
import no.nordicsemi.android.service.ServiceManager
|
||||||
import no.nordicsemi.android.uart.data.ConfigurationDataSource
|
import no.nordicsemi.android.uart.data.ConfigurationDataSource
|
||||||
import no.nordicsemi.android.uart.data.MacroEol
|
import no.nordicsemi.android.uart.data.MacroEol
|
||||||
@@ -60,8 +61,6 @@ class UARTRepository @Inject internal constructor(
|
|||||||
private val serviceManager: ServiceManager,
|
private val serviceManager: ServiceManager,
|
||||||
private val configurationDataSource: ConfigurationDataSource
|
private val configurationDataSource: ConfigurationDataSource
|
||||||
) {
|
) {
|
||||||
private var logger: NordicLogger? = null
|
|
||||||
|
|
||||||
private val _data = MutableStateFlow(UARTServiceData())
|
private val _data = MutableStateFlow(UARTServiceData())
|
||||||
internal val data = _data.asStateFlow()
|
internal val data = _data.asStateFlow()
|
||||||
|
|
||||||
@@ -71,6 +70,9 @@ class UARTRepository @Inject internal constructor(
|
|||||||
private val _command = simpleSharedFlow<String>()
|
private val _command = simpleSharedFlow<String>()
|
||||||
internal val command = _command.asSharedFlow()
|
internal val command = _command.asSharedFlow()
|
||||||
|
|
||||||
|
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
|
||||||
|
internal val loggerEvent = _loggerEvent.asSharedFlow()
|
||||||
|
|
||||||
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
|
||||||
|
|
||||||
val lastConfigurationName = configurationDataSource.lastConfigurationName
|
val lastConfigurationName = configurationDataSource.lastConfigurationName
|
||||||
@@ -115,7 +117,7 @@ class UARTRepository @Inject internal constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun openLogger() {
|
fun openLogger() {
|
||||||
NordicLogger.launch(context, logger)
|
_loggerEvent.tryEmit(OpenLoggerEvent())
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun saveConfigurationName(name: String) {
|
suspend fun saveConfigurationName(name: String) {
|
||||||
@@ -124,6 +126,5 @@ class UARTRepository @Inject internal constructor(
|
|||||||
|
|
||||||
fun release() {
|
fun release() {
|
||||||
_stopEvent.tryEmit(DisconnectAndStopEvent())
|
_stopEvent.tryEmit(DisconnectAndStopEvent())
|
||||||
logger = null
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
|
|||||||
import kotlinx.coroutines.flow.mapNotNull
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.common.logger.NordicLogger
|
import no.nordicsemi.android.common.logger.NordicBlekLogger
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
||||||
@@ -90,10 +90,14 @@ internal class UARTService : NotificationService() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
private fun startGattClient(device: ServerDevice) = lifecycleScope.launch {
|
||||||
val logger = NordicLogger(this@UARTService, stringConst.APP_NAME, "UART", device.address)
|
val logger = NordicBlekLogger(this@UARTService, stringConst.APP_NAME, "UART", device.address)
|
||||||
|
|
||||||
client = device.connect(this@UARTService, logger = logger)
|
client = device.connect(this@UARTService, logger = logger)
|
||||||
|
|
||||||
|
repository.loggerEvent
|
||||||
|
.onEach { logger.launch() }
|
||||||
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
client.connectionState
|
client.connectionState
|
||||||
.onEach { repository.onConnectionStateChanged(it) }
|
.onEach { repository.onConnectionStateChanged(it) }
|
||||||
.filterNotNull()
|
.filterNotNull()
|
||||||
|
|||||||
Reference in New Issue
Block a user