Send state : introduce Failed.VerifiedUser interface.

This commit is contained in:
ganfra
2024-09-13 11:43:41 +02:00
parent ff0ef5f093
commit ba70fbb77e
2 changed files with 11 additions and 4 deletions

View File

@@ -8,6 +8,7 @@
package io.element.android.libraries.matrix.api.timeline.item.event
import androidx.compose.runtime.Immutable
import io.element.android.libraries.matrix.api.core.DeviceId
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
@@ -18,21 +19,24 @@ sealed interface LocalEventSendState {
data class Unknown(val error: String) : Failed
data object CrossSigningNotSetup : Failed
data object SendingFromUnverifiedDevice : Failed
sealed interface VerifiedUser : Failed
data class VerifiedUserHasUnsignedDevice(
/**
* The unsigned devices belonging to verified users. A map from user ID
* to a list of device IDs.
*/
val devices: Map<UserId, List<String>>
) : Failed
val devices: Map<UserId, List<DeviceId>>
) : VerifiedUser
data class VerifiedUserChangedIdentity(
/**
* The users that were previously verified but are no longer.
*/
val users: List<UserId>
) : Failed
) : VerifiedUser
}
data class Sent(
val eventId: EventId
) : LocalEventSendState

View File

@@ -7,6 +7,7 @@
package io.element.android.libraries.matrix.impl.timeline.item.event
import io.element.android.libraries.matrix.api.core.DeviceId
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.core.UserId
@@ -87,7 +88,9 @@ fun RustEventSendState?.map(): LocalEventSendState? {
}
is RustEventSendState.VerifiedUserHasUnsignedDevice -> {
LocalEventSendState.Failed.VerifiedUserHasUnsignedDevice(
devices = devices.mapKeys { UserId(it.key) }
devices = devices.entries.associate { entry ->
UserId(entry.key) to entry.value.map { DeviceId(it) }
}
)
}
EventSendState.CrossSigningNotSetup -> LocalEventSendState.Failed.CrossSigningNotSetup