Fix API break

This commit is contained in:
Benoit Marty 2025-01-22 15:42:08 +01:00
parent e84a6adf7c
commit 9d6994bc99

View file

@ -76,6 +76,7 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.matrix.rustcomponents.sdk.AllowedMessageTypes
import org.matrix.rustcomponents.sdk.DateDividerMode import org.matrix.rustcomponents.sdk.DateDividerMode
import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener
import org.matrix.rustcomponents.sdk.KnockRequestsListener import org.matrix.rustcomponents.sdk.KnockRequestsListener
@ -83,6 +84,8 @@ import org.matrix.rustcomponents.sdk.RoomInfo
import org.matrix.rustcomponents.sdk.RoomInfoListener import org.matrix.rustcomponents.sdk.RoomInfoListener
import org.matrix.rustcomponents.sdk.RoomListItem import org.matrix.rustcomponents.sdk.RoomListItem
import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType
import org.matrix.rustcomponents.sdk.TimelineConfiguration
import org.matrix.rustcomponents.sdk.TimelineFocus
import org.matrix.rustcomponents.sdk.TypingNotificationsListener import org.matrix.rustcomponents.sdk.TypingNotificationsListener
import org.matrix.rustcomponents.sdk.UserPowerLevelUpdate import org.matrix.rustcomponents.sdk.UserPowerLevelUpdate
import org.matrix.rustcomponents.sdk.WidgetCapabilities import org.matrix.rustcomponents.sdk.WidgetCapabilities
@ -206,10 +209,16 @@ class RustMatrixRoom(
override suspend fun timelineFocusedOnEvent(eventId: EventId): Result<Timeline> = withContext(roomDispatcher) { override suspend fun timelineFocusedOnEvent(eventId: EventId): Result<Timeline> = withContext(roomDispatcher) {
runCatching { runCatching {
innerRoom.timelineFocusedOnEvent( innerRoom.timelineWithConfiguration(
eventId = eventId.value, configuration = TimelineConfiguration(
numContextEvents = 50u, focus = TimelineFocus.Event(
internalIdPrefix = "focus_$eventId", eventId = eventId.value,
numContextEvents = 50u,
),
allowedMessageTypes = AllowedMessageTypes.All,
internalIdPrefix = "focus_$eventId",
dateDividerMode = DateDividerMode.DAILY,
)
).let { inner -> ).let { inner ->
createTimeline(inner, mode = Timeline.Mode.FOCUSED_ON_EVENT) createTimeline(inner, mode = Timeline.Mode.FOCUSED_ON_EVENT)
} }
@ -224,10 +233,16 @@ class RustMatrixRoom(
override suspend fun pinnedEventsTimeline(): Result<Timeline> = withContext(roomDispatcher) { override suspend fun pinnedEventsTimeline(): Result<Timeline> = withContext(roomDispatcher) {
runCatching { runCatching {
innerRoom.pinnedEventsTimeline( innerRoom.timelineWithConfiguration(
internalIdPrefix = "pinned_events", configuration = TimelineConfiguration(
maxEventsToLoad = 100u, focus = TimelineFocus.PinnedEvents(
maxConcurrentRequests = 10u, maxEventsToLoad = 100u,
maxConcurrentRequests = 10u,
),
allowedMessageTypes = AllowedMessageTypes.All,
internalIdPrefix = "pinned_events",
dateDividerMode = DateDividerMode.DAILY,
)
).let { inner -> ).let { inner ->
createTimeline(inner, mode = Timeline.Mode.PINNED_EVENTS) createTimeline(inner, mode = Timeline.Mode.PINNED_EVENTS)
} }
@ -240,15 +255,20 @@ class RustMatrixRoom(
override suspend fun mediaTimeline(): Result<Timeline> = withContext(roomDispatcher) { override suspend fun mediaTimeline(): Result<Timeline> = withContext(roomDispatcher) {
runCatching { runCatching {
innerRoom.messageFilteredTimeline( innerRoom.timelineWithConfiguration(
internalIdPrefix = "MediaGallery_", configuration = TimelineConfiguration(
allowedMessageTypes = listOf( focus = TimelineFocus.Live,
RoomMessageEventMessageType.FILE, allowedMessageTypes = AllowedMessageTypes.Only(
RoomMessageEventMessageType.IMAGE, types = listOf(
RoomMessageEventMessageType.VIDEO, RoomMessageEventMessageType.FILE,
RoomMessageEventMessageType.AUDIO, RoomMessageEventMessageType.IMAGE,
), RoomMessageEventMessageType.VIDEO,
dateDividerMode = DateDividerMode.MONTHLY, RoomMessageEventMessageType.AUDIO,
)
),
internalIdPrefix = "MediaGallery_",
dateDividerMode = DateDividerMode.MONTHLY,
)
).let { inner -> ).let { inner ->
createTimeline(inner, mode = Timeline.Mode.MEDIA) createTimeline(inner, mode = Timeline.Mode.MEDIA)
} }