Change collectAsState to collectAsStateWithLifecycle

This commit is contained in:
Sylwester Zieliński
2023-02-20 18:01:34 +01:00
parent 757658d573
commit 2ac493ccda
12 changed files with 26 additions and 25 deletions

View File

@@ -70,6 +70,8 @@ dependencies {
implementation(libs.nordic.permission) implementation(libs.nordic.permission)
implementation(libs.nordic.analytics) implementation(libs.nordic.analytics)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.nordic.ble.common) implementation(libs.nordic.ble.common)
implementation(libs.nordic.ble.ktx) implementation(libs.nordic.ble.ktx)

View File

@@ -39,7 +39,6 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
@@ -47,6 +46,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.analytics.Link import no.nordicsemi.android.analytics.Link
import no.nordicsemi.android.analytics.Profile import no.nordicsemi.android.analytics.Profile
import no.nordicsemi.android.analytics.ProfileOpenEvent import no.nordicsemi.android.analytics.ProfileOpenEvent
@@ -72,7 +72,7 @@ private const val LOGGER_PACKAGE_NAME = "no.nordicsemi.android.log"
@Composable @Composable
fun HomeScreen() { fun HomeScreen() {
val viewModel: HomeViewModel = hiltViewModel() val viewModel: HomeViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
Scaffold( Scaffold(
topBar = { topBar = {

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.bps.R import no.nordicsemi.android.bps.R
import no.nordicsemi.android.bps.viewmodel.BPSViewModel import no.nordicsemi.android.bps.viewmodel.BPSViewModel
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun BPSScreen() { fun BPSScreen() {
val viewModel: BPSViewModel = hiltViewModel() val viewModel: BPSViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(DisconnectEvent) } val navigateUp = { viewModel.onEvent(DisconnectEvent) }

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.cgms.R import no.nordicsemi.android.cgms.R
import no.nordicsemi.android.cgms.viewmodel.CGMViewModel import no.nordicsemi.android.cgms.viewmodel.CGMViewModel
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun CGMScreen() { fun CGMScreen() {
val viewModel: CGMViewModel = hiltViewModel() val viewModel: CGMViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUp) } val navigateUp = { viewModel.onEvent(NavigateUp) }

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun CSCScreen() { fun CSCScreen() {
val viewModel: CSCViewModel = hiltViewModel() val viewModel: CSCViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUp) } val navigateUp = { viewModel.onEvent(NavigateUp) }

View File

@@ -33,9 +33,9 @@ package no.nordicsemi.android.gls.details.view
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.gls.R import no.nordicsemi.android.gls.R
import no.nordicsemi.android.gls.details.viewmodel.GLSDetailsViewModel import no.nordicsemi.android.gls.details.viewmodel.GLSDetailsViewModel
import no.nordicsemi.android.ui.view.LoggerBackIconAppBar import no.nordicsemi.android.ui.view.LoggerBackIconAppBar
@@ -43,7 +43,7 @@ import no.nordicsemi.android.ui.view.LoggerBackIconAppBar
@Composable @Composable
internal fun GLSDetailsScreen() { internal fun GLSDetailsScreen() {
val viewModel: GLSDetailsViewModel = hiltViewModel() val viewModel: GLSDetailsViewModel = hiltViewModel()
val record = viewModel.record.collectAsState().value val record = viewModel.record.collectAsStateWithLifecycle().value
Column { Column {
LoggerBackIconAppBar(stringResource(id = R.string.gls_title)) { LoggerBackIconAppBar(stringResource(id = R.string.gls_title)) {

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun GLSScreen() { fun GLSScreen() {
val viewModel: GLSViewModel = hiltViewModel() val viewModel: GLSViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(DisconnectEvent) } val navigateUp = { viewModel.onEvent(DisconnectEvent) }

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun HRSScreen() { fun HRSScreen() {
val viewModel: HRSViewModel = hiltViewModel() val viewModel: HRSViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUpEvent) } val navigateUp = { viewModel.onEvent(NavigateUpEvent) }

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun HTSScreen() { fun HTSScreen() {
val viewModel: HTSViewModel = hiltViewModel() val viewModel: HTSViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUp) } val navigateUp = { viewModel.onEvent(NavigateUp) }

View File

@@ -38,12 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -66,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun PRXScreen() { fun PRXScreen() {
val viewModel: PRXViewModel = hiltViewModel() val viewModel: PRXViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUpEvent) } val navigateUp = { viewModel.onEvent(NavigateUpEvent) }

View File

@@ -38,11 +38,11 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView import no.nordicsemi.android.common.ui.scanner.view.DeviceConnectingView
import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView import no.nordicsemi.android.common.ui.scanner.view.DeviceDisconnectedView
import no.nordicsemi.android.common.ui.scanner.view.Reason import no.nordicsemi.android.common.ui.scanner.view.Reason
@@ -65,7 +65,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun RSCSScreen() { fun RSCSScreen() {
val viewModel: RSCSViewModel = hiltViewModel() val viewModel: RSCSViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUpEvent) } val navigateUp = { viewModel.onEvent(NavigateUpEvent) }

View File

@@ -40,13 +40,13 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.google.accompanist.pager.ExperimentalPagerApi import com.google.accompanist.pager.ExperimentalPagerApi
import no.nordicsemi.android.common.theme.view.PagerView import no.nordicsemi.android.common.theme.view.PagerView
import no.nordicsemi.android.common.theme.view.PagerViewEntity import no.nordicsemi.android.common.theme.view.PagerViewEntity
@@ -73,7 +73,7 @@ import no.nordicsemi.android.ui.view.NavigateUpButton
@Composable @Composable
fun UARTScreen() { fun UARTScreen() {
val viewModel: UARTViewModel = hiltViewModel() val viewModel: UARTViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
val navigateUp = { viewModel.onEvent(NavigateUp) } val navigateUp = { viewModel.onEvent(NavigateUp) }
@@ -145,7 +145,7 @@ private fun SuccessScreen() {
@Composable @Composable
private fun KeyboardView() { private fun KeyboardView() {
val viewModel: UARTViewModel = hiltViewModel() val viewModel: UARTViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
(state.uartManagerState as? WorkingState)?.let { (state.uartManagerState as? WorkingState)?.let {
(state.uartManagerState.result as? SuccessResult)?.let { (state.uartManagerState.result as? SuccessResult)?.let {
UARTContentView(it.data) { viewModel.onEvent(it) } UARTContentView(it.data) { viewModel.onEvent(it) }
@@ -156,7 +156,7 @@ private fun KeyboardView() {
@Composable @Composable
private fun MacroView() { private fun MacroView() {
val viewModel: UARTViewModel = hiltViewModel() val viewModel: UARTViewModel = hiltViewModel()
val state = viewModel.state.collectAsState().value val state = viewModel.state.collectAsStateWithLifecycle().value
(state.uartManagerState as? WorkingState)?.let { (state.uartManagerState as? WorkingState)?.let {
(state.uartManagerState.result as? SuccessResult)?.let { (state.uartManagerState.result as? SuccessResult)?.let {
MacroSection(state) { viewModel.onEvent(it) } MacroSection(state) { viewModel.onEvent(it) }