Skip to content

Commit 67c9daa

Browse files
committed
Add Konsist test to check that toPersistentList() is not used.
Same for `toPersistentSet()` and `toPersistentMap()`. Fix existing issues.
1 parent 2fa1b9d commit 67c9daa

File tree

85 files changed

+305
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+305
-254
lines changed

features/changeroommemberroles/impl/src/main/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenter.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,8 @@ import io.element.android.libraries.matrix.ui.model.roleOf
3737
import io.element.android.libraries.matrix.ui.room.PowerLevelRoomMemberComparator
3838
import io.element.android.services.analytics.api.AnalyticsService
3939
import kotlinx.collections.immutable.ImmutableList
40-
import kotlinx.collections.immutable.PersistentList
4140
import kotlinx.collections.immutable.persistentListOf
4241
import kotlinx.collections.immutable.toImmutableList
43-
import kotlinx.collections.immutable.toPersistentList
4442
import kotlinx.coroutines.CoroutineScope
4543
import kotlinx.coroutines.flow.launchIn
4644
import kotlinx.coroutines.flow.map
@@ -73,11 +71,11 @@ class ChangeRolesPresenter(
7371
}
7472
val exitState: MutableState<AsyncAction<Unit>> = remember { mutableStateOf(AsyncAction.Uninitialized) }
7573
val saveState: MutableState<AsyncAction<Unit>> = remember { mutableStateOf(AsyncAction.Uninitialized) }
76-
val usersWithRole = produceState(initialValue = persistentListOf()) {
74+
val usersWithRole = produceState<ImmutableList<MatrixUser>>(initialValue = persistentListOf()) {
7775
room.usersWithRole(role).map { members -> members.map { it.toMatrixUser() } }
7876
.onEach { users ->
79-
val previous: PersistentList<MatrixUser> = value
80-
value = users.toPersistentList()
77+
val previous = value
78+
value = users.toImmutableList()
8179
// Users who were selected but didn't have the role, so their role change was pending
8280
val toAdd = selectedUsers.value.filter { user -> users.none { it.userId == user.userId } && previous.none { it.userId == user.userId } }
8381
// Users who no longer have the role

features/changeroommemberroles/impl/src/test/kotlin/io/element/android/features/changeroommemberroles/impl/ChangeRolesPresenterTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ import io.element.android.libraries.previewutils.room.aRoomMemberList
3232
import io.element.android.services.analytics.test.FakeAnalyticsService
3333
import io.element.android.tests.testutils.testCoroutineDispatchers
3434
import kotlinx.collections.immutable.persistentMapOf
35-
import kotlinx.collections.immutable.toPersistentList
36-
import kotlinx.collections.immutable.toPersistentMap
35+
import kotlinx.collections.immutable.toImmutableList
36+
import kotlinx.collections.immutable.toImmutableMap
3737
import kotlinx.coroutines.test.TestScope
3838
import kotlinx.coroutines.test.runTest
3939
import org.junit.Test
@@ -103,7 +103,7 @@ class ChangeRolesPresenterTest {
103103
// Owner - creator
104104
aRoomMember(userId = creatorUserId, role = RoomMember.Role.Owner(isCreator = true))
105105
)
106-
givenRoomMembersState(RoomMembersState.Ready(roomMemberList.toPersistentList()))
106+
givenRoomMembersState(RoomMembersState.Ready(roomMemberList.toImmutableList()))
107107
}
108108
val presenter = createChangeRolesPresenter(room = room)
109109
moleculeFlow(RecompositionMode.Immediate) {
@@ -124,7 +124,7 @@ class ChangeRolesPresenterTest {
124124
val creatorUserId = UserId("@creator:matrix.org")
125125
val memberList = aRoomMemberList()
126126
.plus(aRoomMember(displayName = "CREATOR", role = RoomMember.Role.Owner(isCreator = true), userId = creatorUserId))
127-
.toPersistentList()
127+
.toImmutableList()
128128
givenRoomInfo(aRoomInfo(roomCreators = listOf(creatorUserId)))
129129
givenRoomMembersState(RoomMembersState.Ready(memberList))
130130
}
@@ -203,7 +203,7 @@ class ChangeRolesPresenterTest {
203203
assertThat(initialResults?.moderators).hasSize(1)
204204
assertThat(initialResults?.admins).hasSize(1)
205205

206-
room.givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList().take(1).toPersistentList()))
206+
room.givenRoomMembersState(RoomMembersState.Ready(aRoomMemberList().take(1).toImmutableList()))
207207
skipItems(1)
208208

209209
val searchResults = (awaitItem().searchResults as? SearchBarResultState.Results)?.results
@@ -552,7 +552,7 @@ class ChangeRolesPresenterTest {
552552
private fun roomPowerLevelsWithRoles(vararg pairs: Pair<UserId, RoomMember.Role>): RoomPowerLevels {
553553
return RoomPowerLevels(
554554
values = defaultRoomPowerLevelValues(),
555-
users = pairs.associate { (userId, role) -> userId to role.powerLevel }.toPersistentMap()
555+
users = pairs.associate { (userId, role) -> userId to role.powerLevel }.toImmutableMap()
556556
)
557557
}
558558
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/CurrentUserWithNeighborsBuilder.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import io.element.android.libraries.matrix.api.core.UserId
1111
import io.element.android.libraries.matrix.api.user.MatrixUser
1212
import io.element.android.libraries.sessionstorage.api.SessionData
1313
import kotlinx.collections.immutable.ImmutableList
14-
import kotlinx.collections.immutable.toPersistentList
14+
import kotlinx.collections.immutable.toImmutableList
1515

1616
class CurrentUserWithNeighborsBuilder {
1717
/**
@@ -64,6 +64,6 @@ class CurrentUserWithNeighborsBuilder {
6464
}
6565
}
6666
}
67-
.toPersistentList()
67+
.toImmutableList()
6868
}
6969
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/HomeStateProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
2121
import io.element.android.libraries.matrix.api.core.UserId
2222
import io.element.android.libraries.matrix.api.user.MatrixUser
2323
import io.element.android.libraries.ui.strings.CommonStrings
24-
import kotlinx.collections.immutable.toPersistentList
24+
import kotlinx.collections.immutable.toImmutableList
2525

2626
open class HomeStateProvider : PreviewParameterProvider<HomeState> {
2727
override val values: Sequence<HomeState>
@@ -63,7 +63,7 @@ internal fun aHomeState(
6363
directLogoutState: DirectLogoutState = aDirectLogoutState(),
6464
eventSink: (HomeEvents) -> Unit = {}
6565
) = HomeState(
66-
currentUserAndNeighbors = currentUserAndNeighbors.toPersistentList(),
66+
currentUserAndNeighbors = currentUserAndNeighbors.toImmutableList(),
6767
showAvatarIndicator = showAvatarIndicator,
6868
hasNetworkConnection = hasNetworkConnection,
6969
snackbarMessage = snackbarMessage,

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/components/RoomListTopBar.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ import io.element.android.libraries.testtags.testTag
7272
import io.element.android.libraries.ui.strings.CommonStrings
7373
import kotlinx.collections.immutable.ImmutableList
7474
import kotlinx.collections.immutable.persistentListOf
75-
import kotlinx.collections.immutable.toPersistentList
75+
import kotlinx.collections.immutable.toImmutableList
7676

7777
@OptIn(ExperimentalMaterial3Api::class)
7878
@Composable
@@ -374,7 +374,7 @@ internal fun DefaultRoomListTopBarWithIndicatorPreview() = ElementPreview {
374374
internal fun DefaultRoomListTopBarMultiAccountPreview() = ElementPreview {
375375
DefaultRoomListTopBar(
376376
title = stringResource(R.string.screen_roomlist_main_space_title),
377-
currentUserAndNeighbors = aMatrixUserList().take(3).toPersistentList(),
377+
currentUserAndNeighbors = aMatrixUserList().take(3).toImmutableList(),
378378
showAvatarIndicator = false,
379379
areSearchResultsDisplayed = false,
380380
scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberTopAppBarState()),

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/filters/RoomListFiltersPresenter.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import dev.zacsweers.metro.Inject
1414
import io.element.android.features.home.impl.filters.selection.FilterSelectionStrategy
1515
import io.element.android.libraries.architecture.Presenter
1616
import io.element.android.libraries.matrix.api.roomlist.RoomListService
17-
import kotlinx.collections.immutable.toPersistentList
17+
import kotlinx.collections.immutable.toImmutableList
1818
import kotlinx.coroutines.flow.map
1919
import io.element.android.libraries.matrix.api.roomlist.RoomListFilter as MatrixRoomListFilter
2020

@@ -23,7 +23,7 @@ class RoomListFiltersPresenter(
2323
private val roomListService: RoomListService,
2424
private val filterSelectionStrategy: FilterSelectionStrategy,
2525
) : Presenter<RoomListFiltersState> {
26-
private val initialFilters = filterSelectionStrategy.filterSelectionStates.value.toPersistentList()
26+
private val initialFilters = filterSelectionStrategy.filterSelectionStates.value.toImmutableList()
2727

2828
@Composable
2929
override fun present(): RoomListFiltersState {
@@ -41,7 +41,7 @@ class RoomListFiltersPresenter(
4141
val filters by produceState(initialValue = initialFilters) {
4242
filterSelectionStrategy.filterSelectionStates
4343
.map { filters ->
44-
value = filters.toPersistentList()
44+
value = filters.toImmutableList()
4545
filters.mapNotNull { filterState ->
4646
if (!filterState.isSelected) {
4747
return@mapNotNull null

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/filters/RoomListFiltersState.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ package io.element.android.features.home.impl.filters
99

1010
import io.element.android.features.home.impl.filters.selection.FilterSelectionState
1111
import kotlinx.collections.immutable.ImmutableList
12-
import kotlinx.collections.immutable.toPersistentList
12+
import kotlinx.collections.immutable.toImmutableList
1313

1414
data class RoomListFiltersState(
1515
val filterSelectionStates: ImmutableList<FilterSelectionState>,
@@ -21,6 +21,6 @@ data class RoomListFiltersState(
2121
return filterSelectionStates
2222
.filter { it.isSelected }
2323
.map { it.filter }
24-
.toPersistentList()
24+
.toImmutableList()
2525
}
2626
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListContentStateProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import io.element.android.libraries.push.api.battery.BatteryOptimizationState
1616
import io.element.android.libraries.push.api.battery.aBatteryOptimizationState
1717
import kotlinx.collections.immutable.ImmutableList
1818
import kotlinx.collections.immutable.persistentListOf
19-
import kotlinx.collections.immutable.toPersistentSet
19+
import kotlinx.collections.immutable.toImmutableSet
2020

2121
open class RoomListContentStateProvider : PreviewParameterProvider<RoomListContentState> {
2222
override val values: Sequence<RoomListContentState>
@@ -45,7 +45,7 @@ internal fun aRoomsContentState(
4545
fullScreenIntentPermissionsState = fullScreenIntentPermissionsState,
4646
batteryOptimizationState = batteryOptimizationState,
4747
summaries = summaries,
48-
seenRoomInvites = seenRoomInvites.toPersistentSet(),
48+
seenRoomInvites = seenRoomInvites.toImmutableSet(),
4949
)
5050

5151
internal fun aSkeletonContentState() = RoomListContentState.Skeleton(16)

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListPresenter.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ import io.element.android.libraries.push.api.battery.BatteryOptimizationState
5151
import io.element.android.libraries.push.api.notifications.NotificationCleaner
5252
import io.element.android.services.analytics.api.AnalyticsService
5353
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
54-
import kotlinx.collections.immutable.toPersistentList
55-
import kotlinx.collections.immutable.toPersistentSet
54+
import kotlinx.collections.immutable.toImmutableList
55+
import kotlinx.collections.immutable.toImmutableSet
5656
import kotlinx.coroutines.CoroutineScope
5757
import kotlinx.coroutines.ExperimentalCoroutinesApi
5858
import kotlinx.coroutines.Job
@@ -240,8 +240,8 @@ class RoomListPresenter(
240240
showNewNotificationSoundBanner = showNewNotificationSoundBanner,
241241
fullScreenIntentPermissionsState = fullScreenIntentPermissionsPresenter.present(),
242242
batteryOptimizationState = batteryOptimizationPresenter.present(),
243-
summaries = roomSummaries.dataOrNull().orEmpty().toPersistentList(),
244-
seenRoomInvites = seenRoomInvites.toPersistentSet(),
243+
summaries = roomSummaries.dataOrNull().orEmpty().toImmutableList(),
244+
seenRoomInvites = seenRoomInvites.toImmutableSet(),
245245
)
246246
}
247247
}

features/home/impl/src/main/kotlin/io/element/android/features/home/impl/roomlist/RoomListStateProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
2525
import io.element.android.libraries.push.api.battery.aBatteryOptimizationState
2626
import kotlinx.collections.immutable.ImmutableList
2727
import kotlinx.collections.immutable.persistentListOf
28-
import kotlinx.collections.immutable.toPersistentList
28+
import kotlinx.collections.immutable.toImmutableList
2929

3030
open class RoomListStateProvider : PreviewParameterProvider<RoomListState> {
3131
override val values: Sequence<RoomListState>
@@ -122,5 +122,5 @@ internal fun generateRoomListRoomSummaryList(
122122
avatarData = AvatarData("!id$index", "${(65 + index % 26).toChar()}", size = AvatarSize.RoomListItem),
123123
id = "!roomId$index:domain",
124124
)
125-
}.toPersistentList()
125+
}.toImmutableList()
126126
}

0 commit comments

Comments
 (0)