Update dependency org.matrix.rustcomponents:sdk-android to v26.2.6 (#6144)
* Update dependency org.matrix.rustcomponents:sdk-android to v26.2.5 * Fix breaking API changes: - Add temporary imlementation for `RustClientSessionDelegate.onBackgroundTaskErrorReport`, logging unrecoverable errors in background tasks of the SDK. - Change `TimelineEventTypeFilter` to `TimelineEventFilter`. - Support new `LatestEventValue.RemoteInvite`. * Update the Rust SDK to `26.2.6` * Fix API changes: `TimelineFocus.PinnedEvents` no longer takes any arguments * Fix test fixtures: `NotificationItem` has a `rawEvent` field now --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jorge Martín <jorgem@element.io>
This commit is contained in:
parent
f7e08aa465
commit
82dd9a3f77
16 changed files with 52 additions and 33 deletions
|
|
@ -95,6 +95,7 @@ class RoomListRoomSummaryFactory(
|
||||||
content = content,
|
content = content,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
is LatestEventValue.RoomInvite -> LatestEvent.None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ test_detekt_test = { module = "io.gitlab.arturbosch.detekt:detekt-test", version
|
||||||
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
|
# https://github.com/matrix-org/matrix-rust-components-kotlin/commits/main/sdk/sdk-android/src/main/kotlin/org/matrix/rustcomponents/sdk/matrix_sdk_ffi.kt
|
||||||
# All new features should not be implemented in the pull request that upgrades the version, developers should
|
# All new features should not be implemented in the pull request that upgrades the version, developers should
|
||||||
# only fix API breaks and may add some TODOs.
|
# only fix API breaks and may add some TODOs.
|
||||||
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.1.27"
|
matrix_sdk = "org.matrix.rustcomponents:sdk-android:26.2.6"
|
||||||
|
|
||||||
# Others
|
# Others
|
||||||
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
|
coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" }
|
||||||
|
|
|
||||||
|
|
@ -28,4 +28,10 @@ sealed interface LatestEventValue {
|
||||||
val senderProfile: ProfileDetails,
|
val senderProfile: ProfileDetails,
|
||||||
val isSending: Boolean,
|
val isSending: Boolean,
|
||||||
) : LatestEventValue
|
) : LatestEventValue
|
||||||
|
|
||||||
|
data class RoomInvite(
|
||||||
|
val timestamp: Long,
|
||||||
|
val inviterId: UserId?,
|
||||||
|
val invitedProfile: ProfileDetails,
|
||||||
|
) : LatestEventValue
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ data class RoomSummary(
|
||||||
is LatestEventValue.None -> null
|
is LatestEventValue.None -> null
|
||||||
is LatestEventValue.Local -> latestEvent.timestamp
|
is LatestEventValue.Local -> latestEvent.timestamp
|
||||||
is LatestEventValue.Remote -> latestEvent.timestamp
|
is LatestEventValue.Remote -> latestEvent.timestamp
|
||||||
|
is LatestEventValue.RoomInvite -> latestEvent.timestamp
|
||||||
}
|
}
|
||||||
val isOneToOne get() = info.activeMembersCount == 2L
|
val isOneToOne get() = info.activeMembersCount == 2L
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import org.matrix.rustcomponents.sdk.ClientDelegate
|
||||||
import org.matrix.rustcomponents.sdk.ClientSessionDelegate
|
import org.matrix.rustcomponents.sdk.ClientSessionDelegate
|
||||||
import org.matrix.rustcomponents.sdk.Session
|
import org.matrix.rustcomponents.sdk.Session
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import uniffi.matrix_sdk_common.BackgroundTaskFailureReason
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
import java.util.concurrent.atomic.AtomicBoolean
|
import java.util.concurrent.atomic.AtomicBoolean
|
||||||
|
|
||||||
|
|
@ -120,6 +121,11 @@ class RustClientSessionDelegate(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onBackgroundTaskErrorReport(taskName: String, error: BackgroundTaskFailureReason) {
|
||||||
|
// TODO actually implement the missing logic to report to sentry and crash the app
|
||||||
|
Timber.tag(loggerTag.value).e("onBackgroundTaskErrorReport(taskName=$taskName, error=$error)")
|
||||||
|
}
|
||||||
|
|
||||||
override fun retrieveSessionFromKeychain(userId: String): Session {
|
override fun retrieveSessionFromKeychain(userId: String): Session {
|
||||||
// This should never be called, as it's only used for multi-process setups
|
// This should never be called, as it's only used for multi-process setups
|
||||||
error("retrieveSessionFromKeychain should never be called for Android")
|
error("retrieveSessionFromKeychain should never be called for Android")
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ import io.element.android.libraries.matrix.impl.room.RoomContentForwarder
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomInfoMapper
|
import io.element.android.libraries.matrix.impl.room.RoomInfoMapper
|
||||||
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
import io.element.android.libraries.matrix.impl.room.RoomSyncSubscriber
|
||||||
import io.element.android.libraries.matrix.impl.room.RustRoomFactory
|
import io.element.android.libraries.matrix.impl.room.RustRoomFactory
|
||||||
import io.element.android.libraries.matrix.impl.room.TimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.TimelineEventFilterFactory
|
||||||
import io.element.android.libraries.matrix.impl.room.history.map
|
import io.element.android.libraries.matrix.impl.room.history.map
|
||||||
import io.element.android.libraries.matrix.impl.room.join.map
|
import io.element.android.libraries.matrix.impl.room.join.map
|
||||||
import io.element.android.libraries.matrix.impl.room.preview.RoomPreviewInfoMapper
|
import io.element.android.libraries.matrix.impl.room.preview.RoomPreviewInfoMapper
|
||||||
|
|
@ -141,7 +141,7 @@ class RustMatrixClient(
|
||||||
dispatchers: CoroutineDispatchers,
|
dispatchers: CoroutineDispatchers,
|
||||||
baseCacheDirectory: File,
|
baseCacheDirectory: File,
|
||||||
clock: SystemClock,
|
clock: SystemClock,
|
||||||
timelineEventTypeFilterFactory: TimelineEventTypeFilterFactory,
|
timelineEventFilterFactory: TimelineEventFilterFactory,
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
private val analyticsService: AnalyticsService,
|
private val analyticsService: AnalyticsService,
|
||||||
private val workManagerScheduler: WorkManagerScheduler,
|
private val workManagerScheduler: WorkManagerScheduler,
|
||||||
|
|
@ -225,7 +225,7 @@ class RustMatrixClient(
|
||||||
systemClock = clock,
|
systemClock = clock,
|
||||||
roomContentForwarder = RoomContentForwarder(innerRoomListService),
|
roomContentForwarder = RoomContentForwarder(innerRoomListService),
|
||||||
roomSyncSubscriber = roomSyncSubscriber,
|
roomSyncSubscriber = roomSyncSubscriber,
|
||||||
timelineEventTypeFilterFactory = timelineEventTypeFilterFactory,
|
timelineEventFilterFactory = timelineEventFilterFactory,
|
||||||
roomMembershipObserver = roomMembershipObserver,
|
roomMembershipObserver = roomMembershipObserver,
|
||||||
roomInfoMapper = roomInfoMapper,
|
roomInfoMapper = roomInfoMapper,
|
||||||
featureFlagService = featureFlagService,
|
featureFlagService = featureFlagService,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import io.element.android.libraries.matrix.impl.certificates.UserCertificatesPro
|
||||||
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
import io.element.android.libraries.matrix.impl.paths.SessionPaths
|
||||||
import io.element.android.libraries.matrix.impl.paths.getSessionPaths
|
import io.element.android.libraries.matrix.impl.paths.getSessionPaths
|
||||||
import io.element.android.libraries.matrix.impl.proxy.ProxyProvider
|
import io.element.android.libraries.matrix.impl.proxy.ProxyProvider
|
||||||
import io.element.android.libraries.matrix.impl.room.TimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.TimelineEventFilterFactory
|
||||||
import io.element.android.libraries.matrix.impl.storage.SqliteStoreBuilderProvider
|
import io.element.android.libraries.matrix.impl.storage.SqliteStoreBuilderProvider
|
||||||
import io.element.android.libraries.matrix.impl.util.anonymizedTokens
|
import io.element.android.libraries.matrix.impl.util.anonymizedTokens
|
||||||
import io.element.android.libraries.network.useragent.UserAgentProvider
|
import io.element.android.libraries.network.useragent.UserAgentProvider
|
||||||
|
|
@ -61,7 +61,7 @@ class RustMatrixClientFactory(
|
||||||
private val clock: SystemClock,
|
private val clock: SystemClock,
|
||||||
private val analyticsService: AnalyticsService,
|
private val analyticsService: AnalyticsService,
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
private val timelineEventTypeFilterFactory: TimelineEventTypeFilterFactory,
|
private val timelineEventFilterFactory: TimelineEventFilterFactory,
|
||||||
private val clientBuilderProvider: ClientBuilderProvider,
|
private val clientBuilderProvider: ClientBuilderProvider,
|
||||||
private val sqliteStoreBuilderProvider: SqliteStoreBuilderProvider,
|
private val sqliteStoreBuilderProvider: SqliteStoreBuilderProvider,
|
||||||
private val workManagerScheduler: WorkManagerScheduler,
|
private val workManagerScheduler: WorkManagerScheduler,
|
||||||
|
|
@ -115,7 +115,7 @@ class RustMatrixClientFactory(
|
||||||
dispatchers = coroutineDispatchers,
|
dispatchers = coroutineDispatchers,
|
||||||
baseCacheDirectory = cacheDirectory,
|
baseCacheDirectory = cacheDirectory,
|
||||||
clock = clock,
|
clock = clock,
|
||||||
timelineEventTypeFilterFactory = timelineEventTypeFilterFactory,
|
timelineEventFilterFactory = timelineEventFilterFactory,
|
||||||
featureFlagService = featureFlagService,
|
featureFlagService = featureFlagService,
|
||||||
analyticsService = analyticsService,
|
analyticsService = analyticsService,
|
||||||
workManagerScheduler = workManagerScheduler,
|
workManagerScheduler = workManagerScheduler,
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ import org.matrix.rustcomponents.sdk.getElementCallRequiredPermissions
|
||||||
import org.matrix.rustcomponents.sdk.use
|
import org.matrix.rustcomponents.sdk.use
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import uniffi.matrix_sdk.RoomPowerLevelChanges
|
import uniffi.matrix_sdk.RoomPowerLevelChanges
|
||||||
|
import uniffi.matrix_sdk_ui.TimelineEventFocusThreadMode
|
||||||
import uniffi.matrix_sdk_ui.TimelineReadReceiptTracking
|
import uniffi.matrix_sdk_ui.TimelineReadReceiptTracking
|
||||||
import kotlin.coroutines.cancellation.CancellationException
|
import kotlin.coroutines.cancellation.CancellationException
|
||||||
import org.matrix.rustcomponents.sdk.IdentityStatusChange as RustIdentityStateChange
|
import org.matrix.rustcomponents.sdk.IdentityStatusChange as RustIdentityStateChange
|
||||||
|
|
@ -177,21 +178,18 @@ class JoinedRustRoom(
|
||||||
): Result<Timeline> = withContext(roomDispatcher) {
|
): Result<Timeline> = withContext(roomDispatcher) {
|
||||||
val hideThreadedEvents = featureFlagService.isFeatureEnabled(FeatureFlags.Threads)
|
val hideThreadedEvents = featureFlagService.isFeatureEnabled(FeatureFlags.Threads)
|
||||||
val focus = when (createTimelineParams) {
|
val focus = when (createTimelineParams) {
|
||||||
is CreateTimelineParams.PinnedOnly -> TimelineFocus.PinnedEvents(
|
is CreateTimelineParams.PinnedOnly -> TimelineFocus.PinnedEvents
|
||||||
maxEventsToLoad = 100u,
|
|
||||||
maxConcurrentRequests = 10u,
|
|
||||||
)
|
|
||||||
is CreateTimelineParams.MediaOnly -> TimelineFocus.Live(hideThreadedEvents = hideThreadedEvents)
|
is CreateTimelineParams.MediaOnly -> TimelineFocus.Live(hideThreadedEvents = hideThreadedEvents)
|
||||||
is CreateTimelineParams.Focused -> TimelineFocus.Event(
|
is CreateTimelineParams.Focused -> TimelineFocus.Event(
|
||||||
eventId = createTimelineParams.focusedEventId.value,
|
eventId = createTimelineParams.focusedEventId.value,
|
||||||
numContextEvents = 50u,
|
numContextEvents = 50u,
|
||||||
hideThreadedEvents = hideThreadedEvents,
|
threadMode = TimelineEventFocusThreadMode.Automatic(hideThreadedEvents),
|
||||||
)
|
)
|
||||||
is CreateTimelineParams.MediaOnlyFocused -> TimelineFocus.Event(
|
is CreateTimelineParams.MediaOnlyFocused -> TimelineFocus.Event(
|
||||||
eventId = createTimelineParams.focusedEventId.value,
|
eventId = createTimelineParams.focusedEventId.value,
|
||||||
numContextEvents = 50u,
|
numContextEvents = 50u,
|
||||||
// Never hide threaded events in media focused timeline
|
// Never hide threaded events in media focused timeline
|
||||||
hideThreadedEvents = false,
|
threadMode = TimelineEventFocusThreadMode.Automatic(false),
|
||||||
)
|
)
|
||||||
is CreateTimelineParams.Threaded -> TimelineFocus.Thread(
|
is CreateTimelineParams.Threaded -> TimelineFocus.Thread(
|
||||||
rootEventId = createTimelineParams.threadRootEventId.value,
|
rootEventId = createTimelineParams.threadRootEventId.value,
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class RustRoomFactory(
|
||||||
private val roomListService: RoomListService,
|
private val roomListService: RoomListService,
|
||||||
private val innerRoomListService: InnerRoomListService,
|
private val innerRoomListService: InnerRoomListService,
|
||||||
private val roomSyncSubscriber: RoomSyncSubscriber,
|
private val roomSyncSubscriber: RoomSyncSubscriber,
|
||||||
private val timelineEventTypeFilterFactory: TimelineEventTypeFilterFactory,
|
private val timelineEventFilterFactory: TimelineEventFilterFactory,
|
||||||
private val featureFlagService: FeatureFlagService,
|
private val featureFlagService: FeatureFlagService,
|
||||||
private val roomMembershipObserver: RoomMembershipObserver,
|
private val roomMembershipObserver: RoomMembershipObserver,
|
||||||
private val roomInfoMapper: RoomInfoMapper,
|
private val roomInfoMapper: RoomInfoMapper,
|
||||||
|
|
@ -70,7 +70,7 @@ class RustRoomFactory(
|
||||||
private val eventFilters = TimelineConfig.excludedEvents
|
private val eventFilters = TimelineConfig.excludedEvents
|
||||||
.takeIf { it.isNotEmpty() }
|
.takeIf { it.isNotEmpty() }
|
||||||
?.let { listStateEventType ->
|
?.let { listStateEventType ->
|
||||||
timelineEventTypeFilterFactory.create(listStateEventType)
|
timelineEventFilterFactory.create(listStateEventType)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun destroy() {
|
suspend fun destroy() {
|
||||||
|
|
@ -133,7 +133,7 @@ class RustRoomFactory(
|
||||||
sdkRoom.timelineWithConfiguration(
|
sdkRoom.timelineWithConfiguration(
|
||||||
TimelineConfiguration(
|
TimelineConfiguration(
|
||||||
focus = TimelineFocus.Live(hideThreadedEvents = hideThreadedEvents),
|
focus = TimelineFocus.Live(hideThreadedEvents = hideThreadedEvents),
|
||||||
filter = eventFilters?.let(TimelineFilter::EventTypeFilter) ?: TimelineFilter.All,
|
filter = eventFilters?.let(TimelineFilter::EventFilter) ?: TimelineFilter.All,
|
||||||
internalIdPrefix = "live",
|
internalIdPrefix = "live",
|
||||||
dateDividerMode = DateDividerMode.DAILY,
|
dateDividerMode = DateDividerMode.DAILY,
|
||||||
trackReadReceipts = TimelineReadReceiptTracking.ALL_EVENTS,
|
trackReadReceipts = TimelineReadReceiptTracking.ALL_EVENTS,
|
||||||
|
|
|
||||||
|
|
@ -12,16 +12,16 @@ import dev.zacsweers.metro.AppScope
|
||||||
import dev.zacsweers.metro.ContributesBinding
|
import dev.zacsweers.metro.ContributesBinding
|
||||||
import io.element.android.libraries.matrix.api.room.StateEventType
|
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||||
import org.matrix.rustcomponents.sdk.FilterTimelineEventType
|
import org.matrix.rustcomponents.sdk.FilterTimelineEventType
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventFilter
|
||||||
|
|
||||||
interface TimelineEventTypeFilterFactory {
|
interface TimelineEventFilterFactory {
|
||||||
fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter
|
fun create(listStateEventType: List<StateEventType>): TimelineEventFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
@ContributesBinding(AppScope::class)
|
@ContributesBinding(AppScope::class)
|
||||||
class RustTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
|
class RustTimelineEventFilterFactory : TimelineEventFilterFactory {
|
||||||
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
|
override fun create(listStateEventType: List<StateEventType>): TimelineEventFilter {
|
||||||
return TimelineEventTypeFilter.exclude(
|
return TimelineEventFilter.excludeEventTypes(
|
||||||
listStateEventType.map { stateEventType ->
|
listStateEventType.map { stateEventType ->
|
||||||
FilterTimelineEventType.State(stateEventType.map())
|
FilterTimelineEventType.State(stateEventType.map())
|
||||||
}
|
}
|
||||||
|
|
@ -53,6 +53,11 @@ class RoomSummaryFactory(
|
||||||
senderProfile = event.profile.map(),
|
senderProfile = event.profile.map(),
|
||||||
isOwn = event.isOwn,
|
isOwn = event.isOwn,
|
||||||
)
|
)
|
||||||
|
is RustLatestEventValue.RemoteInvite -> LatestEventValue.RoomInvite(
|
||||||
|
timestamp = event.timestamp.toLong(),
|
||||||
|
inviterId = event.inviter?.let(::UserId),
|
||||||
|
invitedProfile = event.inviterProfile.map(),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return RoomSummary(
|
return RoomSummary(
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
||||||
import io.element.android.libraries.matrix.api.core.SessionId
|
import io.element.android.libraries.matrix.api.core.SessionId
|
||||||
import io.element.android.libraries.matrix.impl.auth.FakeProxyProvider
|
import io.element.android.libraries.matrix.impl.auth.FakeProxyProvider
|
||||||
import io.element.android.libraries.matrix.impl.auth.FakeUserCertificatesProvider
|
import io.element.android.libraries.matrix.impl.auth.FakeUserCertificatesProvider
|
||||||
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventFilterFactory
|
||||||
import io.element.android.libraries.matrix.impl.storage.FakeSqliteStoreBuilderProvider
|
import io.element.android.libraries.matrix.impl.storage.FakeSqliteStoreBuilderProvider
|
||||||
import io.element.android.libraries.network.useragent.SimpleUserAgentProvider
|
import io.element.android.libraries.network.useragent.SimpleUserAgentProvider
|
||||||
import io.element.android.libraries.sessionstorage.api.SessionStore
|
import io.element.android.libraries.sessionstorage.api.SessionStore
|
||||||
|
|
@ -63,7 +63,7 @@ fun TestScope.createRustMatrixClientFactory(
|
||||||
clock = FakeSystemClock(),
|
clock = FakeSystemClock(),
|
||||||
analyticsService = FakeAnalyticsService(),
|
analyticsService = FakeAnalyticsService(),
|
||||||
featureFlagService = FakeFeatureFlagService(),
|
featureFlagService = FakeFeatureFlagService(),
|
||||||
timelineEventTypeFilterFactory = FakeTimelineEventTypeFilterFactory(),
|
timelineEventFilterFactory = FakeTimelineEventFilterFactory(),
|
||||||
clientBuilderProvider = clientBuilderProvider,
|
clientBuilderProvider = clientBuilderProvider,
|
||||||
sqliteStoreBuilderProvider = FakeSqliteStoreBuilderProvider(),
|
sqliteStoreBuilderProvider = FakeSqliteStoreBuilderProvider(),
|
||||||
workManagerScheduler = workManagerScheduler,
|
workManagerScheduler = workManagerScheduler,
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ import io.element.android.libraries.core.data.bytes
|
||||||
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiClient
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiSyncService
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiSyncService
|
||||||
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventTypeFilterFactory
|
import io.element.android.libraries.matrix.impl.room.FakeTimelineEventFilterFactory
|
||||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||||
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
import io.element.android.libraries.matrix.test.A_DEVICE_ID
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
|
|
@ -150,7 +150,7 @@ class RustMatrixClientTest {
|
||||||
dispatchers = testCoroutineDispatchers(),
|
dispatchers = testCoroutineDispatchers(),
|
||||||
baseCacheDirectory = File(""),
|
baseCacheDirectory = File(""),
|
||||||
clock = FakeSystemClock(),
|
clock = FakeSystemClock(),
|
||||||
timelineEventTypeFilterFactory = FakeTimelineEventTypeFilterFactory(),
|
timelineEventFilterFactory = FakeTimelineEventFilterFactory(),
|
||||||
featureFlagService = FakeFeatureFlagService(),
|
featureFlagService = FakeFeatureFlagService(),
|
||||||
analyticsService = FakeAnalyticsService(),
|
analyticsService = FakeAnalyticsService(),
|
||||||
workManagerScheduler = FakeWorkManagerScheduler(submitLambda = {}),
|
workManagerScheduler = FakeWorkManagerScheduler(submitLambda = {}),
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ internal fun aRustNotificationItem(
|
||||||
hasMention: Boolean? = false,
|
hasMention: Boolean? = false,
|
||||||
threadId: ThreadId? = null,
|
threadId: ThreadId? = null,
|
||||||
actions: List<Action>? = null,
|
actions: List<Action>? = null,
|
||||||
|
rawEvent: String = "",
|
||||||
) = NotificationItem(
|
) = NotificationItem(
|
||||||
event = event,
|
event = event,
|
||||||
senderInfo = senderInfo,
|
senderInfo = senderInfo,
|
||||||
|
|
@ -38,6 +39,7 @@ internal fun aRustNotificationItem(
|
||||||
hasMention = hasMention,
|
hasMention = hasMention,
|
||||||
threadId = threadId?.value,
|
threadId = threadId?.value,
|
||||||
actions = actions,
|
actions = actions,
|
||||||
|
rawEvent = rawEvent,
|
||||||
)
|
)
|
||||||
|
|
||||||
internal fun aRustBatchNotificationResultOk(
|
internal fun aRustBatchNotificationResultOk(
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@
|
||||||
package io.element.android.libraries.matrix.impl.fixtures.fakes
|
package io.element.android.libraries.matrix.impl.fixtures.fakes
|
||||||
|
|
||||||
import org.matrix.rustcomponents.sdk.NoHandle
|
import org.matrix.rustcomponents.sdk.NoHandle
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventFilter
|
||||||
|
|
||||||
class FakeFfiTimelineEventTypeFilter : TimelineEventTypeFilter(NoHandle)
|
class FakeFfiTimelineEventFilter : TimelineEventFilter(NoHandle)
|
||||||
|
|
@ -9,11 +9,11 @@
|
||||||
package io.element.android.libraries.matrix.impl.room
|
package io.element.android.libraries.matrix.impl.room
|
||||||
|
|
||||||
import io.element.android.libraries.matrix.api.room.StateEventType
|
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineEventTypeFilter
|
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineEventFilter
|
||||||
import org.matrix.rustcomponents.sdk.TimelineEventTypeFilter
|
import org.matrix.rustcomponents.sdk.TimelineEventFilter
|
||||||
|
|
||||||
class FakeTimelineEventTypeFilterFactory : TimelineEventTypeFilterFactory {
|
class FakeTimelineEventFilterFactory : TimelineEventFilterFactory {
|
||||||
override fun create(listStateEventType: List<StateEventType>): TimelineEventTypeFilter {
|
override fun create(listStateEventType: List<StateEventType>): TimelineEventFilter {
|
||||||
return FakeFfiTimelineEventTypeFilter()
|
return FakeFfiTimelineEventFilter()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue