Update rust-sdk : make the app compiles again
This commit is contained in:
parent
a492177473
commit
11db3195e0
3 changed files with 36 additions and 63 deletions
|
|
@ -16,12 +16,19 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.api.notification
|
package io.element.android.libraries.matrix.api.notification
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
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.UserId
|
||||||
|
|
||||||
|
//TODO add content
|
||||||
data class NotificationData(
|
data class NotificationData(
|
||||||
val item: MatrixTimelineItem,
|
val senderId: UserId,
|
||||||
val title: String,
|
val eventId: EventId,
|
||||||
val subtitle: String?,
|
val roomId: RoomId,
|
||||||
|
val senderAvatarUrl: String? = null,
|
||||||
|
val senderDisplayName: String? = null,
|
||||||
|
val roomAvatarUrl: String? = null,
|
||||||
|
val isDirect: Boolean,
|
||||||
|
val isEncrypted: Boolean,
|
||||||
val isNoisy: Boolean,
|
val isNoisy: Boolean,
|
||||||
val avatarUrl: String?,
|
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -16,35 +16,28 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.notification
|
package io.element.android.libraries.matrix.impl.notification
|
||||||
|
|
||||||
|
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.UserId
|
||||||
import io.element.android.libraries.matrix.api.notification.NotificationData
|
import io.element.android.libraries.matrix.api.notification.NotificationData
|
||||||
import io.element.android.libraries.matrix.impl.timeline.MatrixTimelineItemMapper
|
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.event.EventMessageMapper
|
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.event.EventTimelineItemMapper
|
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.event.TimelineEventContentMapper
|
|
||||||
import io.element.android.libraries.matrix.impl.timeline.item.virtual.VirtualTimelineItemMapper
|
|
||||||
import org.matrix.rustcomponents.sdk.NotificationItem
|
import org.matrix.rustcomponents.sdk.NotificationItem
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class NotificationMapper @Inject constructor() {
|
class NotificationMapper @Inject constructor() {
|
||||||
// TODO Inject and remove duplicate?
|
|
||||||
private val timelineItemFactory = MatrixTimelineItemMapper(
|
|
||||||
virtualTimelineItemMapper = VirtualTimelineItemMapper(),
|
|
||||||
eventTimelineItemMapper = EventTimelineItemMapper(
|
|
||||||
contentMapper = TimelineEventContentMapper(
|
|
||||||
eventMessageMapper = EventMessageMapper()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
fun map(notificationItem: NotificationItem): NotificationData {
|
fun map(notificationItem: NotificationItem): NotificationData {
|
||||||
return notificationItem.use {
|
return notificationItem.use {
|
||||||
NotificationData(
|
NotificationData(
|
||||||
item = timelineItemFactory.map(it.item),
|
senderId = UserId(it.event.senderId()),
|
||||||
title = it.title,
|
eventId = EventId(it.event.eventId()),
|
||||||
subtitle = it.subtitle,
|
roomId = RoomId(it.roomId),
|
||||||
isNoisy = it.isNoisy,
|
senderAvatarUrl = it.senderAvatarUrl,
|
||||||
avatarUrl = it.avatarUrl,
|
senderDisplayName = it.senderDisplayName,
|
||||||
|
roomAvatarUrl = it.roomAvatarUrl,
|
||||||
|
isDirect = it.isDirect,
|
||||||
|
isEncrypted = it.isEncrypted,
|
||||||
|
isNoisy = it.isNoisy
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,6 @@ 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.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
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.timeline.MatrixTimelineItem
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimelineDetails
|
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType
|
|
||||||
import io.element.android.libraries.push.impl.log.pushLoggerTag
|
import io.element.android.libraries.push.impl.log.pushLoggerTag
|
||||||
import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent
|
import io.element.android.libraries.push.impl.notifications.model.NotifiableEvent
|
||||||
import io.element.android.libraries.push.impl.notifications.model.NotifiableMessageEvent
|
import io.element.android.libraries.push.impl.notifications.model.NotifiableMessageEvent
|
||||||
|
|
@ -74,28 +69,28 @@ class NotifiableEventResolver @Inject constructor(
|
||||||
}
|
}
|
||||||
).orDefault(roomId, eventId)
|
).orDefault(roomId, eventId)
|
||||||
|
|
||||||
return notificationData.asNotifiableEvent(sessionId, roomId, eventId)
|
return notificationData.asNotifiableEvent(sessionId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun NotificationData.asNotifiableEvent(userId: SessionId, roomId: RoomId, eventId: EventId): NotifiableEvent {
|
private fun NotificationData.asNotifiableEvent(userId: SessionId): NotifiableEvent {
|
||||||
return NotifiableMessageEvent(
|
return NotifiableMessageEvent(
|
||||||
sessionId = userId,
|
sessionId = userId,
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
eventId = eventId,
|
eventId = eventId,
|
||||||
editedEventId = null,
|
editedEventId = null,
|
||||||
canBeReplaced = true,
|
canBeReplaced = true,
|
||||||
noisy = false,
|
noisy = isNoisy,
|
||||||
timestamp = System.currentTimeMillis(),
|
timestamp = System.currentTimeMillis(),
|
||||||
senderName = null,
|
senderName = senderDisplayName,
|
||||||
senderId = null,
|
senderId = senderId.value,
|
||||||
body = "Message ${eventId.value.take(8)}… in room ${roomId.value.take(8)}…",
|
body = "Message ${eventId.value.take(8)}… in room ${roomId.value.take(8)}…",
|
||||||
imageUriString = null,
|
imageUriString = null,
|
||||||
threadId = null,
|
threadId = null,
|
||||||
roomName = null,
|
roomName = null,
|
||||||
roomIsDirect = false,
|
roomIsDirect = false,
|
||||||
roomAvatarPath = null,
|
roomAvatarPath = roomAvatarUrl,
|
||||||
senderAvatarPath = null,
|
senderAvatarPath = senderAvatarUrl,
|
||||||
soundName = null,
|
soundName = null,
|
||||||
outGoingMessage = false,
|
outGoingMessage = false,
|
||||||
outGoingMessageFailed = false,
|
outGoingMessageFailed = false,
|
||||||
|
|
@ -109,33 +104,11 @@ private fun NotificationData.asNotifiableEvent(userId: SessionId, roomId: RoomId
|
||||||
*/
|
*/
|
||||||
private fun NotificationData?.orDefault(roomId: RoomId, eventId: EventId): NotificationData {
|
private fun NotificationData?.orDefault(roomId: RoomId, eventId: EventId): NotificationData {
|
||||||
return this ?: NotificationData(
|
return this ?: NotificationData(
|
||||||
item = MatrixTimelineItem.Event(
|
eventId = eventId,
|
||||||
event = EventTimelineItem(
|
senderId = UserId("@user:domain"),
|
||||||
uniqueIdentifier = eventId.value,
|
roomId = roomId,
|
||||||
eventId = eventId,
|
|
||||||
isEditable = false,
|
|
||||||
isLocal = false,
|
|
||||||
isOwn = false,
|
|
||||||
isRemote = false,
|
|
||||||
localSendState = null,
|
|
||||||
reactions = emptyList(),
|
|
||||||
sender = UserId("@user:domain"),
|
|
||||||
senderProfile = ProfileTimelineDetails.Unavailable,
|
|
||||||
timestamp = System.currentTimeMillis(),
|
|
||||||
content = MessageContent(
|
|
||||||
body = eventId.value,
|
|
||||||
inReplyTo = null,
|
|
||||||
isEdited = false,
|
|
||||||
type = TextMessageType(
|
|
||||||
body = eventId.value,
|
|
||||||
formatted = null
|
|
||||||
)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
title = roomId.value,
|
|
||||||
subtitle = eventId.value,
|
|
||||||
isNoisy = false,
|
isNoisy = false,
|
||||||
avatarUrl = null,
|
isEncrypted = false,
|
||||||
|
isDirect = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue