diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvents.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvent.kt similarity index 81% rename from features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvents.kt rename to features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvent.kt index ecd9a5117d..bef8ca84d6 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvents.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesEvent.kt @@ -13,12 +13,12 @@ import io.element.android.features.messages.impl.timeline.model.TimelineItem import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId import io.element.android.libraries.matrix.api.user.MatrixUser -sealed interface MessagesEvents { - data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : MessagesEvents - data class ToggleReaction(val emoji: String, val eventOrTransactionId: EventOrTransactionId) : MessagesEvents - data class InviteDialogDismissed(val action: InviteDialogAction) : MessagesEvents - data class OnUserClicked(val user: MatrixUser) : MessagesEvents - data object MarkAsFullyReadAndExit : MessagesEvents +sealed interface MessagesEvent { + data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : MessagesEvent + data class ToggleReaction(val emoji: String, val eventOrTransactionId: EventOrTransactionId) : MessagesEvent + data class InviteDialogDismissed(val action: InviteDialogAction) : MessagesEvent + data class OnUserClicked(val user: MatrixUser) : MessagesEvent + data object MarkAsFullyReadAndExit : MessagesEvent } enum class InviteDialogAction { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt index 0692a98745..b2507e6870 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesNode.kt @@ -242,7 +242,7 @@ class MessagesNode( val state = presenter.present() BackHandler { - state.eventSink(MessagesEvents.MarkAsFullyReadAndExit) + state.eventSink(MessagesEvent.MarkAsFullyReadAndExit) } OnLifecycleEvent { _, event -> @@ -253,7 +253,7 @@ class MessagesNode( } MessagesView( state = state, - onBackClick = { state.eventSink(MessagesEvents.MarkAsFullyReadAndExit) }, + onBackClick = { state.eventSink(MessagesEvent.MarkAsFullyReadAndExit) }, onRoomDetailsClick = callback::navigateToRoomDetails, onEventContentClick = { isLive, event -> if (isLive) { diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt index 075c51e1c0..5f2413c9a1 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesPresenter.kt @@ -220,9 +220,9 @@ class MessagesPresenter( onPauseOrDispose {} } - fun handleEvent(event: MessagesEvents) { + fun handleEvent(event: MessagesEvent) { when (event) { - is MessagesEvents.HandleAction -> { + is MessagesEvent.HandleAction -> { localCoroutineScope.handleTimelineAction( action = event.action, targetEvent = event.event, @@ -232,20 +232,20 @@ class MessagesPresenter( timelineProtectionState = timelineProtectionState, ) } - is MessagesEvents.ToggleReaction -> { + is MessagesEvent.ToggleReaction -> { localCoroutineScope.toggleReaction(event.emoji, event.eventOrTransactionId) } - is MessagesEvents.InviteDialogDismissed -> { + is MessagesEvent.InviteDialogDismissed -> { hasDismissedInviteDialog = true if (event.action == InviteDialogAction.Invite) { localCoroutineScope.reinviteOtherUser(inviteProgress) } } - is MessagesEvents.OnUserClicked -> { + is MessagesEvent.OnUserClicked -> { roomMemberModerationState.eventSink(RoomMemberModerationEvents.ShowActionsForUser(event.user)) } - is MessagesEvents.MarkAsFullyReadAndExit -> coroutineScope.launch { + is MessagesEvent.MarkAsFullyReadAndExit -> coroutineScope.launch { if (!markingAsReadAndExiting.getAndSet(true)) { val latestEventId = room.liveTimeline.getLatestEventId().getOrElse { Timber.w(it, "Failed to get latest event id to mark as fully read") diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt index b9d86a6597..f7868806c1 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesState.kt @@ -57,7 +57,7 @@ data class MessagesState( val dmUserVerificationState: IdentityState?, val roomMemberModerationState: RoomMemberModerationState, val successorRoom: SuccessorRoom?, - val eventSink: (MessagesEvents) -> Unit + val eventSink: (MessagesEvent) -> Unit ) { val isTombstoned = successorRoom != null } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt index cec9f68b45..b6d8dcd71c 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesStateProvider.kt @@ -133,7 +133,7 @@ fun aMessagesState( dmUserVerificationState: IdentityState? = null, roomMemberModerationState: RoomMemberModerationState = aRoomMemberModerationState(), successorRoom: SuccessorRoom? = null, - eventSink: (MessagesEvents) -> Unit = {}, + eventSink: (MessagesEvent) -> Unit = {}, ) = MessagesState( roomId = RoomId("!id:domain"), roomName = roomName, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt index f8a5e22341..4dfbe74fda 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/MessagesView.kt @@ -178,11 +178,11 @@ fun MessagesView( } fun onActionSelected(action: TimelineItemAction, event: TimelineItem.Event) { - state.eventSink(MessagesEvents.HandleAction(action, event)) + state.eventSink(MessagesEvent.HandleAction(action, event)) } fun onEmojiReactionClick(emoji: String, event: TimelineItem.Event) { - state.eventSink(MessagesEvents.ToggleReaction(emoji, event.eventOrTransactionId)) + state.eventSink(MessagesEvent.ToggleReaction(emoji, event.eventOrTransactionId)) } fun onEmojiReactionLongClick(emoji: String, event: TimelineItem.Event) { @@ -244,7 +244,7 @@ fun MessagesView( onMessageLongClick = ::onMessageLongClick, onUserDataClick = { hidingKeyboard { - state.eventSink(MessagesEvents.OnUserClicked(it)) + state.eventSink(MessagesEvent.OnUserClicked(it)) } }, onLinkClick = { link, customTab -> @@ -264,7 +264,7 @@ fun MessagesView( onSendLocationClick = onSendLocationClick, onCreatePollClick = onCreatePollClick, onSwipeToReply = { targetEvent -> - state.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, targetEvent)) + state.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, targetEvent)) }, forceJumpToBottomVisibility = forceJumpToBottomVisibility, onJoinCallClick = onJoinCallClick, @@ -378,7 +378,7 @@ fun MessagesView( CustomReactionBottomSheet( state = state.customReactionState, onSelectEmoji = { uniqueId, emoji -> - state.eventSink(MessagesEvents.ToggleReaction(emoji.unicode, uniqueId)) + state.eventSink(MessagesEvent.ToggleReaction(emoji.unicode, uniqueId)) } ) @@ -404,8 +404,8 @@ private fun ReinviteDialog(state: MessagesState) { content = stringResource(id = R.string.screen_room_invite_again_alert_message), cancelText = stringResource(id = CommonStrings.action_cancel), submitText = stringResource(id = CommonStrings.action_invite), - onSubmitClick = { state.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Invite)) }, - onDismiss = { state.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Cancel)) } + onSubmitClick = { state.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Invite)) }, + onDismiss = { state.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Cancel)) } ) } } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt index 6d9d2ff906..3afe719798 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesPresenterTest.kt @@ -185,14 +185,14 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { skipItems(1) val initialState = awaitItem() - initialState.eventSink(MessagesEvents.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) + initialState.eventSink(MessagesEvent.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) advanceUntilIdle() assert(toggleReactionSuccess) .isCalledOnce() .with(value("👍"), value(AN_EVENT_ID.toEventOrTransactionId())) // No crashes when sending a reaction failed timeline.toggleReactionLambda = toggleReactionFailure - initialState.eventSink(MessagesEvents.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) + initialState.eventSink(MessagesEvent.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) advanceUntilIdle() assert(toggleReactionFailure) .isCalledOnce() @@ -230,8 +230,8 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) - initialState.eventSink(MessagesEvents.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) + initialState.eventSink(MessagesEvent.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) + initialState.eventSink(MessagesEvent.ToggleReaction("👍", AN_EVENT_ID.toEventOrTransactionId())) advanceUntilIdle() assert(toggleReactionSuccess) .isCalledExactly(2) @@ -253,7 +253,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(navigator = navigator) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Forward, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Forward, aMessageEvent())) assertThat(awaitItem().actionListState.target).isEqualTo(ActionListState.Target.None) onForwardEventClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID)) } @@ -266,7 +266,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(clipboardHelper = clipboardHelper) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.CopyText, event)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.CopyText, event)) skipItems(2) assertThat(clipboardHelper.clipboardContents).isEqualTo((event.content as TimelineItemTextContent).body) } @@ -289,7 +289,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.CopyLink, event)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.CopyLink, event)) skipItems(2) assertThat(clipboardHelper.clipboardContents).isEqualTo("a link") } @@ -303,7 +303,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, aMessageEvent())) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -321,7 +321,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter() presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, aMessageEvent(eventId = null))) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, aMessageEvent(eventId = null))) skipItems(1) } } @@ -354,7 +354,7 @@ class MessagesPresenterTest { formattedFileSize = "4MB" ) ) - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, mediaMessage)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, mediaMessage)) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -396,7 +396,7 @@ class MessagesPresenterTest { formattedFileSize = "50MB" ) ) - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, mediaMessage)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, mediaMessage)) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -431,7 +431,7 @@ class MessagesPresenterTest { fileExtension = "pdf", ) ) - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, mediaMessage)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, mediaMessage)) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -452,7 +452,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Edit, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Edit, aMessageEvent())) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -474,7 +474,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(navigator = navigator) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.EditPoll, aMessageEvent(content = aTimelineItemPollContent()))) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.EditPoll, aMessageEvent(content = aTimelineItemPollContent()))) awaitItem() onEditPollClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID)) } @@ -486,7 +486,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(timelineEventSink = timelineEventSink) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.EndPoll, aMessageEvent(content = aTimelineItemPollContent()))) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.EndPoll, aMessageEvent(content = aTimelineItemPollContent()))) delay(1) timelineEventSink.assertSingle(TimelineEvents.EndPoll(AN_EVENT_ID)) cancelAndIgnoreRemainingEvents() @@ -516,7 +516,7 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { val initialState = awaitItem() val messageEvent = aMessageEvent() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Redact, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Redact, messageEvent)) awaitItem() assert(redactEventLambda) .isCalledOnce() @@ -533,7 +533,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(navigator = navigator) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.ReportContent, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.ReportContent, aMessageEvent())) assertThat(awaitItem().actionListState.target).isEqualTo(ActionListState.Target.None) onReportContentClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID), value(A_USER_ID)) } @@ -548,7 +548,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(navigator = navigator) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.ViewSource, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.ViewSource, aMessageEvent())) assertThat(awaitItem().actionListState.target).isEqualTo(ActionListState.Target.None) onShowEventDebugInfoClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID), value(aTimelineItemDebugInfo())) } @@ -576,7 +576,7 @@ class MessagesPresenterTest { val focusedState = awaitItem() assertThat(focusedState.showReinvitePrompt).isTrue() // If it's dismissed then we stop showing the alert - initialState.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Cancel)) + initialState.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Cancel)) skipItems(1) val dismissedState = awaitItem() assertThat(dismissedState.showReinvitePrompt).isFalse() @@ -648,7 +648,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(joinedRoom = room) presenter.testWithLifecycleOwner { val initialState = consumeItemsUntilTimeout().last() - initialState.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Invite)) + initialState.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Invite)) skipItems(1) val loadingState = awaitItem() assertThat(loadingState.inviteProgress.isLoading()).isTrue() @@ -680,7 +680,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(joinedRoom = room) presenter.testWithLifecycleOwner { val initialState = consumeItemsUntilTimeout().last() - initialState.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Invite)) + initialState.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Invite)) skipItems(1) val loadingState = consumeItemsUntilPredicate { state -> state.inviteProgress.isLoading() @@ -704,7 +704,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(joinedRoom = room) presenter.testWithLifecycleOwner { val initialState = consumeItemsUntilTimeout().last() - initialState.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Invite)) + initialState.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Invite)) skipItems(1) val loadingState = awaitItem() assertThat(loadingState.inviteProgress.isLoading()).isTrue() @@ -733,7 +733,7 @@ class MessagesPresenterTest { val presenter = createMessagesPresenter(joinedRoom = room) presenter.testWithLifecycleOwner { val initialState = consumeItemsUntilTimeout().last() - initialState.eventSink(MessagesEvents.InviteDialogDismissed(InviteDialogAction.Invite)) + initialState.eventSink(MessagesEvent.InviteDialogDismissed(InviteDialogAction.Invite)) val loadingState = consumeItemsUntilPredicate { state -> state.inviteProgress.isLoading() @@ -830,7 +830,7 @@ class MessagesPresenterTest { val poll = aMessageEvent( content = aTimelineItemPollContent() ) - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Reply, poll)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Reply, poll)) skipItems(1) composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -868,11 +868,11 @@ class MessagesPresenterTest { val initialState = awaitItem() timeline.pinEventLambda = successPinEventLambda - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Pin, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Pin, messageEvent)) assert(successPinEventLambda).isCalledOnce().with(value(messageEvent.eventId)) timeline.pinEventLambda = failurePinEventLambda - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Pin, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Pin, messageEvent)) assert(failurePinEventLambda).isCalledOnce().with(value(messageEvent.eventId)) skipItems(1) assertThat(awaitItem().snackbarMessage).isNotNull() @@ -908,11 +908,11 @@ class MessagesPresenterTest { val initialState = awaitItem() timeline.unpinEventLambda = successUnpinEventLambda - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Unpin, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Unpin, messageEvent)) assert(successUnpinEventLambda).isCalledOnce().with(value(messageEvent.eventId)) timeline.unpinEventLambda = failureUnpinEventLambda - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Unpin, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.Unpin, messageEvent)) assert(failureUnpinEventLambda).isCalledOnce().with(value(messageEvent.eventId)) skipItems(1) assertThat(awaitItem().snackbarMessage).isNotNull() @@ -936,7 +936,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.EditCaption, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.EditCaption, messageEvent)) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -962,7 +962,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.AddCaption, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.AddCaption, messageEvent)) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -1000,7 +1000,7 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { skipItems(1) val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.RemoveCaption, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.RemoveCaption, messageEvent)) editCaptionLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID.toEventOrTransactionId()), value(null), value(null)) } } @@ -1014,7 +1014,7 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { skipItems(1) val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.ViewInTimeline, messageEvent)) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.ViewInTimeline, messageEvent)) // No op! } } @@ -1108,7 +1108,7 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { val initialState = awaitItem() initialState.eventSink( - MessagesEvents.HandleAction( + MessagesEvent.HandleAction( action = TimelineItemAction.ReplyInThread, event = aMessageEvent(threadInfo = TimelineItemThreadInfo.ThreadResponse(A_THREAD_ID)) ) @@ -1130,7 +1130,7 @@ class MessagesPresenterTest { presenter.testWithLifecycleOwner { val initialState = awaitItem() initialState.eventSink( - MessagesEvents.HandleAction( + MessagesEvent.HandleAction( action = TimelineItemAction.ReplyInThread, event = aMessageEvent( // The event id will be used as the thread id instead @@ -1155,7 +1155,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.ReplyInThread, aMessageEvent())) + initialState.eventSink(MessagesEvent.HandleAction(TimelineItemAction.ReplyInThread, aMessageEvent())) awaitItem() composerRecorder.assertSingle( MessageComposerEvent.SetMode( @@ -1182,7 +1182,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.MarkAsFullyReadAndExit) + initialState.eventSink(MessagesEvent.MarkAsFullyReadAndExit) runCurrent() @@ -1206,7 +1206,7 @@ class MessagesPresenterTest { ) presenter.testWithLifecycleOwner { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.MarkAsFullyReadAndExit) + initialState.eventSink(MessagesEvent.MarkAsFullyReadAndExit) runCurrent() diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt index 71d6176bc8..336a3e67c7 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/MessagesViewTest.kt @@ -88,7 +88,7 @@ class MessagesViewTest { @Test fun `clicking on back invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( eventSink = eventsRecorder ) @@ -103,7 +103,7 @@ class MessagesViewTest { @Test fun `clicking on room name invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( eventSink = eventsRecorder ) @@ -118,7 +118,7 @@ class MessagesViewTest { @Test fun `clicking on join call invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( eventSink = eventsRecorder ) @@ -134,7 +134,7 @@ class MessagesViewTest { @Test fun `clicking on an Event invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( timelineState = aTimelineState( timelineItems = aTimelineItemList(aTimelineItemTextContent()), @@ -253,7 +253,7 @@ class MessagesViewTest { } private fun swipeTest(userHasPermissionToSendMessage: Boolean) { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val canBeRepliedEvent = aTimelineItemEvent(canBeRepliedTo = true) val cannotBeRepliedEvent = aTimelineItemEvent(canBeRepliedTo = false) val state = aMessagesState( @@ -273,7 +273,7 @@ class MessagesViewTest { onLast().performTouchInput { swipeRight(endX = 200f) } } if (userHasPermissionToSendMessage) { - eventsRecorder.assertSingle(MessagesEvents.HandleAction(TimelineItemAction.Reply, canBeRepliedEvent)) + eventsRecorder.assertSingle(MessagesEvent.HandleAction(TimelineItemAction.Reply, canBeRepliedEvent)) } else { eventsRecorder.assertEmpty() } @@ -281,7 +281,7 @@ class MessagesViewTest { @Test fun `clicking on send location invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( composerState = aMessageComposerState( showAttachmentSourcePicker = true @@ -299,7 +299,7 @@ class MessagesViewTest { @Test fun `clicking on create poll invoke expected callback`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( composerState = aMessageComposerState( showAttachmentSourcePicker = true @@ -319,7 +319,7 @@ class MessagesViewTest { @Test @Config(qualifiers = "h1024dp") fun `clicking on the avatar of the sender of an Event emits the expected event`() { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val state = aMessagesState( eventSink = eventsRecorder ) @@ -327,7 +327,7 @@ class MessagesViewTest { rule.setMessagesView(state = state) rule.onNodeWithTag(TestTags.timelineItemSenderAvatar.value, useUnmergedTree = true).performClick() eventsRecorder.assertSingle( - MessagesEvents.OnUserClicked( + MessagesEvent.OnUserClicked( MatrixUser( userId = timelineEvent.senderId, displayName = timelineEvent.senderProfile.getDisplayName(), @@ -340,13 +340,13 @@ class MessagesViewTest { @Test @Config(qualifiers = "h1024dp") fun `clicking on the display name of the sender of an Event emits expected event`() { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val state = aMessagesState(eventSink = eventsRecorder) val timelineEvent = state.timelineState.timelineItems.filterIsInstance().first() rule.setMessagesView(state = state) rule.onNodeWithTag(TestTags.timelineItemSenderAvatar.value, useUnmergedTree = true).performClick() eventsRecorder.assertSingle( - MessagesEvents.OnUserClicked( + MessagesEvent.OnUserClicked( MatrixUser( userId = timelineEvent.senderId, displayName = timelineEvent.senderProfile.getDisplayName(), @@ -358,7 +358,7 @@ class MessagesViewTest { @Test fun `selecting a action on a message emits the expected Event`() { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val state = aMessagesState( eventSink = eventsRecorder ) @@ -381,12 +381,12 @@ class MessagesViewTest { rule.clickOn(CommonStrings.action_edit) // Give time for the close animation to complete rule.mainClock.advanceTimeBy(milliseconds = 1_000) - eventsRecorder.assertSingle(MessagesEvents.HandleAction(TimelineItemAction.Edit, timelineItem)) + eventsRecorder.assertSingle(MessagesEvent.HandleAction(TimelineItemAction.Edit, timelineItem)) } @Test fun `clicking on a reaction emits the expected Event`() { - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val state = aMessagesState( timelineState = aTimelineState( timelineItems = aTimelineItemList(aTimelineItemTextContent()), @@ -401,7 +401,7 @@ class MessagesViewTest { text = "👍️", useUnmergedTree = true, ).onFirst().performClick() - eventsRecorder.assertSingle(MessagesEvents.ToggleReaction("👍️", timelineItem.eventOrTransactionId)) + eventsRecorder.assertSingle(MessagesEvent.ToggleReaction("👍️", timelineItem.eventOrTransactionId)) } @Test @@ -513,7 +513,7 @@ class MessagesViewTest { fun `clicking on a custom emoji emits the expected Events`() { val aUnicode = "🙈" val customReactionStateEventsRecorder = EventsRecorder() - val eventsRecorder = EventsRecorder() + val eventsRecorder = EventsRecorder() val state = aMessagesState( eventSink = eventsRecorder, ) @@ -547,7 +547,7 @@ class MessagesViewTest { // Give time for the close animation to complete rule.mainClock.advanceTimeBy(milliseconds = 1_000) customReactionStateEventsRecorder.assertSingle(CustomReactionEvents.DismissCustomReactionSheet) - eventsRecorder.assertSingle(MessagesEvents.ToggleReaction(aUnicode, timelineItem.eventOrTransactionId)) + eventsRecorder.assertSingle(MessagesEvent.ToggleReaction(aUnicode, timelineItem.eventOrTransactionId)) } @Test @@ -589,7 +589,7 @@ class MessagesViewTest { @Test fun `no banner shown when there is no successor room`() { - val eventsRecorder = EventsRecorder(expectEvents = false) + val eventsRecorder = EventsRecorder(expectEvents = false) val state = aMessagesState( successorRoom = null, eventSink = eventsRecorder