Permalink to a root thread message will navigate user within the thread timeline

This commit is contained in:
ariskotsomitopoulos 2022-03-21 15:16:57 +02:00
parent ea9c9ae490
commit 0479049476
2 changed files with 9 additions and 1 deletions

1
changelog.d/5567.misc Normal file
View File

@ -0,0 +1 @@
Permalinks to root thread messages will now navigate you within the thread timeline

View File

@ -38,6 +38,7 @@ import org.matrix.android.sdk.api.session.permalinks.PermalinkService
import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.session.room.model.Membership
import org.matrix.android.sdk.api.session.room.model.RoomSummary import org.matrix.android.sdk.api.session.room.model.RoomSummary
import org.matrix.android.sdk.api.session.room.model.RoomType import org.matrix.android.sdk.api.session.room.model.RoomType
import org.matrix.android.sdk.api.session.room.timeline.isRootThread
import javax.inject.Inject import javax.inject.Inject
class PermalinkHandler @Inject constructor(private val activeSessionHolder: ActiveSessionHolder, class PermalinkHandler @Inject constructor(private val activeSessionHolder: ActiveSessionHolder,
@ -89,7 +90,13 @@ class PermalinkHandler @Inject constructor(private val activeSessionHolder: Acti
val rootThreadEventId = permalinkData.eventId?.let { eventId -> val rootThreadEventId = permalinkData.eventId?.let { eventId ->
val room = roomId?.let { session?.getRoom(it) } val room = roomId?.let { session?.getRoom(it) }
room?.getTimelineEvent(eventId)?.root?.getRootThreadEventId()
val rootThreadEventId = room?.getTimelineEvent(eventId)?.root?.getRootThreadEventId()
rootThreadEventId ?: if (room?.getTimelineEvent(eventId)?.isRootThread() == true) {
eventId
} else {
null
}
} }
openRoom( openRoom(
navigationInterceptor, navigationInterceptor,