Skip to content

Commit 4c48f97

Browse files
authored
Merge pull request #527 from JetBrains/jetbrains-junie/issue-478-run-c90886aa-5a0c-4da5-ad9e-c0943865f307
[Junie]: refactor: replace collectAsState with collectAsStateWithLifecycle
2 parents 9b99a05 + e5e80f4 commit 4c48f97

File tree

8 files changed

+19
-20
lines changed

8 files changed

+19
-20
lines changed

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/AboutConference.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import androidx.compose.foundation.layout.widthIn
1515
import androidx.compose.foundation.rememberScrollState
1616
import androidx.compose.foundation.shape.RoundedCornerShape
1717
import androidx.compose.runtime.Composable
18-
import androidx.compose.runtime.collectAsState
1918
import androidx.compose.runtime.getValue
2019
import androidx.compose.ui.Alignment
2120
import androidx.compose.ui.Modifier
@@ -24,6 +23,7 @@ import androidx.compose.ui.graphics.Color
2423
import androidx.compose.ui.semantics.heading
2524
import androidx.compose.ui.semantics.semantics
2625
import androidx.compose.ui.unit.dp
26+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2727
import kotlinconfapp.shared.generated.resources.Res
2828
import kotlinconfapp.shared.generated.resources.about_conference_description
2929
import kotlinconfapp.shared.generated.resources.about_conference_general_terms_link
@@ -81,7 +81,7 @@ fun AboutConference(
8181
Column(
8282
verticalArrangement = Arrangement.spacedBy(48.dp),
8383
) {
84-
val events by viewModel.events.collectAsState()
84+
val events by viewModel.events.collectAsStateWithLifecycle()
8585
for (event in events) {
8686
EventCard(
8787
month = event.month,

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/AppPrivacyNoticePrompt.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ import androidx.compose.foundation.rememberScrollState
1717
import androidx.compose.foundation.verticalScroll
1818
import androidx.compose.runtime.Composable
1919
import androidx.compose.runtime.LaunchedEffect
20-
import androidx.compose.runtime.collectAsState
2120
import androidx.compose.runtime.getValue
2221
import androidx.compose.runtime.mutableStateOf
2322
import androidx.compose.runtime.saveable.rememberSaveable
2423
import androidx.compose.runtime.setValue
2524
import androidx.compose.ui.Alignment
2625
import androidx.compose.ui.Modifier
2726
import androidx.compose.ui.unit.dp
27+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2828
import kotlinconfapp.shared.generated.resources.kodee_privacy
2929
import kotlinconfapp.shared.generated.resources.privacy_notice_accept
3030
import kotlinconfapp.shared.generated.resources.privacy_notice_back
@@ -62,7 +62,7 @@ fun AppPrivacyNoticePrompt(
6262
viewModel: PrivacyNoticeViewModel = koinViewModel(),
6363
) {
6464
var detailsVisible by rememberSaveable { mutableStateOf(false) }
65-
val noticeState by viewModel.state.collectAsState()
65+
val noticeState by viewModel.state.collectAsStateWithLifecycle()
6666

6767
LaunchedEffect(noticeState) {
6868
if (noticeState is PrivacyNoticeState.Done) {

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/LicenseScreens.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState
1717
import androidx.compose.foundation.shape.RoundedCornerShape
1818
import androidx.compose.runtime.Composable
1919
import androidx.compose.runtime.LaunchedEffect
20-
import androidx.compose.runtime.collectAsState
2120
import androidx.compose.runtime.getValue
2221
import androidx.compose.runtime.mutableStateOf
2322
import androidx.compose.runtime.saveable.rememberSaveable
@@ -34,6 +33,7 @@ import androidx.compose.ui.text.AnnotatedString
3433
import androidx.compose.ui.text.SpanStyle
3534
import androidx.compose.ui.text.buildAnnotatedString
3635
import androidx.compose.ui.unit.dp
36+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
3737
import com.mikepenz.aboutlibraries.entity.Library
3838
import kotlinconfapp.shared.generated.resources.Res
3939
import kotlinconfapp.shared.generated.resources.licenses_number_of_results
@@ -82,7 +82,7 @@ fun LicensesScreen(
8282
var searchState by rememberSaveable { mutableStateOf(MainHeaderContainerState.Title) }
8383
var searchText by rememberSaveable { mutableStateOf("") }
8484

85-
val libraries = viewModel.licensesState.collectAsState().value
85+
val libraries = viewModel.licensesState.collectAsStateWithLifecycle().value
8686
val listState = rememberLazyListState()
8787

8888
LaunchedEffect(searchState, searchText) {

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/NewsDetailScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import androidx.compose.foundation.layout.padding
1010
import androidx.compose.foundation.rememberScrollState
1111
import androidx.compose.foundation.verticalScroll
1212
import androidx.compose.runtime.Composable
13-
import androidx.compose.runtime.collectAsState
1413
import androidx.compose.ui.Modifier
1514
import androidx.compose.ui.unit.dp
15+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
1616
import kotlinconfapp.shared.generated.resources.Res
1717
import kotlinconfapp.shared.generated.resources.arrow_left_24
1818
import kotlinconfapp.shared.generated.resources.navigate_back
@@ -35,7 +35,7 @@ fun NewsDetailScreen(
3535
onBack: () -> Unit,
3636
viewModel: NewsDetailViewModel = koinViewModel { parametersOf(newsId) }
3737
) {
38-
val state = viewModel.newsItem.collectAsState().value
38+
val state = viewModel.newsItem.collectAsStateWithLifecycle().value
3939

4040
Column(
4141
Modifier

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/NewsListScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import androidx.compose.foundation.lazy.LazyColumn
88
import androidx.compose.foundation.lazy.items
99
import androidx.compose.foundation.lazy.rememberLazyListState
1010
import androidx.compose.runtime.Composable
11-
import androidx.compose.runtime.collectAsState
1211
import androidx.compose.runtime.getValue
1312
import androidx.compose.ui.Alignment
1413
import androidx.compose.ui.Modifier
1514
import androidx.compose.ui.unit.dp
15+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
1616
import kotlinconfapp.shared.generated.resources.Res
1717
import kotlinconfapp.shared.generated.resources.news_feed_empty
1818
import kotlinconfapp.shared.generated.resources.news_feed_title
@@ -35,7 +35,7 @@ fun NewsListScreen(
3535
title = stringResource(Res.string.news_feed_title),
3636
onBack = onBack,
3737
) {
38-
val news by viewModel.news.collectAsState()
38+
val news by viewModel.news.collectAsStateWithLifecycle()
3939

4040
if (news.isNotEmpty()) {
4141
val listState = rememberLazyListState()

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/ScheduleScreen.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import androidx.compose.foundation.pager.HorizontalPager
2121
import androidx.compose.foundation.pager.rememberPagerState
2222
import androidx.compose.runtime.Composable
2323
import androidx.compose.runtime.LaunchedEffect
24-
import androidx.compose.runtime.collectAsState
2524
import androidx.compose.runtime.derivedStateOf
2625
import androidx.compose.runtime.getValue
2726
import androidx.compose.runtime.mutableStateOf
@@ -230,7 +229,7 @@ fun ScheduleScreen(
230229
)
231230
}
232231

233-
val tags by viewModel.filterItems.collectAsState()
232+
val tags by viewModel.filterItems.collectAsStateWithLifecycle()
234233
ScheduleList(
235234
scheduleItems = items,
236235
onSession = onSession,
@@ -373,7 +372,7 @@ private fun Header(
373372
onHeaderStateChange(MainHeaderContainerState.Title)
374373
onSearchQueryChange("")
375374
}
376-
val filterItems by viewModel.filterItems.collectAsState()
375+
val filterItems by viewModel.filterItems.collectAsStateWithLifecycle()
377376

378377
MainHeaderSearchBar(
379378
searchValue = searchQuery,

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/SessionScreen.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import androidx.compose.foundation.selection.selectableGroup
2828
import androidx.compose.foundation.shape.RoundedCornerShape
2929
import androidx.compose.runtime.Composable
3030
import androidx.compose.runtime.LaunchedEffect
31-
import androidx.compose.runtime.collectAsState
3231
import androidx.compose.runtime.getValue
3332
import androidx.compose.runtime.mutableStateOf
3433
import androidx.compose.runtime.remember
@@ -45,6 +44,7 @@ import androidx.compose.ui.platform.LocalHapticFeedback
4544
import androidx.compose.ui.semantics.semantics
4645
import androidx.compose.ui.semantics.stateDescription
4746
import androidx.compose.ui.unit.dp
47+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4848
import kotlinconfapp.shared.generated.resources.Res
4949
import kotlinconfapp.shared.generated.resources.arrow_left_24
5050
import kotlinconfapp.shared.generated.resources.arrow_up_right_24
@@ -102,10 +102,10 @@ fun SessionScreen(
102102
onWatchVideo: (String) -> Unit,
103103
viewModel: SessionViewModel = koinViewModel { parametersOf(sessionId) }
104104
) {
105-
val session = viewModel.session.collectAsState().value
106-
val speakers = viewModel.speakers.collectAsState().value
107-
val userSignedIn by viewModel.userSignedIn.collectAsState()
108-
val shouldNavigateToPrivacyNotice by viewModel.navigateToPrivacyNotice.collectAsState()
105+
val session = viewModel.session.collectAsStateWithLifecycle().value
106+
val speakers = viewModel.speakers.collectAsStateWithLifecycle().value
107+
val userSignedIn by viewModel.userSignedIn.collectAsStateWithLifecycle()
108+
val shouldNavigateToPrivacyNotice by viewModel.navigateToPrivacyNotice.collectAsStateWithLifecycle()
109109

110110
LaunchedEffect(shouldNavigateToPrivacyNotice) {
111111
if (shouldNavigateToPrivacyNotice) {

shared/src/commonMain/kotlin/org/jetbrains/kotlinconf/screens/SpeakersScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import androidx.compose.foundation.lazy.grid.items
1313
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
1414
import androidx.compose.runtime.Composable
1515
import androidx.compose.runtime.LaunchedEffect
16-
import androidx.compose.runtime.collectAsState
1716
import androidx.compose.runtime.getValue
1817
import androidx.compose.runtime.mutableStateOf
1918
import androidx.compose.runtime.saveable.rememberSaveable
@@ -26,6 +25,7 @@ import androidx.compose.ui.semantics.LiveRegionMode
2625
import androidx.compose.ui.semantics.liveRegion
2726
import androidx.compose.ui.semantics.semantics
2827
import androidx.compose.ui.unit.dp
28+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2929
import kotlinconfapp.shared.generated.resources.Res
3030
import kotlinconfapp.shared.generated.resources.speakers_error_no_data
3131
import kotlinconfapp.shared.generated.resources.speakers_number_of_results
@@ -59,7 +59,7 @@ fun SpeakersScreen(
5959
var searchState by rememberSaveable { mutableStateOf(MainHeaderContainerState.Title) }
6060
var searchText by rememberSaveable { mutableStateOf("") }
6161

62-
val uiState = viewModel.speakers.collectAsState().value
62+
val uiState = viewModel.speakers.collectAsStateWithLifecycle().value
6363

6464
val gridState = rememberLazyGridState()
6565

0 commit comments

Comments
 (0)