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 4895390ab8..5fc68a0c61 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 @@ -274,7 +274,8 @@ class MessagesPresenter @AssistedInject constructor( TimelineItemAction.CopyCaption -> handleCopyCaption(targetEvent) TimelineItemAction.CopyLink -> handleCopyLink(targetEvent) TimelineItemAction.Redact -> handleActionRedact(targetEvent) - TimelineItemAction.Edit -> handleActionEdit(targetEvent, composerState, enableTextFormatting) + TimelineItemAction.Edit, + TimelineItemAction.EditPoll -> handleActionEdit(targetEvent, composerState, enableTextFormatting) TimelineItemAction.AddCaption -> handleActionAddCaption(targetEvent, composerState) TimelineItemAction.EditCaption -> handleActionEditCaption(targetEvent, composerState) TimelineItemAction.RemoveCaption -> handleRemoveCaption(targetEvent) diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt index 95a6dc5a6f..d631cf3dcd 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenter.kt @@ -178,6 +178,8 @@ class DefaultActionListPresenter @AssistedInject constructor( add(TimelineItemAction.EditCaption) add(TimelineItemAction.RemoveCaption) } + } else if (timelineItem.content is TimelineItemPollContent) { + add(TimelineItemAction.EditPoll) } else { add(TimelineItemAction.Edit) } diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListStateProvider.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListStateProvider.kt index 1638a03fa3..2fef1fc525 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListStateProvider.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/ActionListStateProvider.kt @@ -203,6 +203,7 @@ fun aTimelineItemActionList( fun aTimelineItemPollActionList(): ImmutableList { return setOf( TimelineItemAction.EndPoll, + TimelineItemAction.EditPoll, TimelineItemAction.Reply, TimelineItemAction.Pin, TimelineItemAction.CopyLink, diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemAction.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemAction.kt index cfb6878ab5..bd506fa3a5 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemAction.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemAction.kt @@ -28,6 +28,7 @@ enum class TimelineItemAction( Reply(CommonStrings.action_reply, CompoundDrawables.ic_compound_reply), ReplyInThread(CommonStrings.action_reply_in_thread, CompoundDrawables.ic_compound_reply), Edit(CommonStrings.action_edit, CompoundDrawables.ic_compound_edit), + EditPoll(CommonStrings.action_edit_poll, CompoundDrawables.ic_compound_edit), EditCaption(CommonStrings.action_edit_caption, CompoundDrawables.ic_compound_edit), AddCaption(CommonStrings.action_add_caption, CompoundDrawables.ic_compound_edit), RemoveCaption(CommonStrings.action_remove_caption, CompoundDrawables.ic_compound_close, destructive = true), diff --git a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemActionComparator.kt b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemActionComparator.kt index e28f6ebb6d..a8a42b17ed 100644 --- a/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemActionComparator.kt +++ b/features/messages/impl/src/main/kotlin/io/element/android/features/messages/impl/actionlist/model/TimelineItemActionComparator.kt @@ -19,6 +19,7 @@ class TimelineItemActionComparator : Comparator { TimelineItemAction.ReplyInThread, TimelineItemAction.Forward, TimelineItemAction.Edit, + TimelineItemAction.EditPoll, TimelineItemAction.AddCaption, TimelineItemAction.EditCaption, TimelineItemAction.CopyLink, 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 8cb7464a9a..1369b5af63 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 @@ -467,7 +467,7 @@ class MessagesPresenterTest { presenter.present() }.test { val initialState = awaitItem() - initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.Edit, aMessageEvent(content = aTimelineItemPollContent()))) + initialState.eventSink(MessagesEvents.HandleAction(TimelineItemAction.EditPoll, aMessageEvent(content = aTimelineItemPollContent()))) awaitItem() onEditPollClickLambda.assertions().isCalledOnce().with(value(AN_EVENT_ID)) } diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt index 14605f31d5..cc4120ffab 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/actionlist/ActionListPresenterTest.kt @@ -179,8 +179,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -225,8 +225,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.ReplyInThread, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -273,8 +273,8 @@ class ActionListPresenterTest { verifiedUserSendFailure = VerifiedUserSendFailure.None, actions = persistentListOf( TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -320,8 +320,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -368,8 +368,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -417,9 +417,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.Redact, @@ -463,9 +463,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.ReplyInThread, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.Redact, @@ -512,9 +512,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, ) @@ -559,9 +559,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.AddCaption, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.ViewSource, TimelineItemAction.Redact, ) @@ -612,8 +612,8 @@ class ActionListPresenterTest { TimelineItemAction.Forward, // Not here // TimelineItemAction.AddCaption, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.ViewSource, TimelineItemAction.Redact, ) @@ -660,9 +660,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.EditCaption, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyCaption, TimelineItemAction.RemoveCaption, TimelineItemAction.ViewSource, @@ -711,8 +711,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyCaption, TimelineItemAction.ViewSource, TimelineItemAction.ReportContent, @@ -830,9 +830,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.CopyText, TimelineItemAction.Redact, ) @@ -878,8 +878,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.Redact, @@ -933,9 +933,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Unpin, - TimelineItemAction.CopyLink, TimelineItemAction.Edit, + TimelineItemAction.CopyLink, + TimelineItemAction.Unpin, TimelineItemAction.CopyText, TimelineItemAction.ViewSource, TimelineItemAction.Redact, @@ -1072,9 +1072,9 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.EndPoll, TimelineItemAction.Reply, - TimelineItemAction.Pin, + TimelineItemAction.EditPoll, TimelineItemAction.CopyLink, - TimelineItemAction.Edit, + TimelineItemAction.Pin, TimelineItemAction.Redact, ) ) @@ -1116,8 +1116,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.EndPoll, TimelineItemAction.Reply, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.Redact, ) ) @@ -1158,8 +1158,8 @@ class ActionListPresenterTest { verifiedUserSendFailure = VerifiedUserSendFailure.None, actions = persistentListOf( TimelineItemAction.Reply, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.Redact, ) ) @@ -1203,8 +1203,8 @@ class ActionListPresenterTest { actions = persistentListOf( TimelineItemAction.Reply, TimelineItemAction.Forward, - TimelineItemAction.Pin, TimelineItemAction.CopyLink, + TimelineItemAction.Pin, TimelineItemAction.Redact, ) ) diff --git a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListTimelineActionPostProcessorTest.kt b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListTimelineActionPostProcessorTest.kt index 7043d3f848..59545d6674 100644 --- a/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListTimelineActionPostProcessorTest.kt +++ b/features/messages/impl/src/test/kotlin/io/element/android/features/messages/impl/pinned/list/PinnedMessagesListTimelineActionPostProcessorTest.kt @@ -27,24 +27,7 @@ class PinnedMessagesListTimelineActionPostProcessorTest { fun `ensure that some actions are kept and some other are filtered out`() { val sut = PinnedMessagesListTimelineActionPostProcessor() val result = sut.process( - listOf( - TimelineItemAction.Forward, - TimelineItemAction.CopyText, - TimelineItemAction.CopyCaption, - TimelineItemAction.CopyLink, - TimelineItemAction.Redact, - TimelineItemAction.Reply, - TimelineItemAction.ReplyInThread, - TimelineItemAction.Edit, - TimelineItemAction.EditCaption, - TimelineItemAction.AddCaption, - TimelineItemAction.RemoveCaption, - TimelineItemAction.ViewSource, - TimelineItemAction.ReportContent, - TimelineItemAction.EndPoll, - TimelineItemAction.Pin, - TimelineItemAction.Unpin, - ) + TimelineItemAction.entries.toList() ) assertThat(result).isEqualTo( listOf(