diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/livelocation/LiveLocationBeaconContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/livelocation/LiveLocationBeaconContent.kt index 022176b02d..a3faee0568 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/livelocation/LiveLocationBeaconContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/livelocation/LiveLocationBeaconContent.kt @@ -43,8 +43,7 @@ data class LiveLocationBeaconContent( /** * Client side tracking of the last location */ - @Transient - val lastLocationContent: MessageLiveLocationContent? = null + var lastLocationContent: MessageLiveLocationContent? = null ) { fun getBestBeaconInfo() = beaconInfo ?: unstableBeaconInfo diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt index ed7fc5b721..76e757d895 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/EventRelationsAggregationProcessor.kt @@ -552,7 +552,6 @@ internal class EventRelationsAggregationProcessor @Inject constructor( content: MessageLiveLocationContent, roomId: String, isLocalEcho: Boolean) { - val beaconInfoEventId = event.getRelationContent()?.eventId ?: return val locationSenderId = event.senderId ?: return // We shouldn't process local echos @@ -577,6 +576,10 @@ internal class EventRelationsAggregationProcessor @Inject constructor( Timber.v("## LIVE LOCATION. Beacon info content is invalid") return } + + // Update last location info of the beacon state event + beaconInfoContent.lastLocationContent = content + beaconInfoEntity.root?.content = ContentMapper.map(beaconInfoContent.toContent()) } private fun isBeaconInfoOutdated(beaconInfoContent: LiveLocationBeaconContent,