diff --git a/changelog.d/6746.feature b/changelog.d/6746.feature new file mode 100644 index 0000000000..7869e7f57a --- /dev/null +++ b/changelog.d/6746.feature @@ -0,0 +1 @@ +[Notification] - Handle creation of notification for live location and poll start diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageBeaconLocationDataContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageBeaconLocationDataContent.kt index e261ab5206..aa2777d0a6 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageBeaconLocationDataContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/message/MessageBeaconLocationDataContent.kt @@ -22,7 +22,7 @@ import org.matrix.android.sdk.api.session.events.model.Content import org.matrix.android.sdk.api.session.room.model.relation.RelationDefaultContent /** - * Content of the state event of type + * Content of the event of type * [EventType.BEACON_LOCATION_DATA][org.matrix.android.sdk.api.session.events.model.EventType.BEACON_LOCATION_DATA] * * It contains location data related to a live location share. diff --git a/vector/src/main/java/im/vector/app/features/notifications/NotifiableEventResolver.kt b/vector/src/main/java/im/vector/app/features/notifications/NotifiableEventResolver.kt index 1cf80de4ee..ae5a8aec7d 100644 --- a/vector/src/main/java/im/vector/app/features/notifications/NotifiableEventResolver.kt +++ b/vector/src/main/java/im/vector/app/features/notifications/NotifiableEventResolver.kt @@ -65,9 +65,10 @@ class NotifiableEventResolver @Inject constructor( private val buildMeta: BuildMeta, ) { - // private val eventDisplay = RiotEventDisplay(context) + private val nonEncryptedNotifiableEventTypes: List = + listOf(EventType.MESSAGE) + EventType.POLL_START + EventType.STATE_ROOM_BEACON_INFO - suspend fun resolveEvent(event: Event/*, roomState: RoomState?, bingRule: PushRule?*/, session: Session, isNoisy: Boolean): NotifiableEvent? { + suspend fun resolveEvent(event: Event, session: Session, isNoisy: Boolean): NotifiableEvent? { val roomID = event.roomId ?: return null val eventId = event.eventId ?: return null if (event.getClearType() == EventType.STATE_ROOM_MEMBER) { @@ -75,7 +76,7 @@ class NotifiableEventResolver @Inject constructor( } val timelineEvent = session.getRoom(roomID)?.getTimelineEvent(eventId) ?: return null return when (event.getClearType()) { - EventType.MESSAGE, + in nonEncryptedNotifiableEventTypes, EventType.ENCRYPTED -> { resolveMessageEvent(timelineEvent, session, canBeReplaced = false, isNoisy = isNoisy) } @@ -161,9 +162,7 @@ class NotifiableEventResolver @Inject constructor( event.attemptToDecryptIfNeeded(session) // only convert encrypted messages to NotifiableMessageEvents when (event.root.getClearType()) { - EventType.MESSAGE, - in EventType.POLL_START, - in EventType.STATE_ROOM_BEACON_INFO -> { + in nonEncryptedNotifiableEventTypes -> { val body = displayableEventFormatter.format(event, isDm = room.roomSummary()?.isDirect.orFalse(), appendAuthor = false).toString() val roomName = room.roomSummary()?.displayName ?: "" val senderDisplayName = event.senderInfo.disambiguatedDisplayName