From 293834cf942a0442941d9d1888446041c89d9d3f Mon Sep 17 00:00:00 2001 From: Alfonso Grillo Date: Fri, 13 Oct 2023 12:52:30 +0200 Subject: [PATCH] =?UTF-8?q?Remove=20=E2=80=98copy=E2=80=99=20action=20for?= =?UTF-8?q?=20"media=20like"=20types=20(#1889)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove ‘copy’ action when useless * Delete unused property --- .../RoomScreen/RoomScreenViewModel.swift | 2 +- .../EventBasedTimelineItemProtocol.swift | 21 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift index d7ac7bda2..72ed4e999 100644 --- a/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift +++ b/ElementX/Sources/Screens/RoomScreen/RoomScreenViewModel.swift @@ -558,7 +558,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol actions.append(.edit) } - if item.isMessage, !item.isLocation { + if item.isCopyable { actions.append(.copy) } diff --git a/ElementX/Sources/Services/Timeline/TimelineItems/EventBasedTimelineItemProtocol.swift b/ElementX/Sources/Services/Timeline/TimelineItems/EventBasedTimelineItemProtocol.swift index c2f14ce90..94b7e1773 100644 --- a/ElementX/Sources/Services/Timeline/TimelineItems/EventBasedTimelineItemProtocol.swift +++ b/ElementX/Sources/Services/Timeline/TimelineItems/EventBasedTimelineItemProtocol.swift @@ -43,14 +43,6 @@ extension EventBasedTimelineItemProtocol { properties.deliveryStatus == .sendingFailed } - var isMessage: Bool { - self is EventBasedMessageTimelineItemProtocol - } - - var isLocation: Bool { - self is LocationRoomTimelineItem - } - var pollIfAvailable: Poll? { (self as? PollRoomTimelineItem)?.poll } @@ -89,4 +81,17 @@ extension EventBasedTimelineItemProtocol { } return start + timestamp } + + var isCopyable: Bool { + guard let messageBasedItem = self as? EventBasedMessageTimelineItemProtocol else { + return false + } + + switch messageBasedItem.contentType { + case .audio, .file, .image, .video, .location, .voice: + return false + case .text, .emote, .notice: + return true + } + } }