diff --git a/CHANGES.md b/CHANGES.md index 0ae711dfc5..09991b3c48 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ Improvements 🙌: Bugfix 🐛: - Fix dark theme issue on login screen (#1097) - Incomplete predicate in RealmCryptoStore#getOutgoingRoomKeyRequest (#1519) + - User could not redact message that they have sent (#1543) - Use vendor prefix for non merged MSC (#1537) Translations 🗣: diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionState.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionState.kt index c12306c2d0..4eeed1292e 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionState.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionState.kt @@ -52,7 +52,7 @@ data class MessageActionState( val actions: List = emptyList(), val expendedReportContentMenu: Boolean = false, val actionPermissions: ActionPermissions = ActionPermissions() - ) : MvRxState { +) : MvRxState { constructor(args: TimelineEventFragmentArgs) : this(roomId = args.roomId, eventId = args.eventId, informationData = args.informationData) diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsViewModel.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsViewModel.kt index 964eb40fc7..6c192105d7 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/timeline/action/MessageActionsViewModel.kt @@ -45,9 +45,9 @@ import im.vector.riotx.core.platform.EmptyViewEvents import im.vector.riotx.core.platform.VectorViewModel import im.vector.riotx.core.resources.StringProvider import im.vector.riotx.features.home.room.detail.timeline.format.NoticeEventFormatter -import im.vector.riotx.features.powerlevel.PowerLevelsObservableFactory import im.vector.riotx.features.html.EventHtmlRenderer import im.vector.riotx.features.html.VectorHtmlCompressor +import im.vector.riotx.features.powerlevel.PowerLevelsObservableFactory import im.vector.riotx.features.reactions.data.EmojiDataSource import im.vector.riotx.features.settings.VectorPreferences @@ -357,6 +357,9 @@ class MessageActionsViewModel @AssistedInject constructor(@Assisted private fun canRedact(event: TimelineEvent, actionPermissions: ActionPermissions): Boolean { // Only event of type Event.EVENT_TYPE_MESSAGE are supported for the moment if (event.root.getClearType() != EventType.MESSAGE) return false + // Message sent by the current user can always be redacted + if (event.root.senderId == session.myUserId) return true + // Check permission for messages sent by other users return actionPermissions.canRedact }