mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Do not create a new immutable list from a List every time we want to produce a new state
This commit is contained in:
+6
-2
@@ -16,6 +16,7 @@ import io.element.android.features.invite.api.SeenInvitesStore
|
|||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.matrix.api.MatrixClient
|
import io.element.android.libraries.matrix.api.MatrixClient
|
||||||
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
|
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
|
||||||
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.collections.immutable.persistentSetOf
|
import kotlinx.collections.immutable.persistentSetOf
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.collections.immutable.toImmutableSet
|
import kotlinx.collections.immutable.toImmutableSet
|
||||||
@@ -29,7 +30,10 @@ class HomeSpacesPresenter(
|
|||||||
@Composable
|
@Composable
|
||||||
override fun present(): HomeSpacesState {
|
override fun present(): HomeSpacesState {
|
||||||
val hideInvitesAvatar by client.rememberHideInvitesAvatar()
|
val hideInvitesAvatar by client.rememberHideInvitesAvatar()
|
||||||
val spaceRooms by client.spaceService.spaceRoomsFlow.collectAsState(emptyList())
|
val spaceRooms by remember {
|
||||||
|
client.spaceService.spaceRoomsFlow.map { it.toImmutableList() }
|
||||||
|
}.collectAsState(persistentListOf())
|
||||||
|
|
||||||
val seenSpaceInvites by remember {
|
val seenSpaceInvites by remember {
|
||||||
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
|
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
|
||||||
}.collectAsState(persistentSetOf())
|
}.collectAsState(persistentSetOf())
|
||||||
@@ -40,7 +44,7 @@ class HomeSpacesPresenter(
|
|||||||
|
|
||||||
return HomeSpacesState(
|
return HomeSpacesState(
|
||||||
space = CurrentSpace.Root,
|
space = CurrentSpace.Root,
|
||||||
spaceRooms = spaceRooms.toImmutableList(),
|
spaceRooms = spaceRooms,
|
||||||
seenSpaceInvites = seenSpaceInvites,
|
seenSpaceInvites = seenSpaceInvites,
|
||||||
hideInvitesAvatar = hideInvitesAvatar,
|
hideInvitesAvatar = hideInvitesAvatar,
|
||||||
eventSink = ::handleEvents,
|
eventSink = ::handleEvents,
|
||||||
|
|||||||
Reference in New Issue
Block a user