From 97cf00ec96bcee350bd3104b9df5329cfbc72028 Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 30 Jul 2024 11:52:45 +0200 Subject: [PATCH] Pinned events: add unpin action --- .../android/features/messages/impl/MessagesPresenter.kt | 8 ++++++++ .../messages/impl/actionlist/model/TimelineItemAction.kt | 2 ++ libraries/ui-strings/src/main/res/values/localazy.xml | 1 + 3 files changed, 11 insertions(+) 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 12b7bf9f50..3622208233 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 @@ -281,6 +281,7 @@ class MessagesPresenter @AssistedInject constructor( TimelineItemAction.ReportContent -> handleReportAction(targetEvent) TimelineItemAction.EndPoll -> handleEndPollAction(targetEvent, timelineState) TimelineItemAction.Pin -> handlePinAction(targetEvent) + TimelineItemAction.Unpin -> handleUnpinAction(targetEvent) } } @@ -291,6 +292,13 @@ class MessagesPresenter @AssistedInject constructor( } } + private suspend fun handleUnpinAction(targetEvent: TimelineItem.Event) { + if (targetEvent.eventId == null) return + timelineController.invokeOnCurrentTimeline { + unpinEvent(targetEvent.eventId) + } + } + private fun CoroutineScope.toggleReaction( emoji: String, eventId: EventId, 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 e8da131d8d..b9762c4056 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 @@ -40,4 +40,6 @@ sealed class TimelineItemAction( data object ReportContent : TimelineItemAction(CommonStrings.action_report_content, CompoundDrawables.ic_compound_chat_problem, destructive = true) data object EndPoll : TimelineItemAction(CommonStrings.action_end_poll, CompoundDrawables.ic_compound_polls_end) data object Pin : TimelineItemAction(CommonStrings.action_pin, CompoundDrawables.ic_compound_pin) + //TODO use the Unpin compound icon when available. + data object Unpin : TimelineItemAction(CommonStrings.action_unpin, CompoundDrawables.ic_compound_pin) } diff --git a/libraries/ui-strings/src/main/res/values/localazy.xml b/libraries/ui-strings/src/main/res/values/localazy.xml index c5d8f46622..a86f920ed9 100644 --- a/libraries/ui-strings/src/main/res/values/localazy.xml +++ b/libraries/ui-strings/src/main/res/values/localazy.xml @@ -110,6 +110,7 @@ "Take photo" "Tap for options" "Try again" + "Unpin" "View source" "Yes" "About"