Skip to content

Commit 41f8563

Browse files
committed
fix(flipcash/activityfeed): ensure Pager starts early enough for account ramp up and switching
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 9815118 commit 41f8563

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

apps/flipcash/shared/activityfeed/src/main/kotlin/com/flipcash/app/activityfeed/ActivityFeedCoordinator.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@ import com.flipcash.services.controllers.ActivityFeedController
1313
import com.flipcash.services.models.ActivityFeedType
1414
import com.flipcash.services.models.NotificationState
1515
import com.flipcash.services.models.QueryOptions
16-
import com.flipcash.services.user.AuthState
1716
import com.flipcash.services.user.UserManager
1817
import com.getcode.utils.TraceType
1918
import com.getcode.utils.trace
2019
import kotlinx.coroutines.ExperimentalCoroutinesApi
2120
import kotlinx.coroutines.flow.Flow
2221
import kotlinx.coroutines.flow.filter
23-
import kotlinx.coroutines.flow.filterIsInstance
2422
import kotlinx.coroutines.flow.flatMapLatest
2523
import kotlinx.coroutines.flow.map
2624
import kotlinx.coroutines.flow.mapNotNull
@@ -37,14 +35,16 @@ class ActivityFeedCoordinator @Inject constructor(
3735
private val pagingConfig = PagingConfig(pageSize = 20)
3836

3937
@OptIn(ExperimentalPagingApi::class)
40-
private val _messages: Flow<PagingData<ActivityFeedMessage>> by lazy {
41-
Pager(
42-
config = pagingConfig,
43-
remoteMediator = FeedRemoteMediator(activityFeedController, dataSource)
44-
) {
45-
dataSource.observe()
46-
}.flow.map { page -> page.map { entity -> mapper.map(entity) } }
47-
}
38+
private val _messages: Flow<PagingData<ActivityFeedMessage>> = userManager.state
39+
.filter { it.authState.canAccessAuthenticatedApis }
40+
.flatMapLatest {
41+
Pager(
42+
config = pagingConfig,
43+
remoteMediator = FeedRemoteMediator(activityFeedController, dataSource)
44+
) {
45+
dataSource.observe()
46+
}.flow.map { page -> page.map { entity -> mapper.map(entity) } }
47+
}
4848

4949
@OptIn(ExperimentalCoroutinesApi::class)
5050
val messages: Flow<PagingData<ActivityFeedMessage>> = userManager.state

0 commit comments

Comments
 (0)