diff --git a/app/src/main/java/no/nordicsemi/android/nrftoolbox/viewmodel/HomeViewModel.kt b/app/src/main/java/no/nordicsemi/android/nrftoolbox/viewmodel/HomeViewModel.kt index c156e5c0..7928ab0f 100644 --- a/app/src/main/java/no/nordicsemi/android/nrftoolbox/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/no/nordicsemi/android/nrftoolbox/viewmodel/HomeViewModel.kt @@ -43,7 +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.NordicLogger +import no.nordicsemi.android.common.logger.LoggerLauncher import no.nordicsemi.android.common.navigation.DestinationId import no.nordicsemi.android.common.navigation.Navigator import no.nordicsemi.android.csc.repository.CSCRepository @@ -114,7 +114,7 @@ class HomeViewModel @Inject constructor( } fun openLogger() { - NordicLogger.launch(context, logger = null) + LoggerLauncher.launch(context) } fun logEvent(event: ProfileOpenEvent) { diff --git a/lib_ui/src/main/java/no/nordicsemi/android/ui/view/NordicLoggerFactory.kt b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/NordicLoggerFactory.kt new file mode 100644 index 00000000..3ffbda8a --- /dev/null +++ b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/NordicLoggerFactory.kt @@ -0,0 +1,10 @@ +package no.nordicsemi.android.ui.view + +import android.content.Context +import no.nordicsemi.android.common.logger.BlekLogger +import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher + +interface NordicLoggerFactory { + + fun createNordicLogger(context: Context, profile: String?, key: String, name: String?): BlekLoggerAndLauncher +} diff --git a/lib_ui/src/main/java/no/nordicsemi/android/ui/view/UiModule.kt b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/UiModule.kt new file mode 100644 index 00000000..62db9285 --- /dev/null +++ b/lib_ui/src/main/java/no/nordicsemi/android/ui/view/UiModule.kt @@ -0,0 +1,28 @@ +package no.nordicsemi.android.ui.view + +import android.content.Context +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import no.nordicsemi.android.common.logger.NordicBlekLogger +import no.nordicsemi.android.common.logger.BlekLogger + +@Module +@InstallIn(SingletonComponent::class) +class UiModule { + + @Provides + fun createLogger(): NordicLoggerFactory { + return object : NordicLoggerFactory { + override fun createNordicLogger( + context: Context, + profile: String?, + key: String, + name: String?, + ): BlekLogger { + return NordicBlekLogger.create(context, profile, key, name) + } + } + } +} diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt index 62d7242d..23f2e7f4 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCRepository.kt @@ -48,7 +48,6 @@ 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 no.nordicsemi.android.ui.view.StringConst import javax.inject.Inject diff --git a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt index e631fb42..50143899 100644 --- a/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt +++ b/profile_csc/src/main/java/no/nordicsemi/android/csc/repository/CSCService.kt @@ -41,7 +41,6 @@ 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.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 @@ -52,7 +51,7 @@ import no.nordicsemi.android.kotlin.ble.profile.battery.BatteryLevelParser import no.nordicsemi.android.kotlin.ble.profile.csc.CSCDataParser import no.nordicsemi.android.service.DEVICE_DATA import no.nordicsemi.android.service.NotificationService -import no.nordicsemi.android.ui.view.StringConst +import no.nordicsemi.android.ui.view.NordicLoggerFactory import java.util.* import javax.inject.Inject diff --git a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt index 4fcbbf09..1991b513 100644 --- a/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt +++ b/profile_gls/src/main/java/no/nordicsemi/android/gls/main/viewmodel/GLSViewModel.kt @@ -49,7 +49,6 @@ 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.NordicBlekLogger import no.nordicsemi.android.common.navigation.NavigationResult import no.nordicsemi.android.common.navigation.Navigator import no.nordicsemi.android.gls.GlsDetailsDestinationId @@ -68,6 +67,8 @@ 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.core.data.GattConnectionStateWithStatus +import no.nordicsemi.android.common.logger.BlekLogger +import no.nordicsemi.android.common.logger.BlekLoggerAndLauncher 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.GlucoseMeasurementParser @@ -81,6 +82,7 @@ import no.nordicsemi.android.kotlin.ble.profile.gls.data.ResponseData import no.nordicsemi.android.kotlin.ble.profile.racp.RACPOpCode import no.nordicsemi.android.kotlin.ble.profile.racp.RACPResponseCode import no.nordicsemi.android.toolbox.scanner.ScannerDestinationId +import no.nordicsemi.android.ui.view.NordicLoggerFactory import no.nordicsemi.android.ui.view.StringConst import java.util.* import javax.inject.Inject @@ -102,11 +104,12 @@ internal class GLSViewModel @Inject constructor( private val context: Context, private val navigationManager: Navigator, private val analytics: AppAnalytics, - private val stringConst: StringConst + private val stringConst: StringConst, + private val loggerFactory: NordicLoggerFactory ) : ViewModel() { internal lateinit var client: BleGattClient - private lateinit var logger: NordicBlekLogger + private lateinit var logger: BlekLoggerAndLauncher internal lateinit var glucoseMeasurementCharacteristic: BleGattCharacteristic internal lateinit var recordAccessControlPointCharacteristic: BleGattCharacteristic @@ -168,7 +171,7 @@ internal class GLSViewModel @Inject constructor( private fun startGattClient(device: ServerDevice) = viewModelScope.launch { _state.value = _state.value.copy(deviceName = device.name) - logger = NordicBlekLogger.create(context, stringConst.APP_NAME, "GLS", device.address) + logger = loggerFactory.createNordicLogger(context, stringConst.APP_NAME, "GLS", device.address) client = device.connect(context, logger = logger) diff --git a/profile_gls/src/test/java/no/nordicsemi/android/gls/GLSViewModelTest.kt b/profile_gls/src/test/java/no/nordicsemi/android/gls/GLSViewModelTest.kt index c76729c2..f323f0fe 100644 --- a/profile_gls/src/test/java/no/nordicsemi/android/gls/GLSViewModelTest.kt +++ b/profile_gls/src/test/java/no/nordicsemi/android/gls/GLSViewModelTest.kt @@ -33,6 +33,7 @@ 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.GattConnectionStateWithStatus import no.nordicsemi.android.kotlin.ble.profile.gls.data.RequestStatus +import no.nordicsemi.android.ui.view.NordicLoggerFactory import no.nordicsemi.android.ui.view.StringConst import org.junit.After import org.junit.Assert.assertEquals @@ -41,7 +42,6 @@ import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner -import org.robolectric.shadows.ShadowBluetoothGatt /** * Example local unit test, which will execute on the development machine (host). @@ -94,7 +94,18 @@ internal class GLSViewModelTest { @Before fun before() { runBlocking { - viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst)) + viewModel = spyk(GLSViewModel(context, navigator, analytics, stringConst, object : + NordicLoggerFactory { + override fun createNordicLogger( + context: Context, + profile: String?, + key: String, + name: String?, + ): NordicBlekLogger { + return logger + } + + })) glsServer = GlsServer(CoroutineScope(UnconfinedTestDispatcher())) glsServer.start(spyk(), device) } diff --git a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt index 1d8a85f8..893aaff5 100644 --- a/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt +++ b/profile_hrs/src/main/java/no/nordicsemi/android/hrs/service/HRSRepository.kt @@ -45,7 +45,6 @@ import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionStateWithStatus 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 no.nordicsemi.android.ui.view.StringConst import javax.inject.Inject diff --git a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt index e6607dd0..681ea1b1 100644 --- a/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt +++ b/profile_uart/src/main/java/no/nordicsemi/android/uart/repository/UARTRepository.kt @@ -43,7 +43,6 @@ 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.GattConnectionStateWithStatus 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