Introduce value class "DeviceId"

This commit is contained in:
Benoit Marty 2024-09-11 09:52:25 +02:00
parent da2b98ff01
commit 626fa4e495
10 changed files with 35 additions and 10 deletions

View file

@ -7,6 +7,7 @@
package io.element.android.libraries.matrix.api
import io.element.android.libraries.matrix.api.core.DeviceId
import io.element.android.libraries.matrix.api.core.ProgressCallback
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
@ -41,7 +42,7 @@ import java.util.Optional
interface MatrixClient : Closeable {
val sessionId: SessionId
val deviceId: String
val deviceId: DeviceId
val userProfile: StateFlow<MatrixUser>
val roomListService: RoomListService
val mediaLoader: MatrixMediaLoader

View file

@ -0,0 +1,15 @@
/*
* Copyright 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only
* Please see LICENSE in the repository root for full details.
*/
package io.element.android.libraries.matrix.api.core
import java.io.Serializable
@JvmInline
value class DeviceId(val value: String) : Serializable {
override fun toString(): String = value
}

View file

@ -7,9 +7,11 @@
package io.element.android.libraries.matrix.api.oidc
import io.element.android.libraries.matrix.api.core.DeviceId
sealed interface AccountManagementAction {
data object Profile : AccountManagementAction
data object SessionsList : AccountManagementAction
data class SessionView(val deviceId: String) : AccountManagementAction
data class SessionEnd(val deviceId: String) : AccountManagementAction
data class SessionView(val deviceId: DeviceId) : AccountManagementAction
data class SessionEnd(val deviceId: DeviceId) : AccountManagementAction
}