Permalink to a root thread message will navigate user within the thread timeline
This commit is contained in:
parent
ea9c9ae490
commit
0479049476
|
@ -0,0 +1 @@
|
||||||
|
Permalinks to root thread messages will now navigate you within the thread timeline
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue