Skip to content

Commit 5a2b1d2

Browse files
committed
ui: tie state collection to lifecycle
1 parent 4dc1bd4 commit 5a2b1d2

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

features/library/ui/src/main/java/org/mrlem/composesample/features/library/ui/detail/DetailScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@ import androidx.compose.material3.MaterialTheme
99
import androidx.compose.material3.Surface
1010
import androidx.compose.material3.Text
1111
import androidx.compose.runtime.Composable
12-
import androidx.compose.runtime.collectAsState
1312
import androidx.compose.runtime.getValue
1413
import androidx.compose.ui.Alignment
1514
import androidx.compose.ui.Modifier
1615
import androidx.compose.ui.draw.alpha
1716
import androidx.compose.ui.text.style.TextAlign
1817
import androidx.compose.ui.unit.dp
18+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
1919
import org.mrlem.android.core.feature.ui.UiModePreviews
2020
import org.mrlem.composesample.theme.Theme
2121

2222
private const val DESCRIPTION_ALPHA = 0.4f
2323

2424
@Composable
2525
internal fun DetailScreen(viewModel: DetailViewModel) {
26-
val state by viewModel.state.collectAsState()
26+
val state by viewModel.state.collectAsStateWithLifecycle()
2727

2828
Detail(
2929
state = state,

features/library/ui/src/main/java/org/mrlem/composesample/features/library/ui/list/ListScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import androidx.compose.material3.TextFieldDefaults
3333
import androidx.compose.material3.rememberSwipeToDismissBoxState
3434
import androidx.compose.runtime.Composable
3535
import androidx.compose.runtime.LaunchedEffect
36-
import androidx.compose.runtime.collectAsState
3736
import androidx.compose.runtime.derivedStateOf
3837
import androidx.compose.runtime.getValue
3938
import androidx.compose.runtime.mutableStateOf
@@ -46,6 +45,7 @@ import androidx.compose.ui.graphics.Color
4645
import androidx.compose.ui.res.stringResource
4746
import androidx.compose.ui.text.input.TextFieldValue
4847
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
48+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4949
import org.mrlem.android.core.feature.ui.UiModePreviews
5050
import org.mrlem.composesample.features.library.ui.R
5151
import org.mrlem.composesample.theme.Theme
@@ -57,7 +57,7 @@ internal fun ListScreen(
5757
viewModel: ListViewModel = hiltViewModel(),
5858
onItemSelect: (id: Long) -> Unit,
5959
) {
60-
val state by viewModel.state.collectAsState()
60+
val state by viewModel.state.collectAsStateWithLifecycle()
6161
val errorMessage = stringResource(R.string.library_error)
6262

6363
LaunchedEffect(Unit) {

features/overview/ui/src/main/java/org/mrlem/composesample/features/overview/ui/OverviewScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.compose.material3.MaterialTheme
1313
import androidx.compose.material3.Surface
1414
import androidx.compose.material3.Text
1515
import androidx.compose.runtime.Composable
16-
import androidx.compose.runtime.collectAsState
1716
import androidx.compose.runtime.getValue
1817
import androidx.compose.runtime.mutableStateOf
1918
import androidx.compose.runtime.remember
@@ -26,6 +25,7 @@ import androidx.compose.ui.platform.LocalInspectionMode
2625
import androidx.compose.ui.res.stringResource
2726
import androidx.compose.ui.unit.dp
2827
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
28+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2929
import coil3.compose.AsyncImage
3030
import org.mrlem.android.core.feature.ui.UiModePreviews
3131
import org.mrlem.composesample.theme.Theme
@@ -38,7 +38,7 @@ internal fun OverviewScreen(
3838
viewModel: OverviewViewModel = hiltViewModel(),
3939
onSuggestionClick: (itemId: Long) -> Unit = {},
4040
) {
41-
val state by viewModel.state.collectAsState()
41+
val state by viewModel.state.collectAsStateWithLifecycle()
4242

4343
Overview(
4444
state = state,

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ A project template with the following objectives in mind:
1919
- ui: simplified **MVI**
2020
* build: **kts** gradle build scripts + gradle **convention plugins** to simplify + **version catalog**
2121
* dep injection: **hilt** + **auto-dagger**
22-
* ui: **compose** + **material3** + navigation3
22+
* ui: **compose** + **material3** + **navigation3**
2323
* async: **coroutines** & **flow**
2424
* db: **room**
2525
* rest: **retrofit**

0 commit comments

Comments
 (0)