[Room details] DM designs (#313)

* Implement member details screen

* Add DM-only sections to the room details screen.
This commit is contained in:
Jorge Martin Espinosa 2023-04-17 18:41:10 +02:00 committed by GitHub
parent 97917e7a2d
commit 30eb794d9c
44 changed files with 379 additions and 113 deletions

View file

@ -48,7 +48,7 @@ object PermalinkBuilder {
}
Result.success(url)
} else {
Result.failure(PermalinkBuilderError.InvalidRoomAlias)
Result.failure(PermalinkBuilderError.InvalidUserId)
}
}
@ -87,4 +87,5 @@ object PermalinkBuilder {
sealed class PermalinkBuilderError : Throwable() {
object InvalidRoomAlias : PermalinkBuilderError()
object InvalidRoomId : PermalinkBuilderError()
object InvalidUserId : PermalinkBuilderError()
}

View file

@ -33,6 +33,7 @@ interface MatrixRoom: Closeable {
val topic: String?
val avatarUrl: String?
val isEncrypted: Boolean
val isDirect: Boolean
val isPublic: Boolean
suspend fun members() : List<RoomMember>
@ -41,15 +42,17 @@ interface MatrixRoom: Closeable {
fun getMember(userId: UserId): RoomMember?
fun getDmMember(): RoomMember?
fun syncUpdateFlow(): Flow<Long>
fun timeline(): MatrixTimeline
suspend fun fetchMembers(): Result<Unit>
suspend fun userDisplayName(userId: String): Result<String?>
suspend fun userDisplayName(userId: UserId): Result<String?>
suspend fun userAvatarUrl(userId: String): Result<String?>
suspend fun userAvatarUrl(userId: UserId): Result<String?>
suspend fun sendMessage(message: String): Result<Unit>

View file

@ -17,11 +17,12 @@
package io.element.android.libraries.matrix.api.room
import android.os.Parcelable
import io.element.android.libraries.matrix.api.core.UserId
import kotlinx.parcelize.Parcelize
@Parcelize
data class RoomMember(
val userId: String,
val userId: UserId,
val displayName: String?,
val avatarUrl: String?,
val membership: RoomMembershipState,