Send state : introduce Failed.VerifiedUser interface.
This commit is contained in:
parent
ff0ef5f093
commit
ba70fbb77e
2 changed files with 11 additions and 4 deletions
|
|
@ -8,6 +8,7 @@
|
||||||
package io.element.android.libraries.matrix.api.timeline.item.event
|
package io.element.android.libraries.matrix.api.timeline.item.event
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
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.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
|
|
||||||
|
|
@ -18,21 +19,24 @@ sealed interface LocalEventSendState {
|
||||||
data class Unknown(val error: String) : Failed
|
data class Unknown(val error: String) : Failed
|
||||||
data object CrossSigningNotSetup : Failed
|
data object CrossSigningNotSetup : Failed
|
||||||
data object SendingFromUnverifiedDevice : Failed
|
data object SendingFromUnverifiedDevice : Failed
|
||||||
|
|
||||||
|
sealed interface VerifiedUser : Failed
|
||||||
data class VerifiedUserHasUnsignedDevice(
|
data class VerifiedUserHasUnsignedDevice(
|
||||||
/**
|
/**
|
||||||
* The unsigned devices belonging to verified users. A map from user ID
|
* The unsigned devices belonging to verified users. A map from user ID
|
||||||
* to a list of device IDs.
|
* to a list of device IDs.
|
||||||
*/
|
*/
|
||||||
val devices: Map<UserId, List<String>>
|
val devices: Map<UserId, List<DeviceId>>
|
||||||
) : Failed
|
) : VerifiedUser
|
||||||
|
|
||||||
data class VerifiedUserChangedIdentity(
|
data class VerifiedUserChangedIdentity(
|
||||||
/**
|
/**
|
||||||
* The users that were previously verified but are no longer.
|
* The users that were previously verified but are no longer.
|
||||||
*/
|
*/
|
||||||
val users: List<UserId>
|
val users: List<UserId>
|
||||||
) : Failed
|
) : VerifiedUser
|
||||||
}
|
}
|
||||||
|
|
||||||
data class Sent(
|
data class Sent(
|
||||||
val eventId: EventId
|
val eventId: EventId
|
||||||
) : LocalEventSendState
|
) : LocalEventSendState
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.timeline.item.event
|
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.EventId
|
||||||
import io.element.android.libraries.matrix.api.core.TransactionId
|
import io.element.android.libraries.matrix.api.core.TransactionId
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
|
|
@ -87,7 +88,9 @@ fun RustEventSendState?.map(): LocalEventSendState? {
|
||||||
}
|
}
|
||||||
is RustEventSendState.VerifiedUserHasUnsignedDevice -> {
|
is RustEventSendState.VerifiedUserHasUnsignedDevice -> {
|
||||||
LocalEventSendState.Failed.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
|
EventSendState.CrossSigningNotSetup -> LocalEventSendState.Failed.CrossSigningNotSetup
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue