mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-24 01:44:23 +01:00
Add logger icon to AppBar
This commit is contained in:
@@ -8,6 +8,7 @@ import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
import no.nordicsemi.android.ble.ktx.suspend
|
||||
import no.nordicsemi.android.logger.ToolboxLogger
|
||||
import no.nordicsemi.android.logger.ToolboxLoggerFactory
|
||||
import no.nordicsemi.android.service.BleManagerResult
|
||||
import no.nordicsemi.android.service.ConnectingResult
|
||||
import no.nordicsemi.android.service.ServiceManager
|
||||
@@ -20,9 +21,11 @@ class UARTRepository @Inject internal constructor(
|
||||
@ApplicationContext
|
||||
private val context: Context,
|
||||
private val serviceManager: ServiceManager,
|
||||
private val configurationDataSource: ConfigurationDataSource
|
||||
private val configurationDataSource: ConfigurationDataSource,
|
||||
private val toolboxLoggerFactory: ToolboxLoggerFactory
|
||||
) {
|
||||
private var manager: UARTManager? = null
|
||||
private var logger: ToolboxLogger? = null
|
||||
|
||||
private val _data = MutableStateFlow<BleManagerResult<UARTData>>(ConnectingResult())
|
||||
internal val data = _data.asStateFlow()
|
||||
@@ -37,7 +40,10 @@ class UARTRepository @Inject internal constructor(
|
||||
}
|
||||
|
||||
fun start(device: BluetoothDevice, scope: CoroutineScope) {
|
||||
val manager = UARTManager(context, scope, ToolboxLogger(context, "UART", device.address))
|
||||
val createdLogger = toolboxLoggerFactory.create("UART", device.address).also {
|
||||
logger = it
|
||||
}
|
||||
val manager = UARTManager(context, scope, createdLogger)
|
||||
this.manager = manager
|
||||
|
||||
manager.dataHolder.status.onEach {
|
||||
@@ -59,6 +65,10 @@ class UARTRepository @Inject internal constructor(
|
||||
manager?.clearItems()
|
||||
}
|
||||
|
||||
fun openLogger() {
|
||||
logger?.openLogger()
|
||||
}
|
||||
|
||||
suspend fun saveConfigurationName(name: String) {
|
||||
configurationDataSource.saveConfigurationName(name)
|
||||
}
|
||||
@@ -77,5 +87,6 @@ class UARTRepository @Inject internal constructor(
|
||||
fun release() {
|
||||
manager?.disconnect()?.enqueue()
|
||||
manager = null
|
||||
logger = null
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.hilt.navigation.compose.hiltViewModel
|
||||
import no.nordicsemi.android.service.*
|
||||
import no.nordicsemi.android.theme.view.BackIconAppBar
|
||||
import no.nordicsemi.android.theme.view.LoggerIconAppBar
|
||||
import no.nordicsemi.ui.scanner.ui.DeviceConnectingView
|
||||
import no.nordicsemi.ui.scanner.ui.NoDeviceView
|
||||
import no.nordicsemi.android.uart.R
|
||||
@@ -30,7 +31,9 @@ fun UARTScreen() {
|
||||
Column {
|
||||
val navigateUp = { viewModel.onEvent(NavigateUp) }
|
||||
|
||||
BackIconAppBar(stringResource(id = R.string.uart_title), navigateUp)
|
||||
LoggerIconAppBar(stringResource(id = R.string.uart_title), navigateUp) {
|
||||
viewModel.onEvent(OpenLogger)
|
||||
}
|
||||
|
||||
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
|
||||
when (state.uartManagerState) {
|
||||
|
||||
@@ -20,3 +20,4 @@ internal object ClearOutputItems : UARTViewEvent()
|
||||
internal object DisconnectEvent : UARTViewEvent()
|
||||
|
||||
internal object NavigateUp : UARTViewEvent()
|
||||
internal object OpenLogger : UARTViewEvent()
|
||||
|
||||
@@ -81,6 +81,7 @@ internal class UARTViewModel @Inject constructor(
|
||||
OnDeleteConfiguration -> deleteConfiguration()
|
||||
OnEditConfiguration -> onEditConfiguration()
|
||||
ClearOutputItems -> repository.clearItems()
|
||||
OpenLogger -> repository.openLogger()
|
||||
}.exhaustive
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user