Fix mock engine

This commit is contained in:
Sylwester Zieliński
2023-06-17 13:28:37 +02:00
parent 19c18382aa
commit bcd481307c
14 changed files with 54 additions and 32 deletions

View File

@@ -7,10 +7,11 @@ import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import no.nordicsemi.android.common.logger.NordicBlekLogger import no.nordicsemi.android.common.logger.NordicBlekLogger
import no.nordicsemi.android.common.logger.BlekLogger import no.nordicsemi.android.common.logger.BlekLogger
import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher
@Module @Module
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
class UiModule { class HiltModule {
@Provides @Provides
fun createLogger(): NordicLoggerFactory { fun createLogger(): NordicLoggerFactory {
@@ -20,7 +21,7 @@ class UiModule {
profile: String?, profile: String?,
key: String, key: String,
name: String?, name: String?,
): BlekLogger { ): BlekLoggerAndLauncher {
return NordicBlekLogger.create(context, profile, key, name) return NordicBlekLogger.create(context, profile, key, name)
} }
} }

View File

@@ -53,6 +53,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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -93,7 +94,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 private lateinit var logger: BlekLoggerAndLauncher
init { init {
navigationManager.navigateTo(ScannerDestinationId, ParcelUuid(BPS_SERVICE_UUID)) navigationManager.navigateTo(ScannerDestinationId, ParcelUuid(BPS_SERVICE_UUID))

View File

@@ -41,6 +41,7 @@ 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.cgms.data.CGMServiceData import no.nordicsemi.android.cgms.data.CGMServiceData
import no.nordicsemi.android.common.core.simpleSharedFlow import no.nordicsemi.android.common.core.simpleSharedFlow
import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -59,7 +60,7 @@ class CGMRepository @Inject constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(CGMServiceData()) private val _data = MutableStateFlow(CGMServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -60,7 +61,7 @@ class CSCRepository @Inject constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _wheelSize = MutableStateFlow(WheelSizes.default) private val _wheelSize = MutableStateFlow(WheelSizes.default)
internal val wheelSize = _wheelSize.asStateFlow() internal val wheelSize = _wheelSize.asStateFlow()

View File

@@ -70,8 +70,8 @@ dependencies {
testImplementation(libs.junit4) testImplementation(libs.junit4)
testImplementation("io.mockk:mockk:1.13.5") testImplementation("io.mockk:mockk:1.13.5")
implementation("androidx.test.ext:junit-ktx:1.1.5") testImplementation(libs.androidx.test.ext)
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.1") testImplementation(libs.kotlinx.coroutines.test)
testImplementation("org.slf4j:slf4j-simple:2.0.5") testImplementation("org.slf4j:slf4j-simple:2.0.5")
testImplementation("org.robolectric:robolectric:4.10.3") testImplementation("org.robolectric:robolectric:4.10.3")
} }

View File

@@ -43,7 +43,7 @@ class GlsServer @Inject constructor(
lateinit var racpCharacteristic: BleServerGattCharacteristic lateinit var racpCharacteristic: BleServerGattCharacteristic
lateinit var batteryLevelCharacteristic: BleServerGattCharacteristic lateinit var batteryLevelCharacteristic: BleServerGattCharacteristic
private val records = listOf( val records = listOf(
byteArrayOf(0x07, 0x00, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x05, 0x00, 0x00, 0x26, 0xD2.toByte(), 0x11), byteArrayOf(0x07, 0x00, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x05, 0x00, 0x00, 0x26, 0xD2.toByte(), 0x11),
byteArrayOf(0x07, 0x01, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x08, 0x00, 0x00, 0x3D, 0xD2.toByte(), 0x11), byteArrayOf(0x07, 0x01, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x08, 0x00, 0x00, 0x3D, 0xD2.toByte(), 0x11),
byteArrayOf(0x07, 0x02, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x0B, 0x00, 0x00, 0x54, 0xD2.toByte(), 0x11), byteArrayOf(0x07, 0x02, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x0B, 0x00, 0x00, 0x54, 0xD2.toByte(), 0x11),
@@ -51,7 +51,7 @@ class GlsServer @Inject constructor(
byteArrayOf(0x07, 0x04, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x11, 0x00, 0x00, 0x82.toByte(), 0xD2.toByte(), 0x11) byteArrayOf(0x07, 0x04, 0x00, 0xDC.toByte(), 0x07, 0x01, 0x01, 0x0C, 0x1E, 0x11, 0x00, 0x00, 0x82.toByte(), 0xD2.toByte(), 0x11)
) )
private val racp = byteArrayOf(0x06, 0x00, 0x01, 0x01) val racp = byteArrayOf(0x06, 0x00, 0x01, 0x01)
fun start( fun start(
context: Context, context: Context,
@@ -123,7 +123,7 @@ class GlsServer @Inject constructor(
startGlsService(connection) startGlsService(connection)
// startBatteryService(connection) startBatteryService(connection)
} }
private fun startGlsService(connection: BluetoothGattServerConnection) { private fun startGlsService(connection: BluetoothGattServerConnection) {

View File

@@ -31,6 +31,7 @@
package no.nordicsemi.android.gls.main.view package no.nordicsemi.android.gls.main.view
import android.util.Log
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState

View File

@@ -69,6 +69,7 @@ import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus
import no.nordicsemi.android.common.logger.BlekLogger import no.nordicsemi.android.common.logger.BlekLogger
import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher
import no.nordicsemi.android.kotlin.ble.core.ext.toDisplayString
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.gls.GlucoseMeasurementContextParser import no.nordicsemi.android.kotlin.ble.profile.gls.GlucoseMeasurementContextParser
import no.nordicsemi.android.kotlin.ble.profile.gls.GlucoseMeasurementParser import no.nordicsemi.android.kotlin.ble.profile.gls.GlucoseMeasurementParser
@@ -111,8 +112,8 @@ internal class GLSViewModel @Inject constructor(
internal lateinit var client: BleGattClient internal lateinit var client: BleGattClient
private lateinit var logger: BlekLoggerAndLauncher private lateinit var logger: BlekLoggerAndLauncher
internal lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic private lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic
internal lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic private lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic
private val _state = MutableStateFlow(GLSViewState()) private val _state = MutableStateFlow(GLSViewState())
val state = _state.asStateFlow() val state = _state.asStateFlow()
@@ -238,6 +239,7 @@ internal class GLSViewModel @Inject constructor(
} }
private fun onAccessControlPointDataReceived(data: RecordAccessControlPointData) = viewModelScope.launch { private fun onAccessControlPointDataReceived(data: RecordAccessControlPointData) = viewModelScope.launch {
println("AAA: Response code: ${data}")
when (data) { when (data) {
is NumberOfRecordsData -> onNumberOfRecordsReceived(data.numberOfRecords) is NumberOfRecordsData -> onNumberOfRecordsReceived(data.numberOfRecords)
is ResponseData -> when (data.responseCode) { is ResponseData -> when (data.responseCode) {
@@ -303,6 +305,7 @@ internal class GLSViewModel @Inject constructor(
try { try {
recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportLastStoredRecord().value) recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportLastStoredRecord().value)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace()
_state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED) _state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED)
} }
} }
@@ -313,6 +316,7 @@ internal class GLSViewModel @Inject constructor(
try { try {
recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportFirstStoredRecord().value) recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportFirstStoredRecord().value)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace()
_state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED) _state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED)
} }
} }
@@ -323,6 +327,7 @@ internal class GLSViewModel @Inject constructor(
try { try {
recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportNumberOfAllStoredRecords().value) recordAccessControlPointCharacteristic.write(RecordAccessControlPointInputParser.reportNumberOfAllStoredRecords().value)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace()
_state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED) _state.value = _state.value.copyWithNewRequestStatus(RequestStatus.FAILED)
} }
} }

View File

@@ -1,7 +1,6 @@
package no.nordicsemi.android.gls package no.nordicsemi.android.gls
import android.content.Context import android.content.Context
import io.mockk.coJustRun
import io.mockk.every import io.mockk.every
import io.mockk.impl.annotations.MockK import io.mockk.impl.annotations.MockK
import io.mockk.impl.annotations.RelaxedMockK import io.mockk.impl.annotations.RelaxedMockK
@@ -13,6 +12,7 @@ import io.mockk.mockkStatic
import io.mockk.spyk import io.mockk.spyk
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.advanceUntilIdle
@@ -26,13 +26,14 @@ import no.nordicsemi.android.common.navigation.Navigator
import no.nordicsemi.android.gls.data.WorkingMode import no.nordicsemi.android.gls.data.WorkingMode
import no.nordicsemi.android.gls.main.view.OnWorkingModeSelected import no.nordicsemi.android.gls.main.view.OnWorkingModeSelected
import no.nordicsemi.android.gls.main.viewmodel.GLSViewModel import no.nordicsemi.android.gls.main.viewmodel.GLSViewModel
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic import no.nordicsemi.android.kotlin.ble.client.main.ClientScope
import no.nordicsemi.android.kotlin.ble.core.MockServerDevice import no.nordicsemi.android.kotlin.ble.core.MockServerDevice
import no.nordicsemi.android.kotlin.ble.core.ServerDevice import no.nordicsemi.android.kotlin.ble.core.ServerDevice
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.GattConnectionState import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus
import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus
import no.nordicsemi.android.kotlin.ble.server.main.ServerScope
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 org.junit.After import org.junit.After
@@ -40,15 +41,12 @@ import org.junit.Assert.assertEquals
import org.junit.Before import org.junit.Before
import org.junit.Rule import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
/** /**
* Example local unit test, which will execute on the development machine (host). * Example local unit test, which will execute on the development machine (host).
* *
* See [testing documentation](http://d.android.com/tools/testing). * See [testing documentation](http://d.android.com/tools/testing).
*/ */
@RunWith(RobolectricTestRunner::class)
internal class GLSViewModelTest { internal class GLSViewModelTest {
@get:Rule @get:Rule
@@ -69,9 +67,6 @@ internal class GLSViewModelTest {
@RelaxedMockK @RelaxedMockK
lateinit var logger: NordicBlekLogger lateinit var logger: NordicBlekLogger
@MockK
lateinit var characteristic: BleGattCharacteristic
lateinit var viewModel: GLSViewModel lateinit var viewModel: GLSViewModel
lateinit var glsServer: GlsServer lateinit var glsServer: GlsServer
@@ -94,6 +89,11 @@ internal class GLSViewModelTest {
@Before @Before
fun before() { fun before() {
runBlocking { runBlocking {
mockkStatic("no.nordicsemi.android.kotlin.ble.client.main.ClientScopeKt")
every { ClientScope } returns CoroutineScope(UnconfinedTestDispatcher())
mockkStatic("no.nordicsemi.android.kotlin.ble.server.main.ServerScopeKt")
every { ServerScope } returns CoroutineScope(UnconfinedTestDispatcher())
viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst, object : viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst, object :
NordicLoggerFactory { NordicLoggerFactory {
override fun createNordicLogger( override fun createNordicLogger(
@@ -124,8 +124,8 @@ internal class GLSViewModelTest {
@Test @Test
fun checkOnClick() = runTest { fun checkOnClick() = runTest {
every { viewModel.recordAccessControlPointCharacteristic } returns characteristic // every { viewModel.recordAccessControlPointCharacteristic } returns characteristic
coJustRun { characteristic.write(any(), any()) } // coJustRun { characteristic.write(any(), any()) }
viewModel.onEvent(OnWorkingModeSelected(WorkingMode.FIRST)) viewModel.onEvent(OnWorkingModeSelected(WorkingMode.FIRST))
@@ -154,16 +154,23 @@ internal class GLSViewModelTest {
@Test @Test
fun checkOnClick2() = runTest { fun checkOnClick2() = runTest {
every { viewModel.recordAccessControlPointCharacteristic } returns characteristic
coJustRun { characteristic.write(any(), any()) }
mockkStatic("no.nordicsemi.android.kotlin.ble.client.main.ClientDeviceExtKt")
every { stringConst.APP_NAME } returns "Test" every { stringConst.APP_NAME } returns "Test"
justRun { viewModel.logAnalytics(any()) } justRun { viewModel.logAnalytics(any()) }
viewModel.handleResult(NavigationResult.Success(device)) viewModel.handleResult(NavigationResult.Success(device))
viewModel.onEvent(OnWorkingModeSelected(WorkingMode.FIRST))
advanceUntilIdle() advanceUntilIdle()
assertEquals(RequestStatus.PENDING, viewModel.state.value.glsServiceData.requestStatus) delay(1000)
viewModel.onEvent(OnWorkingModeSelected(WorkingMode.FIRST))
// advanceUntilIdle()
// assertEquals(RequestStatus.PENDING, viewModel.state.value.glsServiceData.requestStatus)
//
//// glsServer.glsCharacteristic.setValue(glsServer.records.first())
// glsServer.racpCharacteristic.setValue(glsServer.racp)
//
// advanceUntilIdle()
//
// assertEquals(RequestStatus.SUCCESS, viewModel.state.value.glsServiceData.requestStatus)
} }
} }

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -57,7 +58,7 @@ class HRSRepository @Inject constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(HRSServiceData()) private val _data = MutableStateFlow(HRSServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -58,7 +59,7 @@ class HTSRepository @Inject constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(HTSServiceData()) private val _data = MutableStateFlow(HTSServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -57,7 +58,7 @@ class PRXRepository @Inject internal constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(PRXServiceData()) private val _data = MutableStateFlow(PRXServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -57,7 +58,7 @@ class RSCSRepository @Inject constructor(
private val serviceManager: ServiceManager, private val serviceManager: ServiceManager,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(RSCSServiceData()) private val _data = MutableStateFlow(RSCSServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()

View File

@@ -38,6 +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.BlekLoggerAndLauncher
import no.nordicsemi.android.common.logger.NordicBlekLogger 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
@@ -63,7 +64,7 @@ class UARTRepository @Inject internal constructor(
private val configurationDataSource: ConfigurationDataSource, private val configurationDataSource: ConfigurationDataSource,
private val stringConst: StringConst private val stringConst: StringConst
) { ) {
private var logger: NordicBlekLogger? = null private var logger: BlekLoggerAndLauncher? = null
private val _data = MutableStateFlow(UARTServiceData()) private val _data = MutableStateFlow(UARTServiceData())
internal val data = _data.asStateFlow() internal val data = _data.asStateFlow()