Merge branch 'develop' into feature/fga/space_members_access
This commit is contained in:
commit
0668135d0e
215 changed files with 2349 additions and 1664 deletions
|
|
@ -26,6 +26,7 @@ import io.element.android.libraries.matrix.api.room.CreateTimelineParams
|
|||
import io.element.android.libraries.matrix.api.room.IntentionalMention
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.RoomNotificationSettingsState
|
||||
import io.element.android.libraries.matrix.api.room.SendQueueUpdate
|
||||
import io.element.android.libraries.matrix.api.room.history.RoomHistoryVisibility
|
||||
import io.element.android.libraries.matrix.api.room.join.JoinRule
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
|
|
@ -66,6 +67,8 @@ import org.matrix.rustcomponents.sdk.DateDividerMode
|
|||
import org.matrix.rustcomponents.sdk.IdentityStatusChangeListener
|
||||
import org.matrix.rustcomponents.sdk.KnockRequestsListener
|
||||
import org.matrix.rustcomponents.sdk.RoomMessageEventMessageType
|
||||
import org.matrix.rustcomponents.sdk.RoomSendQueueUpdate
|
||||
import org.matrix.rustcomponents.sdk.SendQueueListener
|
||||
import org.matrix.rustcomponents.sdk.TimelineConfiguration
|
||||
import org.matrix.rustcomponents.sdk.TimelineFilter
|
||||
import org.matrix.rustcomponents.sdk.TimelineFocus
|
||||
|
|
@ -486,6 +489,16 @@ class JoinedRustRoom(
|
|||
}
|
||||
}
|
||||
|
||||
override fun subscribeToSendQueueUpdates(): Flow<SendQueueUpdate> {
|
||||
return mxCallbackFlow {
|
||||
innerRoom.subscribeToSendQueueUpdates(object : SendQueueListener {
|
||||
override fun onUpdate(update: RoomSendQueueUpdate) {
|
||||
trySend(update.map())
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override fun close() = destroy()
|
||||
|
||||
override fun destroy() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (c) 2025 Element Creations Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.libraries.matrix.impl.room
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.TransactionId
|
||||
import io.element.android.libraries.matrix.api.room.SendQueueUpdate
|
||||
import io.element.android.libraries.matrix.impl.media.map
|
||||
import org.matrix.rustcomponents.sdk.RoomSendQueueUpdate
|
||||
|
||||
fun RoomSendQueueUpdate.map(): SendQueueUpdate = when (this) {
|
||||
is RoomSendQueueUpdate.NewLocalEvent -> SendQueueUpdate.NewLocalEvent(TransactionId(transactionId))
|
||||
is RoomSendQueueUpdate.CancelledLocalEvent -> SendQueueUpdate.CancelledLocalEvent(TransactionId(transactionId))
|
||||
is RoomSendQueueUpdate.MediaUpload -> SendQueueUpdate.MediaUpload(
|
||||
relatedTo = EventId(relatedTo),
|
||||
file = file?.map(),
|
||||
index = index.toLong(),
|
||||
progress = progress.current.toFloat() / progress.total.toFloat(),
|
||||
)
|
||||
is RoomSendQueueUpdate.ReplacedLocalEvent -> SendQueueUpdate.ReplacedLocalEvent(TransactionId(transactionId))
|
||||
is RoomSendQueueUpdate.RetryEvent -> SendQueueUpdate.RetrySendingEvent(TransactionId(transactionId))
|
||||
is RoomSendQueueUpdate.SendError -> SendQueueUpdate.SendError(TransactionId(transactionId))
|
||||
is RoomSendQueueUpdate.SentEvent -> SendQueueUpdate.SentEvent(TransactionId(transactionId), EventId(eventId))
|
||||
}
|
||||
|
|
@ -30,7 +30,7 @@ import org.matrix.rustcomponents.sdk.QueueWedgeError
|
|||
import org.matrix.rustcomponents.sdk.Reaction
|
||||
import org.matrix.rustcomponents.sdk.ShieldState
|
||||
import org.matrix.rustcomponents.sdk.TimelineItemContent
|
||||
import uniffi.matrix_sdk_common.ShieldStateCode
|
||||
import uniffi.matrix_sdk_ui.TimelineEventShieldStateCode
|
||||
import org.matrix.rustcomponents.sdk.EventSendState as RustEventSendState
|
||||
import org.matrix.rustcomponents.sdk.EventTimelineItem as RustEventTimelineItem
|
||||
import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo as RustEventTimelineItemDebugInfo
|
||||
|
|
@ -58,7 +58,7 @@ class EventTimelineItemMapper(
|
|||
content = contentMapper.map(content),
|
||||
origin = origin?.map(),
|
||||
timelineItemDebugInfoProvider = { lazyProvider.debugInfo().map() },
|
||||
messageShieldProvider = { strict -> lazyProvider.getShields(strict)?.map() },
|
||||
messageShieldProvider = { strict -> lazyProvider.getShields(strict).map() },
|
||||
sendHandleProvider = { lazyProvider.getSendHandle()?.let(::RustSendHandle) }
|
||||
)
|
||||
}
|
||||
|
|
@ -182,13 +182,13 @@ private fun ShieldState?.map(): MessageShield? {
|
|||
is ShieldState.Red -> true
|
||||
}
|
||||
return when (shieldStateCode) {
|
||||
ShieldStateCode.AUTHENTICITY_NOT_GUARANTEED -> MessageShield.AuthenticityNotGuaranteed(isCritical)
|
||||
ShieldStateCode.UNKNOWN_DEVICE -> MessageShield.UnknownDevice(isCritical)
|
||||
ShieldStateCode.UNSIGNED_DEVICE -> MessageShield.UnsignedDevice(isCritical)
|
||||
ShieldStateCode.UNVERIFIED_IDENTITY -> MessageShield.UnverifiedIdentity(isCritical)
|
||||
ShieldStateCode.SENT_IN_CLEAR -> MessageShield.SentInClear(isCritical)
|
||||
ShieldStateCode.VERIFICATION_VIOLATION -> MessageShield.VerificationViolation(isCritical)
|
||||
ShieldStateCode.MISMATCHED_SENDER -> MessageShield.MismatchedSender(isCritical)
|
||||
TimelineEventShieldStateCode.AUTHENTICITY_NOT_GUARANTEED -> MessageShield.AuthenticityNotGuaranteed(isCritical)
|
||||
TimelineEventShieldStateCode.UNKNOWN_DEVICE -> MessageShield.UnknownDevice(isCritical)
|
||||
TimelineEventShieldStateCode.UNSIGNED_DEVICE -> MessageShield.UnsignedDevice(isCritical)
|
||||
TimelineEventShieldStateCode.UNVERIFIED_IDENTITY -> MessageShield.UnverifiedIdentity(isCritical)
|
||||
TimelineEventShieldStateCode.SENT_IN_CLEAR -> MessageShield.SentInClear(isCritical)
|
||||
TimelineEventShieldStateCode.VERIFICATION_VIOLATION -> MessageShield.VerificationViolation(isCritical)
|
||||
TimelineEventShieldStateCode.MISMATCHED_SENDER -> MessageShield.MismatchedSender(isCritical)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,8 @@ class RustSessionVerificationService(
|
|||
// Listen for changes in verification status and update accordingly
|
||||
private val verificationStateListenerTaskHandle = encryptionService.verificationStateListener(object : VerificationStateListener {
|
||||
override fun onUpdate(status: VerificationState) {
|
||||
if (!isInitialized.get()) {
|
||||
// If the status is verified, just use it. It can't be a false positive like unknown or unverified
|
||||
if (!isInitialized.get() && status != VerificationState.VERIFIED) {
|
||||
Timber.d("Discarding new verifications state: $status. E2EE is not initialised yet")
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,22 +21,24 @@ import org.matrix.rustcomponents.sdk.ShieldState
|
|||
import org.matrix.rustcomponents.sdk.TimelineItemContent
|
||||
import uniffi.matrix_sdk_ui.EventItemOrigin
|
||||
|
||||
fun aRustEventTimelineItem(
|
||||
internal fun aRustEventTimelineItem(
|
||||
isRemote: Boolean = true,
|
||||
eventOrTransactionId: EventOrTransactionId = EventOrTransactionId.EventId(AN_EVENT_ID.value),
|
||||
sender: String = A_USER_ID.value,
|
||||
senderProfile: ProfileDetails = ProfileDetails.Unavailable,
|
||||
isOwn: Boolean = true,
|
||||
isEditable: Boolean = true,
|
||||
content: TimelineItemContent = aRustTimelineItemMessageContent(),
|
||||
content: TimelineItemContent = aRustTimelineItemContentMsgLike(),
|
||||
timestamp: ULong = 0uL,
|
||||
debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(),
|
||||
localSendState: EventSendState? = null,
|
||||
readReceipts: Map<String, Receipt> = emptyMap(),
|
||||
origin: EventItemOrigin? = EventItemOrigin.SYNC,
|
||||
canBeRepliedTo: Boolean = true,
|
||||
shieldsState: ShieldState? = null,
|
||||
shieldsState: ShieldState = ShieldState.None,
|
||||
localCreatedAt: ULong? = null,
|
||||
forwarder: String? = null,
|
||||
forwarderProfile: ProfileDetails? = null,
|
||||
) = EventTimelineItem(
|
||||
isRemote = isRemote,
|
||||
eventOrTransactionId = eventOrTransactionId,
|
||||
|
|
@ -54,5 +56,7 @@ fun aRustEventTimelineItem(
|
|||
lazyProvider = FakeFfiLazyTimelineItemProvider(
|
||||
debugInfo = debugInfo,
|
||||
shieldsState = shieldsState,
|
||||
)
|
||||
),
|
||||
forwarder = forwarder,
|
||||
forwarderProfile = forwarderProfile,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ package io.element.android.libraries.matrix.impl.fixtures.factories
|
|||
|
||||
import org.matrix.rustcomponents.sdk.EventTimelineItemDebugInfo
|
||||
|
||||
fun anEventTimelineItemDebugInfo(
|
||||
internal fun anEventTimelineItemDebugInfo(
|
||||
model: String = "model",
|
||||
originalJson: String? = null,
|
||||
latestEditJson: String? = null,
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiTimelineEv
|
|||
import io.element.android.libraries.matrix.test.A_ROOM_NAME
|
||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||
import org.matrix.rustcomponents.sdk.Action
|
||||
import org.matrix.rustcomponents.sdk.BatchNotificationResult
|
||||
import org.matrix.rustcomponents.sdk.JoinRule
|
||||
import org.matrix.rustcomponents.sdk.NotificationEvent
|
||||
import org.matrix.rustcomponents.sdk.NotificationItem
|
||||
|
|
@ -21,7 +22,7 @@ import org.matrix.rustcomponents.sdk.NotificationSenderInfo
|
|||
import org.matrix.rustcomponents.sdk.NotificationStatus
|
||||
import org.matrix.rustcomponents.sdk.TimelineEvent
|
||||
|
||||
fun aRustNotificationItem(
|
||||
internal fun aRustNotificationItem(
|
||||
event: NotificationEvent = aRustNotificationEventTimeline(),
|
||||
senderInfo: NotificationSenderInfo = aRustNotificationSenderInfo(),
|
||||
roomInfo: NotificationRoomInfo = aRustNotificationRoomInfo(),
|
||||
|
|
@ -39,13 +40,13 @@ fun aRustNotificationItem(
|
|||
actions = actions,
|
||||
)
|
||||
|
||||
fun aRustBatchNotificationResult(
|
||||
internal fun aRustBatchNotificationResultOk(
|
||||
notificationStatus: NotificationStatus = NotificationStatus.Event(aRustNotificationItem()),
|
||||
) = org.matrix.rustcomponents.sdk.BatchNotificationResult.Ok(
|
||||
) = BatchNotificationResult.Ok(
|
||||
status = notificationStatus,
|
||||
)
|
||||
|
||||
fun aRustNotificationSenderInfo(
|
||||
internal fun aRustNotificationSenderInfo(
|
||||
displayName: String? = A_USER_NAME,
|
||||
avatarUrl: String? = null,
|
||||
isNameAmbiguous: Boolean = false,
|
||||
|
|
@ -55,7 +56,7 @@ fun aRustNotificationSenderInfo(
|
|||
isNameAmbiguous = isNameAmbiguous,
|
||||
)
|
||||
|
||||
fun aRustNotificationRoomInfo(
|
||||
internal fun aRustNotificationRoomInfo(
|
||||
displayName: String = A_ROOM_NAME,
|
||||
avatarUrl: String? = null,
|
||||
canonicalAlias: String? = null,
|
||||
|
|
@ -77,7 +78,7 @@ fun aRustNotificationRoomInfo(
|
|||
isSpace = isSpace,
|
||||
)
|
||||
|
||||
fun aRustNotificationEventTimeline(
|
||||
internal fun aRustNotificationEventTimeline(
|
||||
event: TimelineEvent = FakeFfiTimelineEvent(),
|
||||
) = NotificationEvent.Timeline(
|
||||
event = event,
|
||||
|
|
|
|||
|
|
@ -22,15 +22,13 @@ internal fun aRustRoomDescription(
|
|||
joinRule: PublicRoomJoinRule = PublicRoomJoinRule.PUBLIC,
|
||||
isWorldReadable: Boolean = true,
|
||||
joinedMembers: ULong = 2u,
|
||||
): RoomDescription {
|
||||
return RoomDescription(
|
||||
roomId = roomId,
|
||||
name = name,
|
||||
topic = topic,
|
||||
alias = alias,
|
||||
avatarUrl = avatarUrl,
|
||||
joinRule = joinRule,
|
||||
isWorldReadable = isWorldReadable,
|
||||
joinedMembers = joinedMembers,
|
||||
)
|
||||
}
|
||||
) = RoomDescription(
|
||||
roomId = roomId,
|
||||
name = name,
|
||||
topic = topic,
|
||||
alias = alias,
|
||||
avatarUrl = avatarUrl,
|
||||
joinRule = joinRule,
|
||||
isWorldReadable = isWorldReadable,
|
||||
joinedMembers = joinedMembers,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -14,10 +14,8 @@ import org.matrix.rustcomponents.sdk.RoomHero
|
|||
|
||||
internal fun aRustRoomHero(
|
||||
userId: UserId = A_USER_ID,
|
||||
): RoomHero {
|
||||
return RoomHero(
|
||||
userId = userId.value,
|
||||
displayName = "displayName",
|
||||
avatarUrl = "avatarUrl",
|
||||
)
|
||||
}
|
||||
) = RoomHero(
|
||||
userId = userId.value,
|
||||
displayName = "displayName",
|
||||
avatarUrl = "avatarUrl",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import org.matrix.rustcomponents.sdk.RoomPowerLevels
|
|||
import org.matrix.rustcomponents.sdk.SuccessorRoom
|
||||
import uniffi.matrix_sdk_base.EncryptionState
|
||||
|
||||
fun aRustRoomInfo(
|
||||
internal fun aRustRoomInfo(
|
||||
id: String = A_ROOM_ID.value,
|
||||
displayName: String? = A_ROOM_NAME,
|
||||
rawName: String? = A_ROOM_NAME,
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import org.matrix.rustcomponents.sdk.PowerLevel
|
|||
import org.matrix.rustcomponents.sdk.RoomMember
|
||||
import uniffi.matrix_sdk.RoomMemberRole
|
||||
|
||||
fun aRustRoomMember(
|
||||
internal fun aRustRoomMember(
|
||||
userId: UserId,
|
||||
displayName: String? = null,
|
||||
avatarUrl: String? = null,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ package io.element.android.libraries.matrix.impl.fixtures.factories
|
|||
import org.matrix.rustcomponents.sdk.RoomNotificationMode
|
||||
import org.matrix.rustcomponents.sdk.RoomNotificationSettings
|
||||
|
||||
fun aRustRoomNotificationSettings(
|
||||
internal fun aRustRoomNotificationSettings(
|
||||
mode: RoomNotificationMode = RoomNotificationMode.ALL_MESSAGES,
|
||||
isDefault: Boolean = true,
|
||||
) = RoomNotificationSettings(
|
||||
|
|
|
|||
|
|
@ -19,20 +19,18 @@ internal fun aRustRoomPreviewInfo(
|
|||
canonicalAlias: String? = A_ROOM_ALIAS.value,
|
||||
membership: Membership? = Membership.JOINED,
|
||||
joinRule: JoinRule = JoinRule.Public,
|
||||
): RoomPreviewInfo {
|
||||
return RoomPreviewInfo(
|
||||
roomId = A_ROOM_ID.value,
|
||||
canonicalAlias = canonicalAlias,
|
||||
name = "name",
|
||||
topic = "topic",
|
||||
avatarUrl = "avatarUrl",
|
||||
numJoinedMembers = 1u,
|
||||
numActiveMembers = 1u,
|
||||
isDirect = false,
|
||||
roomType = RoomType.Room,
|
||||
isHistoryWorldReadable = true,
|
||||
membership = membership,
|
||||
joinRule = joinRule,
|
||||
heroes = null,
|
||||
)
|
||||
}
|
||||
) = RoomPreviewInfo(
|
||||
roomId = A_ROOM_ID.value,
|
||||
canonicalAlias = canonicalAlias,
|
||||
name = "name",
|
||||
topic = "topic",
|
||||
avatarUrl = "avatarUrl",
|
||||
numJoinedMembers = 1u,
|
||||
numActiveMembers = 1u,
|
||||
isDirect = false,
|
||||
roomType = RoomType.Room,
|
||||
isHistoryWorldReadable = true,
|
||||
membership = membership,
|
||||
joinRule = joinRule,
|
||||
heroes = null,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -18,14 +18,12 @@ internal fun aRustSession(
|
|||
proxy: SlidingSyncVersion = SlidingSyncVersion.NONE,
|
||||
accessToken: String = "accessToken",
|
||||
refreshToken: String = "refreshToken",
|
||||
): Session {
|
||||
return Session(
|
||||
accessToken = accessToken,
|
||||
refreshToken = refreshToken,
|
||||
userId = A_USER_ID.value,
|
||||
deviceId = A_DEVICE_ID.value,
|
||||
homeserverUrl = A_HOMESERVER_URL,
|
||||
oidcData = null,
|
||||
slidingSyncVersion = proxy,
|
||||
)
|
||||
}
|
||||
) = Session(
|
||||
accessToken = accessToken,
|
||||
refreshToken = refreshToken,
|
||||
userId = A_USER_ID.value,
|
||||
deviceId = A_DEVICE_ID.value,
|
||||
homeserverUrl = A_HOMESERVER_URL,
|
||||
oidcData = null,
|
||||
slidingSyncVersion = proxy,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import org.matrix.rustcomponents.sdk.RoomHero
|
|||
import org.matrix.rustcomponents.sdk.RoomType
|
||||
import org.matrix.rustcomponents.sdk.SpaceRoom
|
||||
|
||||
fun aRustSpaceRoom(
|
||||
internal fun aRustSpaceRoom(
|
||||
roomId: RoomId = A_ROOM_ID,
|
||||
isDirect: Boolean = false,
|
||||
canonicalAlias: String? = null,
|
||||
|
|
|
|||
|
|
@ -15,15 +15,13 @@ import org.matrix.rustcomponents.sdk.MessageType
|
|||
import org.matrix.rustcomponents.sdk.TextMessageContent
|
||||
import org.matrix.rustcomponents.sdk.TimelineEventContent
|
||||
|
||||
fun aRustTimelineEventContentMessageLike(
|
||||
internal fun aRustTimelineEventContentMessageLike(
|
||||
content: MessageLikeEventContent = aRustMessageLikeEventContentRoomMessage(),
|
||||
): TimelineEventContent.MessageLike {
|
||||
return TimelineEventContent.MessageLike(
|
||||
content = content,
|
||||
)
|
||||
}
|
||||
) = TimelineEventContent.MessageLike(
|
||||
content = content,
|
||||
)
|
||||
|
||||
fun aRustMessageLikeEventContentRoomMessage(
|
||||
internal fun aRustMessageLikeEventContentRoomMessage(
|
||||
messageType: MessageType = aRustMessageTypeText(),
|
||||
inReplyToEventId: String? = null,
|
||||
) = MessageLikeEventContent.RoomMessage(
|
||||
|
|
@ -31,13 +29,13 @@ fun aRustMessageLikeEventContentRoomMessage(
|
|||
inReplyToEventId = inReplyToEventId,
|
||||
)
|
||||
|
||||
fun aRustMessageTypeText(
|
||||
internal fun aRustMessageTypeText(
|
||||
content: TextMessageContent = aRustTextMessageContent(),
|
||||
) = MessageType.Text(
|
||||
content = content,
|
||||
)
|
||||
|
||||
fun aRustTextMessageContent(
|
||||
internal fun aRustTextMessageContent(
|
||||
body: String = A_MESSAGE,
|
||||
formatted: FormattedBody? = null,
|
||||
) = TextMessageContent(
|
||||
|
|
@ -15,7 +15,9 @@ import org.matrix.rustcomponents.sdk.MsgLikeKind
|
|||
import org.matrix.rustcomponents.sdk.TextMessageContent
|
||||
import org.matrix.rustcomponents.sdk.TimelineItemContent
|
||||
|
||||
fun aRustTimelineItemMessageContent(body: String = "Hello") = TimelineItemContent.MsgLike(
|
||||
internal fun aRustTimelineItemContentMsgLike(
|
||||
body: String = "Hello",
|
||||
) = TimelineItemContent.MsgLike(
|
||||
content = MsgLikeContent(
|
||||
kind = MsgLikeKind.Message(
|
||||
content = MessageContent(
|
||||
|
|
@ -19,14 +19,12 @@ internal fun aRustUnableToDecryptInfo(
|
|||
userTrustsOwnIdentity: Boolean = false,
|
||||
senderHomeserver: String = "",
|
||||
ownHomeserver: String = "",
|
||||
): UnableToDecryptInfo {
|
||||
return UnableToDecryptInfo(
|
||||
eventId = eventId,
|
||||
timeToDecryptMs = timeToDecryptMs,
|
||||
cause = cause,
|
||||
eventLocalAgeMillis = eventLocalAgeMillis,
|
||||
userTrustsOwnIdentity = userTrustsOwnIdentity,
|
||||
senderHomeserver = senderHomeserver,
|
||||
ownHomeserver = ownHomeserver,
|
||||
)
|
||||
}
|
||||
) = UnableToDecryptInfo(
|
||||
eventId = eventId,
|
||||
timeToDecryptMs = timeToDecryptMs,
|
||||
cause = cause,
|
||||
eventLocalAgeMillis = eventLocalAgeMillis,
|
||||
userTrustsOwnIdentity = userTrustsOwnIdentity,
|
||||
senderHomeserver = senderHomeserver,
|
||||
ownHomeserver = ownHomeserver,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ package io.element.android.libraries.matrix.impl.fixtures.factories
|
|||
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||
import org.matrix.rustcomponents.sdk.UserProfile
|
||||
|
||||
fun aRustUserProfile(
|
||||
internal fun aRustUserProfile(
|
||||
userId: String = A_USER_ID.value,
|
||||
displayName: String = "displayName",
|
||||
avatarUrl: String = "avatarUrl",
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import org.matrix.rustcomponents.sdk.ShieldState
|
|||
|
||||
class FakeFfiLazyTimelineItemProvider(
|
||||
private val debugInfo: EventTimelineItemDebugInfo = anEventTimelineItemDebugInfo(),
|
||||
private val shieldsState: ShieldState? = null,
|
||||
private val shieldsState: ShieldState = ShieldState.None,
|
||||
) : LazyTimelineItemProvider(NoHandle) {
|
||||
override fun getShields(strict: Boolean) = shieldsState
|
||||
override fun debugInfo() = debugInfo
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import com.google.common.truth.Truth.assertThat
|
|||
import io.element.android.libraries.matrix.api.exception.NotificationResolverException
|
||||
import io.element.android.libraries.matrix.api.notification.NotificationContent
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustBatchNotificationResult
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustBatchNotificationResultOk
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustNotificationEventTimeline
|
||||
import io.element.android.libraries.matrix.impl.fixtures.factories.aRustNotificationItem
|
||||
import io.element.android.libraries.matrix.impl.fixtures.fakes.FakeFfiNotificationClient
|
||||
|
|
@ -38,7 +38,7 @@ class RustNotificationServiceTest {
|
|||
@Test
|
||||
fun test() = runTest {
|
||||
val notificationClient = FakeFfiNotificationClient(
|
||||
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustBatchNotificationResult()),
|
||||
notificationItemResult = mapOf(AN_EVENT_ID.value to aRustBatchNotificationResultOk()),
|
||||
)
|
||||
val sut = createRustNotificationService(
|
||||
notificationClient = notificationClient,
|
||||
|
|
@ -66,10 +66,10 @@ class RustNotificationServiceTest {
|
|||
}
|
||||
val notificationClient = FakeFfiNotificationClient(
|
||||
notificationItemResult = mapOf(
|
||||
AN_EVENT_ID.value to aRustBatchNotificationResult(
|
||||
AN_EVENT_ID.value to aRustBatchNotificationResultOk(
|
||||
notificationStatus = NotificationStatus.Event(aRustNotificationItem(aRustNotificationEventTimeline(faultyEvent)))
|
||||
),
|
||||
AN_EVENT_ID_2.value to aRustBatchNotificationResult()
|
||||
AN_EVENT_ID_2.value to aRustBatchNotificationResultOk()
|
||||
),
|
||||
)
|
||||
val sut = createRustNotificationService(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue