|
|
@ -22,6 +22,7 @@ import io.element.android.libraries.matrix.api.core.EventId |
|
|
|
import io.element.android.libraries.matrix.api.core.RoomId |
|
|
|
import io.element.android.libraries.matrix.api.core.RoomId |
|
|
|
import io.element.android.libraries.matrix.api.core.SessionId |
|
|
|
import io.element.android.libraries.matrix.api.core.SessionId |
|
|
|
import io.element.android.libraries.matrix.api.core.ThreadId |
|
|
|
import io.element.android.libraries.matrix.api.core.ThreadId |
|
|
|
|
|
|
|
import io.element.android.libraries.matrix.api.core.UserId |
|
|
|
import io.element.android.libraries.matrix.api.notification.NotificationContent |
|
|
|
import io.element.android.libraries.matrix.api.notification.NotificationContent |
|
|
|
import io.element.android.libraries.matrix.api.notification.NotificationData |
|
|
|
import io.element.android.libraries.matrix.api.notification.NotificationData |
|
|
|
import io.element.android.libraries.matrix.api.room.RoomMembershipState |
|
|
|
import io.element.android.libraries.matrix.api.room.RoomMembershipState |
|
|
@ -81,18 +82,18 @@ class NotifiableEventResolver @Inject constructor( |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private fun NotificationData.asNotifiableEvent(userId: SessionId): NotifiableEvent? { |
|
|
|
private fun NotificationData.asNotifiableEvent(userId: SessionId): NotifiableEvent? { |
|
|
|
return when (val content = this.event.content) { |
|
|
|
return when (val content = this.content) { |
|
|
|
is NotificationContent.MessageLike.RoomMessage -> { |
|
|
|
is NotificationContent.MessageLike.RoomMessage -> { |
|
|
|
buildNotifiableMessageEvent( |
|
|
|
buildNotifiableMessageEvent( |
|
|
|
sessionId = userId, |
|
|
|
sessionId = userId, |
|
|
|
|
|
|
|
senderId = content.senderId, |
|
|
|
roomId = roomId, |
|
|
|
roomId = roomId, |
|
|
|
eventId = eventId, |
|
|
|
eventId = eventId, |
|
|
|
noisy = isNoisy, |
|
|
|
noisy = isNoisy, |
|
|
|
timestamp = event.timestamp, |
|
|
|
timestamp = this.timestamp, |
|
|
|
senderName = senderDisplayName, |
|
|
|
senderName = senderDisplayName, |
|
|
|
senderId = senderId.value, |
|
|
|
|
|
|
|
body = descriptionFromMessageContent(content), |
|
|
|
body = descriptionFromMessageContent(content), |
|
|
|
imageUriString = event.contentUrl, |
|
|
|
imageUriString = this.contentUrl, |
|
|
|
roomName = roomDisplayName, |
|
|
|
roomName = roomDisplayName, |
|
|
|
roomIsDirect = isDirect, |
|
|
|
roomIsDirect = isDirect, |
|
|
|
roomAvatarPath = roomAvatarUrl, |
|
|
|
roomAvatarPath = roomAvatarUrl, |
|
|
@ -109,7 +110,7 @@ class NotifiableEventResolver @Inject constructor( |
|
|
|
canBeReplaced = true, |
|
|
|
canBeReplaced = true, |
|
|
|
roomName = roomDisplayName, |
|
|
|
roomName = roomDisplayName, |
|
|
|
noisy = isNoisy, |
|
|
|
noisy = isNoisy, |
|
|
|
timestamp = event.timestamp, |
|
|
|
timestamp = this.timestamp, |
|
|
|
soundName = null, |
|
|
|
soundName = null, |
|
|
|
isRedacted = false, |
|
|
|
isRedacted = false, |
|
|
|
isUpdated = false, |
|
|
|
isUpdated = false, |
|
|
@ -177,6 +178,7 @@ class NotifiableEventResolver @Inject constructor( |
|
|
|
@Suppress("LongParameterList") |
|
|
|
@Suppress("LongParameterList") |
|
|
|
private fun buildNotifiableMessageEvent( |
|
|
|
private fun buildNotifiableMessageEvent( |
|
|
|
sessionId: SessionId, |
|
|
|
sessionId: SessionId, |
|
|
|
|
|
|
|
senderId: UserId, |
|
|
|
roomId: RoomId, |
|
|
|
roomId: RoomId, |
|
|
|
eventId: EventId, |
|
|
|
eventId: EventId, |
|
|
|
editedEventId: EventId? = null, |
|
|
|
editedEventId: EventId? = null, |
|
|
@ -184,7 +186,6 @@ private fun buildNotifiableMessageEvent( |
|
|
|
noisy: Boolean, |
|
|
|
noisy: Boolean, |
|
|
|
timestamp: Long, |
|
|
|
timestamp: Long, |
|
|
|
senderName: String?, |
|
|
|
senderName: String?, |
|
|
|
senderId: String?, |
|
|
|
|
|
|
|
body: String?, |
|
|
|
body: String?, |
|
|
|
// We cannot use Uri? type here, as that could trigger a |
|
|
|
// We cannot use Uri? type here, as that could trigger a |
|
|
|
// NotSerializableException when persisting this to storage |
|
|
|
// NotSerializableException when persisting this to storage |
|
|
@ -202,6 +203,7 @@ private fun buildNotifiableMessageEvent( |
|
|
|
isUpdated: Boolean = false |
|
|
|
isUpdated: Boolean = false |
|
|
|
) = NotifiableMessageEvent( |
|
|
|
) = NotifiableMessageEvent( |
|
|
|
sessionId = sessionId, |
|
|
|
sessionId = sessionId, |
|
|
|
|
|
|
|
senderId = senderId, |
|
|
|
roomId = roomId, |
|
|
|
roomId = roomId, |
|
|
|
eventId = eventId, |
|
|
|
eventId = eventId, |
|
|
|
editedEventId = editedEventId, |
|
|
|
editedEventId = editedEventId, |
|
|
@ -209,7 +211,6 @@ private fun buildNotifiableMessageEvent( |
|
|
|
noisy = noisy, |
|
|
|
noisy = noisy, |
|
|
|
timestamp = timestamp, |
|
|
|
timestamp = timestamp, |
|
|
|
senderName = senderName, |
|
|
|
senderName = senderName, |
|
|
|
senderId = senderId, |
|
|
|
|
|
|
|
body = body, |
|
|
|
body = body, |
|
|
|
imageUriString = imageUriString, |
|
|
|
imageUriString = imageUriString, |
|
|
|
threadId = threadId, |
|
|
|
threadId = threadId, |
|
|
|