|
|
|
@ -24,6 +24,7 @@ import androidx.compose.runtime.rememberCoroutineScope
@@ -24,6 +24,7 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|
|
|
|
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction |
|
|
|
|
import io.element.android.features.messages.impl.timeline.model.TimelineItem |
|
|
|
|
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.libraries.architecture.Presenter |
|
|
|
|
import kotlinx.collections.immutable.toImmutableList |
|
|
|
|
import kotlinx.coroutines.CoroutineScope |
|
|
|
@ -53,12 +54,16 @@ class ActionListPresenter @Inject constructor() : Presenter<ActionListState> {
@@ -53,12 +54,16 @@ class ActionListPresenter @Inject constructor() : Presenter<ActionListState> {
|
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fun CoroutineScope.computeForMessage(timelineItem: TimelineItem.Event, target: MutableState<ActionListState.Target>) = launch { |
|
|
|
|
private fun CoroutineScope.computeForMessage(timelineItem: TimelineItem.Event, target: MutableState<ActionListState.Target>) = launch { |
|
|
|
|
target.value = ActionListState.Target.Loading(timelineItem) |
|
|
|
|
val actions = |
|
|
|
|
if (timelineItem.content is TimelineItemRedactedContent) { |
|
|
|
|
when (timelineItem.content) { |
|
|
|
|
is TimelineItemRedactedContent, |
|
|
|
|
is TimelineItemStateContent -> { |
|
|
|
|
// TODO Add Share action (also) here, and developer options |
|
|
|
|
emptyList() |
|
|
|
|
} else { |
|
|
|
|
} |
|
|
|
|
else -> { |
|
|
|
|
mutableListOf( |
|
|
|
|
TimelineItemAction.Reply, |
|
|
|
|
TimelineItemAction.Forward, |
|
|
|
@ -70,6 +75,7 @@ class ActionListPresenter @Inject constructor() : Presenter<ActionListState> {
@@ -70,6 +75,7 @@ class ActionListPresenter @Inject constructor() : Presenter<ActionListState> {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
target.value = ActionListState.Target.Success(timelineItem, actions.toImmutableList()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|