Fix logger

This commit is contained in:
Sylwester Zielinski
2023-03-31 15:42:36 +02:00
parent a431df5e78
commit c69b8c72a2
19 changed files with 99 additions and 86 deletions

View File

@@ -43,6 +43,7 @@ import kotlinx.coroutines.flow.onEach
import no.nordicsemi.android.analytics.AppAnalytics
import no.nordicsemi.android.analytics.ProfileOpenEvent
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.navigation.DestinationId
import no.nordicsemi.android.common.navigation.Navigator

View File

@@ -0,0 +1,3 @@
package no.nordicsemi.android.service
class OpenLoggerEvent

View File

@@ -52,7 +52,7 @@ import no.nordicsemi.android.bps.view.BPSViewEvent
import no.nordicsemi.android.bps.view.BPSViewState
import no.nordicsemi.android.bps.view.DisconnectEvent
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.Navigator
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.data.GattConnectionState
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.data.IntermediateCuffPressureData
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.ui.view.StringConst
import java.util.*
@@ -91,6 +91,7 @@ internal class BPSViewModel @Inject constructor(
val state = _state.asStateFlow()
private lateinit var client: BleGattClient
private lateinit var logger: NordicBlekLogger
init {
navigationManager.navigateTo(ScannerDestinationId, ParcelUuid(BPS_SERVICE_UUID))
@@ -110,14 +111,14 @@ internal class BPSViewModel @Inject constructor(
fun onEvent(event: BPSViewEvent) {
when (event) {
DisconnectEvent -> navigationManager.navigateUp()
OpenLoggerEvent -> TODO()
OpenLoggerEvent -> logger.launch()
}
}
private fun startGattClient(device: ServerDevice) = viewModelScope.launch {
_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)

View File

@@ -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.profile.gls.data.RequestStatus
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -64,6 +65,9 @@ class CGMRepository @Inject constructor(
private val _command = simpleSharedFlow<CGMServiceCommand>()
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 hasRecords = data.value.records.isNotEmpty()
val highestSequenceNumber = data.value.records.maxOfOrNull { it.sequenceNumber } ?: -1
@@ -94,7 +98,7 @@ class CGMRepository @Inject constructor(
}
fun openLogger() {
TODO()
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun clear() {

View File

@@ -43,7 +43,7 @@ import kotlinx.coroutines.launch
import no.nordicsemi.android.ble.common.data.cgm.CGMSpecificOpsControlPointData
import no.nordicsemi.android.cgms.data.CGMRecordWithSequenceNumber
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()

View File

@@ -38,7 +38,7 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
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.SpeedUnit
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.WheelSizes
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -57,8 +58,6 @@ class CSCRepository @Inject constructor(
private val context: Context,
private val serviceManager: ServiceManager,
) {
private var logger: NordicLogger? = null
private val _wheelSize = MutableStateFlow(WheelSizes.default)
internal val wheelSize = _wheelSize.asStateFlow()
@@ -68,6 +67,9 @@ class CSCRepository @Inject constructor(
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
internal val stopEvent = _stopEvent.asSharedFlow()
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
internal val loggerEvent = _loggerEvent.asSharedFlow()
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
fun launch(device: ServerDevice) {
@@ -99,11 +101,10 @@ class CSCRepository @Inject constructor(
}
fun openLogger() {
NordicLogger.launch(context, logger)
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun release() {
logger = null
_stopEvent.tryEmit(DisconnectAndStopEvent())
}
}

View File

@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()

View File

@@ -48,7 +48,7 @@ import kotlinx.coroutines.launch
import no.nordicsemi.android.analytics.AppAnalytics
import no.nordicsemi.android.analytics.Profile
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.Navigator
import no.nordicsemi.android.gls.GlsDetailsDestinationId
@@ -103,6 +103,7 @@ internal class GLSViewModel @Inject constructor(
) : ViewModel() {
private lateinit var client: BleGattClient
private lateinit var logger: NordicBlekLogger
private lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic
private lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic
@@ -130,7 +131,7 @@ internal class GLSViewModel @Inject constructor(
fun onEvent(event: GLSScreenViewEvent) {
when (event) {
OpenLoggerEvent -> TODO()
OpenLoggerEvent -> logger.launch()
DisconnectEvent -> navigationManager.navigateUp()
is OnWorkingModeSelected -> onEvent(event)
is OnGLSRecordClick -> navigateToDetails(event.record)
@@ -156,7 +157,7 @@ internal class GLSViewModel @Inject constructor(
}
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)

View File

@@ -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(
) {
}

View File

@@ -38,12 +38,13 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
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.kotlin.ble.core.ServerDevice
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
import no.nordicsemi.android.kotlin.ble.profile.hrs.data.HRSData
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -54,7 +55,7 @@ class HRSRepository @Inject constructor(
private val context: Context,
private val serviceManager: ServiceManager
) {
private var logger: NordicLogger? = null
private var logger: NordicBlekLogger? = null
private val _data = MutableStateFlow(HRSServiceData())
internal val data = _data.asStateFlow()
@@ -62,6 +63,9 @@ class HRSRepository @Inject constructor(
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
internal val stopEvent = _stopEvent.asSharedFlow()
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
internal val loggerEvent = _loggerEvent.asSharedFlow()
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
fun launch(device: ServerDevice) {
@@ -93,7 +97,7 @@ class HRSRepository @Inject constructor(
}
fun openLogger() {
NordicLogger.launch(context, logger)
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun release() {

View File

@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()

View File

@@ -38,13 +38,14 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
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.view.TemperatureUnit
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
import no.nordicsemi.android.kotlin.ble.profile.hts.data.HTSData
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -55,7 +56,7 @@ class HTSRepository @Inject constructor(
private val context: Context,
private val serviceManager: ServiceManager
) {
private var logger: NordicLogger? = null
private var logger: NordicBlekLogger? = null
private val _data = MutableStateFlow(HTSServiceData())
internal val data = _data.asStateFlow()
@@ -63,6 +64,9 @@ class HTSRepository @Inject constructor(
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
internal val stopEvent = _stopEvent.asSharedFlow()
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
internal val loggerEvent = _loggerEvent.asSharedFlow()
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
fun launch(device: ServerDevice) {
@@ -90,7 +94,7 @@ class HTSRepository @Inject constructor(
}
fun openLogger() {
NordicLogger.launch(context, logger)
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun release() {

View File

@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()

View File

@@ -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.prx.data.PRXServiceData
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -61,6 +62,9 @@ class PRXRepository @Inject internal constructor(
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
internal val stopEvent = _stopEvent.asSharedFlow()
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
internal val loggerEvent = _loggerEvent.asSharedFlow()
private val _remoteAlarmLevel = simpleSharedFlow<AlarmLevel>()
internal val remoteAlarmLevel = _remoteAlarmLevel.asSharedFlow()
@@ -99,7 +103,7 @@ class PRXRepository @Inject internal constructor(
}
fun openLogger() {
TODO()
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun release() {

View File

@@ -40,13 +40,12 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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.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.BleGattPermission
import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty
@@ -162,10 +161,14 @@ internal class PRXService : NotificationService() {
}
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionStateWithStatus
.filterNotNull()
.onEach { repository.onConnectionStateChanged(it) }

View File

@@ -38,12 +38,13 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
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.data.GattConnectionState
import no.nordicsemi.android.kotlin.ble.profile.rscs.data.RSCSData
import no.nordicsemi.android.rscs.data.RSCSServiceData
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import javax.inject.Inject
import javax.inject.Singleton
@@ -54,7 +55,7 @@ class RSCSRepository @Inject constructor(
private val context: Context,
private val serviceManager: ServiceManager
) {
private var logger: NordicLogger? = null
private var logger: NordicBlekLogger? = null
private val _data = MutableStateFlow(RSCSServiceData())
internal val data = _data.asStateFlow()
@@ -62,6 +63,9 @@ class RSCSRepository @Inject constructor(
private val _stopEvent = simpleSharedFlow<DisconnectAndStopEvent>()
internal val stopEvent = _stopEvent.asSharedFlow()
private val _loggerEvent = simpleSharedFlow<OpenLoggerEvent>()
internal val loggerEvent = _loggerEvent.asSharedFlow()
val isRunning = data.map { it.connectionState == GattConnectionState.STATE_CONNECTED }
fun launch(device: ServerDevice) {
@@ -85,7 +89,7 @@ class RSCSRepository @Inject constructor(
}
fun openLogger() {
NordicLogger.launch(context, logger)
_loggerEvent.tryEmit(OpenLoggerEvent())
}
fun release() {

View File

@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()

View File

@@ -38,10 +38,11 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.map
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.data.GattConnectionState
import no.nordicsemi.android.service.DisconnectAndStopEvent
import no.nordicsemi.android.service.OpenLoggerEvent
import no.nordicsemi.android.service.ServiceManager
import no.nordicsemi.android.uart.data.ConfigurationDataSource
import no.nordicsemi.android.uart.data.MacroEol
@@ -60,8 +61,6 @@ class UARTRepository @Inject internal constructor(
private val serviceManager: ServiceManager,
private val configurationDataSource: ConfigurationDataSource
) {
private var logger: NordicLogger? = null
private val _data = MutableStateFlow(UARTServiceData())
internal val data = _data.asStateFlow()
@@ -71,6 +70,9 @@ class UARTRepository @Inject internal constructor(
private val _command = simpleSharedFlow<String>()
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 lastConfigurationName = configurationDataSource.lastConfigurationName
@@ -115,7 +117,7 @@ class UARTRepository @Inject internal constructor(
}
fun openLogger() {
NordicLogger.launch(context, logger)
_loggerEvent.tryEmit(OpenLoggerEvent())
}
suspend fun saveConfigurationName(name: String) {
@@ -124,6 +126,5 @@ class UARTRepository @Inject internal constructor(
fun release() {
_stopEvent.tryEmit(DisconnectAndStopEvent())
logger = null
}
}

View File

@@ -40,7 +40,7 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.onEach
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.connect
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 {
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)
repository.loggerEvent
.onEach { logger.launch() }
.launchIn(lifecycleScope)
client.connectionState
.onEach { repository.onConnectionStateChanged(it) }
.filterNotNull()