knock requests : expose api through Room
This commit is contained in:
parent
91444aee67
commit
741ae35aca
6 changed files with 134 additions and 0 deletions
|
|
@ -33,6 +33,7 @@ import io.element.android.libraries.matrix.api.room.MessageEventType
|
|||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.StateEventType
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
import io.element.android.libraries.matrix.api.room.location.AssetType
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.UserRoleChange
|
||||
|
|
@ -163,6 +164,13 @@ class FakeMatrixRoom(
|
|||
_identityStateChangesFlow.tryEmit(identityStateChanges)
|
||||
}
|
||||
|
||||
private val _knockRequestsFlow: MutableSharedFlow<List<KnockRequest>> = MutableSharedFlow(replay = 1)
|
||||
override val knockRequestsFlow: Flow<List<KnockRequest>> = _knockRequestsFlow
|
||||
|
||||
fun emitKnockRequests(knockRequests: List<KnockRequest>) {
|
||||
_knockRequestsFlow.tryEmit(knockRequests)
|
||||
}
|
||||
|
||||
override val membersStateFlow: MutableStateFlow<MatrixRoomMembersState> = MutableStateFlow(MatrixRoomMembersState.Unknown)
|
||||
|
||||
override val roomNotificationSettingsStateFlow: MutableStateFlow<MatrixRoomNotificationSettingsState> =
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* 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.test.room.knock
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.room.knock.KnockRequest
|
||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||
import io.element.android.libraries.matrix.test.A_USER_ID
|
||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||
import io.element.android.tests.testutils.lambda.lambdaError
|
||||
|
||||
class FakeKnockRequest(
|
||||
override val userId: UserId = A_USER_ID,
|
||||
override val displayName: String? = A_USER_NAME,
|
||||
override val avatarUrl: String? = AN_AVATAR_URL,
|
||||
override val reason: String? = null,
|
||||
override val timestamp: Long? = null,
|
||||
val acceptLambda: () -> Result<Unit> = { lambdaError() },
|
||||
val declineLambda: (String?) -> Result<Unit> = { lambdaError() },
|
||||
val declineAndBanLambda: (String?) -> Result<Unit> = { lambdaError() },
|
||||
val markAsSeenLambda: () -> Result<Unit> = { lambdaError() },
|
||||
) : KnockRequest {
|
||||
override suspend fun accept(): Result<Unit> {
|
||||
return acceptLambda()
|
||||
}
|
||||
|
||||
override suspend fun decline(reason: String?): Result<Unit> {
|
||||
return declineLambda(reason)
|
||||
}
|
||||
|
||||
override suspend fun declineAndBan(reason: String?): Result<Unit> {
|
||||
return declineAndBanLambda(reason)
|
||||
}
|
||||
|
||||
override suspend fun markAsSeen(): Result<Unit> {
|
||||
return markAsSeenLambda()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue