Skip to content

Commit 4fc23dc

Browse files
committed
Move roomMemberIdentityStateChanges from ComposerState to MessagesState.
1 parent 6de04da commit 4fc23dc

File tree

7 files changed

+13
-13
lines changed

7 files changed

+13
-13
lines changed

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import io.element.android.features.messages.impl.actionlist.model.TimelineItemAc
3333
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState
3434
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvents
3535
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
36+
import io.element.android.features.messages.impl.messagecomposer.observeRoomMemberIdentityStateChange
3637
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
3738
import io.element.android.features.messages.impl.timeline.TimelineController
3839
import io.element.android.features.messages.impl.timeline.TimelineEvents
@@ -78,6 +79,7 @@ import io.element.android.libraries.matrix.ui.model.getAvatarData
7879
import io.element.android.libraries.textcomposer.model.MessageComposerMode
7980
import io.element.android.libraries.ui.strings.CommonStrings
8081
import io.element.android.services.analytics.api.AnalyticsService
82+
import kotlinx.collections.immutable.persistentListOf
8183
import kotlinx.collections.immutable.toPersistentList
8284
import kotlinx.coroutines.CoroutineScope
8385
import kotlinx.coroutines.launch
@@ -154,7 +156,9 @@ class MessagesPresenter @AssistedInject constructor(
154156
var hasDismissedInviteDialog by rememberSaveable {
155157
mutableStateOf(false)
156158
}
157-
159+
val roomMemberIdentityStateChanges by produceState(persistentListOf()) {
160+
observeRoomMemberIdentityStateChange(room)
161+
}
158162
LaunchedEffect(Unit) {
159163
// Remove the unread flag on entering but don't send read receipts
160164
// as those will be handled by the timeline.
@@ -211,6 +215,7 @@ class MessagesPresenter @AssistedInject constructor(
211215
roomAvatar = roomAvatar,
212216
heroes = heroes,
213217
composerState = composerState,
218+
roomMemberIdentityStateChanges = roomMemberIdentityStateChanges,
214219
userEventPermissions = userEventPermissions,
215220
voiceMessageComposerState = voiceMessageComposerState,
216221
timelineState = timelineState,

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ package io.element.android.features.messages.impl
1010
import androidx.compose.runtime.Immutable
1111
import io.element.android.features.messages.impl.actionlist.ActionListState
1212
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState
13+
import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange
1314
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
1415
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
1516
import io.element.android.features.messages.impl.timeline.TimelineState
@@ -33,6 +34,7 @@ data class MessagesState(
3334
val heroes: ImmutableList<AvatarData>,
3435
val userEventPermissions: UserEventPermissions,
3536
val composerState: MessageComposerState,
37+
val roomMemberIdentityStateChanges: ImmutableList<RoomMemberIdentityStateChange>,
3638
val voiceMessageComposerState: VoiceMessageComposerState,
3739
val timelineState: TimelineState,
3840
val timelineProtectionState: TimelineProtectionState,

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
1111
import io.element.android.features.messages.impl.actionlist.ActionListState
1212
import io.element.android.features.messages.impl.actionlist.anActionListState
1313
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState
14+
import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange
1415
import io.element.android.features.messages.impl.crypto.identity.anIdentityChangeState
1516
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
1617
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
@@ -41,6 +42,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
4142
import io.element.android.libraries.matrix.api.core.RoomId
4243
import io.element.android.libraries.textcomposer.model.MessageComposerMode
4344
import io.element.android.libraries.textcomposer.model.aTextEditorStateRich
45+
import kotlinx.collections.immutable.ImmutableList
4446
import kotlinx.collections.immutable.persistentListOf
4547
import kotlinx.collections.immutable.persistentSetOf
4648

@@ -92,6 +94,7 @@ fun aMessagesState(
9294
isFullScreen = false,
9395
mode = MessageComposerMode.Normal,
9496
),
97+
roomMemberIdentityStateChanges: ImmutableList<RoomMemberIdentityStateChange> = persistentListOf(),
9598
voiceMessageComposerState: VoiceMessageComposerState = aVoiceMessageComposerState(),
9699
timelineState: TimelineState = aTimelineState(
97100
timelineItems = aTimelineItemList(aTimelineItemTextContent()),
@@ -117,6 +120,7 @@ fun aMessagesState(
117120
heroes = persistentListOf(),
118121
userEventPermissions = userEventPermissions,
119122
composerState = composerState,
123+
roomMemberIdentityStateChanges = roomMemberIdentityStateChanges,
120124
voiceMessageComposerState = voiceMessageComposerState,
121125
timelineProtectionState = timelineProtectionState,
122126
identityChangeState = identityChangeState,

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ private fun MessagesViewComposerBottomSheetContents(
427427
onLinkClick = onLinkClick,
428428
)
429429
}
430-
val verificationViolation = state.composerState.roomMemberIdentityStateChanges.firstOrNull {
430+
val verificationViolation = state.roomMemberIdentityStateChanges.firstOrNull {
431431
it.identityState == IdentityState.VerificationViolation
432432
}
433433
if (verificationViolation != null) {

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerPresenter.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import androidx.compose.runtime.collectAsState
1818
import androidx.compose.runtime.getValue
1919
import androidx.compose.runtime.mutableStateListOf
2020
import androidx.compose.runtime.mutableStateOf
21-
import androidx.compose.runtime.produceState
2221
import androidx.compose.runtime.remember
2322
import androidx.compose.runtime.rememberCoroutineScope
2423
import androidx.compose.runtime.rememberUpdatedState
@@ -391,10 +390,6 @@ class MessageComposerPresenter @AssistedInject constructor(
391390
}
392391
}
393392

394-
val roomMemberIdentityStateChange by produceState(persistentListOf()) {
395-
observeRoomMemberIdentityStateChange(room)
396-
}
397-
398393
return MessageComposerState(
399394
textEditorState = textEditorState,
400395
isFullScreen = isFullScreen.value,
@@ -404,7 +399,6 @@ class MessageComposerPresenter @AssistedInject constructor(
404399
canShareLocation = canShareLocation.value,
405400
canCreatePoll = canCreatePoll.value,
406401
suggestions = suggestions.toPersistentList(),
407-
roomMemberIdentityStateChanges = roomMemberIdentityStateChange,
408402
resolveMentionDisplay = resolveMentionDisplay,
409403
eventSink = { handleEvents(it) },
410404
)

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerState.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package io.element.android.features.messages.impl.messagecomposer
99

1010
import androidx.compose.runtime.Stable
11-
import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange
1211
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
1312
import io.element.android.libraries.textcomposer.model.MessageComposerMode
1413
import io.element.android.libraries.textcomposer.model.TextEditorState
@@ -25,7 +24,6 @@ data class MessageComposerState(
2524
val canShareLocation: Boolean,
2625
val canCreatePoll: Boolean,
2726
val suggestions: ImmutableList<ResolvedSuggestion>,
28-
val roomMemberIdentityStateChanges: ImmutableList<RoomMemberIdentityStateChange>,
2927
val resolveMentionDisplay: (String, String) -> TextDisplay,
3028
val eventSink: (MessageComposerEvents) -> Unit,
3129
)

features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/messagecomposer/MessageComposerStateProvider.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package io.element.android.features.messages.impl.messagecomposer
99

1010
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
11-
import io.element.android.features.messages.impl.crypto.identity.RoomMemberIdentityStateChange
1211
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
1312
import io.element.android.libraries.textcomposer.model.MessageComposerMode
1413
import io.element.android.libraries.textcomposer.model.TextEditorState
@@ -33,7 +32,6 @@ fun aMessageComposerState(
3332
canShareLocation: Boolean = true,
3433
canCreatePoll: Boolean = true,
3534
suggestions: ImmutableList<ResolvedSuggestion> = persistentListOf(),
36-
identityStates: ImmutableList<RoomMemberIdentityStateChange> = persistentListOf(),
3735
eventSink: (MessageComposerEvents) -> Unit = {},
3836
) = MessageComposerState(
3937
textEditorState = textEditorState,
@@ -44,7 +42,6 @@ fun aMessageComposerState(
4442
canShareLocation = canShareLocation,
4543
canCreatePoll = canCreatePoll,
4644
suggestions = suggestions,
47-
roomMemberIdentityStateChanges = identityStates,
4845
resolveMentionDisplay = { _, _ -> TextDisplay.Plain },
4946
eventSink = eventSink,
5047
)

0 commit comments

Comments
 (0)