Skip to content

Commit 416810a

Browse files
committed
Send state : introduce Failed.VerifiedUser interface.
1 parent de933b1 commit 416810a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/LocalEventSendState.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package io.element.android.libraries.matrix.api.timeline.item.event
99

1010
import androidx.compose.runtime.Immutable
11+
import io.element.android.libraries.matrix.api.core.DeviceId
1112
import io.element.android.libraries.matrix.api.core.EventId
1213
import io.element.android.libraries.matrix.api.core.UserId
1314

@@ -18,21 +19,24 @@ sealed interface LocalEventSendState {
1819
data class Unknown(val error: String) : Failed
1920
data object CrossSigningNotSetup : Failed
2021
data object SendingFromUnverifiedDevice : Failed
22+
23+
sealed interface VerifiedUser : Failed
2124
data class VerifiedUserHasUnsignedDevice(
2225
/**
2326
* The unsigned devices belonging to verified users. A map from user ID
2427
* to a list of device IDs.
2528
*/
26-
val devices: Map<UserId, List<String>>
27-
) : Failed
29+
val devices: Map<UserId, List<DeviceId>>
30+
) : VerifiedUser
2831

2932
data class VerifiedUserChangedIdentity(
3033
/**
3134
* The users that were previously verified but are no longer.
3235
*/
3336
val users: List<UserId>
34-
) : Failed
37+
) : VerifiedUser
3538
}
39+
3640
data class Sent(
3741
val eventId: EventId
3842
) : LocalEventSendState

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package io.element.android.libraries.matrix.impl.timeline.item.event
99

10+
import io.element.android.libraries.matrix.api.core.DeviceId
1011
import io.element.android.libraries.matrix.api.core.EventId
1112
import io.element.android.libraries.matrix.api.core.TransactionId
1213
import io.element.android.libraries.matrix.api.core.UserId
@@ -87,7 +88,9 @@ fun RustEventSendState?.map(): LocalEventSendState? {
8788
}
8889
is RustEventSendState.VerifiedUserHasUnsignedDevice -> {
8990
LocalEventSendState.Failed.VerifiedUserHasUnsignedDevice(
90-
devices = devices.mapKeys { UserId(it.key) }
91+
devices = devices.entries.associate { entry ->
92+
UserId(entry.key) to entry.value.map { DeviceId(it) }
93+
}
9194
)
9295
}
9396
EventSendState.CrossSigningNotSetup -> LocalEventSendState.Failed.CrossSigningNotSetup

0 commit comments

Comments
 (0)