Merge pull request #3917 from element-hq/feature/bma/isEditableForCaption

Rely on the SDK to decide if a caption is editable or not
This commit is contained in:
Benoit Marty 2024-11-21 21:05:50 +01:00 committed by GitHub
commit fe9275c0b3
2 changed files with 6 additions and 9 deletions

View file

@ -32,7 +32,6 @@ import io.element.android.features.messages.impl.timeline.model.event.TimelineIt
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
import io.element.android.features.messages.impl.timeline.model.event.canBeCopied import io.element.android.features.messages.impl.timeline.model.event.canBeCopied
import io.element.android.features.messages.impl.timeline.model.event.canBeForwarded import io.element.android.features.messages.impl.timeline.model.event.canBeForwarded
import io.element.android.features.messages.impl.timeline.model.event.canReact import io.element.android.features.messages.impl.timeline.model.event.canReact
@ -155,18 +154,16 @@ class DefaultActionListPresenter @AssistedInject constructor(
add(TimelineItemAction.Forward) add(TimelineItemAction.Forward)
} }
if (timelineItem.isEditable) { if (timelineItem.isEditable) {
add(TimelineItemAction.Edit) if (timelineItem.content is TimelineItemEventContentWithAttachment) {
} else { // Caption
// Caption
if (timelineItem.isMine &&
timelineItem.content is TimelineItemEventContentWithAttachment &&
timelineItem.content !is TimelineItemVoiceContent) {
if (timelineItem.content.caption == null) { if (timelineItem.content.caption == null) {
add(TimelineItemAction.AddCaption) add(TimelineItemAction.AddCaption)
} else { } else {
add(TimelineItemAction.EditCaption) add(TimelineItemAction.EditCaption)
add(TimelineItemAction.RemoveCaption) add(TimelineItemAction.RemoveCaption)
} }
} else {
add(TimelineItemAction.Edit)
} }
} }
if (canRedact && timelineItem.content is TimelineItemPollContent && !timelineItem.content.isEnded) { if (canRedact && timelineItem.content is TimelineItemPollContent && !timelineItem.content.isEnded) {

View file

@ -521,7 +521,7 @@ class ActionListPresenterTest {
val initialState = awaitItem() val initialState = awaitItem()
val messageEvent = aMessageEvent( val messageEvent = aMessageEvent(
isMine = true, isMine = true,
isEditable = false, isEditable = true,
content = aTimelineItemImageContent(), content = aTimelineItemImageContent(),
) )
initialState.eventSink.invoke( initialState.eventSink.invoke(
@ -567,7 +567,7 @@ class ActionListPresenterTest {
val initialState = awaitItem() val initialState = awaitItem()
val messageEvent = aMessageEvent( val messageEvent = aMessageEvent(
isMine = true, isMine = true,
isEditable = false, isEditable = true,
content = aTimelineItemImageContent( content = aTimelineItemImageContent(
caption = A_CAPTION, caption = A_CAPTION,
), ),